@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:#f9f9f9;--bg-secondary:#fff;--bg-elevated:#fff;--bg-sidebar:#fefefe;--bg-overlay:#0000004d;--accent-sage:#b7c4a7;--accent-sage-light:#dce4d4;--accent-sage-bg:#f0f4ec;--accent-terracotta:#d4907a;--accent-terracotta-light:#ecc8bc;--accent-terracotta-bg:#faf0ec;--accent-dusty-rose:#d4a0a0;--accent-dusty-rose-light:#e8cbcb;--accent-dusty-rose-bg:#faf0f0;--accent-lavender:#b8a9d4;--accent-lavender-light:#d5cce6;--accent-lavender-bg:#f2eff8;--accent-sky:#a0c4d4;--accent-sky-light:#c8dde6;--accent-sky-bg:#edf5f8;--accent-peach:#e8c4a0;--accent-peach-light:#f0dcc4;--accent-peach-bg:#faf4ec;--accent-mint:#a0d4b4;--accent-mint-light:#c4e6d0;--accent-mint-bg:#ecf8f0;--text-primary:#2d2d2d;--text-secondary:#6b6b6b;--text-tertiary:#9a9a9a;--text-inverse:#fff;--text-link:#8b7ec8;--status-todo:var(--accent-sky);--status-in-progress:var(--accent-peach);--status-done:var(--accent-sage);--status-overdue:var(--accent-terracotta);--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:24px;--radius-full:999px;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 4px 16px #0000000f;--shadow-lg:0 8px 32px #00000014;--shadow-xl:0 12px 48px #0000001a;--shadow-glow:0 0 20px #b8a9d426;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--sidebar-width:260px;--sidebar-collapsed:72px;--topbar-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}::selection{background:var(--accent-lavender-light);color:var(--text-primary)}a{color:var(--text-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-lavender)}button{font-family:var(--font-family);cursor:pointer;font-size:inherit;background:0 0;border:none;outline:none}input,textarea,select{font-family:var(--font-family);font-size:var(--font-size-base);background:0 0;border:none;outline:none}ul,ol{list-style:none}img{max-width:100%;display:block}.app-layout{background:var(--bg-primary);min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);padding-top:var(--topbar-height);min-height:100vh;transition:margin-left var(--transition-normal);flex:1}.page-container{padding:var(--space-xl);max-width:1200px;margin:0 auto;animation:.4s fadeInUp}.page-header{margin-bottom:var(--space-xl)}.page-title{font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.page-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin-top:var(--space-xs)}.card{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);border:1px solid #0000000a}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-flat{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid #0000000f}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);font-weight:500;font-size:var(--font-size-sm);transition:all var(--transition-normal);white-space:nowrap;padding:10px 20px;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";transition:background var(--transition-fast);border-radius:inherit;background:#fff0;position:absolute;inset:0}.btn:hover:after{background:#ffffff26}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent-lavender);color:var(--text-inverse);box-shadow:0 2px 8px #b8a9d44d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #b8a9d466}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid #00000014}.btn-secondary:hover{background:var(--bg-secondary);border-color:#0000001f}.btn-ghost{color:var(--text-secondary);padding:8px 14px}.btn-ghost:hover{color:var(--text-primary);background:#0000000a}.btn-danger{background:var(--accent-terracotta);color:var(--text-inverse)}.btn-sm{font-size:var(--font-size-xs);padding:6px 14px}.btn-lg{font-size:var(--font-size-md);padding:14px 28px}.btn-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);letter-spacing:.02em;align-items:center;gap:4px;padding:4px 12px;font-weight:600;display:inline-flex}.badge-sage{background:var(--accent-sage-bg);color:#6b8055}.badge-terracotta{background:var(--accent-terracotta-bg);color:#a06048}.badge-dusty-rose{background:var(--accent-dusty-rose-bg);color:#a06060}.badge-lavender{background:var(--accent-lavender-bg);color:#7b6ba0}.badge-sky{background:var(--accent-sky-bg);color:#5a8ea0}.badge-peach{background:var(--accent-peach-bg);color:#9a7a50}.badge-mint{background:var(--accent-mint-bg);color:#5a9a6e}.input{border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;color:var(--text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast);border:1.5px solid #00000014;padding:12px 16px}.input:focus{border-color:var(--accent-lavender);box-shadow:0 0 0 3px #b8a9d426}.input::placeholder{color:var(--text-tertiary)}.textarea{border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;color:var(--text-primary);font-size:var(--font-size-base);resize:vertical;min-height:100px;transition:all var(--transition-fast);border:1.5px solid #00000014;padding:14px 16px;line-height:1.6}.textarea:focus{border-color:var(--accent-lavender);box-shadow:0 0 0 3px #b8a9d426}.select-wrap{position:relative}.select-wrap select{border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;color:var(--text-primary);appearance:none;cursor:pointer;transition:all var(--transition-fast);border:1.5px solid #00000014;padding:12px 40px 12px 16px}.select-wrap:after{content:"▾";color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600;display:block}.avatar{border-radius:var(--radius-full);width:36px;height:36px;font-weight:600;font-size:var(--font-size-sm);color:var(--text-inverse);flex-shrink:0;justify-content:center;align-items:center;display:flex}.avatar-emma{background:linear-gradient(135deg, var(--accent-dusty-rose), var(--accent-lavender))}.avatar-liam{background:linear-gradient(135deg, var(--accent-sky), var(--accent-sage))}.avatar-shared{background:linear-gradient(135deg, var(--accent-peach), var(--accent-terracotta))}.avatar-sm{width:28px;height:28px;font-size:var(--font-size-xs)}.avatar-lg{width:48px;height:48px;font-size:var(--font-size-lg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes checkmark{0%{stroke-dashoffset:50px}to{stroke-dashoffset:0}}.animate-fade-in{animation:.3s fadeIn}.animate-fade-in-up{animation:.4s fadeInUp}.animate-scale-in{animation:scaleIn .3s var(--transition-spring)}.animate-slide-right{animation:.3s slideInRight}.animate-float{animation:3s ease-in-out infinite float}.stagger-children>*{animation:.4s both fadeInUp}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:60ms}.stagger-children>:nth-child(3){animation-delay:.12s}.stagger-children>:nth-child(4){animation-delay:.18s}.stagger-children>:nth-child(5){animation-delay:.24s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.36s}.stagger-children>:nth-child(8){animation-delay:.42s}.tooltip-wrap{position:relative}.tooltip-wrap:before{content:attr(data-tooltip);background:var(--text-primary);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--transition-fast);padding:6px 12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px)}.tooltip-wrap:hover:before{opacity:1;transform:translate(-50%)translateY(-8px)}.empty-state{padding:var(--space-3xl) var(--space-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-md);font-size:3rem;animation:3s ease-in-out infinite float}.empty-state-title{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-sm);font-weight:600}.empty-state-text{color:var(--text-secondary);max-width:360px;margin-bottom:var(--space-lg)}.modal-overlay{background:var(--bg-overlay);z-index:1000;padding:var(--space-lg);justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:var(--space-xl);width:100%;max-width:520px;max-height:85vh;box-shadow:var(--shadow-xl);animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;overflow-y:auto}.modal-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:700}.modal-close{border-radius:var(--radius-full);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.modal-close:hover{color:var(--text-primary);background:#0000000f}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#0000001f}::-webkit-scrollbar-thumb:hover{background:#0003}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width<=768px){:root{--sidebar-width:0px;--topbar-height:52px;--bottom-nav-height:72px}.main-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));margin-left:0}.page-container{padding:var(--space-md);padding-bottom:var(--space-lg)}.page-title{font-size:clamp(1.25rem,5vw,2rem)}.page-subtitle{font-size:var(--font-size-sm)}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:100%;padding:var(--space-md) var(--space-lg) calc(var(--space-lg) + env(safe-area-inset-bottom,0px));max-height:90vh;margin:0;animation:.3s cubic-bezier(.4,0,.2,1) slideUp}.modal:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto var(--space-md);background:#00000026;display:block}input,textarea,select{font-size:16px!important}.btn{min-height:44px;padding:12px 20px}.btn-sm{min-height:38px;padding:8px 16px}.btn-icon{min-width:44px;min-height:44px}.modal-close{width:44px;height:44px}.card:hover{box-shadow:var(--shadow-sm);transform:none}.card:active{box-shadow:var(--shadow-md);transform:scale(.98)}.page-header{margin-bottom:var(--space-md)}.empty-state{padding:var(--space-xl) var(--space-md)}.empty-state-icon{font-size:2.5rem}}@media (width<=380px){.page-container{padding:var(--space-sm)}.btn-lg{font-size:var(--font-size-sm);padding:12px 24px}}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);z-index:100;height:100vh;transition:transform var(--transition-normal);border-right:1px solid #0000000d;flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-overlay{display:none}.sidebar-header{padding:var(--space-lg) var(--space-lg) var(--space-md)}.sidebar-logo{align-items:center;gap:var(--space-sm);display:flex}.logo-icon{font-size:1.8rem;animation:3s ease-in-out infinite float}.logo-text{font-size:var(--font-size-xl);background:linear-gradient(135deg, var(--accent-dusty-rose), var(--accent-lavender));-webkit-text-fill-color:transparent;letter-spacing:-.03em;-webkit-background-clip:text;background-clip:text;font-weight:800}.sidebar-nav{padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.nav-item{align-items:center;gap:var(--space-md);border-radius:var(--radius-lg);color:var(--text-secondary);transition:all var(--transition-normal);padding:14px 16px;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:var(--text-primary);background:#00000008}.nav-item-active{background:var(--accent-lavender-bg);color:var(--text-primary)}.nav-item-active .nav-icon{transform:scale(1.1)}.nav-icon{text-align:center;width:32px;transition:transform var(--transition-spring);flex-shrink:0;font-size:1.3rem}.nav-label{flex-direction:column;display:flex}.nav-title{font-weight:600;font-size:var(--font-size-base)}.nav-desc{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:1px}.sidebar-footer{padding:var(--space-lg);text-align:center;border-top:1px solid #0000000d}.sidebar-couple{justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.couple-ampersand{color:var(--accent-dusty-rose);font-weight:700;font-size:var(--font-size-lg)}.sidebar-tagline{font-size:var(--font-size-xs);color:var(--text-tertiary)}@media (width<=768px){.sidebar,.sidebar-overlay{display:none}}.topbar{top:0;left:var(--sidebar-width);height:var(--topbar-height);-webkit-backdrop-filter:blur(20px);padding:0 var(--space-lg);z-index:90;transition:left var(--transition-normal);background:#f9f9f9d9;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;display:flex;position:fixed;right:0}.topbar-menu-btn{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:none}.topbar-menu-btn:hover{color:var(--text-primary);background:#0000000a}.topbar-center{flex:1;justify-content:center;display:flex}.user-switcher{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);background:var(--bg-secondary);transition:all var(--transition-normal);cursor:pointer;border:1px solid #0000000f;padding:8px 16px;display:flex}.user-switcher:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.user-switcher:active{transform:scale(.98)}.switcher-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.switcher-label strong{color:var(--text-primary);font-weight:600}.switcher-swap{color:var(--accent-lavender);transition:transform var(--transition-normal);align-items:center;display:flex}.user-switcher:hover .switcher-swap{transform:rotate(180deg)}.topbar-actions{align-items:center;gap:var(--space-sm);display:flex}.mood-btn{border-radius:var(--radius-full);width:42px;height:42px;transition:all var(--transition-normal);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.3rem;display:flex}.mood-btn:hover{background:#0000000a;transform:scale(1.15)}.notification-bell{border-radius:var(--radius-full);width:42px;height:42px;color:var(--text-secondary);transition:all var(--transition-normal);justify-content:center;align-items:center;display:flex;position:relative}.notification-bell:hover{color:var(--text-primary);background:#0000000a}.notification-bell:hover svg{animation:.4s wiggle}.notification-count{border-radius:var(--radius-full);background:var(--accent-terracotta);color:#fff;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;display:flex;position:absolute;top:4px;right:4px}@media (width<=768px){.topbar{padding:0 var(--space-md);left:0}.topbar-menu-btn{display:none}.user-switcher{gap:var(--space-xs);padding:6px 12px}.switcher-label{font-size:var(--font-size-xs)}.switcher-swap svg{width:14px;height:14px}.mood-btn,.notification-bell{width:44px;height:44px}}@media (width<=380px){.switcher-label{display:none}.user-switcher{padding:6px 10px}}.notification-overlay{z-index:199;background:0 0;position:fixed;inset:0}.notification-panel{top:var(--topbar-height);right:var(--space-md);background:var(--bg-elevated);border-radius:var(--radius-xl);width:380px;max-height:500px;box-shadow:var(--shadow-xl);z-index:200;border:1px solid #0000000f;animation:.25s fadeInDown;position:fixed;overflow:hidden}.notification-panel-header{padding:var(--space-lg) var(--space-lg) var(--space-md);justify-content:space-between;align-items:center;display:flex}.notification-panel-header h3{font-size:var(--font-size-lg);font-weight:700}.notification-list{max-height:400px;padding:0 var(--space-sm) var(--space-sm);overflow-y:auto}.notification-item{align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);text-align:left;width:100%;transition:all var(--transition-fast);cursor:pointer;animation:.3s both fadeInUp;display:flex;position:relative}.notification-item:hover{background:#00000008}.notification-unread{background:var(--accent-lavender-bg)}.notification-unread:hover{background:var(--accent-lavender-light)}.notification-type-icon{flex-shrink:0;margin-top:2px;font-size:1.3rem}.notification-content{flex:1;min-width:0}.notification-text{font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.5}.notification-time{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:2px;display:block}.notification-dot{border-radius:var(--radius-full);background:var(--accent-lavender);flex-shrink:0;width:8px;height:8px;margin-top:6px}.notification-empty{padding:var(--space-2xl) var(--space-lg);text-align:center}.notification-empty-icon{margin-bottom:var(--space-sm);opacity:.5;font-size:2rem;display:block}.notification-empty p{font-size:var(--font-size-sm);color:var(--text-tertiary)}@media (width<=768px){.notification-overlay{background:var(--bg-overlay)}.notification-panel{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:75vh;padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px));animation:.3s cubic-bezier(.4,0,.2,1) slideUp;inset:auto 0 0}.notification-panel:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:var(--space-sm) auto var(--space-xs);background:#00000026;display:block}.notification-item{min-height:56px}}.mood-overlay{z-index:199;background:0 0;position:fixed;inset:0}.mood-panel{top:var(--topbar-height);background:var(--bg-elevated);border-radius:var(--radius-xl);width:400px;max-height:520px;box-shadow:var(--shadow-xl);z-index:200;padding:var(--space-lg);border:1px solid #0000000f;animation:.25s fadeInDown;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%)}.mood-panel-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.mood-panel-header h3{font-size:var(--font-size-lg);font-weight:700}.mood-picker{gap:var(--space-sm);margin-bottom:var(--space-lg);justify-content:center;display:flex}.mood-option{align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-sm);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:pointer;border:2px solid #0000;flex-direction:column;min-width:60px;display:flex}.mood-option:hover{background:#00000008;transform:translateY(-2px)}.mood-option-active{background:var(--accent-lavender-bg);border-color:var(--accent-lavender);transform:scale(1.08)}.mood-emoji{transition:transform var(--transition-spring);font-size:1.8rem}.mood-option:hover .mood-emoji{transform:scale(1.15)}.mood-option-active .mood-emoji{transform:scale(1.2)}.mood-label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:500}.mood-note-wrap{gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.mood-note-input{font-size:var(--font-size-sm);flex:1}.mood-submitted{text-align:center;padding:var(--space-xl)}.mood-submitted-emoji{margin-bottom:var(--space-sm);font-size:3rem;display:block}.mood-submitted p{font-size:var(--font-size-md);color:var(--accent-sage);font-weight:600}.mood-already{text-align:center;padding:var(--space-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.mood-already span{margin-bottom:var(--space-sm);font-size:2rem;display:block}.mood-history{padding-top:var(--space-md);gap:var(--space-md);border-top:1px solid #0000000f;flex-direction:column;display:flex}.mood-history-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:var(--space-sm);align-items:center;gap:var(--space-xs);font-weight:600;display:flex}.mood-history-empty{font-size:var(--font-size-xs);color:var(--text-tertiary);font-style:italic}.mood-history-list{gap:var(--space-xs);flex-direction:column;display:flex}.mood-history-item{align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);display:flex}.mood-history-emoji{font-size:1rem}.mood-history-time{color:var(--text-tertiary);min-width:50px}.mood-history-note{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}@media (width<=768px){.mood-overlay{background:var(--bg-overlay)}.mood-panel{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:80vh;padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));animation:.3s cubic-bezier(.4,0,.2,1) slideUp;inset:auto 0 0;transform:none}.mood-panel:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto var(--space-md);background:#00000026;display:block}.mood-option{min-width:52px;padding:var(--space-sm);min-height:70px}.mood-note-wrap{flex-direction:column}.mood-note-wrap .btn{width:100%}}.bottom-nav{display:none}@media (width<=768px){.bottom-nav{z-index:200;-webkit-backdrop-filter:blur(20px);height:var(--bottom-nav-height,72px);padding-bottom:env(safe-area-inset-bottom,0px);background:#ffffffeb;border-top:1px solid #0000000f;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--text-tertiary);font-size:var(--font-size-xs);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 0;text-decoration:none;display:flex;position:relative}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-icon{transition:transform var(--transition-spring);font-size:1.35rem;line-height:1}.bottom-nav-label{letter-spacing:.01em;font-weight:500}.bottom-nav-active{color:var(--text-primary)}.bottom-nav-active .bottom-nav-icon{transform:scale(1.15)}.bottom-nav-active:after{content:"";border-radius:var(--radius-full);background:var(--accent-lavender);width:4px;height:4px;animation:.2s scaleIn;position:absolute;top:4px;left:50%;transform:translate(-50%)}}.task-detail-modal{max-height:85vh;overflow-y:auto}.task-detail-header-left{align-items:center;gap:var(--space-sm);display:flex}.task-detail-title{font-size:var(--font-size-xl);margin-bottom:var(--space-lg);font-weight:700;line-height:1.3}.task-detail-controls{gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid #0000000f;flex-direction:column;display:flex}.control-group{gap:var(--space-sm);flex-direction:column;display:flex}.status-toggle,.assignee-toggle{gap:var(--space-sm);flex-wrap:wrap;display:flex}.status-btn{cursor:pointer;transition:all var(--transition-fast);opacity:.5;padding:6px 14px}.status-btn:hover{opacity:.8}.status-btn-active{opacity:1;box-shadow:var(--shadow-sm);transform:scale(1.05)}.assignee-btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);border:1.5px solid #00000014;padding:8px 14px;display:flex}.assignee-btn:hover{color:var(--text-primary);border-color:#00000026}.assignee-btn-active{border-color:var(--accent-lavender);background:var(--accent-lavender-bg);color:var(--text-primary)}.task-detail-section{margin-bottom:var(--space-lg)}.section-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.desc-content{padding:var(--space-md);background:var(--bg-primary);border-radius:var(--radius-md);cursor:pointer;min-height:60px;color:var(--text-primary);white-space:pre-wrap;transition:background var(--transition-fast);line-height:1.6}.desc-content:hover{background:#00000008}.desc-placeholder{color:var(--text-tertiary);font-style:italic}.desc-edit{gap:var(--space-sm);flex-direction:column;display:flex}.desc-edit-actions{gap:var(--space-sm);display:flex}.comments-list{gap:var(--space-md);margin:var(--space-md) 0;max-height:240px;padding:var(--space-sm) 0;flex-direction:column;display:flex;overflow-y:auto}.comments-empty{text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm);padding:var(--space-lg)}.comment{gap:var(--space-sm);animation:.3s fadeInUp;display:flex}.comment-body{background:var(--bg-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border-top-left-radius:4px;flex:1}.comment-mine .comment-body{background:var(--accent-lavender-bg);border-top-left-radius:var(--radius-md);border-top-right-radius:4px}.comment-header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.comment-author{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:600}.comment-time{font-size:var(--font-size-xs);color:var(--text-tertiary)}.comment-text{font-size:var(--font-size-sm);line-height:1.5}.comment-form{gap:var(--space-sm);align-items:center;display:flex}.comment-input{flex:1}.task-detail-footer{padding-top:var(--space-md);margin-top:var(--space-md);border-top:1px solid #0000000f;justify-content:space-between;align-items:center;display:flex}.due-date-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.due-date-input{border-radius:var(--radius-md);background:var(--bg-secondary);max-width:180px;font-size:var(--font-size-sm);color:var(--text-primary);cursor:pointer;border:1.5px solid #00000014;padding:8px 14px}.due-date-input:focus{border-color:var(--accent-lavender);box-shadow:0 0 0 3px #b8a9d426}.due-date-badge{font-size:var(--font-size-xs);border-radius:var(--radius-full);padding:4px 10px;font-weight:600}.due-date-overdue{background:var(--accent-terracotta-bg);color:#a06048}.due-date-today{background:var(--accent-peach-bg);color:#9a7a50}.due-date-soon{background:var(--accent-sky-bg);color:#5a8ea0}.due-date-future{background:var(--bg-primary);color:var(--text-secondary)}@media (width<=768px){.task-detail-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md)}.task-detail-controls{gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-md)}.status-toggle,.assignee-toggle{gap:var(--space-xs)}.status-btn,.assignee-btn{font-size:var(--font-size-xs);min-height:38px;padding:8px 12px}.due-date-input{width:100%;max-width:100%}.due-date-row{flex-direction:column;align-items:stretch}.comments-list{max-height:180px}.comment-form{flex-direction:column}.comment-form .btn{width:100%}.task-detail-footer{gap:var(--space-sm);flex-direction:column}.task-detail-footer .btn{width:100%}}.tasks-page{gap:var(--space-lg);min-height:calc(100vh - var(--topbar-height));display:flex}.tasks-categories{width:240px;padding:var(--space-xl) 0 var(--space-xl) var(--space-xl);top:var(--topbar-height);height:calc(100vh - var(--topbar-height));flex-shrink:0;position:sticky;overflow-y:auto}.categories-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.categories-header h3{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:600}.add-category-btn{border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--accent-lavender);background:var(--accent-lavender-bg);border:1.5px dashed var(--accent-lavender-light);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:4px;min-height:36px;padding:6px 14px;font-weight:600;display:flex}.add-category-btn:hover{background:var(--accent-lavender-light);border-color:var(--accent-lavender);transform:scale(1.03)}.add-category-btn:active{transform:scale(.97)}.categories-list{gap:var(--space-xs);flex-direction:column;display:flex}.category-item-wrap{align-items:center;display:flex;position:relative}.category-item{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);text-align:left;width:100%;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;padding:10px 14px;display:flex}.category-item:hover{color:var(--text-primary);background:#00000008}.category-item-active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.category-emoji{font-size:1.1rem}.category-name{font-size:var(--font-size-sm);flex:1;font-weight:500}.category-count{font-size:var(--font-size-xs);padding:2px 8px}.category-delete{opacity:.5;transition:opacity var(--transition-fast);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.8rem;position:absolute;top:50%;right:-8px;transform:translateY(-50%)}.category-delete:hover{opacity:1}.new-category-form{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.new-cat-emoji-row{flex-wrap:wrap;gap:4px;display:flex}.emoji-pick{border-radius:var(--radius-sm);width:30px;height:30px;transition:all var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;font-size:.9rem;display:flex}.emoji-pick:hover{background:#0000000f;transform:scale(1.15)}.emoji-pick-active{background:var(--accent-lavender-bg);box-shadow:0 0 0 2px var(--accent-lavender)}.color-picker-row{gap:6px;display:flex}.color-dot{border-radius:var(--radius-full);width:24px;height:24px;transition:all var(--transition-fast);cursor:pointer;border:2px solid #0000}.color-dot:hover{transform:scale(1.15)}.color-dot-active{border-color:var(--text-primary);box-shadow:0 0 0 2px white, 0 0 0 4px var(--text-primary)}.edit-cat-inline{width:100%;padding:2px}.edit-cat-inline .input{font-size:var(--font-size-sm);padding:8px 12px}.tasks-main{padding:var(--space-xl) var(--space-xl) var(--space-xl) 0;flex:1;min-width:0}.tasks-toolbar{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.tasks-toolbar-left{align-items:baseline;gap:var(--space-md);display:flex}.task-count-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.tasks-toolbar-right{align-items:center;gap:var(--space-md);display:flex}.filter-group{gap:var(--space-sm);display:flex}.filter-select{border-radius:var(--radius-full);background:var(--bg-secondary);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;appearance:auto;transition:all var(--transition-fast);border:1px solid #00000014;padding:8px 14px}.filter-select:hover{border-color:#00000026}.new-task-form{margin-bottom:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.new-task-input{font-size:var(--font-size-lg);font-weight:500}.new-task-actions{gap:var(--space-sm);display:flex}.task-columns{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.task-column{min-width:0}.task-column-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;margin-bottom:var(--space-md);border-bottom:2px solid #0000000f;display:flex}.task-column-icon{color:var(--text-tertiary);font-size:.9rem}.task-column-title{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.task-column-count{font-size:var(--font-size-xs);color:var(--text-tertiary);border-radius:var(--radius-full);background:#0000000a;padding:2px 8px}.task-column-list{gap:var(--space-sm);flex-direction:column;display:flex}.task-card{padding:var(--space-md);cursor:pointer}.task-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.task-card-category{margin-bottom:var(--space-sm)}.task-card-title{font-size:var(--font-size-base);margin-bottom:var(--space-sm);font-weight:600;line-height:1.4}.task-done-title{opacity:.5;text-decoration:line-through}.task-card-meta{align-items:center;gap:var(--space-sm);display:flex}.task-card-comments{font-size:var(--font-size-xs);color:var(--text-tertiary)}.task-card-due{font-size:var(--font-size-xs);border-radius:var(--radius-full);margin-left:auto;padding:2px 8px;font-weight:600}.new-task-row{justify-content:space-between;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.new-task-due{align-items:center;gap:var(--space-sm);display:flex}.new-task-due .due-date-input{max-width:160px;font-size:var(--font-size-xs);padding:6px 12px}.task-completed-anim{animation:.5s pulse;background:var(--accent-sage-bg)!important}@media (width<=1024px){.task-columns{grid-template-columns:1fr}}@media (width<=768px){.tasks-page{flex-direction:column;gap:0}.tasks-categories{width:100%;height:auto;padding:var(--space-sm) var(--space-md);-webkit-overflow-scrolling:touch;position:static;overflow-x:auto}.categories-header{margin-bottom:var(--space-xs);padding:0;display:flex}.categories-header h3{display:none}.new-category-form{z-index:150;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-xl);padding:var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));background:var(--bg-elevated);animation:.3s slideUp;position:fixed;bottom:0;left:0;right:0}.new-category-form:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto var(--space-md);background:#00000026;display:block}.categories-list{gap:var(--space-xs);scroll-snap-type:x mandatory;padding-bottom:var(--space-xs);flex-flow:row;overflow-x:auto}.categories-list::-webkit-scrollbar{display:none}.category-item-wrap{flex-shrink:0}.category-item{white-space:nowrap;border-radius:var(--radius-full);background:var(--bg-secondary);min-height:40px;font-size:var(--font-size-xs);border:1px solid #0000000f;padding:8px 14px}.category-item-active{background:var(--accent-lavender-bg);border-color:var(--accent-lavender)}.category-name{font-size:var(--font-size-xs)}.category-count{padding:1px 6px;font-size:.65rem}.category-delete{display:none}.new-category-form{bottom:var(--bottom-nav-height,72px);z-index:50;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-xl);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px));animation:.3s slideUp;position:fixed;left:0;right:0}.tasks-main{padding:0 var(--space-md) var(--space-md)}.tasks-toolbar{align-items:stretch;gap:var(--space-sm);flex-direction:column}.tasks-toolbar-left{gap:var(--space-sm)}.tasks-toolbar-right{gap:var(--space-xs);flex-wrap:wrap}.filter-group{flex:1}.filter-select{flex:1;min-height:38px}.task-card{padding:var(--space-md);min-height:56px}.task-card-title{font-size:var(--font-size-sm)}.new-task-form{margin-bottom:var(--space-md)}.new-task-row{align-items:stretch;gap:var(--space-sm);flex-direction:column}.new-task-actions{flex-direction:row;width:100%}.new-task-actions .btn{flex:1}}.pulse-page{max-width:800px}.pulse-form{flex-direction:column;align-items:center;display:flex}.pulse-questions{gap:var(--space-lg);width:100%;margin-bottom:var(--space-xl);flex-direction:column;display:flex}.pulse-question{padding:var(--space-lg)}.pulse-q-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.pulse-q-emoji{font-size:1.5rem}.pulse-q-number{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.pulse-q-text{font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:var(--space-md);font-weight:600;line-height:1.4;display:block}.pulse-answer{min-height:80px}.pulse-submit{min-width:220px}.pulse-waiting{text-align:center;padding:var(--space-3xl);max-width:500px;margin:0 auto}.waiting-illustration{margin-bottom:var(--space-lg)}.waiting-emoji{font-size:3.5rem;display:inline-block}.waiting-title{font-size:var(--font-size-xl);margin-bottom:var(--space-sm);font-weight:700}.waiting-text{color:var(--text-secondary);margin-bottom:var(--space-xl);line-height:1.6}.waiting-status{justify-content:center;gap:var(--space-xl);display:flex}.waiting-check{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);font-weight:500;display:flex}.waiting-check.done{color:var(--accent-sage)}.waiting-check.pending{color:var(--text-tertiary)}.pulse-reveal{gap:var(--space-lg);flex-direction:column;display:flex}.reveal-card{padding:var(--space-lg)}.reveal-question{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.reveal-emoji{font-size:1.3rem}.reveal-q-text{font-size:var(--font-size-md);color:var(--text-primary);font-weight:600}.reveal-answers{gap:var(--space-lg);grid-template-columns:1fr auto 1fr;display:grid}.reveal-answer{min-width:0}.reveal-answer-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.reveal-name{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.reveal-text{font-size:var(--font-size-base);background:var(--bg-primary);padding:var(--space-md);border-radius:var(--radius-md);white-space:pre-wrap;line-height:1.6}.reveal-divider{background:#00000014;align-self:stretch;width:1px}.pulse-history{margin-top:var(--space-2xl);text-align:center}.history-list{margin-top:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.history-item{padding:var(--space-md);justify-content:space-between;align-items:center;display:flex}.history-label{font-weight:600;font-size:var(--font-size-sm)}.history-status{font-size:var(--font-size-xs);color:var(--text-tertiary)}@media (width<=768px){.pulse-question{padding:var(--space-md)}.pulse-q-text{font-size:var(--font-size-base)}.pulse-submit{width:100%}.pulse-waiting{padding:var(--space-xl)}.waiting-emoji{font-size:2.5rem}.waiting-title{font-size:var(--font-size-lg)}.reveal-card{padding:var(--space-md)}.reveal-answers{gap:var(--space-md);grid-template-columns:1fr}.reveal-divider{width:100%;height:1px}.reveal-text{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}}.vault-page{max-width:960px}.vault-header-row{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);flex-wrap:wrap;display:flex}.vault-partner-toggle{gap:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid #0000000f;padding:4px;display:flex}.vault-toggle-btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;padding:8px 16px;font-weight:500;display:flex}.vault-toggle-btn:hover{color:var(--text-primary)}.vault-toggle-active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm)}.vault-section-header{margin:var(--space-2xl) 0 var(--space-md)}.vault-section-header:first-of-type{margin-top:var(--space-xl)}.vault-section-emoji{margin-bottom:var(--space-xs);font-size:1.5rem;display:block}.vault-section-title{color:var(--text-primary);margin-bottom:4px;font-size:1.5rem;font-weight:700}.vault-section-desc{font-size:var(--font-size-sm);color:var(--text-secondary)}.bento-grid{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.bento-card{padding:var(--space-lg);min-height:180px}.bento-card-wide,.bento-card-full{grid-column:span 2}.bento-card-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.bento-icon{font-size:1.4rem}.bento-title{font-size:var(--font-size-md);flex:1;font-weight:700}.bento-content{gap:var(--space-md);flex-direction:column;display:flex}.vault-empty-prompt{color:var(--text-tertiary);font-size:var(--font-size-sm);padding:var(--space-sm) 0;font-style:italic}.comm-style-options{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.comm-style-btn{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left;border:1.5px solid #00000014;padding:12px;display:flex}.comm-style-btn:hover{border-color:var(--accent-lavender)}.comm-style-active{background:var(--accent-lavender-bg);border-color:var(--accent-lavender)}.comm-style-emoji{font-size:1.3rem}.comm-style-label{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.comm-display{flex-direction:column;gap:6px;display:flex}.comm-display-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.comm-display-text{font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);line-height:1.5}.attachment-options{gap:var(--space-sm);grid-template-columns:1fr;display:grid}.attachment-btn{padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left;border:1.5px solid #00000014;flex-direction:column;gap:4px;display:flex}.attachment-btn:hover{border-color:var(--text-secondary)}.attachment-active{background:var(--bg-elevated);border-color:var(--text-primary);box-shadow:var(--shadow-sm)}.attachment-emoji{font-size:1.2rem}.attachment-label{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:700}.attachment-desc{font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4}.attachment-display{gap:var(--space-sm);flex-direction:column;display:flex}.attachment-card{align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);align-self:flex-start;padding:8px 16px;font-weight:600;display:inline-flex}.attachment-card-emoji{font-size:1.1rem}.attachment-card-desc{font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.5}.attachment-tip{margin-top:var(--space-sm);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.attachment-tip-label{color:var(--text-primary);margin-bottom:4px;font-weight:600;display:block}.stress-display{gap:var(--space-sm);flex-direction:column;display:flex}.stress-row{gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);line-height:1.5;display:flex}.stress-icon{flex-shrink:0;font-size:1.1rem}.stress-label{color:var(--text-secondary);margin-right:4px;font-weight:600}.pref-grid{gap:var(--space-md);margin-bottom:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.pref-item{background:var(--bg-secondary);padding:var(--space-md);border-radius:var(--radius-md);flex-direction:column;gap:4px;display:flex}.pref-icon{margin-bottom:4px;font-size:1.4rem}.pref-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.pref-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.sizes-display{gap:var(--space-sm);padding-top:var(--space-md);border-top:1px dashed #0000001a;grid-template-columns:repeat(4,1fr);display:grid}.size-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid #0000000f;display:flex}.size-icon{font-size:1.1rem}.size-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;flex:1}.size-value{font-size:var(--font-size-md);color:var(--text-primary);font-weight:700}.sizes-grid{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.love-lang-display{gap:var(--space-md);flex-direction:column;display:flex}.love-lang-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-primary);display:flex}.love-lang-primary{background:var(--accent-dusty-rose-bg)}.love-lang-secondary{background:var(--accent-lavender-bg)}.love-lang-badge{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);min-width:70px;font-weight:600}.love-lang-icon{font-size:1.3rem}.love-lang-name{color:var(--text-primary);font-weight:600}.love-lang-options{gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.love-lang-btn{border-radius:var(--radius-full);background:var(--bg-secondary);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:1.5px solid #00000014;padding:8px 14px}.love-lang-btn:hover{border-color:var(--accent-lavender);color:var(--text-primary)}.love-lang-active{background:var(--accent-lavender-bg);border-color:var(--accent-lavender);color:var(--text-primary)}.gifts-list{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;display:flex}.gifts-empty{color:var(--text-tertiary);font-size:var(--font-size-sm);padding:var(--space-md) 0;font-style:italic}.gift-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex}.gift-item:hover{background:#00000005}.gift-check{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--accent-sage);cursor:pointer;transition:all var(--transition-fast);border:2px solid #00000026;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;display:flex}.gift-gifted .gift-check{background:var(--accent-sage-bg);border-color:var(--accent-sage)}.gift-text{font-size:var(--font-size-sm);flex:1}.gift-text-done{opacity:.5;text-decoration:line-through}.gift-delete{opacity:0;color:var(--text-tertiary);cursor:pointer;transition:opacity var(--transition-fast);padding:4px;font-size:.75rem}.gift-item:hover .gift-delete,.date-item:hover .gift-delete{opacity:1}.gift-add-form{gap:var(--space-sm);display:flex}.gift-add-form .input{flex:1}.dates-list{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;display:flex}.date-item{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);display:flex}.date-item-icon{font-size:1.2rem}.date-item-info{flex-direction:column;flex:1;display:flex}.date-item-label{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.date-item-date{font-size:var(--font-size-xs);color:var(--text-secondary)}.date-add-form{gap:var(--space-sm);display:flex}.date-add-form .input{flex:1}.quirks-text{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:pre-wrap;padding:0;line-height:1.6}.bento-edit{gap:var(--space-md);flex-direction:column;display:flex}.bento-field{gap:var(--space-xs);flex-direction:column;display:flex}.bento-edit-actions{gap:var(--space-sm);display:flex}@media (width<=768px){.bento-grid{gap:var(--space-md);grid-template-columns:1fr}.bento-card-wide,.bento-card-full{grid-column:1}.bento-card{padding:var(--space-md);min-height:auto}.vault-header-row{gap:var(--space-md);flex-direction:column}.vault-partner-toggle{width:100%}.vault-toggle-btn{flex:1;justify-content:center;min-height:44px}.comm-style-options{grid-template-columns:1fr}.pref-grid{gap:var(--space-sm);grid-template-columns:1fr}.sizes-display{gap:var(--space-sm);grid-template-columns:repeat(2,1fr)}.love-lang-btn{min-height:38px}.gift-item{min-height:48px}.gift-delete{opacity:.6}.gift-add-form,.date-add-form{flex-direction:column}}.calendar-page{max-width:1100px}.calendar-layout{gap:var(--space-lg);grid-template-columns:1fr 260px;align-items:start;display:grid}.calendar-main{padding:var(--space-lg)}.calendar-nav{align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.calendar-month-title{font-size:var(--font-size-xl);text-align:center;flex:1;font-weight:700}.calendar-today-btn{margin-left:auto}.calendar-grid{border-radius:var(--radius-md);background:#0000000a;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-day-header{padding:var(--space-sm);text-align:center;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);background:var(--bg-secondary);font-weight:600}.calendar-cell{min-height:80px;padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);transition:background var(--transition-fast);flex-direction:column;gap:2px;display:flex}.calendar-cell:hover{background:var(--bg-primary)}.calendar-cell-outside{opacity:.35}.calendar-cell-today{background:var(--accent-lavender-bg)!important}.calendar-cell-has-tasks{background:var(--bg-elevated)}.calendar-day-num{font-size:var(--font-size-xs);color:var(--text-secondary);border-radius:var(--radius-full);justify-content:center;align-items:center;width:24px;height:24px;font-weight:500;display:flex}.calendar-today-num{background:var(--accent-lavender);color:#fff;font-weight:700}.calendar-cell-tasks{flex-direction:column;gap:2px;display:flex;overflow:hidden}.calendar-task-dot{cursor:pointer;text-align:left;white-space:nowrap;text-overflow:ellipsis;transition:all var(--transition-fast);border:none;padding:2px 6px;font-size:.6rem;overflow:hidden}.calendar-task-dot:hover{box-shadow:var(--shadow-sm);transform:scale(1.02)}.calendar-more{color:var(--text-tertiary);padding-left:4px;font-size:.6rem}.calendar-upcoming{top:calc(var(--topbar-height) + var(--space-xl));position:sticky}.upcoming-title{font-size:var(--font-size-md);margin-bottom:var(--space-xs);font-weight:700}.upcoming-subtitle{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--space-md)}.upcoming-empty{text-align:center;padding:var(--space-xl);color:var(--text-tertiary);font-size:var(--font-size-sm)}.upcoming-empty span{margin-bottom:var(--space-sm);font-size:2rem;display:block}.upcoming-list{gap:var(--space-sm);flex-direction:column;display:flex}.upcoming-item{padding:var(--space-md);cursor:pointer;text-align:left;gap:var(--space-xs);flex-direction:column;width:100%;display:flex}.upcoming-item-top{align-items:center;gap:var(--space-xs);display:flex}.upcoming-item-title{font-size:var(--font-size-sm);font-weight:600;line-height:1.3}@media (width<=768px){.calendar-layout{gap:var(--space-md);grid-template-columns:1fr}.calendar-main{padding:var(--space-md)}.calendar-nav{gap:var(--space-sm);margin-bottom:var(--space-md)}.calendar-month-title{font-size:var(--font-size-md)}.calendar-cell{min-height:48px;padding:2px 3px}.calendar-day-header{padding:6px 2px;font-size:.6rem}.calendar-day-num{width:20px;height:20px;font-size:.65rem}.calendar-task-dot{padding:1px 4px;font-size:.5rem}.calendar-more{font-size:.5rem}.calendar-upcoming{padding:0;position:static}.upcoming-list{-webkit-overflow-scrolling:touch;gap:var(--space-sm);padding-bottom:var(--space-xs);flex-direction:row;overflow-x:auto}.upcoming-list::-webkit-scrollbar{display:none}.upcoming-item{flex-shrink:0;min-width:200px}}.datenight-page{max-width:900px}.datenight-spinner{padding:var(--space-xl);text-align:center;margin-bottom:var(--space-xl)}.spinner-display{min-height:160px;margin-bottom:var(--space-lg);justify-content:center;align-items:center;display:flex}.spinner-spinning .spinner-result{animation:.15s infinite pulse}.spinner-result{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.spinner-emoji{margin-bottom:var(--space-sm);font-size:3rem}.spinner-idea-title{font-size:var(--font-size-xl);font-weight:700}.spinner-idea-meta{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.spinner-placeholder{align-items:center;gap:var(--space-sm);color:var(--text-tertiary);flex-direction:column;display:flex}.spinner-placeholder-icon{font-size:3rem}.spinner-actions{justify-content:center;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.datenight-browse{margin-bottom:var(--space-xl)}.browse-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.browse-title{font-size:var(--font-size-xl);font-weight:700}.browse-filters{gap:var(--space-xs);flex-wrap:wrap;display:flex}.ideas-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.idea-card{padding:var(--space-md);gap:var(--space-sm);text-align:center;flex-direction:column;align-items:center;display:flex}.idea-emoji{font-size:2rem}.idea-title{font-size:var(--font-size-sm);font-weight:600;line-height:1.4}.idea-meta{gap:var(--space-xs);align-items:center;display:flex}.idea-cost{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:600}.idea-save{opacity:0;transition:opacity var(--transition-fast);margin-top:auto}.idea-card:hover .idea-save{opacity:1}.datenight-custom{padding:var(--space-lg);text-align:center}.datenight-custom h3{font-size:var(--font-size-md);margin-bottom:var(--space-md);font-weight:600}.custom-form{gap:var(--space-sm);max-width:500px;margin:0 auto;display:flex}.custom-form .input{flex:1}@media (width<=768px){.datenight-spinner{padding:var(--space-lg) var(--space-md);margin-bottom:var(--space-md)}.spinner-display{min-height:120px}.spinner-emoji{font-size:2.5rem}.spinner-idea-title{font-size:var(--font-size-md)}.spinner-actions{flex-direction:column;width:100%}.spinner-actions .btn{width:100%}.ideas-grid{gap:var(--space-sm);grid-template-columns:1fr 1fr}.idea-card{padding:var(--space-sm)}.idea-emoji{font-size:1.5rem}.idea-title{font-size:var(--font-size-xs)}.idea-save{opacity:1}.browse-header{align-items:stretch;gap:var(--space-sm);margin-bottom:var(--space-md);flex-direction:column}.browse-title{font-size:var(--font-size-md)}.browse-filters{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.browse-filters::-webkit-scrollbar{display:none}.browse-filters .btn{flex-shrink:0}.datenight-custom{padding:var(--space-md)}.custom-form{flex-direction:column}}.auth-page{min-height:calc(100vh - var(--topbar-height) - var(--space-2xl));padding:var(--space-md);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px;padding:var(--space-2xl) var(--space-xl);gap:var(--space-xl);text-align:center;flex-direction:column;display:flex}.auth-header{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.auth-logo{margin-bottom:var(--space-xs);font-size:3rem}.auth-header h1{color:var(--text-primary);font-size:1.5rem;font-weight:700}.auth-header p{color:var(--text-secondary);font-size:var(--font-size-sm)}.auth-form{gap:var(--space-md);text-align:left;flex-direction:column;display:flex}.auth-error{background:var(--accent-terracotta-bg);color:var(--accent-terracotta);padding:var(--space-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500}.auth-footer{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--text-secondary)}.auth-link{color:var(--accent-lavender);font-weight:600;text-decoration:none}.auth-link:hover{text-decoration:underline}
