@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:linear-gradient(135deg, #f8fbfd 0%, #fff 50%, #fff7fb 100%);--bg-secondary:#ffffffb3;--bg-elevated:#fff;--bg-sidebar:#fff9;--bg-overlay:#00000026;--glass-bg:#ffffffb3;--glass-border:1px solid #ffffff80;--glass-blur:blur(16px);--glass-shadow:0 10px 40px #0000000a;--vibrant-pink:#ff4b91;--vibrant-cyan:#00d7ff;--vibrant-lime:#adff45;--vibrant-green:#45eba5;--vibrant-yellow:#fff275;--vibrant-violet:#8b5cf6;--color-primary:var(--vibrant-pink);--color-secondary:var(--vibrant-cyan);--color-success:var(--vibrant-green);--color-warning:var(--vibrant-yellow);--color-danger:#ff2d55;--text-primary:#1a1a1a;--text-secondary:#5f5f5f;--text-tertiary:#9a9a9a;--text-inverse:#fff;--text-link:var(--vibrant-pink);--status-todo:var(--vibrant-cyan);--status-doing:var(--vibrant-pink);--status-done:var(--vibrant-green);--radius-sm:14px;--radius-md:20px;--radius-lg:28px;--radius-xl:36px;--radius-full:999px;--shadow-sm:0 4px 12px #00000008;--shadow-md:0 8px 24px #0000000d;--shadow-lg:0 16px 48px #00000014;--shadow-glow-pink:0 0 20px #ff4b9133;--shadow-glow-cyan:0 0 20px #00d7ff33;--space-xs:6px;--space-sm:10px;--space-md:20px;--space-lg:32px;--space-xl:48px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1);--transition-slow:.5s cubic-bezier(.4, 0, .2, 1);--transition-spring:.6s cubic-bezier(.34, 1.56, .64, 1);--font-family:"Inter", system-ui, -apple-system, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--font-size-2xl:2.25rem;--sidebar-width:88px;--topbar-height:72px;--accent-lavender:var(--vibrant-violet);--accent-lavender-bg:#8b5cf614;--accent-lavender-light:#8b5cf61f;--accent-dusty-rose:var(--vibrant-pink);--accent-dusty-rose-bg:#ff4b9114;--accent-sage:var(--vibrant-green);--accent-sage-bg:#45eba514;--accent-sky:var(--vibrant-cyan);--accent-sky-bg:#00d7ff14;--accent-peach:var(--vibrant-yellow);--accent-peach-bg:#fff27526;--accent-terracotta:#ff2d55;--accent-terracotta-bg:#ff2d5514}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);background-attachment:fixed;min-height:100vh;line-height:1.5;overflow-x:hidden}a{color:var(--text-link);transition:opacity var(--transition-fast);text-decoration:none}a:hover{opacity:.8}button{font-family:var(--font-family);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}img{max-width:100%;display:block}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow)}.glass-heavy{-webkit-backdrop-filter:blur(24px);border:var(--glass-border);box-shadow:var(--shadow-lg);background:#ffffffd9}.app-layout{background:var(--bg-primary);min-height:100vh;display:flex;overflow:hidden}.app-view-wrapper{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;position:relative}.main-content{padding:var(--space-xl);flex:1;position:relative;overflow-y:auto}.partner-waiting-alert{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:var(--space-2xl);border-radius:var(--radius-xl);text-align:center;max-width:500px;margin:var(--space-2xl) auto;box-shadow:var(--shadow-xl);border:2px dashed #ff4d8d4d}.invite-code-pill{margin-top:var(--space-md);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);letter-spacing:.2em;color:var(--vibrant-pink);box-shadow:var(--shadow-md);background:#fff;font-size:2rem;font-weight:800;display:inline-block}.page-container{max-width:1400px;animation:fadeInUp .5s var(--transition-spring);margin:0 auto}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:flex-end;display:flex}.page-title{font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:-.04em;font-weight:800;line-height:1}.page-subtitle{font-size:var(--font-size-md);color:var(--text-secondary);margin-top:var(--space-xs);font-weight:500}.card{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);border:1px solid #0000000a;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-vibrant{color:#fff;border:none}.badge-dusty-rose{background:var(--vibrant-pink);color:#fff}.badge-sage{background:var(--vibrant-green);color:#1a1a1a}.badge-sky{background:var(--vibrant-cyan);color:#fff}.badge-lavender{background:var(--vibrant-violet);color:#fff}.badge-peach{background:var(--vibrant-yellow);color:#1a1a1a}.badge-mint{background:var(--vibrant-green);color:#1a1a1a}.badge-terracotta,.badge-pink{background:var(--vibrant-pink);color:#fff}.badge-cyan{background:var(--vibrant-cyan);color:#fff}.badge-lime{background:var(--vibrant-lime);color:#1a1a1a}.badge-green{background:var(--vibrant-green);color:#1a1a1a}.badge-yellow{background:var(--vibrant-yellow);color:#1a1a1a}.btn{border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-normal);gap:var(--space-sm);white-space:nowrap;padding:12px 24px}.btn-primary{background:var(--vibrant-pink);color:#fff;box-shadow:var(--shadow-glow-pink)}.btn-primary:hover{filter:brightness(1.1);transform:scale(1.02)}.btn-secondary{background:var(--vibrant-cyan);color:#1a1a1a;box-shadow:var(--shadow-glow-cyan)}.btn-ghost{color:var(--text-primary);background:#0000000d}.btn-ghost:hover{background:#0000001a}.btn-icon{border-radius:var(--radius-md);width:44px;height:44px;padding:0}.input,.textarea{border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);transition:all var(--transition-fast);background:#ffffff80;border:1px solid #0000001a;padding:16px}.input:focus,.textarea:focus{border-color:var(--vibrant-pink);background:#fff;box-shadow:0 0 0 4px #ff4b911a}.avatar-group{align-items:center;display:flex}.avatar{border-radius:var(--radius-full);width:40px;height:40px;font-weight:700;font-size:var(--font-size-xs);color:#fff;background:#eee;border:2px solid #fff;justify-content:center;align-items:center;display:flex;position:relative}.avatar-status{background:var(--vibrant-green);border-radius:var(--radius-full);border:2px solid #fff;width:12px;height:12px;position:absolute;bottom:0;right:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:500;padding:var(--space-md);background:#0000004d;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:520px;padding:var(--space-xl);border-radius:var(--radius-xl);animation:scaleIn .3s var(--transition-spring)}.modal-title{font-size:var(--font-size-xl);letter-spacing:-.02em;margin-bottom:var(--space-lg);font-weight:800}.modal-actions{gap:var(--space-sm);margin-top:var(--space-lg);display:flex}.btn-sm{font-size:var(--font-size-sm);padding:8px 16px}@media (width<=1024px){:root{--sidebar-width:0px;--topbar-height:56px}.app-layout{flex-direction:column;gap:0;padding:0}.sidebar{display:none}.main-content{padding:var(--space-md);padding-bottom:calc(var(--space-md) + 80px);min-height:calc(100vh - var(--topbar-height));border-radius:0}.page-container{padding:var(--space-sm)}.page-header{align-items:flex-start;gap:var(--space-md);flex-direction:column}}@media (width<=768px){:root{--topbar-height:52px;--font-size-2xl:1.75rem;--font-size-xl:1.5rem;--space-xl:28px;--space-lg:20px}.main-content{padding:var(--space-sm);padding-bottom:calc(var(--space-sm) + 88px)}.page-title{font-size:var(--font-size-xl)}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:90vh;padding:var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));animation:.3s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto}.modal:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto var(--space-md);background:#00000026;display:block}.modal-actions{flex-direction:column}.modal-actions .btn{justify-content:center;width:100%;min-height:48px}.input,.textarea{min-height:48px;font-size:16px}.btn{min-height:48px}.btn-sm{min-height:40px}.avatar-sm{width:32px;height:32px;font-size:11px}}@media (width<=380px){:root{--font-size-2xl:1.5rem;--font-size-xl:1.25rem;--space-xl:20px;--space-lg:16px;--space-md:14px}.page-title{font-size:var(--font-size-xl)}}.sidebar{width:var(--sidebar-width);height:100vh;padding:var(--space-lg) 0;border-radius:var(--radius-xl);z-index:100;transition:transform var(--transition-normal);flex-direction:column;align-items:center;display:flex}.sidebar-header{margin-bottom:var(--space-xl)}.logo-square{background:linear-gradient(135deg,#ff4b91 0%,#00d7ff 100%);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 8px 16px #ff4b9133}.logo-text-my{color:#fff;letter-spacing:-.05em;font-size:1.2rem;font-weight:900}.sidebar-nav{align-items:center;gap:var(--space-md);flex-direction:column;flex:1;width:100%;display:flex}.nav-item{width:48px;height:48px;color:var(--text-tertiary);transition:all var(--transition-normal);border-radius:14px;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.nav-item:hover{color:var(--text-secondary);background:#0000000a}.nav-item-active{color:var(--vibrant-pink);background:#ff4b911a;box-shadow:0 4px 12px #ff4b911a}.nav-item-active .nav-icon{transform:scale(1.1)}.sidebar-footer{padding-bottom:var(--space-md)}@media (width<=1024px){.sidebar{display:none}}.topbar{height:var(--topbar-height);padding:0 var(--space-xl);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar-right{align-items:center;gap:var(--space-lg);display:flex}.header-actions{gap:var(--space-sm);padding-right:var(--space-md);border-right:1px solid #0000000f;display:flex}.action-circle{border-radius:var(--radius-full);width:40px;height:40px;box-shadow:var(--shadow-sm);transition:all var(--transition-fast);cursor:pointer;background:#fff;border:1px solid #0000000d;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.action-circle:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.partner-avatars{align-items:center;gap:var(--space-md);display:flex}.partner-info{flex-direction:column;align-items:flex-end;display:flex}.partner-name{font-size:var(--font-size-sm);color:var(--text-primary);letter-spacing:-.01em;font-weight:700}.partner-status{color:var(--vibrant-pink);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.avatar-stack{align-items:center;display:flex}.avatar-circle{border-radius:var(--radius-full);width:40px;height:40px;font-weight:700;font-size:var(--font-size-sm);color:#fff;box-shadow:var(--shadow-sm);border:2px solid #fff;justify-content:center;align-items:center;margin-left:-12px;display:flex;position:relative}.avatar-circle:first-child{z-index:2;margin-left:0}.avatar-circle:last-child{z-index:1}.avatar-circle.avatar-user1{background:var(--vibrant-pink)}.avatar-circle.avatar-user2{background:var(--vibrant-cyan)}.status-dot{border-radius:var(--radius-full);border:2px solid #fff;width:10px;height:10px;position:absolute;bottom:1px;right:1px}.status-dot.online{background:#34d399}@media (width<=768px){.topbar{padding:0 var(--space-md);height:var(--topbar-height)}.topbar-right{gap:var(--space-sm)}.partner-info{display:none}.header-actions{gap:var(--space-xs);padding-right:var(--space-sm)}.action-circle{width:36px;height:36px}.avatar-circle{width:34px;height:34px;font-size:var(--font-size-xs)}}.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{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0006;animation:.3s fadeIn;position:fixed;inset:0}.mood-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);width:400px;max-width:90vw;padding:var(--space-xl);box-shadow:var(--shadow-xl), 0 0 40px #ff4d8d1a;z-index:1001;animation:scaleIn .4s var(--transition-spring);position:fixed;top:50%;left:50%;transform:translate(-50%,-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);letter-spacing:-.02em;font-weight:800}.modal-close:hover{background:#0000001a;transform:rotate(90deg)}.mood-picker{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(5,1fr);display:grid}.mood-option{border-radius:var(--radius-lg);cursor:pointer;background:#ffffff80;border:1px solid #0000000d;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;transition:all .2s cubic-bezier(.175,.885,.32,1.275);display:flex}.mood-option:hover{box-shadow:var(--shadow-md);background:#fff;transform:translateY(-4px)}.mood-option-active{border-color:var(--vibrant-pink);background:#fff;transform:scale(1.05);box-shadow:0 0 15px #ff4d8d33}.mood-emoji{font-size:1.8rem}.mood-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-size:11px;font-weight:700}.mood-note-wrap{gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.mood-note-input{border-radius:var(--radius-md);background:#fff;border:1px solid #00000014;padding:14px;font-weight:500}.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{gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid #0000000f;flex-direction:column;display:flex}.mood-history-section h4{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:var(--space-sm);align-items:center;gap:8px;display:flex}.mood-history-list{flex-direction:column;gap:6px;display:flex}.mood-history-item{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:#ffffff4d;padding:8px 12px;display:flex}.mood-history-emoji{font-size:1.2rem}.mood-history-time{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-left:auto}.mood-history-note{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-weight:500;overflow:hidden}@media (width<=768px){.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(--vibrant-pink);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-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:90vh}.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-md);height:100%;animation:fadeInUp .5s var(--transition-spring);flex-direction:column;display:flex}.tasks-header-bar{padding:var(--space-md) 0;margin-bottom:var(--space-xs);justify-content:space-between;align-items:flex-start;display:flex}.tasks-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600}.tasks-title{font-size:var(--font-size-2xl);letter-spacing:-.04em;color:var(--text-primary);font-weight:800;line-height:1}.tasks-header-right{align-items:center;gap:var(--space-md);display:flex}.view-toggle{border-radius:var(--radius-sm);background:#0000000a;gap:2px;padding:3px;display:flex}.view-toggle-btn{width:36px;height:36px;color:var(--text-tertiary);transition:all var(--transition-fast);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.view-toggle-btn:hover{color:var(--text-primary)}.view-toggle-active{color:var(--text-primary);box-shadow:var(--shadow-sm);background:#fff}.category-filters{gap:var(--space-xs);padding-bottom:var(--space-xs);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.category-filters::-webkit-scrollbar{display:none}.category-pill{border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-sm);white-space:nowrap;transition:all var(--transition-fast);cursor:pointer;background:#0000000a;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-weight:600;display:flex}.category-pill:hover{color:var(--text-primary);background:#00000012}.category-pill-active{color:var(--vibrant-pink);box-shadow:var(--shadow-sm);background:#fff;border-color:#ff4b9133;font-weight:700}.category-pill-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.task-board{gap:var(--space-lg);flex:1;padding:4px;display:flex;overflow-x:auto}.task-column{gap:var(--space-md);flex-direction:column;flex:1;min-width:280px;display:flex}.task-column-header{padding:0 var(--space-xs);margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.column-title{font-size:var(--font-size-sm);color:var(--text-tertiary);letter-spacing:.08em;align-items:center;gap:8px;font-weight:700;display:flex}.column-count{color:var(--text-tertiary);border-radius:var(--radius-full);background:#0000000f;padding:2px 8px;font-size:11px;font-weight:700}.column-action{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.column-action:hover{color:var(--text-primary);background:#0000000d}.task-list{gap:var(--space-md);flex-direction:column;min-height:200px;display:flex}.task-card{min-height:120px;padding:var(--space-md);cursor:grab;transition:all var(--transition-normal);box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;border:none;flex-direction:column;justify-content:space-between;display:flex}.task-card:active{cursor:grabbing}.task-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)scale(1.02)}.task-card-dragging{opacity:.4;transform:scale(.95)}.task-column-dragover{border-radius:var(--radius-lg);outline:2px dashed var(--vibrant-pink);outline-offset:-2px;background:#ff4b910a;transition:all .2s}.task-column-dragover .task-list{min-height:250px}.task-card-title{font-size:var(--font-size-md);margin-bottom:var(--space-xs);font-weight:700;line-height:1.3}.task-card-date{font-size:var(--font-size-xs);opacity:.85;align-items:center;gap:4px;font-weight:600;display:flex}.task-card-footer{margin-top:var(--space-md);justify-content:space-between;align-items:center;display:flex}.task-card-meta{align-items:center;gap:var(--space-sm);display:flex}.task-card-icon{background:#fff3;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;display:flex}.card-pink{background:var(--vibrant-pink);color:#fff}.card-cyan{background:var(--vibrant-cyan);color:#fff}.card-lime{background:var(--vibrant-lime);color:#1a1a1a}.card-green{background:var(--vibrant-green);color:#1a1a1a}.card-yellow{background:var(--vibrant-yellow);color:#1a1a1a}.task-list-view{gap:var(--space-lg);flex-direction:column;flex:1;display:flex}.list-section-header{align-items:center;gap:var(--space-sm);padding:0 var(--space-xs);margin-bottom:var(--space-sm);display:flex}.list-section-title{font-size:var(--font-size-sm);color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.list-section-count{color:var(--text-tertiary);border-radius:var(--radius-full);background:#0000000f;padding:2px 8px;font-size:11px;font-weight:700}.list-rows{gap:var(--space-xs);flex-direction:column;display:flex}.list-row{align-items:center;gap:var(--space-sm);padding:14px var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:#fff;border:1px solid #0000000a;width:100%;display:flex}.list-row:hover{box-shadow:var(--shadow-md);border-color:#00000014;transform:translateY(-2px)}.list-row-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.list-row-title{font-weight:600;font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.list-row-tag{font-size:var(--font-size-xs);color:var(--text-tertiary);border-radius:var(--radius-full);white-space:nowrap;background:#0000000a;padding:4px 10px;font-weight:600}.list-row-due{font-size:var(--font-size-xs);border-radius:var(--radius-full);white-space:nowrap;padding:4px 10px;font-weight:600}.list-row-due.due-date-overdue{color:#ff2d55;background:#ff2d551a}.list-row-due.due-date-today{color:var(--vibrant-pink);background:#ff4b911a}.list-row-due.due-date-soon{color:#b8860b;background:#fff2754d}.list-row-due.due-date-future{color:var(--text-tertiary);background:#0000000a}.list-row-assignee{flex-shrink:0}.modal-category-picker{margin-top:var(--space-sm)}.modal-field-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm);font-weight:700;display:block}.modal-category-options{gap:var(--space-xs);flex-wrap:wrap;display:flex}.modal-cat-btn{border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);background:#0000000a;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:flex}.modal-cat-btn:hover{background:#00000012}.modal-cat-active{border-color:var(--vibrant-pink);color:var(--vibrant-pink);background:#fff;box-shadow:0 0 0 3px #ff4b911a}.modal-cat-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.add-task-placeholder{width:100%;padding:var(--space-lg);border-radius:var(--radius-md);color:var(--text-tertiary);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-fast);background:0 0;border:2px dashed #00000014}.add-task-placeholder:hover{color:var(--text-secondary);background:#00000005;border-color:#00000026}.avatar-xs{border:1.5px solid #ffffff80;width:24px;height:24px;font-size:9px}.category-pill-manage{padding:8px 12px;font-size:1.1rem}.manage-cat-modal{width:90vw;max-width:480px;max-height:85vh;overflow-y:auto}.manage-cat-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-close{border-radius:var(--radius-full);cursor:pointer;background:#0000000d;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;transition:all .2s;display:flex}.modal-close:hover{background:#0000001a}.manage-cat-list{gap:var(--space-xs);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.manage-cat-item{align-items:center;gap:var(--space-sm);padding:12px var(--space-md);border-radius:var(--radius-md);transition:all var(--transition-fast);background:#ffffff80;border:1px solid #0000000a;display:flex}.manage-cat-item:hover{box-shadow:var(--shadow-sm);background:#fff}.manage-cat-editing{border-color:var(--vibrant-pink);background:#fff;box-shadow:0 0 0 3px #ff4b911a}.manage-cat-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.manage-cat-emoji{font-size:1.2rem}.manage-cat-name{color:var(--text-primary);flex:1;font-weight:600}.manage-cat-actions{opacity:0;transition:opacity var(--transition-fast);gap:4px;display:flex}.manage-cat-item:hover .manage-cat-actions{opacity:1}.manage-cat-empty{text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm);padding:var(--space-lg)}.manage-cat-form{padding-top:var(--space-lg);border-top:1px solid #0000000f}.manage-cat-form-title{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-md);font-weight:700}.manage-cat-form-row{margin-bottom:var(--space-md)}.manage-cat-emoji-grid{margin-top:var(--space-xs);flex-wrap:wrap;gap:6px;display:flex}.emoji-btn{border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);background:#00000008;border:2px solid #0000;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.emoji-btn:hover{background:#00000012;transform:scale(1.1)}.emoji-btn-active{border-color:var(--vibrant-pink);background:#fff;transform:scale(1.1);box-shadow:0 0 0 3px #ff4b911a}.manage-cat-color-grid{gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.color-swatch{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);border:3px solid #0000}.color-swatch:hover{transform:scale(1.15)}.color-swatch-active{border-color:var(--text-primary);box-shadow:var(--shadow-md);transform:scale(1.15)}.manage-cat-form-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}@media (width<=1100px){.task-board{flex-direction:column;overflow-x:hidden}.task-column{min-width:100%}}@media (width<=768px){.tasks-header-bar{gap:var(--space-md);flex-direction:column}.tasks-header-right{justify-content:space-between;width:100%}.list-row-tag{display:none}.manage-cat-actions{opacity:1}}.pulse-page{gap:var(--space-lg);padding:var(--space-xl);max-width:640px;animation:fadeInUp .5s var(--transition-spring);flex-direction:column;margin:0 auto;display:flex}.pulse-header{justify-content:space-between;align-items:flex-start;display:flex}.pulse-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600}.pulse-title{font-size:var(--font-size-2xl);letter-spacing:-.04em;margin-bottom:4px;font-weight:800;line-height:1.1}.pulse-couple-names{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.pulse-progress{align-items:center;gap:var(--space-sm);display:flex}.pulse-progress-bar{border-radius:var(--radius-full);background:#0000000f;flex:1;height:6px;overflow:hidden}.pulse-progress-fill{background:var(--vibrant-pink);border-radius:var(--radius-full);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.pulse-progress-text{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;font-weight:700}.pulse-question-card{align-items:center;gap:var(--space-lg);padding:var(--space-xl);text-align:center;animation:fadeInUp .4s var(--transition-spring);flex-direction:column;display:flex}.pulse-q-emoji{font-size:3rem}.pulse-q-text{font-size:var(--font-size-lg);max-width:400px;font-weight:700;line-height:1.4}.pulse-scale-options{gap:var(--space-sm);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.pulse-scale-btn{min-width:80px;max-width:110px;padding:var(--space-md) var(--space-sm);border-radius:var(--radius-lg);cursor:pointer;background:#00000008;border:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:6px;transition:all .25s cubic-bezier(.175,.885,.32,1.275);display:flex}.pulse-scale-btn:hover{box-shadow:var(--shadow-md);background:#fff;transform:translateY(-4px)}.pulse-scale-active{border-color:var(--vibrant-pink);background:#fff;transform:scale(1.05);box-shadow:0 0 15px #ff4b9133}.pulse-scale-num{font-size:var(--font-size-xl);color:var(--vibrant-pink);font-weight:800}.pulse-scale-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;font-size:11px;font-weight:600;line-height:1.2}.pulse-text-answer{width:100%;max-width:420px}.pulse-textarea{border-radius:var(--radius-md);resize:none;width:100%;min-height:100px}.pulse-nav{align-items:center;gap:var(--space-md);display:flex}.pulse-results{gap:var(--space-lg);flex-direction:column;display:flex}.pulse-result-banner{text-align:center;padding:var(--space-xl)}.pulse-result-emoji{margin-bottom:var(--space-sm);font-size:3rem;display:block}.pulse-result-title{font-size:var(--font-size-xl);margin-bottom:4px;font-weight:800}.pulse-result-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm)}.pulse-compare{padding:var(--space-lg)}.pulse-compare-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.pulse-compare-label{font-size:var(--font-size-md);font-weight:700}.pulse-compare-bars{gap:var(--space-md);flex-direction:column;display:flex}.pulse-compare-row{align-items:center;gap:var(--space-sm);display:flex}.pulse-compare-name{font-size:var(--font-size-xs);color:var(--text-tertiary);min-width:60px;font-weight:700}.pulse-compare-bar{border-radius:var(--radius-full);background:#0000000a;flex:1;height:12px;overflow:hidden}.pulse-compare-fill{border-radius:var(--radius-full);height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.pulse-fill-pink{background:var(--vibrant-pink)}.pulse-fill-cyan{background:var(--vibrant-cyan)}.pulse-compare-score{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:right;min-width:80px;font-weight:600}.pulse-fun-q{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-md);font-style:italic}.pulse-fun-answers{gap:var(--space-sm);flex-direction:column;display:flex}.pulse-fun-answer{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.5}.pulse-fun-pink{background:#ff4b910f}.pulse-fun-cyan{background:#00d7ff0f}.pulse-waiting{gap:var(--space-xl);flex-direction:column;display:flex}.pulse-waiting-card{text-align:center;padding:var(--space-xl)}.pulse-waiting-emoji{margin-bottom:var(--space-sm);font-size:3rem;display:block}.pulse-waiting-card h2{font-size:var(--font-size-xl);margin-bottom:var(--space-xs);font-weight:800}.pulse-waiting-card p{color:var(--text-secondary);font-size:var(--font-size-sm)}.pulse-waiting-hint{margin-top:var(--space-sm);opacity:.7;font-style:italic}.pulse-my-answers{gap:var(--space-sm);flex-direction:column;display:flex}.pulse-answer-row{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:#fff;justify-content:space-between;align-items:center;font-weight:600;display:flex}.pulse-answer-value{color:var(--vibrant-pink);font-weight:700}.pulse-answer-fun{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.section-title{font-size:var(--font-size-md);margin-bottom:var(--space-xs);color:var(--text-secondary);font-weight:700}@media (width<=768px){.pulse-page{padding:var(--space-md)}.pulse-question-card{padding:var(--space-lg)}.pulse-q-emoji{font-size:2.5rem}.pulse-q-text{font-size:var(--font-size-md)}.pulse-scale-btn{min-width:60px;padding:var(--space-sm)}.pulse-scale-num{font-size:var(--font-size-lg)}.pulse-scale-label{font-size:9px}.pulse-compare-name{min-width:50px}.pulse-compare-score{min-width:60px;font-size:11px}.pulse-nav{gap:var(--space-sm);flex-direction:row}.pulse-nav .btn{flex:1}}.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:#ff4b9114!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(--vibrant-pink);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{gap:var(--space-lg);padding:var(--space-xl);max-width:640px;animation:fadeInUp .5s var(--transition-spring);flex-direction:column;align-items:center;margin:0 auto;display:flex}.datenight-header{text-align:center}.datenight-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600}.datenight-title{font-size:var(--font-size-2xl);letter-spacing:-.04em;font-weight:800;line-height:1.1}.datenight-tabs{gap:var(--space-xs);border-radius:var(--radius-full);background:#0000000a;width:100%;max-width:380px;padding:5px;display:flex}.datenight-tab{border-radius:var(--radius-full);font-size:var(--font-size-sm);color:var(--text-tertiary);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px 16px;font-weight:600;transition:all .25s;display:flex}.datenight-tab:hover:not(:disabled){color:var(--text-primary)}.datenight-tab-active{color:var(--text-primary);box-shadow:var(--shadow-sm);background:#fff}.datenight-tab-emoji{font-size:1.1rem}.datenight-tab:disabled{opacity:.5;cursor:not-allowed}.wheel-container{justify-content:center;align-items:center;width:100%;display:flex}.wheel-wrapper{width:340px;max-width:85vw;height:340px;max-height:85vw;position:relative}.wheel-pointer{color:var(--text-primary);z-index:10;filter:drop-shadow(0 2px 4px #00000026);font-size:2rem;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.wheel-svg{filter:drop-shadow(0 8px 32px #0000001f);border-radius:var(--radius-full);width:100%;height:100%}.spin-button{border-radius:var(--radius-full);background:var(--text-primary);color:#fff;width:72px;height:72px;font-weight:800;font-size:var(--font-size-sm);letter-spacing:.1em;cursor:pointer;z-index:5;border:4px solid #fff;transition:all .2s cubic-bezier(.175,.885,.32,1.275);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #0000004d}.spin-button:hover:not(:disabled){background:#333;transform:translate(-50%,-50%)scale(1.1)}.spin-button:active{transform:translate(-50%,-50%)scale(.95)}.spin-button:disabled{opacity:.8;cursor:wait}.wheel-result{width:100%;max-width:400px;animation:fadeInUp .4s var(--transition-spring)}.pinned-idea{align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:#fff;border-radius:var(--radius-xl);text-align:center;box-shadow:var(--shadow-lg);flex-direction:column;animation:.5s cubic-bezier(.175,.885,.32,1.275) scaleIn;display:flex}.pinned-emoji{font-size:3rem}.pinned-title{font-size:var(--font-size-xl);letter-spacing:-.02em;font-weight:800}.badge-pill{margin-top:var(--space-md);border-radius:var(--radius-full);color:var(--text-primary);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;background:#fff;border:none;padding:12px 28px;transition:all .2s}.badge-pill:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.datenight-ideas-section{width:100%;margin-top:var(--space-md)}.datenight-ideas-title{font-size:var(--font-size-md);color:var(--text-secondary);margin-bottom:var(--space-md);font-weight:700}.datenight-ideas-grid{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.datenight-idea-card{align-items:center;gap:var(--space-sm);padding:14px var(--space-md);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);background:#fff;border-left:4px solid;display:flex}.datenight-idea-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.datenight-idea-emoji{flex-shrink:0;font-size:1.4rem}.datenight-idea-text{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600;line-height:1.3}@media (width<=768px){.datenight-page{padding:var(--space-md)}.wheel-wrapper{width:300px;height:300px}.spin-button{width:64px;height:64px}.datenight-ideas-grid{grid-template-columns:1fr}.datenight-tab{font-size:var(--font-size-xs);padding:10px 12px}}@media (width<=380px){.wheel-wrapper{width:260px;height:260px}.spin-button{width:56px;height:56px;font-size:var(--font-size-xs)}}.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}
