:root{--bg-primary: #fbfbfd;--bg-secondary: #f5f5f7;--bg-tertiary: #ffffff;--text-primary: #1d1d1f;--text-secondary: #86868b;--text-tertiary: #6e6e73;--text-muted: #aeaeb2;--border-light: rgba(0,0,0,.06);--border-medium: rgba(0,0,0,.1);--person-0: #0071e3;--person-0-light: rgba(0,113,227,.1);--person-0-gradient: linear-gradient(135deg, #0071e3, #40a9ff);--person-1: #af52de;--person-1-light: rgba(175,82,222,.1);--person-1-gradient: linear-gradient(135deg, #af52de, #da85f5);--person-2: #34c759;--person-2-light: rgba(52,199,89,.1);--person-2-gradient: linear-gradient(135deg, #34c759, #30d158);--person-3: #ff9500;--person-3-light: rgba(255,149,0,.1);--person-3-gradient: linear-gradient(135deg, #ff9500, #ffb340);--person-4: #ff3b30;--person-4-light: rgba(255,59,48,.1);--person-4-gradient: linear-gradient(135deg, #ff3b30, #ff6b6b);--success: #34c759;--success-light: rgba(52,199,89,.1);--warning: #ff9500;--warning-light: rgba(255,149,0,.1);--danger: #ff3b30;--danger-light: rgba(255,59,48,.1);--teal: #5ac8fa;--indigo: #5856d6;--shadow-sm: 0 1px 3px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 12px 40px rgba(0,0,0,.12);--shadow-xl: 0 24px 80px rgba(0,0,0,.16);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--glass-bg: rgba(255, 255, 255, .7);--glass-blur: 20px;--glass-border: rgba(255, 255, 255, .3);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .08);--card-income-tint: rgba(0, 122, 255, .06);--card-expense-tint: rgba(255, 59, 48, .06);--card-savings-tint: rgba(52, 199, 89, .06);--icon-income-bg: linear-gradient(135deg, #007AFF, #5AC8FA);--icon-expense-bg: linear-gradient(135deg, #FF6B6B, #FF8E53);--icon-savings-bg: linear-gradient(135deg, #34C759, #30D158);--duration-fast: .15s;--duration: .2s;--duration-slow: .3s;--ease: ease;--ease-spring: cubic-bezier(.4, 0, .2, 1);--text-hero: clamp(2rem, 5vw, 3.5rem);--text-title: clamp(1.5rem, 3vw, 2.25rem);--text-heading: clamp(1.25rem, 2.5vw, 1.75rem);--text-lg: clamp(1.125rem, 1.25vw, 1.25rem);--text-subheading: clamp(1rem, 1.5vw, 1.25rem);--text-body: clamp(.875rem, 1vw, 1rem);--text-caption: clamp(.8125rem, .95vw, .9375rem);--text-small: clamp(.75rem, .9vw, .875rem);--text-micro: clamp(.625rem, .8vw, .75rem);--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--space-xs: clamp(.25rem, .5vw, .5rem);--space-sm: clamp(.5rem, 1vw, .75rem);--space-md: clamp(.75rem, 1.5vw, 1.25rem);--space-lg: clamp(1rem, 2vw, 1.75rem);--space-xl: clamp(1.5rem, 3vw, 2.5rem);--space-2xl: clamp(2rem, 4vw, 4rem);--container-max: 1400px;--container-padding: clamp(1rem, 4vw, 2rem);--touch-target: 44px;--bottom-nav-height: 49px;--mobile-header-height: 56px}[data-theme=dark]{--bg-primary: #1c1c1e;--bg-secondary: #2c2c2e;--bg-tertiary: #3a3a3c;--text-primary: #ffffff;--text-secondary: #ababaf;--text-tertiary: #9a9a9f;--text-muted: #78787d;--border-light: rgba(255,255,255,.1);--border-medium: rgba(255,255,255,.15);--person-0-light: rgba(0,113,227,.2);--person-1-light: rgba(175,82,222,.2);--person-2-light: rgba(52,199,89,.2);--person-3-light: rgba(255,149,0,.2);--person-4-light: rgba(255,59,48,.2);--success-light: rgba(52,199,89,.2);--warning-light: rgba(255,149,0,.2);--danger-light: rgba(255,59,48,.2);--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.5);--shadow-xl: 0 24px 80px rgba(0,0,0,.6);--glass-bg: #28282d;--glass-border: rgba(255, 255, 255, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4)}[data-theme=dark] .metric-card,[data-theme=dark] .buffer-card,[data-theme=dark] .proj-glass-card,[data-theme=dark] .projection-chart-card,[data-theme=dark] .quick-tools,[data-theme=dark] .template-selector-current,[data-theme=dark] .skeleton-card{backdrop-filter:none;-webkit-backdrop-filter:none}[data-theme=dark] .dashboard{background:var(--bg-primary)}[data-theme=dark] .nav-container{background:#1c1c1ed9}[data-theme=dark] .metric-card{background:#2a2a2f;border-color:#ffffff14}[data-theme=dark] .metric-card.income:hover{border-color:#007aff66}[data-theme=dark] .metric-card.expenses:hover{border-color:#ff3b3066}[data-theme=dark] .metric-card.savings:hover{border-color:#34c75966}[data-theme=dark] .buffer-card{background:#2a2a2f;border-color:#ffffff14}[data-theme=dark] .buffer-card.person-0:hover{border-color:color-mix(in srgb,var(--person-0) 40%,transparent)}[data-theme=dark] .buffer-card.person-1:hover{border-color:color-mix(in srgb,var(--person-1) 40%,transparent)}[data-theme=dark] .buffer-card.person-2:hover{border-color:color-mix(in srgb,var(--person-2) 40%,transparent)}[data-theme=dark] .buffer-card.person-3:hover{border-color:color-mix(in srgb,var(--person-3) 40%,transparent)}[data-theme=dark] .buffer-card.person-4:hover{border-color:color-mix(in srgb,var(--person-4) 40%,transparent)}[data-theme=dark] .metrics-section{background:linear-gradient(135deg,#007aff14,#af52de0f,#34c75914)}[data-theme=dark] .card,[data-theme=dark] .category-section{background:var(--bg-tertiary);border-color:var(--border-medium)}[data-theme=dark] input,[data-theme=dark] select{background:var(--bg-secondary);border-color:var(--border-medium);color:var(--text-primary)}[data-theme=dark] input:focus,[data-theme=dark] select:focus{border-color:var(--person-0);background:var(--bg-primary)}[data-theme=dark] .btn{background:var(--bg-tertiary);color:var(--text-primary)}[data-theme=dark] .btn:hover{background:#4a4a4c}[data-theme=dark] .btn-primary{background:var(--person-0);color:#fff}[data-theme=dark] .category-bar-track{background:var(--bg-secondary)}[data-theme=dark] .category-bar-item{background:var(--bg-tertiary);border-color:var(--border-medium)}[data-theme=dark] .category-bar-header:hover{background:var(--bg-secondary)}[data-theme=dark] .category-detail{background:var(--bg-secondary);border-color:var(--border-medium)}[data-theme=dark] .category-detail-row:hover{background:var(--bg-primary)}[data-theme=dark] .file-dropdown{background:var(--bg-tertiary);border-color:var(--border-medium)}[data-theme=dark] .file-dropdown-item:hover{background:var(--bg-secondary)}[data-theme=dark] .search-box{background:transparent;border-color:transparent}[data-theme=dark] .search-input{color:var(--text-primary)}[data-theme=dark] .view-toggle-label{color:var(--text-secondary)}[data-theme=dark] .view-toggle-label.active{color:var(--text-primary)}[data-theme=dark] .capsule-toggle{background:#48484a}[data-theme=dark] .category-bar-tooltip{background:var(--bg-primary);border-color:var(--border-medium)}[data-theme=dark] .income-split-item{background:var(--bg-tertiary)}[data-theme=dark] .btn-icon{background:var(--bg-tertiary);color:var(--text-primary)}[data-theme=dark] .btn-icon:hover{background:#4a4a4c}[data-theme=dark] .recommendations-card{background:var(--bg-tertiary)}[data-theme=dark] .recommendation-item{background:var(--bg-tertiary);border-color:#ffffff0f}[data-theme=dark] .recommendation-item:hover{box-shadow:0 2px 8px #0000004d}[data-theme=dark] .recommendation-title{color:var(--text-primary)}[data-theme=dark] .recommendation-desc{color:var(--text-secondary)}[data-theme=dark] .recommendation-icon{background:var(--bg-secondary)!important}[data-theme=dark] .variance-summary,[data-theme=dark] .variance-category{background:var(--bg-tertiary)}[data-theme=dark] .variance-category:hover{background:var(--bg-secondary)}[data-theme=dark] .variance-bar-track{background:#ffffff14}[data-theme=dark] .variance-action{border-color:#ffffff0f}[data-theme=dark] .proj-glass-card{background:#28282dbf;border-color:#ffffff14}[data-theme=dark] .proj-glass-card:hover{box-shadow:0 12px 40px #0006}[data-theme=dark] .horizon-pill{background:var(--bg-tertiary);border-color:var(--border-medium)}[data-theme=dark] .horizon-pill:hover{background:#4a4a4c}[data-theme=dark] .horizon-pill.active{background:var(--person-0);border-color:var(--person-0);color:#fff}[data-theme=dark] .horizon-pill-custom.active .horizon-custom-input{background:#ffffff26;color:#fff}[data-theme=dark] .month-card{background:#28282dbf;border-color:#ffffff14}[data-theme=dark] .month-card:hover{border-color:#0071e366}[data-theme=dark] .month-card.current-month{box-shadow:0 8px 32px #0000004d,0 0 20px #0071e333}[data-theme=dark] .summary-card,[data-theme=dark] .calendar-year-nav{background:#28282dbf;border-color:#ffffff14}[data-theme=dark] .money-flow-tabs{background:#ffffff0f;border-color:#ffffff14}[data-theme=dark] .money-flow-tab.active{background:#ffffff1f;box-shadow:0 1px 4px #0000004d}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(prefers-contrast:more){:root{--glass-bg: rgba(255, 255, 255, .95);--glass-border: rgba(0, 0, 0, .3);--glass-shadow: 0 2px 8px rgba(0, 0, 0, .2);--text-secondary: #4a4a4a;--border-light: rgba(0, 0, 0, .2)}[data-theme=dark]{--glass-bg: rgba(30, 30, 30, .95);--glass-border: rgba(255, 255, 255, .3);--glass-shadow: 0 2px 8px rgba(0, 0, 0, .5);--text-secondary: #b0b0b0;--border-light: rgba(255, 255, 255, .2)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,sans-serif;background:var(--bg-secondary);color:var(--text-primary);line-height:1.47059;font-size:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.capsule-toggle,input,select,textarea,button{transition:background-color .2s ease,border-color .2s ease}html.theme-transitioning *,html.theme-transitioning *:before,html.theme-transitioning *:after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important}.nav-container{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fbfbfdb8;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border-light);-webkit-backface-visibility:hidden;backface-visibility:hidden}.nav-inner{max-width:var(--container-max);margin:0 auto;padding:12px var(--container-padding);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.nav-brand{font-size:var(--text-heading);font-weight:var(--font-semibold);white-space:nowrap;letter-spacing:-.02em;line-height:36px}.household-switcher{position:relative}.household-switcher-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;min-height:44px;border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-caption);font-weight:var(--font-medium);font-family:inherit;cursor:pointer;transition:all .15s ease;max-width:180px;white-space:nowrap}.household-switcher-btn:hover{border-color:var(--primary);background:var(--primary-light)}.household-switcher-name{overflow:hidden;text-overflow:ellipsis}.household-switcher-chevron{flex-shrink:0;transition:transform .2s ease}.household-switcher-btn[aria-expanded=true] .household-switcher-chevron{transform:rotate(180deg)}.household-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;max-width:280px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:14px;box-shadow:0 8px 30px #00000026;z-index:1000;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,visibility .15s ease,transform .15s ease}.household-dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}.household-dropdown-list{padding:6px;max-height:240px;overflow-y:auto}.household-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:none;background:transparent;color:var(--text-primary);font-size:var(--text-caption);font-family:inherit;cursor:pointer;width:100%;text-align:left;transition:background .1s ease}.household-dropdown-item:hover{background:var(--bg-secondary)}.household-dropdown-item.active{background:var(--primary-light)}.household-dropdown-check{width:18px;text-align:center;color:var(--primary);font-weight:var(--font-bold);flex-shrink:0}.household-dropdown-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-medium)}.household-dropdown-role{font-size:11px;color:var(--text-tertiary);flex-shrink:0}.household-dropdown-divider{height:1px;background:var(--border-light);margin:4px 12px}.household-dropdown-create{margin:0 6px 6px;color:var(--primary)}.household-dropdown-create:hover{background:var(--primary-light)}.household-dropdown-icon{width:18px;text-align:center;font-weight:300;font-size:16px}.nav-tabs{display:flex;gap:2px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-full);border:1px solid var(--border-light);position:relative}.nav-tabs-track{position:absolute;height:calc(100% - 6px);top:3px;left:3px;background:var(--bg-tertiary);border-radius:var(--radius-full);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;transition:left .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1);z-index:0;pointer-events:none}.nav-tab{position:relative;z-index:1;height:30px;padding:0 16px;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);background:transparent;display:flex;align-items:center;border:none;border-radius:var(--radius-full);cursor:pointer;transition:color .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent;white-space:nowrap}.nav-tab:hover{color:var(--text-primary)}.nav-tab:active{transform:scale(.97)}.nav-tab.active{color:var(--text-primary)}[data-theme=dark] .nav-tabs{border-color:#ffffff14}[data-theme=dark] .nav-tabs-track{background:var(--bg-tertiary);box-shadow:0 1px 3px #0003}.nav-actions{display:flex;gap:6px;align-items:center}.nav-actions .btn-ghost,.nav-actions .btn-icon{height:36px;padding:0 12px;font-size:var(--text-small);font-weight:var(--font-medium);border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--bg-secondary);color:var(--text-secondary);border:none;cursor:pointer;transition:background .2s ease,color .2s ease,transform .1s ease;white-space:nowrap}.nav-actions .btn-icon{width:36px;padding:0;font-size:15px}.nav-actions .btn-ghost svg,.nav-actions .btn-icon svg{flex-shrink:0}.nav-actions .btn-ghost:hover,.nav-actions .btn-icon:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:none}.nav-actions .btn-ghost:active,.nav-actions .btn-icon:active{transform:scale(.96)}[data-theme=dark] .nav-actions .btn-ghost,[data-theme=dark] .nav-actions .btn-icon{background:var(--bg-tertiary)}[data-theme=dark] .nav-actions .btn-ghost:hover,[data-theme=dark] .nav-actions .btn-icon:hover{background:#4a4a4c}.theme-switcher{display:flex;align-items:center;position:relative;background:var(--bg-secondary);border-radius:var(--radius-full);padding:3px;gap:0;border:1px solid var(--border-light)}.theme-switcher-track{position:absolute;height:calc(100% - 6px);width:calc((100% - 6px) / 3);top:3px;left:3px;background:var(--bg-tertiary);border-radius:var(--radius-full);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:0;pointer-events:none}.theme-switcher-track.pos-1{transform:translate(100%)}.theme-switcher-track.pos-2{transform:translate(200%)}.theme-switcher-btn{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;background:none;border:none;cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-full);transition:color .2s ease;padding:0}.theme-switcher-btn:hover{color:var(--text-secondary)}.theme-switcher-btn.active{color:var(--text-primary)}.theme-switcher-btn svg{display:block}[data-theme=dark] .theme-switcher{background:var(--bg-secondary);border-color:#ffffff14}[data-theme=dark] .theme-switcher-track{background:var(--bg-tertiary);box-shadow:0 1px 3px #0003}.theme-toggle-compact{position:relative;display:none}.theme-toggle-btn .theme-icon{display:none}.theme-toggle-btn[data-active-theme=light] .theme-icon-light,.theme-toggle-btn[data-active-theme=auto] .theme-icon-auto,.theme-toggle-btn[data-active-theme=dark] .theme-icon-dark{display:block}.theme-toggle-btn svg{pointer-events:none}.theme-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-tertiary);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000001f,0 0 0 1px var(--border-light);z-index:1100;overflow:hidden;min-width:150px}.theme-dropdown.show{display:block;animation:themeDropdownIn .18s cubic-bezier(.32,.72,0,1)}@keyframes themeDropdownIn{0%{opacity:0;transform:scale(.92) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.theme-dropdown-option{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:background .1s ease}.theme-dropdown-option:not(:last-child){border-bottom:1px solid var(--border-light)}.theme-dropdown-option:hover,.theme-dropdown-option:active{background:var(--bg-secondary)}.theme-dropdown-option svg:first-child{flex-shrink:0;width:16px;height:16px;color:var(--text-tertiary)}.theme-dropdown-option span{flex:1}.theme-dropdown-option .theme-check{display:none;color:var(--primary);flex-shrink:0}.theme-dropdown-option.active .theme-check{display:block}.theme-dropdown-option.active svg:first-child{color:var(--primary)}.theme-dropdown-option.active{color:var(--primary)}[data-theme=dark] .theme-dropdown{background:var(--bg-tertiary);box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff14}.version-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease);z-index:2000}.version-modal-overlay.show{opacity:1;visibility:visible}.version-modal{background:var(--bg-tertiary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:400px;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.version-modal-overlay.show .version-modal{transform:scale(1)}.version-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-light)}.version-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.version-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--text-heading);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration)}.version-modal-close:hover{background:var(--border-medium);color:var(--text-primary)}.version-modal-body{padding:var(--space-xl)}.version-modal-desc{margin:0 0 20px;font-size:var(--text-body);color:var(--text-secondary);line-height:1.5}.version-input-group{display:flex;flex-direction:column;gap:var(--space-sm)}.version-input-group label{font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--text-secondary)}.version-input-group input{padding:12px 16px;font-size:var(--text-subheading);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--duration)}.version-input-group input:focus{outline:none;border-color:var(--person-0)}.version-modal-footer{display:flex;gap:var(--space-md);justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border-light)}.btn{padding:var(--space-sm) var(--space-md);font-size:var(--text-small);font-weight:var(--font-medium);border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background .2s ease,transform .1s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-secondary);color:var(--text-primary)}.btn-primary{background:var(--person-0);color:#fff}.btn-primary:hover{background:#0077ed;transform:translateY(-1px);box-shadow:0 4px 12px #007aff4d}.btn:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.page{display:none;padding-top:60px;min-height:100vh;opacity:0}.page.active{display:block;opacity:1;animation:pageFadeIn .15s cubic-bezier(.4,0,.2,1)}.page.page-exit{display:block;animation:pageFadeOut .1s cubic-bezier(.4,0,.2,1) forwards}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pageFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.page.active{animation:none;opacity:1}.page.page-exit{animation:none}}.dashboard{background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;contain:paint}.dashboard-hero{padding:var(--space-2xl) var(--container-padding) var(--space-xl);text-align:center}.dashboard-date-row{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:12px}.dashboard-date{font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--person-0);text-transform:uppercase;letter-spacing:.08em}.dashboard-template-pill{font-size:11px;font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-light);padding:2px 10px;border-radius:100px;letter-spacing:.02em;position:relative;top:-1px}.dashboard-title{font-size:var(--text-hero);font-weight:var(--font-bold);letter-spacing:-.03em;margin-bottom:var(--space-sm);background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-tertiary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.dashboard-subtitle{font-size:var(--text-subheading);color:var(--text-secondary)}.dashboard-hero-controls{display:flex;flex-direction:column;align-items:center;margin-top:20px;gap:12px}.view-toggle{display:inline-flex;align-items:center;gap:var(--space-md);font-size:var(--text-caption);color:var(--text-secondary)}.view-toggle-label{font-weight:var(--font-medium)}.view-toggle-label.active{color:var(--text-primary)}.capsule-toggle{position:relative;width:52px;height:28px;background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-slow) var(--ease);border:1px solid var(--border-light)}.capsule-toggle.yearly{background:var(--person-0)}.capsule-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--duration-slow) var(--ease-spring)}.capsule-toggle.yearly:after{transform:translate(24px)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-xs)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[role=switch]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}[data-theme=dark] :focus-visible{outline-color:#5ac8fa}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;padding:8px 16px;border-radius:var(--radius-sm);z-index:10000;font-size:14px;font-weight:600;text-decoration:none;transition:top .2s}.skip-link:focus{top:8px}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px;margin-bottom:8px;width:60%}.skeleton-text.short{width:40%}.skeleton-text.long{width:80%}.skeleton-text.full{width:100%}.skeleton-heading{height:24px;margin-bottom:12px;width:50%}.skeleton-circle{width:40px;height:40px;border-radius:50%}.skeleton-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);min-height:120px}.skeleton-metric-card{display:flex;flex-direction:column;gap:12px}.skeleton-metric-icon{width:44px;height:44px;border-radius:var(--radius-sm)}.skeleton-bar{height:8px;border-radius:4px;width:100%}.skeleton-bar.short{width:30%}.skeleton-bar.medium{width:60%}.skeleton-progress{height:6px;border-radius:3px;width:100%;margin-top:8px}.skeleton-grid{display:grid;gap:var(--space-md)}.skeleton-grid.cols-3{grid-template-columns:repeat(3,1fr)}.skeleton-grid.cols-2{grid-template-columns:repeat(2,1fr)}@media(max-width:768px){.skeleton-grid.cols-3,.skeleton-grid.cols-2{grid-template-columns:1fr}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-lg);text-align:center;min-height:200px}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.6}.empty-state-title{font-size:var(--text-heading);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-xs)}.empty-state-desc{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:var(--space-lg);max-width:320px;line-height:1.5}.empty-state .btn{margin-top:var(--space-sm)}[data-theme=dark] .skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,rgba(255,255,255,.08) 50%,var(--bg-tertiary) 75%);background-size:200% 100%}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--bg-secondary)}}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:transparent;opacity:0;transition:opacity .2s ease;pointer-events:none}.tour-overlay.active{opacity:1;pointer-events:auto}.tour-spotlight{position:absolute;border-radius:var(--radius-lg);box-shadow:0 0 0 9999px #0000008c;transition:top .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:10000}[data-theme=dark] .tour-spotlight{box-shadow:0 0 0 9999px #000000b8}.tour-tooltip{position:absolute;width:340px;min-width:280px;max-width:calc(100vw - 32px);background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);box-shadow:0 20px 60px #00000040,0 8px 24px #00000026,0 0 0 1px var(--glass-border);z-index:10001;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transition:top .25s ease,left .25s ease,opacity .2s ease;outline:none;box-sizing:border-box;overflow:visible}[data-theme=dark] .tour-tooltip{background:var(--bg-secondary);box-shadow:0 20px 60px #00000080,0 8px 24px #0000004d,0 0 0 1px var(--glass-border)}.tour-tooltip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.tour-tooltip-step{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--primary);letter-spacing:.03em;white-space:nowrap}.tour-tooltip-close{background:none;border:none;font-size:22px;line-height:1;color:var(--text-secondary);cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);transition:color var(--duration-fast);flex-shrink:0;min-width:30px;min-height:30px;display:flex;align-items:center;justify-content:center}.tour-tooltip-close:hover{color:var(--text-primary)}.tour-tooltip-title{font-size:var(--text-body);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-xs);line-height:1.3}.tour-tooltip-desc{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-md)}.tour-tooltip-progress{display:flex;gap:8px;justify-content:center;align-items:center;margin-bottom:var(--space-md);flex-wrap:nowrap}.tour-progress-dot{width:8px;height:8px;min-width:8px;border-radius:50%;background:var(--border-medium);transition:background var(--duration-fast),transform var(--duration-fast);flex-shrink:0}.tour-progress-dot.active{background:var(--primary);transform:scale(1.2)}.tour-tooltip-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.tour-btn{border:none;padding:10px 22px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-semibold);cursor:pointer;transition:opacity var(--duration-fast),transform var(--duration-fast);white-space:nowrap;flex-shrink:0;min-height:40px;display:inline-flex;align-items:center;justify-content:center}.tour-btn:active{transform:scale(.96)}.tour-btn-next{background:var(--primary);color:#fff;margin-left:auto}.tour-btn-next:hover{opacity:.85}.tour-btn-back,.tour-btn-skip{background:var(--bg-secondary);color:var(--text-secondary)}.tour-btn-back:hover,.tour-btn-skip:hover{color:var(--text-primary);background:var(--bg-tertiary)}@media(min-width:768px)and (max-width:1024px){.tour-tooltip{width:340px}}@media(max-width:480px){.tour-tooltip{width:calc(100vw - 32px);padding:var(--space-md) var(--space-lg)}.tour-btn{padding:10px 16px}}@media(prefers-reduced-motion:reduce){.tour-overlay,.tour-spotlight,.tour-tooltip{transition:none}}.simulator-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease);z-index:2000}.simulator-overlay.show{opacity:1;visibility:visible}.simulator-panel{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100%;background:#ffffffeb;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);box-shadow:var(--shadow-xl),inset 0 0 0 .5px #ffffff4d;transform:translate(100%);transition:transform var(--duration-slow) cubic-bezier(.32,.72,0,1);z-index:2001;display:flex;flex-direction:column}.simulator-panel.show{transform:translate(0)}.simulator-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px}.simulator-header-text h2{font-size:var(--text-lg);font-weight:var(--font-semibold);letter-spacing:-.01em}.simulator-header-sub{font-size:var(--text-micro);color:var(--text-secondary);margin-top:2px}.simulator-close{width:28px;height:28px;border:none;background:var(--bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all var(--duration);flex-shrink:0}.simulator-close:hover{background:var(--border-medium);color:var(--text-primary)}.simulator-close:focus-visible{outline:2px solid var(--person-0);outline-offset:2px}.simulator-content{flex:1;overflow-y:auto;padding:var(--space-xl)}.simulator-section{margin-bottom:20px}.simulator-label{display:block;font-size:clamp(10px,2.5vw,12px);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.simulator-select,.simulator-input{width:100%;padding:12px 16px;font-size:clamp(13px,3vw,15px);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--duration);min-width:0;text-overflow:ellipsis}.simulator-select:focus,.simulator-input:focus{outline:none;border-color:var(--person-0)}.simulator-row{display:flex;gap:var(--space-md);flex-wrap:wrap}.simulator-row>*{flex:1 1 120px;min-width:0}.sim-segmented{display:grid;grid-template-columns:repeat(4,1fr);position:relative;background:var(--bg-secondary);border-radius:var(--radius-md);padding:3px;gap:0}[data-theme=dark] .sim-segmented{background:#ffffff0f}.sim-segmented-track{position:absolute;top:3px;left:3px;width:calc(25% - 1.5px);height:calc(100% - 6px);background:var(--bg-tertiary);border-radius:calc(var(--radius-md) - 2px);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000f;transition:transform var(--duration-slow) cubic-bezier(.32,.72,0,1);z-index:0}[data-theme=dark] .sim-segmented-track{background:#ffffff1f;box-shadow:0 1px 3px #0000004d}.sim-segment{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:none;background:transparent;cursor:pointer;border-radius:calc(var(--radius-md) - 2px);transition:color var(--duration);color:var(--text-secondary);-webkit-tap-highlight-color:transparent;font-family:inherit}.sim-segment:focus-visible{outline:2px solid var(--person-0);outline-offset:-2px}.sim-segment.active{color:var(--text-primary)}.sim-segment-icon{font-size:16px;line-height:1}.sim-segment-text{font-size:var(--text-micro);font-weight:var(--font-medium);white-space:nowrap}.sim-form-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-md);animation:simFadeInUp .25s ease}[data-theme=dark] .sim-form-card{background:#ffffff0a}@keyframes simFadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.simulator-run-btn{width:100%;padding:14px;font-size:var(--text-body);font-weight:var(--font-semibold);color:#fff;background:var(--person-0);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration);margin-top:var(--space-lg);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);letter-spacing:-.01em}.simulator-run-btn:hover{filter:brightness(1.08);transform:scale(1.01)}.simulator-run-btn:focus-visible{outline:2px solid white;outline-offset:2px;box-shadow:0 0 0 4px var(--person-0)}.simulator-run-btn:active{transform:scale(.98)}.simulator-results{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.simulator-results>*{opacity:0;animation:simResultFadeIn .4s cubic-bezier(.32,.72,0,1) forwards}.simulator-results>*:nth-child(1){animation-delay:0s}.simulator-results>*:nth-child(2){animation-delay:.05s}.simulator-results>*:nth-child(3){animation-delay:.1s}.simulator-results>*:nth-child(4){animation-delay:.15s}.simulator-results>*:nth-child(5){animation-delay:.2s}.simulator-results>*:nth-child(6){animation-delay:.25s}.simulator-results>*:nth-child(7){animation-delay:.3s}@keyframes simResultFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sim-hero-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}[data-theme=dark] .sim-hero-card{background:#28282dbf;border-color:#ffffff14}.sim-hero-indicator{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #0000001a}.sim-hero-indicator.positive{background:var(--icon-savings-bg);color:#fff}.sim-hero-indicator.negative{background:var(--icon-expense-bg);color:#fff}.sim-hero-indicator.neutral{background:linear-gradient(135deg,var(--text-muted),var(--text-secondary));color:#fff}.sim-hero-content{min-width:0}.sim-hero-label{font-size:var(--text-micro);color:var(--text-secondary);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.05em}.sim-hero-value{font-size:clamp(22px,5vw,28px);font-weight:var(--font-bold);letter-spacing:-.02em;margin-top:2px}.sim-hero-value.positive{color:var(--success)}.sim-hero-value.negative{color:var(--danger)}.sim-hero-value.neutral{color:var(--text-primary)}.sim-hero-caption{font-size:var(--text-micro);color:var(--text-tertiary);margin-top:4px}.sim-rings-container{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-lg) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg)}[data-theme=dark] .sim-rings-container{background:#ffffff0a}.sim-ring-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);flex:1;max-width:140px}.sim-ring-label{font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.sim-ring-wrap{position:relative;width:100px;height:100px}.sim-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.sim-ring-bg{fill:none;stroke:var(--border-light);stroke-width:8}[data-theme=dark] .sim-ring-bg{stroke:#ffffff14}.sim-ring-fill{fill:none;stroke-width:8;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .8s cubic-bezier(.32,.72,0,1)}.sim-ring-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-primary);text-align:center}.sim-ring-divider{color:var(--text-muted);flex-shrink:0}.sim-person-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md)}.sim-person-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-md);position:relative;overflow:hidden;box-shadow:var(--glass-shadow);transition:transform var(--duration) ease}[data-theme=dark] .sim-person-card{background:#28282dbf;border-color:#ffffff14}.sim-person-card:hover{transform:translateY(-2px)}.sim-person-card-bar{position:absolute;top:0;left:0;right:0;height:3px}.sim-person-card.person-0 .sim-person-card-bar{background:var(--person-0-gradient)}.sim-person-card.person-1 .sim-person-card-bar{background:var(--person-1-gradient)}.sim-person-card.person-2 .sim-person-card-bar{background:var(--person-2-gradient)}.sim-person-card.person-3 .sim-person-card-bar{background:var(--person-3-gradient)}.sim-person-card.person-4 .sim-person-card-bar{background:var(--person-4-gradient)}.sim-person-name{font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.sim-person-value{font-size:clamp(18px,4vw,24px);font-weight:var(--font-bold);letter-spacing:-.02em;margin-top:4px;color:var(--text-primary)}.sim-person-detail{display:flex;align-items:center;gap:var(--space-xs);margin-top:8px;flex-wrap:wrap}.sim-person-before{font-size:var(--text-micro);color:var(--text-tertiary)}.sim-person-diff{font-size:var(--text-micro);font-weight:var(--font-semibold);padding:2px 8px;border-radius:var(--radius-full)}.sim-person-diff.positive{background:var(--success-light);color:var(--success)}.sim-person-diff.negative{background:var(--danger-light);color:var(--danger)}.sim-person-diff.neutral{background:var(--bg-secondary);color:var(--text-muted)}.sim-stats-row{display:flex;align-items:stretch;background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);gap:0}[data-theme=dark] .sim-stats-row{background:#ffffff0a}.sim-stat-item{flex:1;min-width:0}.sim-stat-divider{width:1px;background:var(--border-light);margin:0 var(--space-lg);align-self:stretch}[data-theme=dark] .sim-stat-divider{background:#ffffff1a}.sim-stat-label{font-size:var(--text-micro);color:var(--text-secondary);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.03em}.sim-stat-values{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px var(--space-xs);margin-top:4px}.sim-stat-after{font-size:clamp(15px,3.5vw,18px);font-weight:var(--font-semibold);color:var(--text-primary)}.sim-stat-diff{font-size:var(--text-micro);font-weight:var(--font-semibold);padding:1px 6px;border-radius:var(--radius-full)}.sim-stat-diff.positive{background:var(--success-light);color:var(--success)}.sim-stat-diff.negative{background:var(--danger-light);color:var(--danger)}.sim-stat-diff.neutral{background:var(--bg-tertiary);color:var(--text-muted)}.sim-stat-before{font-size:var(--text-micro);color:var(--text-tertiary);margin-top:2px}.sim-burden-card-v2{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid rgba(255,59,48,.2);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--glass-shadow);position:relative;overflow:hidden}[data-theme=dark] .sim-burden-card-v2{background:#ff3b300f;border-color:#ff3b3026}.sim-burden-card-v2:before{content:"";position:absolute;top:-50%;left:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,59,48,.06) 0%,transparent 70%);pointer-events:none}.sim-burden-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.sim-burden-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--icon-expense-bg);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 8px #ff3b304d}.sim-burden-title-text{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--danger)}.sim-burden-body{display:flex;align-items:center;justify-content:center;gap:var(--space-lg)}.sim-burden-amount{text-align:center}.sim-burden-monthly-val,.sim-burden-yearly-val{font-size:clamp(18px,4vw,24px);font-weight:var(--font-bold);color:var(--danger);letter-spacing:-.02em}.sim-burden-monthly-label,.sim-burden-yearly-label{font-size:var(--text-micro);color:var(--text-secondary);margin-top:2px}.sim-burden-arrow{color:var(--text-muted);flex-shrink:0}.sim-burden-narrative{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid rgba(255,59,48,.1);font-size:var(--text-small);color:var(--text-secondary);line-height:1.5}.sim-burden-narrative strong{color:var(--danger);font-weight:var(--font-semibold)}.sim-apply-btn-v2{width:100%;padding:14px;font-size:var(--text-body);font-weight:var(--font-semibold);color:#fff;background:var(--success);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);letter-spacing:-.01em;box-shadow:0 4px 14px #34c7594d}.sim-apply-btn-v2:hover{filter:brightness(1.06);transform:scale(1.01);box-shadow:0 6px 20px #34c75966}.sim-apply-btn-v2:focus-visible{outline:2px solid white;outline-offset:2px;box-shadow:0 0 0 4px var(--success)}.sim-apply-btn-v2:active{transform:scale(.98)}.sim-apply-icon{display:flex;align-items:center}.sim-scenario-hint{font-size:clamp(11px,2.5vw,13px);color:var(--text-muted);margin-top:8px;font-style:italic;word-break:break-word}.sim-save-section{margin-top:var(--space-lg);padding-top:var(--space-lg)}.sim-save-divider{height:1px;background:var(--border-light);margin-bottom:var(--space-lg)}.sim-save-btn{width:100%;background:var(--success)!important}.sim-save-btn:hover{background:#2da44e!important}.sim-scenarios-section{padding:var(--space-lg);border-top:1px solid var(--border-light)}.sim-scenarios-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.sim-scenarios-title{font-size:var(--text-subheading);font-weight:var(--font-semibold);color:var(--text-primary)}.sim-scenarios-grid{display:flex;flex-direction:column;gap:var(--space-sm)}.sim-scenario-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.sim-scenario-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.sim-scenario-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xs)}.sim-scenario-name{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-body)}.sim-scenario-date{font-size:var(--text-small);color:var(--text-muted)}.sim-scenario-stats{display:flex;gap:var(--space-md);font-size:var(--text-small);color:var(--text-secondary)}.sim-scenario-stat-value{font-weight:var(--font-medium);color:var(--text-primary)}.sim-scenario-actions{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.sim-scenario-actions button{font-size:var(--text-small);padding:4px 8px;border-radius:var(--radius-xs);border:1px solid var(--border-light);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer}.sim-scenario-actions button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sim-scenario-actions button.danger:hover{background:var(--danger-light);color:var(--danger);border-color:var(--danger)}.sim-scenario-empty{text-align:center;padding:var(--space-lg);color:var(--text-muted);font-size:var(--text-small)}.sim-compare-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2100;opacity:0;pointer-events:none;transition:opacity .3s ease}.sim-compare-overlay.show{opacity:1;pointer-events:all}.sim-compare-modal{background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:var(--space-xl);max-width:900px;width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.sim-compare-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.sim-compare-title{font-size:var(--text-heading);font-weight:var(--font-semibold)}.sim-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.sim-compare-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.sim-compare-card-name{font-weight:var(--font-semibold);font-size:var(--text-subheading);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-light)}.sim-compare-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0;font-size:var(--text-body)}.sim-compare-row-label{color:var(--text-secondary)}.sim-compare-row-value{font-weight:var(--font-medium);font-variant-numeric:tabular-nums}.sim-compare-diff{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);margin-top:var(--space-md)}.sim-compare-diff-title{font-weight:var(--font-semibold);font-size:var(--text-body);margin-bottom:var(--space-sm);color:var(--text-secondary)}.sim-compare-diff-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0;font-size:var(--text-body)}.sim-compare-positive{color:var(--success);font-weight:var(--font-medium)}.sim-compare-negative{color:var(--danger);font-weight:var(--font-medium)}@media(max-width:640px){.sim-compare-modal{width:95vw;padding:var(--space-md);max-height:90vh}.sim-compare-grid{grid-template-columns:1fr;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.sim-compare-card{scroll-snap-align:start;min-width:0}.sim-compare-diff{font-size:var(--text-small)}}[data-theme=dark] .sim-scenario-card{background:#28282dbf;border-color:#ffffff14}[data-theme=dark] .sim-compare-modal{background:var(--bg-secondary)}[data-theme=dark] .sim-compare-card{background:#28282dbf;border-color:#ffffff14}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:2000}.settings-overlay.show{opacity:1;visibility:visible}.settings-panel{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100%;background:var(--bg-primary);box-shadow:-4px 0 32px #0000001f;transform:translate(100%);transition:transform .4s cubic-bezier(.32,.72,0,1);z-index:2001;display:flex;flex-direction:column}.settings-panel.show{transform:translate(0)}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 20px;flex-shrink:0}.settings-header h2{font-size:clamp(1.4rem,2.5vw,1.6rem);font-weight:var(--font-bold);letter-spacing:-.02em}.settings-close{width:44px;height:44px;border:none;background:var(--bg-secondary);border-radius:50%;font-size:16px;color:var(--text-secondary);cursor:pointer;transition:background var(--duration),color var(--duration);display:flex;align-items:center;justify-content:center;line-height:1}.settings-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-content{flex:1;overflow-y:auto;padding:0 20px 24px}.settings-section{margin-bottom:28px}.settings-section:last-child{margin-bottom:0}.settings-section-title{font-size:12px;font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;padding-left:16px}.settings-group{background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden}.settings-item{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:44px;background:transparent;border-radius:0;margin-bottom:0;position:relative}.settings-item:not(:last-child):after{content:"";position:absolute;bottom:0;left:60px;right:16px;height:.5px;background:var(--border-light)}.settings-item[onclick],.settings-item[style*=cursor]{cursor:pointer;transition:background .15s ease}.settings-item[onclick]:hover,.settings-item[style*=cursor]:hover{background:#00000008}[data-theme=dark] .settings-item[onclick]:hover,[data-theme=dark] .settings-item[style*=cursor]:hover{background:#ffffff0a}.settings-item-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.settings-item-info{flex:1;min-width:0}.settings-item-label{font-size:var(--text-body);font-weight:var(--font-regular);color:var(--text-primary)}.settings-item-desc{font-size:var(--text-small);color:var(--text-secondary);margin-top:1px}.settings-item-chevron{font-size:18px;font-weight:300;color:var(--text-muted);flex-shrink:0;margin-left:4px}.settings-item-stacked{flex-direction:column;align-items:stretch;gap:8px}.settings-item-stacked .settings-item-row{display:flex;align-items:center;gap:12px}.settings-name-input{width:calc(100% - 44px);padding:10px 12px;font-size:var(--text-caption);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--duration);box-sizing:border-box;margin-left:44px}.settings-name-input:focus{outline:none;border-color:var(--person-0)}.settings-name-input::placeholder{color:var(--text-muted)}.settings-toggle{position:relative;width:50px;height:30px;background:var(--border-medium);border-radius:15px;cursor:pointer;transition:background .3s var(--ease);flex-shrink:0}.settings-toggle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:54px;min-height:44px}.settings-toggle.active{background:var(--success)}.settings-toggle:after{content:"";position:absolute;top:2px;left:2px;width:26px;height:26px;background:#fff;border-radius:50%;transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #00000026,0 1px 1px #0000000f}.settings-toggle.active:after{transform:translate(20px)}.settings-select{width:auto;min-width:120px;max-width:200px;padding:6px 28px 6px 10px;font-size:var(--text-small);border:none;border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23999' d='M5 7L1 3h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:background var(--duration);text-align:right;flex-shrink:0}.settings-select:focus{outline:none;box-shadow:0 0 0 3px #0071e31f}.settings-select:hover{background:var(--bg-tertiary)}.settings-group-danger{background:color-mix(in srgb,var(--danger) 5%,var(--bg-secondary))}.settings-group-danger .settings-item:not(:last-child):after{background:color-mix(in srgb,var(--danger) 12%,transparent)}.settings-group-danger .settings-item-label{color:var(--danger);font-weight:var(--font-medium)}.settings-group-danger .settings-item[onclick]:hover{background:color-mix(in srgb,var(--danger) 6%,transparent)}.settings-version{text-align:center;padding:20px 0 8px;font-size:var(--text-micro);color:var(--text-muted)}.heart-cycle{display:inline-block;animation:heart-color 6s infinite}@keyframes heart-color{0%,to{filter:hue-rotate(0deg)}16%{filter:hue-rotate(60deg)}33%{filter:hue-rotate(120deg)}50%{filter:hue-rotate(180deg)}66%{filter:hue-rotate(240deg)}83%{filter:hue-rotate(300deg)}}.reset-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.reset-modal-overlay.show{opacity:1;pointer-events:auto}.reset-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:32px;max-width:460px;width:90%;text-align:center;transform:scale(.95);transition:transform .2s ease}.reset-modal-overlay.show .reset-modal{transform:scale(1)}.reset-modal-icon{font-size:48px;margin-bottom:12px}.reset-modal-title{font-size:var(--text-heading);font-weight:var(--font-semibold);color:var(--danger);margin-bottom:12px}.reset-modal-warning{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:12px}.reset-modal-list{text-align:left;margin:0 auto 16px;padding-left:24px;max-width:320px;font-size:var(--text-small);color:var(--text-secondary);line-height:1.8}.reset-modal-list li::marker{color:var(--danger)}.reset-modal-note{font-size:var(--text-small);color:var(--text-muted);margin-bottom:20px;padding:10px 14px;background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:var(--radius-sm);line-height:1.5}.reset-modal-confirm{text-align:left;margin-bottom:20px}.reset-modal-label{display:block;font-size:var(--text-small);color:var(--text-primary);margin-bottom:8px}.reset-modal-input{width:100%;padding:10px 14px;font-size:var(--text-body);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-family:monospace;letter-spacing:1px;transition:border-color var(--duration);box-sizing:border-box}.reset-modal-input:focus{outline:none;border-color:var(--danger)}.reset-modal-input.matched{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 5%,var(--bg-secondary))}.reset-modal-actions{display:flex;gap:var(--space-sm);justify-content:center}.reset-modal-btn{padding:10px 24px;font-size:var(--text-body);font-weight:var(--font-medium);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--duration)}.reset-modal-btn-cancel{background:var(--bg-secondary);color:var(--text-primary)}.reset-modal-btn-cancel:hover{background:var(--bg-tertiary)}.reset-modal-btn-destroy{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.reset-modal-btn-destroy:not(:disabled){background:var(--danger);color:#fff;cursor:pointer}.reset-modal-btn-destroy:not(:disabled):hover{filter:brightness(1.1)}.settlement-card{background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-light)}.settlement-result{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-primary);border-radius:var(--radius-md)}.settlement-person{display:flex;align-items:center;gap:var(--space-sm)}.settlement-avatar{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-subheading);overflow:hidden}.settlement-avatar img{width:100%;height:100%;object-fit:cover}.settlement-avatar.person-0{background:var(--person-0-light);color:var(--person-0)}.settlement-avatar.person-1{background:var(--person-1-light);color:var(--person-1)}.settlement-avatar.person-2{background:var(--person-2-light);color:var(--person-2)}.settlement-avatar.person-3{background:var(--person-3-light);color:var(--person-3)}.settlement-avatar.person-4{background:var(--person-4-light);color:var(--person-4)}.settlement-arrow{font-size:var(--text-title);color:var(--success)}.settlement-amount{font-size:var(--text-title);font-weight:var(--font-extrabold);color:var(--success)}.settlement-balanced{text-align:center;padding:var(--space-lg);color:var(--success);font-weight:var(--font-semibold)}.settlement-breakdown{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-light)}.settlement-breakdown-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:8px 0;transition:opacity var(--duration) var(--ease)}.settlement-breakdown-header:hover{opacity:.7}.settlement-breakdown-title{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase}.settlement-breakdown-toggle{font-size:var(--text-micro);color:var(--text-secondary);transition:transform var(--duration) var(--ease)}.settlement-breakdown-toggle.expanded{transform:rotate(180deg)}.settlement-breakdown-content{margin-top:10px}.settlement-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:6px;font-size:var(--text-caption)}.settlement-item-name{display:flex;align-items:center;gap:var(--space-sm)}.settlement-item-direction{font-size:var(--text-micro);padding:2px 6px;border-radius:4px;font-weight:var(--font-medium)}.settlement-item-amount{font-weight:var(--font-semibold)}.transfer-btn{min-width:44px;min-height:44px;border-radius:var(--radius-xs);border:none;background:transparent;cursor:pointer;font-size:var(--text-small);opacity:.4;transition:all var(--duration) var(--ease);display:flex;align-items:center;justify-content:center}.transfer-btn:hover{opacity:1;background:var(--bg-secondary)}.transfer-btn.active{opacity:1}.transfer-btn.to-v{color:var(--person-0)}.transfer-btn.to-v.active{background:var(--person-0-light)}.transfer-btn.to-k{color:var(--person-1)}.transfer-btn.to-k.active{background:var(--person-1-light)}.destination-toggle{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.dest-btn{height:26px;padding:0 8px;border-radius:var(--radius-xs);border:1.5px solid transparent;background:transparent;cursor:pointer;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--dest-color, var(--text-secondary));opacity:.4;transition:all var(--duration-fast) var(--ease);white-space:nowrap}.dest-btn:hover{opacity:1;background:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 10%,transparent)}.dest-btn.active{opacity:1;background:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 14%,transparent);border-color:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 30%,transparent);color:var(--dest-color)}.dest-badge{display:inline-flex;align-items:center;font-size:10px;padding:1px 6px;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 12%,transparent);color:var(--dest-color, var(--text-secondary));font-weight:var(--font-medium);white-space:nowrap;margin-left:4px;vertical-align:middle}.budget-row:not(.collapsed) .dest-badge{display:none}.dest-pill{display:inline-flex;align-items:center;justify-content:center;width:48px;box-sizing:border-box;font-size:11px;padding:2px 4px;border-radius:9999px;background:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 14%,transparent);color:var(--dest-color, var(--text-secondary));font-weight:var(--font-semibold);white-space:nowrap;text-align:center;flex-shrink:0}.dest-dropdown-wrap{position:relative;display:inline-flex}.dest-placeholder{opacity:.5;border:1.5px dashed var(--border-medium);color:var(--text-tertiary);font-size:var(--text-small);padding:0 10px;height:26px}.dest-placeholder:hover{opacity:1;border-color:var(--person-0);color:var(--text-secondary)}.dest-dropdown-portal{position:fixed;min-width:220px;max-height:280px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:10000;display:flex;flex-direction:column;padding:4px}.dest-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:none;border-radius:var(--radius-xs);background:transparent;cursor:pointer;font-size:var(--text-small);text-align:left;width:100%;gap:8px;transition:background var(--duration-fast) var(--ease);color:var(--text-primary)}.dest-dropdown-item:hover{background:var(--bg-secondary)}.dest-dropdown-item.active{background:color-mix(in srgb,var(--person-0) 10%,transparent)}.dest-dropdown-item-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.dest-dropdown-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dest-dropdown-owner{font-size:10px;color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.dest-dropdown-check{color:var(--person-0);font-size:var(--text-small);font-weight:var(--font-bold);flex-shrink:0}.dest-dropdown-divider{height:1px;background:var(--border-light);margin:2px 4px}.dest-dropdown-clear{color:var(--text-tertiary);font-size:var(--text-small)}.dest-dropdown-clear:hover{color:var(--danger)}.dest-multi{display:inline-flex;gap:4px}.dest-person-btn{font-size:10px!important;padding:2px 8px!important;height:24px!important;border-left:2px solid var(--dest-color, var(--border-medium))!important}.dest-person-btn.active{background:color-mix(in srgb,var(--dest-color) 12%,transparent)!important;color:var(--dest-color)!important;border-color:var(--dest-color)!important}.dest-person-btn.dest-placeholder{opacity:.5;border-style:dashed}.dest-person-btn.dest-placeholder:hover{opacity:1}.dest-all-btn{font-size:10px!important;padding:2px 8px!important;height:24px!important}.dest-all-btn.active{background:color-mix(in srgb,var(--dest-color, var(--success)) 12%,transparent)!important;color:var(--dest-color, var(--success))!important}.dest-all-btn.dest-placeholder{opacity:.5;border-style:dashed}.dest-all-btn.dest-placeholder:hover{opacity:1}.dest-dimmed{opacity:.3!important}.dest-dimmed:hover{opacity:.6!important}.dest-sep{font-size:9px;color:var(--text-tertiary);align-self:center;padding:0 2px}.sheet-dest-tabs{display:flex;gap:2px;padding:3px;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.sheet-dest-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:calc(var(--radius-sm) - 1px);font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration) var(--ease)}.sheet-dest-tab.active{background:var(--bg-primary);color:var(--text-primary);font-weight:var(--font-semibold);box-shadow:0 1px 2px #0000000f}.sheet-dest-panel{display:none}.sheet-dest-panel.active{display:block}.dest-person-section{padding:2px 0}.dest-person-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--person-color, var(--text-tertiary));padding:6px 10px 2px;border-left:2px solid var(--person-color, var(--border-medium));margin:0 4px}.bank-account-person-group{margin-bottom:var(--space-sm)}.bank-account-person-label{font-size:var(--text-small);font-weight:var(--font-semibold);padding:6px 16px 4px;text-transform:uppercase;letter-spacing:.5px}.account-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10001;display:none;align-items:center;justify-content:center}.account-modal-overlay.show{display:flex}.account-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:92%;max-width:480px;padding:var(--space-xl);max-height:80vh;overflow-y:auto}.account-modal h2{font-size:var(--text-heading);margin:0}.account-modal .modal-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);padding:4px 8px;border-radius:var(--radius-sm)}.account-modal .modal-close-btn:hover{background:var(--bg-secondary)}.transfer-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:3600;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.transfer-modal-overlay.show{opacity:1;visibility:visible}.transfer-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-xl);width:400px;max-width:95vw;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.transfer-modal-overlay.show .transfer-modal{transform:scale(1)}.transfer-modal-header{text-align:center;margin-bottom:20px}.transfer-modal-title{font-size:var(--text-lg);font-weight:var(--font-bold)}.transfer-direction-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-md);margin-bottom:20px;max-height:300px;overflow-y:auto}.transfer-direction-option{padding:var(--space-md);border-radius:var(--radius-md);border:2px solid var(--border-light);background:var(--bg-secondary);cursor:pointer;text-align:center;transition:all var(--duration) var(--ease)}.transfer-direction-option:hover{border-color:var(--person-0)}.transfer-direction-option.selected{border-color:var(--person-0);background:var(--person-0-light)}.transfer-direction-option .direction-from{font-size:var(--text-small);color:var(--text-secondary);margin-bottom:4px}.transfer-direction-option .direction-arrow{font-size:var(--text-body);margin:4px 0}.transfer-direction-option .direction-to{font-size:var(--text-body);font-weight:var(--font-semibold)}.transfer-amount-input{display:flex;align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--border-light);overflow:hidden;margin-bottom:16px}.transfer-amount-input:focus-within{border-color:var(--person-0)}.transfer-amount-input .currency{padding:14px 16px;font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--bg-tertiary)}.transfer-amount-input input{flex:1;padding:14px 16px;font-size:var(--text-heading);font-weight:var(--font-bold);border:none;background:transparent;color:var(--text-primary)}.transfer-amount-input input:focus{outline:none}.transfer-reason-input{width:100%;padding:12px 16px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-body);background:var(--bg-secondary);color:var(--text-primary);margin-bottom:20px}.transfer-reason-input:focus{outline:none;border-color:var(--person-0)}.transfer-actions{display:flex;gap:var(--space-md)}.budget-header-top{display:block;text-align:center}.search-bar-container{margin-top:var(--space-md);display:flex;justify-content:center;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:0 20px;max-width:600px;margin-left:auto;margin-right:auto}.budget-expand-controls{flex-shrink:0}.search-box{position:relative;display:flex;align-items:center;flex:1}.search-box.full-width{width:100%;max-width:none}.search-box.full-width .search-input{width:100%;padding:8px 36px;font-size:var(--text-small);border-radius:var(--radius-full, 9999px);border:1px solid var(--border-light);background:var(--bg-tertiary);transition:all var(--duration) var(--ease)}.search-box.full-width .search-input:focus{border-color:var(--person-0);background:var(--bg-primary);box-shadow:0 0 0 3px var(--person-0-light)}.search-box.full-width .search-icon{left:12px;font-size:var(--text-small)}.search-box.full-width .search-clear{right:10px;width:20px;height:20px;font-size:var(--text-small)}.search-icon{position:absolute;left:14px;font-size:var(--text-body);opacity:.5}.search-input{padding:12px 40px 12px 42px;font-size:var(--text-body);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);width:280px;transition:all var(--duration)}.search-input:focus{outline:none;border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.search-clear{position:absolute;right:8px;width:24px;height:24px;border:none;background:var(--bg-secondary);border-radius:50%;font-size:var(--text-body);cursor:pointer;display:none;align-items:center;justify-content:center;color:var(--text-secondary)}.search-clear.show{display:flex}.search-clear:hover{background:var(--border-medium)}.budget-section.hidden,.budget-row.hidden{display:none}.budget-row.highlight{background:var(--person-0-light)}.btn-icon{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);background:var(--bg-secondary);border:none;border-radius:50%;cursor:pointer;transition:all var(--duration)}.btn-icon:hover{background:var(--border-medium);transform:scale(1.1)}.metrics-section{max-width:calc(var(--container-max) - 2 * var(--container-padding));margin:0 auto var(--space-xl);padding:var(--space-lg);background:linear-gradient(135deg,#007aff0a,#af52de08,#34c7590a);border-radius:var(--radius-xl);contain:paint}.metrics-row{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-md)}.metrics-row>.metric-card{flex:1 1 0;min-width:200px}.metric-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:transform .3s ease,box-shadow .3s ease;position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;transition:opacity .3s ease;pointer-events:none;border-radius:inherit}.metric-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.metric-card.income:before{background:var(--card-income-tint)}.metric-card.expenses:before{background:var(--card-expense-tint)}.metric-card.savings:before{background:var(--card-savings-tint)}.metric-card.income:hover{border-color:#007aff4d}.metric-card.expenses:hover{border-color:#ff3b304d}.metric-card.savings:hover{border-color:#34c7594d}.metric-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:var(--space-md);box-shadow:0 4px 12px #0000001a}.metric-card.income .metric-icon{background:var(--icon-income-bg)}.metric-card.expenses .metric-icon{background:var(--icon-expense-bg)}.metric-card.savings .metric-icon{background:var(--icon-savings-bg)}.metric-value{font-size:clamp(20px,4vw,28px);font-weight:var(--font-bold);letter-spacing:-.02em;white-space:nowrap;color:var(--text-primary)}.metric-card.expenses .metric-value{color:var(--danger)}.metric-card.savings .metric-value{color:var(--success)}.metric-label{font-size:var(--text-small);color:var(--text-secondary);margin-top:var(--space-xs);font-weight:var(--font-medium)}.metric-sub{font-size:var(--text-micro);color:var(--text-tertiary);margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light)}.buffer-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg)}.buffer-cards[data-persons="4"],.buffer-cards[data-persons="5"]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.buffer-cards[data-persons="4"] .buffer-grid{grid-template-columns:repeat(2,1fr)}.buffer-cards[data-persons="5"] .buffer-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.buffer-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);padding:clamp(16px,3vw,28px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);position:relative;overflow:hidden;min-width:0;transition:transform .3s ease,box-shadow .3s ease}.buffer-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #0000001a}.buffer-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.buffer-card.person-0:hover{border-color:color-mix(in srgb,var(--person-0) 30%,transparent)}.buffer-card.person-1:hover{border-color:color-mix(in srgb,var(--person-1) 30%,transparent)}.buffer-card.person-2:hover{border-color:color-mix(in srgb,var(--person-2) 30%,transparent)}.buffer-card.person-3:hover{border-color:color-mix(in srgb,var(--person-3) 30%,transparent)}.buffer-card.person-4:hover{border-color:color-mix(in srgb,var(--person-4) 30%,transparent)}.buffer-card-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:clamp(12px,2vw,20px);min-width:0}.buffer-avatar{width:clamp(36px,5vw,52px);height:clamp(36px,5vw,52px);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,2vw,var(--text-heading));font-weight:var(--font-semibold);color:#fff;overflow:hidden;border:3px solid transparent;box-shadow:var(--shadow-md);flex-shrink:0}.buffer-avatar.person-0{background:var(--person-0-gradient);border-color:var(--person-0)}.buffer-avatar.person-1{background:var(--person-1-gradient);border-color:var(--person-1)}.buffer-avatar.person-2{background:var(--person-2-gradient);border-color:var(--person-2)}.buffer-avatar.person-3{background:var(--person-3-gradient);border-color:var(--person-3)}.buffer-avatar.person-4{background:var(--person-4-gradient);border-color:var(--person-4)}.buffer-avatar img{width:100%;height:100%;object-fit:cover}.buffer-name{font-size:clamp(13px,1.8vw,var(--text-lg));font-weight:var(--font-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.buffer-income{font-size:clamp(10px,1.3vw,var(--text-caption));color:var(--text-secondary);font-variant-numeric:tabular-nums}.buffer-card-header>div:last-child{min-width:0;flex:1}.buffer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.buffer-item{text-align:center;padding:var(--space-md) var(--space-xs);background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;min-width:0}.buffer-item-value{font-size:clamp(11px,1.4vw,16px);font-weight:var(--font-bold);font-variant-numeric:tabular-nums;white-space:nowrap}.buffer-item-label{font-size:clamp(8px,1vw,11px);color:var(--text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.03em}.buffer-item.highlight{background:var(--success-light)}.buffer-item.highlight .buffer-item-value{color:var(--success)}.dashboard-grid{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding) 100px;display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-lg);contain:paint}.dash-card{background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease}.dash-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dash-card.span-4{grid-column:span 4}.dash-card.span-5{grid-column:span 5}.dash-card.span-6{grid-column:span 6}.dash-card.span-7{grid-column:span 7}.dash-card.span-12{grid-column:span 12}#personal-split-bars-container{display:contents}.dash-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.dash-card-header-left{display:flex;align-items:center;gap:var(--space-md);min-width:0}.dash-card-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.dash-card-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.3}.dash-card-value{font-size:var(--text-caption);color:var(--text-secondary);margin-top:2px}.income-split{display:flex;align-items:center;gap:40px;margin-top:20px}.income-donut{position:relative;width:200px;height:200px;flex-shrink:0}.income-donut svg{transform:rotate(-90deg);width:100%;height:100%}.income-donut circle{fill:none;stroke-width:24}.income-donut .bg{stroke:var(--bg-secondary)}.income-donut .person-0-arc{stroke:url(#person0Gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.income-donut .person-1-arc{stroke:url(#person1Gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.income-donut .person-2-arc{stroke:url(#person2Gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.income-donut .person-3-arc{stroke:url(#person3Gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.income-donut .person-4-arc{stroke:url(#person4Gradient);stroke-linecap:round;transition:stroke-dashoffset 1s ease}.income-donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.income-donut-total{font-size:var(--text-title);font-weight:var(--font-bold)}.income-donut-label{font-size:var(--text-small);color:var(--text-secondary)}.income-details{flex:1}.income-person{padding:12px 0;border-bottom:1px solid var(--border-light)}.income-person:last-child{border-bottom:none}.income-info{flex:1;min-width:0}.income-name{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:2px}.income-percent{font-size:var(--text-caption);color:var(--text-secondary)}.income-amount{font-size:var(--text-heading);font-weight:var(--font-bold);margin-bottom:2px}.income-person.is-you-person{position:relative}.income-person.is-you-person .income-name:after{content:" (You)";font-size:var(--text-small);font-weight:var(--font-medium);color:var(--success);opacity:.8}.category-bars{margin-top:16px}.category-bar-item{margin-bottom:20px}.category-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.category-bar-name{font-size:var(--text-body);font-weight:var(--font-medium);display:flex;align-items:center;gap:var(--space-sm)}.category-bar-amount{font-size:clamp(12px,2.5vw,var(--text-body));font-weight:var(--font-semibold);white-space:nowrap}.budget-pct{font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-tertiary);margin-left:6px}.category-bar-tooltip{position:absolute;bottom:calc(100% + 10px);left:0;padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;font-size:var(--text-small);min-width:240px;opacity:0;visibility:hidden;transition:all var(--duration) var(--ease);transform:translateY(4px);z-index:1000;pointer-events:none}.category-bar-tooltip:after{content:"";position:absolute;top:100%;left:24px;border:6px solid transparent;border-top-color:var(--bg-primary)}.tooltip-row{display:flex;align-items:center;gap:8px;padding:6px 0}.tooltip-row+.tooltip-row{border-top:1px solid var(--border-light)}.tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tooltip-name{font-weight:var(--font-medium);flex:1;min-width:0}.tooltip-val{font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.tooltip-val.person-0-color{color:var(--person-0)}.tooltip-val.person-1-color{color:var(--person-1)}.tooltip-val.person-2-color{color:var(--person-2)}.tooltip-val.person-3-color{color:var(--person-3)}.tooltip-val.person-4-color{color:var(--person-4)}.tooltip-pct{font-size:var(--text-micro);color:var(--text-tertiary);min-width:32px;text-align:right}.tooltip-total-row{display:flex;align-items:center;gap:8px;padding:8px 0 2px;margin-top:4px;border-top:2px solid var(--border-light)}.tooltip-total-row .tooltip-name{font-weight:var(--font-semibold);color:var(--text-secondary);font-size:var(--text-small)}.tooltip-total-row .tooltip-val{font-weight:var(--font-bold)}.category-bar-track-wrapper:hover .category-bar-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.category-bar-fill:hover{filter:brightness(1.1)}.category-bar-header{cursor:pointer;padding:var(--space-sm);margin:-8px -8px 0;border-radius:var(--radius-sm);transition:background var(--duration) var(--ease)}.category-bar-header:hover{background:var(--bg-secondary)}.category-bar-header .expand-icon{font-size:var(--text-small);color:var(--text-secondary);transition:transform var(--duration-slow) var(--ease);margin-left:8px}.type-badge{font-size:9px;font-weight:var(--font-semibold);padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em;margin-left:8px}.type-badge.type-expense{background:var(--danger-light);color:var(--danger)}.type-badge.type-savings{background:var(--success-light);color:var(--success)}.type-badge.type-reserve{background:var(--warning-light);color:var(--warning)}.expand-controls{display:flex;align-items:center;gap:var(--space-xs)}.expand-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:3px 10px;font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.expand-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.budget-export-btn{display:inline-flex;align-items:center;gap:4px;background:var(--person-0-light, rgba(0, 113, 227, .08));color:var(--person-0);border-color:var(--person-0-light, rgba(0, 113, 227, .2))}.budget-export-btn:hover{background:var(--person-0);color:#fff;border-color:var(--person-0)}.budget-export-btn svg{flex-shrink:0}.category-bar-item.expanded .category-bar-header .expand-icon{transform:rotate(180deg)}.category-detail-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease,opacity .3s ease;opacity:0}.category-bar-item.expanded .category-detail-wrapper{grid-template-rows:1fr;opacity:1}.category-detail-table{overflow:hidden;margin-top:12px;background:var(--bg-secondary);border-radius:var(--radius-md)}.category-detail-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 100px 100px 80px;padding:10px 16px;font-size:var(--text-micro);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light);background:var(--bg-tertiary)}.category-detail-header>div:nth-child(n+2){text-align:right}.category-detail-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 100px 100px 80px;padding:12px 16px;font-size:var(--text-caption);border-bottom:1px solid var(--border-light);transition:background var(--duration) var(--ease)}.category-detail-row:last-child{border-bottom:none}.category-detail-row:hover{background:#00000005}.category-detail-row .item-name{font-weight:var(--font-medium)}.category-detail-row .person-0-amount,.category-detail-row .person-1-amount,.category-detail-row .person-2-amount,.category-detail-row .person-3-amount,.category-detail-row .person-4-amount,.category-detail-row .total-amount{text-align:right;font-variant-numeric:tabular-nums}.category-detail-row .person-0-amount{color:var(--person-0)}.category-detail-row .person-1-amount{color:var(--person-1)}.category-detail-row .person-2-amount{color:var(--person-2)}.category-detail-row .person-3-amount{color:var(--person-3)}.category-detail-row .person-4-amount{color:var(--person-4)}.category-detail-row .total-amount{font-weight:var(--font-semibold)}.category-detail-row .income-pct,.category-detail-row .split-ratio{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);font-size:var(--text-micro);text-align:right}.category-detail-row .income-pct span,.category-detail-row .split-ratio span{display:flex;align-items:center;gap:var(--space-xs)}.category-detail-row .income-pct span:before,.category-detail-row .split-ratio span:before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0}.category-detail-row .person-0-inc:before,.category-detail-row .person-0-ratio:before{background:var(--person-0)}.category-detail-row .person-1-inc:before,.category-detail-row .person-1-ratio:before{background:var(--person-1)}.category-detail-row .person-2-inc:before,.category-detail-row .person-2-ratio:before{background:var(--person-2)}.category-detail-row .person-3-inc:before,.category-detail-row .person-3-ratio:before{background:var(--person-3)}.category-detail-row .person-4-inc:before,.category-detail-row .person-4-ratio:before{background:var(--person-4)}.category-detail-row [class*=person-][class*=-inc],.category-detail-row [class*=person-][class*=-ratio]{color:var(--text-primary)}.category-detail-row .pct-amount{color:var(--text-secondary);text-align:right}.category-bar-track-wrapper{position:relative}.category-bar-track{height:28px;background:var(--bg-secondary);border-radius:var(--radius-md);display:flex;overflow:hidden}.category-bar-fill{height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--text-micro);font-weight:var(--font-semibold);color:#fff;transition:width .8s ease;position:relative;cursor:pointer}.category-bar-fill.person-0{background:var(--person-0-gradient);border-radius:var(--radius-md) 0 0 var(--radius-md)}.category-bar-fill.person-1{background:var(--person-1-gradient)}.category-bar-fill.person-2{background:var(--person-2-gradient)}.category-bar-fill.person-3{background:var(--person-3-gradient)}.category-bar-fill.person-4{background:var(--person-4-gradient)}.category-bar-fill:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.category-bar-fill.solo{border-radius:var(--radius-md)}.savings-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-xl);margin-top:20px}.savings-comparison[data-persons="2"]{grid-template-columns:1fr 1fr}.savings-comparison[data-persons="3"]{grid-template-columns:repeat(3,1fr)}.savings-comparison[data-persons="4"]{grid-template-columns:repeat(2,1fr)}.savings-comparison[data-persons="5"]{grid-template-columns:repeat(3,1fr)}.savings-person{text-align:center;padding:28px 20px;background:var(--bg-secondary);border-radius:var(--radius-lg);position:relative;overflow:hidden}.savings-person:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.savings-person.person-0:before{background:var(--person-0-gradient)}.savings-person.person-1:before{background:var(--person-1-gradient)}.savings-person.person-2:before{background:var(--person-2-gradient)}.savings-person.person-3:before{background:var(--person-3-gradient)}.savings-person.person-4:before{background:var(--person-4-gradient)}.savings-person-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:12px}.savings-rate-ring{width:120px;height:120px;margin:0 auto 16px;position:relative}.savings-rate-ring svg{transform:rotate(-90deg)}.savings-rate-ring circle{fill:none;stroke-width:10}.savings-rate-ring .bg{stroke:var(--bg-tertiary)}.savings-rate-ring .fill{stroke-linecap:round;transition:stroke-dashoffset 1s ease}.savings-rate-ring .fill.person-0{stroke:var(--person-0)}.savings-rate-ring .fill.person-1{stroke:var(--person-1)}.savings-rate-ring .fill.person-2{stroke:var(--person-2)}.savings-rate-ring .fill.person-3{stroke:var(--person-3)}.savings-rate-ring .fill.person-4{stroke:var(--person-4)}.savings-rate-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-title);font-weight:var(--font-bold)}.savings-amounts{font-size:clamp(11px,2.5vw,var(--text-caption));color:var(--text-secondary);white-space:nowrap}.savings-amounts strong{color:var(--text-primary);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums}.legend-item{display:flex;align-items:center;gap:var(--space-md);padding:12px 0;border-bottom:1px solid var(--border-light)}.legend-item:last-child{border-bottom:none}.shared-visual{margin-top:20px}.shared-bar{height:48px;border-radius:var(--radius-xl);overflow:hidden;display:flex;margin-bottom:20px;box-shadow:inset 0 2px 4px #0000000f}.shared-segment{display:flex;align-items:center;justify-content:center;font-size:var(--text-small);font-weight:var(--font-semibold);color:#fff;transition:width .8s ease}.shared-legend{display:flex;justify-content:center;gap:32px}.shared-legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-caption)}.shared-dot{width:10px;height:10px;border-radius:50%}.recommendations-card{border:1px solid var(--border-light)}.future-card{background:linear-gradient(135deg,var(--bg-primary) 0%,#f0f7ff 100%)}[data-theme=dark] .future-card{background:linear-gradient(135deg,var(--bg-tertiary) 0%,#1a2a3a 100%)}.goals-card{background:linear-gradient(135deg,var(--bg-primary) 0%,#f5fff5 100%)}[data-theme=dark] .goals-card{background:linear-gradient(135deg,var(--bg-tertiary) 0%,#1a2a1a 100%)}.goals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg)}.goal-item{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-light);transition:transform var(--duration-slow) var(--ease),box-shadow var(--duration-slow) var(--ease)}.goal-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.goal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.goal-icon{font-size:32px;margin-bottom:8px}.goal-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.goal-target{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.goal-percentage{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--success)}.goal-progress-track{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:12px}.goal-progress-fill{height:100%;background:linear-gradient(90deg,var(--success),#30d158);border-radius:4px;transition:width .6s var(--ease-spring)}.goal-progress-fill.warning{background:linear-gradient(90deg,#ff9500,#ffb340)}.goal-progress-fill.danger{background:linear-gradient(90deg,#ff3b30,#ff6b6b)}.goal-stats{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--text-secondary)}.goal-current{font-weight:var(--font-semibold);color:var(--text-primary)}.goal-eta{display:flex;align-items:center;gap:var(--space-xs);margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light);font-size:var(--text-small);color:var(--text-secondary)}.goal-eta-icon{font-size:var(--text-body)}.goal-add-btn{background:var(--bg-secondary);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);cursor:pointer;transition:all var(--duration) var(--ease);min-height:160px}.goal-add-btn:hover{border-color:var(--person-0);background:var(--bg-primary)}.goal-add-icon{font-size:32px;color:var(--text-muted)}.goal-add-text{font-size:var(--text-body);color:var(--text-secondary)}.goal-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.goal-modal-overlay.show{opacity:1;visibility:visible}.goal-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-xl);width:400px;max-width:90vw;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.goal-modal-overlay.show .goal-modal{transform:scale(1)}.goal-modal-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:20px}.goal-modal-field{margin-bottom:16px}.goal-modal-label{display:block;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.goal-modal-input{width:100%;padding:12px 16px;font-size:var(--text-body);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary)}.goal-modal-input:focus{outline:none;border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.goal-modal-actions{display:flex;align-items:center;gap:var(--space-md);margin-top:24px}.goal-modal-actions .btn{flex:1}.goal-modal-actions .goal-delete-btn{flex:none}.goal-milestone-controls{display:flex;gap:var(--space-xs);margin-bottom:var(--space-sm)}.goal-milestones-list{display:flex;flex-direction:column;gap:var(--space-xs)}.goal-milestone-row{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-small)}.goal-milestone-row input{border:1px solid var(--border-light);border-radius:var(--radius-xs);padding:4px 8px;font-size:var(--text-small);background:var(--bg-tertiary);color:var(--text-primary)}.goal-milestone-row input[type=date]{width:140px}.goal-milestone-row input[type=number]{width:100px}.goal-milestone-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;font-size:14px}.goal-milestone-remove:hover{color:var(--danger)}.goal-progress-markers{position:relative;height:8px;margin-top:4px}.goal-milestone-marker{position:absolute;top:-4px;width:3px;height:16px;border-radius:2px;transform:translate(-50%)}.goal-milestone-marker.reached{background:var(--success)}.goal-milestone-marker.behind{background:var(--warning)}.goal-milestone-marker.upcoming{background:var(--text-muted)}.goal-milestone-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:9px;color:var(--text-muted)}.goal-milestone-label{text-align:center;max-width:60px}.goal-milestone-status{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--text-small);color:var(--text-secondary)}.goal-milestone-status.behind{background:var(--warning-light);color:var(--warning)}.goal-milestone-status.on-track{background:var(--success-light);color:var(--success)}.projections-card{overflow:hidden}.projection-controls{display:flex;align-items:center;gap:var(--space-md)}.projections-content{display:flex;flex-direction:column;gap:var(--space-lg)}.horizon-selector{display:flex;gap:8px;flex-wrap:wrap}.horizon-pill{padding:8px 18px;font-size:var(--text-caption);font-weight:var(--font-medium);border:1px solid var(--border-light);background:var(--bg-secondary);border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);transition:background var(--duration) var(--ease),color var(--duration) var(--ease),border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease);white-space:nowrap}.horizon-pill:hover{border-color:var(--border-medium);color:var(--text-primary);background:var(--bg-tertiary)}.horizon-pill.active{background:var(--person-0);color:#fff;border-color:var(--person-0);box-shadow:0 2px 8px #0071e34d}.horizon-pill-custom{display:flex;align-items:center;gap:8px;padding-right:10px}.horizon-custom-input{width:0;padding:0;border:none;background:transparent;font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--text-secondary);opacity:0;transition:all var(--duration) var(--ease);-moz-appearance:textfield}.horizon-custom-input::-webkit-outer-spin-button,.horizon-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.horizon-pill-custom.active .horizon-custom-input{width:52px;padding:2px 6px;opacity:1;background:#fff3;border-radius:var(--radius-xs);color:#fff}.horizon-pill-custom.active .horizon-custom-input::placeholder{color:#fff9}.projection-chart-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.chart-container{position:relative;height:200px;width:100%}.chart-container canvas{max-height:200px!important}.chart-container-combined{height:280px}.chart-container-combined canvas{max-height:280px!important}.chart-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-light)}.legend-item{display:flex;align-items:center;gap:6px;font-size:var(--text-caption);color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot-savings{background:var(--person-0, #0071e3)}.legend-dot-networth{background:var(--success, #34c759)}.legend-toggle{all:unset;display:none;align-items:center;gap:6px;font-size:var(--text-caption);color:var(--text-tertiary, #aaa);cursor:pointer;padding:2px 8px;border-radius:var(--radius-full, 99px);border:1px solid var(--border-light);transition:color var(--duration, .2s) var(--ease, ease),background var(--duration, .2s) var(--ease, ease),border-color var(--duration, .2s) var(--ease, ease),opacity var(--duration, .2s) var(--ease, ease);opacity:.6;user-select:none;-webkit-user-select:none}.legend-toggle:hover{opacity:.85;border-color:var(--border-medium)}.legend-toggle.active{color:var(--warning, #ff9500);border-color:var(--warning, #ff9500);opacity:1}.legend-dot-fi-toggle{width:12px;height:0;border-top:2px dashed currentColor;border-radius:0}.projection-glass-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.proj-glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);padding:var(--space-lg);transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease);position:relative;overflow:hidden}.proj-glass-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;opacity:.8;transition:opacity var(--duration)}.proj-glass-savings:before{background:linear-gradient(90deg,var(--person-0, #0071e3),#5ac8fa)}.proj-glass-networth:before{background:linear-gradient(90deg,var(--success, #34c759),#30d158)}.proj-glass-growth:before{background:linear-gradient(90deg,#5ac8fa,#64d2ff)}.proj-glass-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.proj-glass-card:hover:before{opacity:1}.proj-glass-icon{margin-bottom:var(--space-sm)}.proj-glass-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.proj-glass-dot.savings-dot{background:var(--person-0, #0071e3);box-shadow:0 0 8px #0071e366}.proj-glass-dot.networth-dot{background:var(--success, #34c759);box-shadow:0 0 8px #34c75966}.proj-glass-dot.growth-dot{background:#5ac8fa;box-shadow:0 0 8px #5ac8fa66}.proj-glass-label{font-size:var(--text-small);color:var(--text-secondary);font-weight:var(--font-medium);margin-bottom:4px}.proj-glass-value{font-size:var(--text-heading);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:4px}.proj-glass-sub{font-size:var(--text-micro, 11px);color:var(--text-tertiary)}.projection-details{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg)}.assets-debts-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.summary-section h4{font-size:var(--text-body);font-weight:var(--font-semibold);margin:0 0 var(--space-md) 0;color:var(--text-primary)}.assets-list,.debts-list{display:flex;flex-direction:column;gap:var(--space-sm)}.asset-item,.debt-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.asset-info,.debt-info{display:flex;flex-direction:column;gap:2px}.asset-name,.debt-name{font-size:var(--text-body);font-weight:var(--font-medium)}.asset-growth,.debt-rate{font-size:var(--text-small);color:var(--text-secondary)}.asset-value{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--success)}.debt-value{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--danger)}.empty-state{padding:var(--space-xl) var(--space-lg);text-align:center;color:var(--text-secondary);font-size:var(--text-caption)}.category-empty-state{padding:var(--space-2xl) var(--space-lg);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.category-empty-state .empty-icon{font-size:48px;opacity:.6;margin-bottom:var(--space-sm)}.category-empty-state .empty-title{font-size:var(--text-body);font-weight:var(--font-medium);color:var(--text-secondary)}.category-empty-state .empty-desc{font-size:var(--text-small);color:var(--text-tertiary);max-width:280px;line-height:1.5}.category-empty-state .empty-action{margin-top:var(--space-sm);padding:10px 20px;background:var(--person-0);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration) var(--ease)}.category-empty-state .empty-action:hover{background:#0077ed;transform:scale(1.02)}.assets-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--duration-slow);z-index:2000}.assets-modal-overlay.show{opacity:1;visibility:visible}.assets-modal{background:var(--bg-tertiary);border-radius:var(--radius-lg);width:90%;max-width:720px;max-height:80vh;overflow:hidden;transform:scale(.9);transition:transform var(--duration-slow)}.assets-modal-overlay.show .assets-modal{transform:scale(1)}.assets-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-light)}.assets-modal-header h3{margin:0;font-size:var(--text-lg)}.assets-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-secondary);font-size:var(--text-heading);cursor:pointer}.assets-modal-body{padding:var(--space-xl);overflow-y:auto;max-height:calc(80vh - 80px)}.assets-section,.debts-section{margin-bottom:var(--space-xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.section-header h4{margin:0;font-size:var(--text-subheading)}.assets-items,.debts-items{display:flex;flex-direction:column;gap:var(--space-sm)}.asset-edit-item{display:grid;grid-template-columns:1fr 130px 80px 32px;gap:var(--space-sm);align-items:center;padding:12px 14px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.debt-edit-item{display:grid;grid-template-columns:1fr 120px 70px 100px 32px;gap:var(--space-sm);align-items:center;padding:12px 14px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.asset-edit-item input,.debt-edit-item input{padding:8px 10px;font-size:var(--text-body);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);min-width:0}.asset-edit-item input:focus,.debt-edit-item input:focus{outline:2px solid var(--person-0);outline-offset:-2px;border-color:var(--person-0)}.asset-labels{display:grid;grid-template-columns:1fr 130px 80px 32px;gap:var(--space-sm);padding:0 14px 8px;font-size:var(--text-small);color:var(--text-secondary);font-weight:var(--font-medium)}.debt-labels{display:grid;grid-template-columns:1fr 120px 70px 100px 32px;gap:var(--space-sm);padding:0 14px 8px;font-size:var(--text-small);color:var(--text-secondary);font-weight:var(--font-medium)}.delete-asset-btn,.delete-debt-btn{width:32px;height:32px;border:none;background:var(--danger-light);color:var(--danger);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-subheading)}.empty-assets,.empty-debts{text-align:center;padding:var(--space-lg);color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-sm)}.note-btn{width:36px;height:36px;border:none;background:var(--bg-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-body);transition:all var(--duration) var(--ease);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.note-btn:hover{background:var(--bg-tertiary)}.note-btn.has-note{background:var(--person-0-light);color:var(--person-0)}.note-btn.has-note:after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;background:var(--person-0);border-radius:50%}.item-actions-row{display:flex;gap:6px;align-items:center}.item-action-btn{width:34px;height:34px;border:none;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:15px;transition:all var(--duration-fast) var(--ease);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.item-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:scale(1.05)}.item-action-btn:active{transform:scale(.95)}.item-action-btn.has-note{background:var(--person-0-light);color:var(--person-0)}.item-action-btn.has-note:after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;background:var(--person-0);border-radius:50%}.item-action-btn.danger:hover{background:var(--danger-light);color:var(--danger)}.share-split-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:3500;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.share-split-overlay.show{opacity:1;visibility:visible}.share-split-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:520px;max-width:95vw;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.share-split-overlay.show .share-split-modal{transform:scale(1)}.share-split-header{text-align:center;margin-bottom:24px}.share-split-title{font-size:var(--text-heading);font-weight:var(--font-bold);margin-bottom:4px}.share-split-item-name{font-size:var(--text-body);color:var(--text-secondary)}.share-split-section{margin-bottom:20px}.share-split-label{display:block;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;margin-bottom:10px}.share-split-total-input{display:flex;align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--border-light);overflow:hidden}.share-split-total-input:focus-within{border-color:var(--person-0)}.share-split-currency{padding:14px 16px;font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--bg-tertiary)}.share-split-total-input input{flex:1;padding:14px 16px;font-size:var(--text-heading);font-weight:var(--font-bold);border:none;background:transparent;color:var(--text-primary)}.share-split-total-input input:focus{outline:2px solid var(--primary);outline-offset:-2px}.share-split-methods{display:flex;flex-direction:column;gap:var(--space-sm)}.share-split-method{display:flex;align-items:center;gap:var(--space-md);padding:14px 16px;background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease)}.share-split-method:hover{border-color:var(--person-0-light);background:var(--bg-tertiary)}.share-split-method.selected{border-color:var(--person-0);background:var(--person-0-light)}.share-split-method-icon{font-size:var(--text-heading)}.share-split-method-info{flex:1}.share-split-method-name{font-weight:var(--font-semibold);font-size:var(--text-body)}.share-split-method-desc{font-size:var(--text-small);color:var(--text-secondary)}.share-split-method-values{text-align:right;font-size:var(--text-caption);font-weight:var(--font-semibold)}.share-split-preview{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:20px;padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md)}.share-split-preview-card{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm)}.share-split-preview-card.person-0{background:var(--person-0-light);border:2px solid var(--person-0)}.share-split-preview-card.person-1{background:var(--person-1-light);border:2px solid var(--person-1)}.share-split-preview-card.person-2{background:var(--person-2-light);border:2px solid var(--person-2)}.share-split-preview-card.person-3{background:var(--person-3-light);border:2px solid var(--person-3)}.share-split-preview-card.person-4{background:var(--person-4-light);border:2px solid var(--person-4)}.share-split-preview-name{font-size:var(--text-body);font-weight:var(--font-semibold);white-space:nowrap}.share-split-preview-amount-input{display:flex;align-items:center;gap:var(--space-xs);min-width:0;flex-shrink:0}.share-split-preview-amount-input .currency-prefix{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-secondary)}.share-split-preview-amount-input input{width:160px;min-width:0;padding:10px 12px;font-size:var(--text-subheading);font-weight:var(--font-bold);border:2px solid var(--border-light);border-radius:var(--radius-sm);text-align:right;background:var(--bg-tertiary);transition:all var(--duration) var(--ease);box-sizing:border-box}.share-split-preview-card.person-0 .share-split-preview-amount-input input{color:var(--person-0)}.share-split-preview-card.person-0 .share-split-preview-amount-input input:focus{border-color:var(--person-0);outline:none;box-shadow:0 0 0 4px var(--person-0-light)}.share-split-preview-card.person-1 .share-split-preview-amount-input input{color:var(--person-1)}.share-split-preview-card.person-1 .share-split-preview-amount-input input:focus{border-color:var(--person-1);outline:none;box-shadow:0 0 0 4px var(--person-1-light)}.share-split-preview-card.person-2 .share-split-preview-amount-input input{color:var(--person-2)}.share-split-preview-card.person-2 .share-split-preview-amount-input input:focus{border-color:var(--person-2);outline:none;box-shadow:0 0 0 4px var(--person-2-light)}.share-split-preview-card.person-3 .share-split-preview-amount-input input{color:var(--person-3)}.share-split-preview-card.person-3 .share-split-preview-amount-input input:focus{border-color:var(--person-3);outline:none;box-shadow:0 0 0 4px var(--person-3-light)}.share-split-preview-card.person-4 .share-split-preview-amount-input input{color:var(--person-4)}.share-split-preview-card.person-4 .share-split-preview-amount-input input:focus{border-color:var(--person-4);outline:none;box-shadow:0 0 0 4px var(--person-4-light)}.share-split-validation{text-align:center;padding:var(--space-sm);margin-top:-8px;margin-bottom:8px}.share-split-validation .validation-error{color:var(--danger);font-size:var(--text-caption);font-weight:var(--font-medium)}.share-split-actions{display:flex;gap:var(--space-md)}.share-split-actions .btn{flex:1}.notes-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.notes-modal-overlay.show{opacity:1;visibility:visible}.notes-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-xl);width:400px;max-width:90vw;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.notes-modal-overlay.show .notes-modal{transform:scale(1)}.notes-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.notes-modal-title{font-size:var(--text-subheading);font-weight:var(--font-semibold)}.notes-modal-item{font-size:var(--text-caption);color:var(--text-secondary)}.notes-textarea{width:100%;min-height:120px;padding:var(--space-md);font-size:var(--text-body);font-family:inherit;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);resize:vertical}.notes-textarea:focus{outline:2px solid var(--person-0);outline-offset:-2px;border-color:var(--person-0)}.notes-textarea::placeholder{color:var(--text-muted)}.notes-modal-actions{display:flex;gap:var(--space-md);margin-top:16px}.notes-modal-actions .btn{flex:1}.quick-tools{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:var(--space-sm);padding:12px 16px;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026,0 0 0 1px var(--border-light);z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}[data-theme=dark] .quick-tools{background:#2c2c2ef2;box-shadow:0 8px 32px #0006,0 0 0 1px var(--border-light)}.quick-tool-btn{display:flex;align-items:center;gap:var(--space-xs);padding:10px 14px;background:var(--bg-secondary);border:none;border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;transition:background var(--duration) var(--ease),color var(--duration) var(--ease),transform var(--duration) var(--ease);color:var(--text-primary)}.quick-tool-btn:hover{background:var(--person-0);color:#fff;transform:translateY(-2px)}.quick-tool-btn .quick-tool-icon{font-size:var(--text-body)}@media(max-width:768px){.quick-tools{bottom:16px;padding:8px 12px;gap:var(--space-xs)}.quick-tool-btn{padding:8px 10px;font-size:var(--text-micro)}.quick-tool-btn span:not(.quick-tool-icon){display:none}}.split-result-name{display:flex;align-items:center;gap:var(--space-sm);font-weight:var(--font-medium)}.split-result-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-small);font-weight:var(--font-semibold);color:#fff}.split-result-avatar.person-0{background:var(--person-0)}.split-result-avatar.person-1{background:var(--person-1)}.split-result-avatar.person-2{background:var(--person-2)}.split-result-avatar.person-3{background:var(--person-3)}.split-result-avatar.person-4{background:var(--person-4)}.split-result-amount{font-size:var(--text-lg);font-weight:var(--font-bold)}.split-result-amount.person-0{color:var(--person-0)}.split-result-amount.person-1{color:var(--person-1)}.split-result-amount.person-2{color:var(--person-2)}.split-result-amount.person-3{color:var(--person-3)}.split-result-amount.person-4{color:var(--person-4)}.paycheck-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:16px;border:1px solid var(--border-light)}.paycheck-item{display:flex;align-items:center;gap:var(--space-md)}.paycheck-item-amount{width:90px;text-align:right;font-size:var(--text-caption);font-weight:var(--font-semibold)}.share-stat{text-align:center;background:#ffffff26;border-radius:var(--radius-md);padding:16px 8px}.share-stat-value{font-size:var(--text-lg);font-weight:var(--font-bold)}.share-stat-label{font-size:var(--text-micro);opacity:.8;margin-top:4px;text-transform:uppercase}.split-calculator-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:3000;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.split-calculator-overlay.show{opacity:1;visibility:visible}.split-calculator-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:480px;max-width:95vw;max-height:90vh;overflow-y:auto;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.split-calculator-overlay.show .split-calculator-modal{transform:scale(1)}.split-calc-header{text-align:center;margin-bottom:24px}.split-calc-title{font-size:22px;font-weight:var(--font-bold);margin-bottom:4px}.split-calc-subtitle{font-size:var(--text-caption);color:var(--text-secondary)}.split-calc-section{margin-bottom:20px}.split-calc-label{display:block;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;margin-bottom:10px}.split-calc-input-group{display:flex;align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);border:2px solid var(--border-light);overflow:hidden}.split-calc-input-group:focus-within{border-color:var(--person-0)}.split-calc-currency{padding:14px 16px;font-weight:var(--font-semibold);color:var(--text-secondary);background:var(--bg-tertiary)}.split-calc-input{flex:1;padding:14px 16px;font-size:var(--text-lg);font-weight:var(--font-semibold);border:none;background:transparent;color:var(--text-primary)}.split-calc-input:focus{outline:2px solid var(--primary);outline-offset:-2px}.split-calc-methods{display:flex;flex-direction:column;gap:var(--space-sm)}.split-method-btn{display:flex;align-items:center;gap:var(--space-md);padding:14px 16px;background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease);text-align:left}.split-method-btn:hover{border-color:var(--person-0-light);background:var(--bg-tertiary)}.split-method-btn.active{border-color:var(--person-0);background:var(--person-0-light)}.split-method-btn .method-icon{font-size:var(--text-heading)}.split-method-btn span:nth-child(2){flex:1;font-weight:var(--font-semibold)}.split-method-btn .method-desc{font-size:var(--text-small);color:var(--text-secondary)}.custom-ratio-inputs{display:flex;flex-wrap:wrap;gap:var(--space-lg)}.custom-ratio-input{flex:1 1 80px}.custom-ratio-input label{display:block;font-size:var(--text-micro);color:var(--text-secondary);margin-bottom:6px}.custom-ratio-input input{width:100%;padding:10px 12px;font-size:var(--text-subheading);font-weight:var(--font-semibold);border:2px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);text-align:center}.split-calc-results{display:none;flex-direction:column;gap:var(--space-md);margin-bottom:20px}.split-result-card{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--bg-secondary)}.split-result-card.person-0{border:2px solid var(--person-0);background:var(--person-0-light)}.split-result-card.person-1{border:2px solid var(--person-1);background:var(--person-1-light)}.split-result-card.person-2{border:2px solid var(--person-2);background:var(--person-2-light)}.split-result-card.person-3{border:2px solid var(--person-3);background:var(--person-3-light)}.split-result-card.person-4{border:2px solid var(--person-4);background:var(--person-4-light)}.split-result-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-subheading);color:#fff;flex-shrink:0}.split-result-card.person-0 .split-result-avatar{background:var(--person-0)}.split-result-card.person-1 .split-result-avatar{background:var(--person-1)}.split-result-card.person-2 .split-result-avatar{background:var(--person-2)}.split-result-card.person-3 .split-result-avatar{background:var(--person-3)}.split-result-card.person-4 .split-result-avatar{background:var(--person-4)}.split-result-info{flex:1;min-width:0}.split-result-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.split-result-percent{font-size:var(--text-small);color:var(--text-secondary)}.split-result-amount{font-size:var(--text-title);font-weight:var(--font-bold);white-space:nowrap;flex-shrink:0}.split-result-card.person-0 .split-result-amount{color:var(--person-0)}.split-result-card.person-1 .split-result-amount{color:var(--person-1)}.split-result-card.person-2 .split-result-amount{color:var(--person-2)}.split-result-card.person-3 .split-result-amount{color:var(--person-3)}.split-result-card.person-4 .split-result-amount{color:var(--person-4)}.split-calc-actions{display:flex;gap:var(--space-md)}.split-calc-actions .btn{flex:1}.paycheck-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2500;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.paycheck-overlay.show{opacity:1;visibility:visible}.paycheck-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:90%;max-width:900px;max-height:85vh;overflow-y:auto;transform:scale(.9);transition:transform var(--duration-slow) var(--ease)}.paycheck-overlay.show .paycheck-modal{transform:scale(1)}.paycheck-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.paycheck-modal-title{font-size:22px;font-weight:var(--font-bold)}.paycheck-modal-close{width:36px;height:36px;border:none;background:var(--bg-secondary);border-radius:50%;font-size:var(--text-heading);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--duration)}.paycheck-modal-close:hover{background:var(--danger-light);color:var(--danger)}.paycheck-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-xl)}@media(max-width:768px){.paycheck-grid{grid-template-columns:1fr}}.paycheck-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg)}.paycheck-card.person-0-card{border-top:4px solid var(--person-0)}.paycheck-card.person-1-card{border-top:4px solid var(--person-1)}.paycheck-card.person-2-card{border-top:4px solid var(--person-2)}.paycheck-card.person-3-card{border-top:4px solid var(--person-3)}.paycheck-card.person-4-card{border-top:4px solid var(--person-4)}.paycheck-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.paycheck-card-name{font-size:var(--text-subheading);font-weight:var(--font-semibold)}.paycheck-card-total{font-size:var(--text-heading);font-weight:var(--font-bold)}.paycheck-card.person-0-card .paycheck-card-total{color:var(--person-0)}.paycheck-card.person-1-card .paycheck-card-total{color:var(--person-1)}.paycheck-card.person-2-card .paycheck-card-total{color:var(--person-2)}.paycheck-card.person-3-card .paycheck-card-total{color:var(--person-3)}.paycheck-card.person-4-card .paycheck-card-total{color:var(--person-4)}.paycheck-visual{margin-bottom:16px}.paycheck-bar{display:flex;height:28px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary)}.paycheck-segment{transition:width .6s ease;display:flex;align-items:center;justify-content:center;font-size:var(--text-micro);font-weight:var(--font-semibold);color:#fff}.paycheck-items{display:flex;flex-direction:column;gap:var(--space-sm);max-height:300px;overflow-y:auto}.paycheck-item{display:flex;align-items:center;gap:var(--space-sm);padding:10px 12px;background:var(--bg-primary);border-radius:var(--radius-sm)}.paycheck-item.buffer-item{background:linear-gradient(135deg,#f5f5f7,#e8e8ed)}[data-theme=dark] .paycheck-item.buffer-item{background:linear-gradient(135deg,#3a3a3c,#2c2c2e)}.paycheck-item-icon{font-size:var(--text-subheading)}.paycheck-item-name{flex:1;font-size:var(--text-caption);font-weight:var(--font-medium)}.paycheck-item-amount{font-size:var(--text-body);font-weight:var(--font-semibold)}.paycheck-item-pct{font-size:var(--text-small);color:var(--text-secondary);width:50px;text-align:right}.share-summary-card{background:var(--bg-primary)}.share-summary-content{display:flex;gap:var(--space-xl);align-items:stretch}.share-summary-content[data-persons="3"],.share-summary-content[data-persons="4"],.share-summary-content[data-persons="5"]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg)}.share-summary-content[data-persons="3"] .share-divider,.share-summary-content[data-persons="4"] .share-divider,.share-summary-content[data-persons="5"] .share-divider{display:none}@media(max-width:768px){.share-summary-content{flex-direction:column}.share-summary-content[data-persons="3"],.share-summary-content[data-persons="4"],.share-summary-content[data-persons="5"]{grid-template-columns:1fr}}.share-column{flex:1;padding:var(--space-md);border-radius:var(--radius-lg);background:var(--bg-secondary)}.share-column.person-0-column{border:2px solid var(--person-0)}.share-column.person-1-column{border:2px solid var(--person-1)}.share-column.person-2-column{border:2px solid var(--person-2)}.share-column.person-3-column{border:2px solid var(--person-3)}.share-column.person-4-column{border:2px solid var(--person-4)}.share-column-header{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.share-name{font-size:var(--text-subheading);font-weight:var(--font-semibold)}.share-income{font-size:var(--text-caption);color:var(--text-secondary)}.share-stats{display:flex;flex-direction:column;gap:var(--space-sm)}.share-stat{display:flex;justify-content:space-between;align-items:center}.share-stat-label{font-size:var(--text-caption);color:var(--text-secondary)}.share-stat-value{font-size:var(--text-body);font-weight:var(--font-semibold)}.share-divider{display:flex;align-items:center;justify-content:center;padding:0 12px}.share-vs{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-small);font-weight:var(--font-bold);color:var(--text-secondary)}.share-balance-bar{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-light)}.share-balance-label{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;margin-bottom:10px}.share-balance-visual{display:flex;height:28px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.share-balance-fill{transition:width .6s ease;display:flex;align-items:center;justify-content:center;font-size:var(--text-micro);font-weight:var(--font-semibold);color:#fff}.share-balance-fill.person-0{background:var(--person-0)}.share-balance-fill.person-1{background:var(--person-1)}.share-balance-fill.person-2{background:var(--person-2)}.share-balance-fill.person-3{background:var(--person-3)}.share-balance-fill.person-4{background:var(--person-4)}.share-balance-legend{display:flex;flex-wrap:wrap;gap:4px var(--space-md);margin-top:8px;font-size:var(--text-small);color:var(--text-secondary)}.share-balance-legend-item{display:flex;align-items:center;gap:6px}.share-balance-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.share-balance-dot.person-0{background:var(--person-0)}.share-balance-dot.person-1{background:var(--person-1)}.share-balance-dot.person-2{background:var(--person-2)}.share-balance-dot.person-3{background:var(--person-3)}.share-balance-dot.person-4{background:var(--person-4)}.you-badge{display:inline-block;font-size:var(--text-micro);font-weight:var(--font-semibold);color:var(--success);background:var(--success-light);padding:1px 6px;border-radius:6px;margin-left:6px;vertical-align:middle}.your-buffer-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);padding:24px 28px;border:2px solid var(--person-0);box-shadow:0 8px 32px #0071e31a;position:relative;overflow:hidden}.your-buffer-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.your-buffer-card.person-0{border-color:var(--person-0)}.your-buffer-card.person-0:before{background:var(--person-0-gradient)}.your-buffer-card.person-1{border-color:var(--person-1);box-shadow:0 8px 32px #af52de1a}.your-buffer-card.person-1:before{background:var(--person-1-gradient)}.your-buffer-card.person-2{border-color:var(--person-2);box-shadow:0 8px 32px #34c7591a}.your-buffer-card.person-2:before{background:var(--person-2-gradient)}.your-buffer-card.person-3{border-color:var(--person-3);box-shadow:0 8px 32px #ff95001a}.your-buffer-card.person-3:before{background:var(--person-3-gradient)}.your-buffer-card.person-4{border-color:var(--person-4);box-shadow:0 8px 32px #ff3b301a}.your-buffer-card.person-4:before{background:var(--person-4-gradient)}.your-card-header{display:flex;align-items:center;gap:14px;margin-bottom:20px}.your-card-name{font-size:18px;font-weight:var(--font-bold)}.your-card-income{font-size:13px;color:var(--text-secondary)}.your-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.your-stat{text-align:center;padding:14px 8px;background:var(--bg-secondary);border-radius:var(--radius-md)}.your-stat-value{font-size:17px;font-weight:var(--font-bold);font-variant-numeric:tabular-nums}.your-stat-label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-top:4px}.others-strip-label{font-size:11px;font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;margin-top:12px;padding-left:2px}.others-strip{display:grid;gap:8px}.others-strip[data-count="1"]{grid-template-columns:1fr;max-width:400px}.others-strip[data-count="2"]{grid-template-columns:repeat(2,1fr)}.others-strip[data-count="3"]{grid-template-columns:repeat(3,1fr)}.others-strip[data-count="4"]{grid-template-columns:repeat(4,1fr)}.other-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-md);padding:12px 14px;border:1px solid var(--glass-border);display:flex;align-items:center;gap:10px;position:relative;overflow:hidden;transition:all .2s ease;cursor:pointer}.other-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.other-card:before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px}.other-card.person-0:before{background:var(--person-0-gradient)}.other-card.person-1:before{background:var(--person-1-gradient)}.other-card.person-2:before{background:var(--person-2-gradient)}.other-card.person-3:before{background:var(--person-3-gradient)}.other-card.person-4:before{background:var(--person-4-gradient)}.other-card-info{flex:1;min-width:0}.other-card-name{font-size:12px;font-weight:var(--font-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.other-card-sub{font-size:10px;color:var(--text-secondary)}.other-card-buffer{text-align:right;flex-shrink:0}.other-card-buffer-value{font-size:14px;font-weight:var(--font-bold);font-variant-numeric:tabular-nums}.other-card-buffer-label{font-size:9px;color:var(--text-secondary);text-transform:uppercase}.proposed-savings{display:flex;gap:28px;align-items:flex-start;margin-top:20px}.your-savings{flex:0 0 auto;text-align:center;padding:24px 28px;background:var(--bg-secondary);border-radius:var(--radius-lg);border:2px solid var(--person-0);position:relative;overflow:hidden}.your-savings:before{content:"";position:absolute;top:0;left:0;right:0;height:4px}.your-savings.person-0{border-color:var(--person-0)}.your-savings.person-0:before{background:var(--person-0-gradient)}.your-savings.person-1{border-color:var(--person-1)}.your-savings.person-1:before{background:var(--person-1-gradient)}.your-savings.person-2{border-color:var(--person-2)}.your-savings.person-2:before{background:var(--person-2-gradient)}.your-savings.person-3{border-color:var(--person-3)}.your-savings.person-3:before{background:var(--person-3-gradient)}.your-savings.person-4{border-color:var(--person-4)}.your-savings.person-4:before{background:var(--person-4-gradient)}.your-savings .savings-rate-value{font-size:26px}.your-savings-name{font-size:14px;font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:14px}.your-savings-amount{font-size:13px;color:var(--text-secondary);margin-top:4px}.your-savings-amount strong{color:var(--text-primary);font-weight:var(--font-semibold)}.others-savings-col{flex:1;display:flex;flex-direction:column;gap:8px}.other-savings-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius-md);position:relative;overflow:hidden}.other-savings-row:before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px}.other-savings-row.person-0:before{background:var(--person-0-gradient)}.other-savings-row.person-1:before{background:var(--person-1-gradient)}.other-savings-row.person-2:before{background:var(--person-2-gradient)}.other-savings-row.person-3:before{background:var(--person-3-gradient)}.other-savings-row.person-4:before{background:var(--person-4-gradient)}.mini-ring{width:44px;height:44px;position:relative;flex-shrink:0}.mini-ring svg{transform:rotate(-90deg);width:100%;height:100%}.mini-ring circle{fill:none;stroke-width:6}.mini-ring .bg{stroke:var(--bg-tertiary)}.mini-ring .fill{stroke-linecap:round;transition:stroke-dashoffset 1s ease}.mini-ring .fill.person-0{stroke:var(--person-0)}.mini-ring .fill.person-1{stroke:var(--person-1)}.mini-ring .fill.person-2{stroke:var(--person-2)}.mini-ring .fill.person-3{stroke:var(--person-3)}.mini-ring .fill.person-4{stroke:var(--person-4)}.mini-ring-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:var(--font-bold)}.other-savings-info{flex:1}.other-savings-name{font-size:12px;font-weight:var(--font-semibold)}.other-savings-sub{font-size:10px;color:var(--text-secondary)}.your-split-card{background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-sm);border:2px solid var(--person-0)}.split-card-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.split-card-title{font-size:15px;font-weight:var(--font-semibold)}.split-card-value{font-size:12px;color:var(--text-secondary)}.your-split-card .split-bar,.your-split-card .shared-bar{height:32px;border-radius:var(--radius-xl);overflow:hidden;display:flex;margin-bottom:12px;box-shadow:inset 0 2px 4px #0000000f}.split-legend{display:flex;justify-content:center;gap:16px;font-size:11px;color:var(--text-secondary)}.split-legend-item{display:flex;align-items:center;gap:6px}.split-dot{width:8px;height:8px;border-radius:50%}.proposed-share{display:flex;gap:16px;align-items:stretch}.your-share-col{flex:2;padding:20px;border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--person-0);position:relative}.your-share-col.person-0-column{border-color:var(--person-0)}.your-share-col.person-1-column{border-color:var(--person-1)}.your-share-col.person-2-column{border-color:var(--person-2)}.your-share-col.person-3-column{border-color:var(--person-3)}.your-share-col.person-4-column{border-color:var(--person-4)}.others-share-stack{flex:3;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.proposed-share[data-others="1"] .your-share-col,.proposed-share[data-others="1"] .others-share-stack{flex:1}.others-share-stack[data-count="1"]{grid-template-columns:1fr}.proposed-share[data-others="2"] .your-share-col,.proposed-share[data-others="2"] .others-share-stack{flex:1}.others-share-stack[data-count="2"]{grid-template-columns:repeat(2,1fr)}.others-share-stack[data-count="3"]{grid-template-columns:repeat(3,1fr)}.others-share-stack[data-count="4"]{grid-template-columns:repeat(4,1fr)}.other-share-col{padding:14px;border-radius:var(--radius-lg);background:var(--bg-secondary)}.other-share-col.person-0-column{border:1px solid color-mix(in srgb,var(--person-0) 30%,transparent)}.other-share-col.person-1-column{border:1px solid color-mix(in srgb,var(--person-1) 30%,transparent)}.other-share-col.person-2-column{border:1px solid color-mix(in srgb,var(--person-2) 30%,transparent)}.other-share-col.person-3-column{border:1px solid color-mix(in srgb,var(--person-3) 30%,transparent)}.other-share-col.person-4-column{border:1px solid color-mix(in srgb,var(--person-4) 30%,transparent)}.future-total{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--success)}.future-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-lg);margin-top:20px}.future-item{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}[data-theme=dark] .future-item{background:var(--bg-secondary)}[data-theme=dark] .future-item[style*=linear-gradient]{background:linear-gradient(135deg,#3a3a3c,#2c2c2e)!important}.future-icon{font-size:32px;margin-bottom:8px}.future-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:4px;word-wrap:break-word;overflow-wrap:break-word}.future-amount{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--success);word-wrap:break-word;overflow-wrap:break-word}.future-split{font-size:var(--text-micro);color:var(--text-secondary);margin-top:4px}.future-yearly{font-size:var(--text-small);color:var(--text-tertiary);margin-top:2px}.budget-page{padding-bottom:100px}.budget-header{background:var(--bg-tertiary);padding:calc(52px + var(--space-xl)) var(--container-padding) var(--space-xl);text-align:center;border-bottom:1px solid var(--border-light)}.budget-header-title{font-size:var(--text-title);font-weight:var(--font-bold);letter-spacing:-.02em;margin-bottom:8px}.budget-header-subtitle{font-size:var(--text-lg);color:var(--text-secondary)}.template-selector{max-width:400px;margin:var(--space-lg) auto;position:relative}.template-selector-current{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--duration) ease,box-shadow var(--duration) ease}.template-selector-current:hover{border-color:var(--person-0);box-shadow:var(--shadow-md)}.template-selector-label{font-size:var(--text-small);color:var(--text-secondary)}.template-selector-name{flex:1;font-weight:var(--font-semibold);color:var(--text-primary)}.template-selector-arrow{font-size:var(--text-small);color:var(--text-tertiary);transition:transform var(--duration) ease}.template-selector-usage{font-size:var(--text-small);color:var(--text-secondary);text-align:center;margin-top:var(--space-xs)}.template-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-xs);background:var(--bg-tertiary);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;display:none;overflow:hidden}.template-dropdown.show{display:block;animation:fadeInDown .2s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.template-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md) var(--space-lg);border:none;background:none;font-size:var(--text-body);color:var(--text-primary);cursor:pointer;text-align:left;transition:background var(--duration) ease}.template-item:hover{background:var(--bg-secondary)}.template-item.active{background:var(--person-0-light);color:var(--person-0);font-weight:var(--font-medium)}.template-item .check{opacity:0;color:var(--person-0)}.template-item.active .check{opacity:1}.template-item.action{color:var(--person-0)}.template-dropdown-divider{height:1px;background:var(--border-light);margin:var(--space-xs) 0}.assign-template-options{display:flex;flex-direction:column;gap:var(--space-sm)}.assign-template-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration)}.assign-template-option:hover,.assign-template-option.selected{border-color:var(--person-0);background:var(--person-0-light)}.assign-template-option input[type=radio]{accent-color:var(--person-0)}.assign-template-option .option-name{font-weight:var(--font-medium)}.dash-section-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.dash-section-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.dash-section-info{flex:1;min-width:0}.dash-section-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.3}.dash-section-subtitle{font-size:var(--text-caption);color:var(--text-secondary);margin-top:2px}.dash-section-title .review-badge{vertical-align:middle;margin-left:var(--space-xs)}.money-flow-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-md);border:1px solid var(--border-light)}.money-flow-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px var(--space-md);border:none;background:transparent;border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-body);font-weight:var(--font-medium);color:var(--text-tertiary);cursor:pointer;transition:all var(--duration) var(--ease);-webkit-tap-highlight-color:transparent}.money-flow-tab:hover{color:var(--text-primary);background:color-mix(in srgb,var(--bg-tertiary) 60%,transparent)}.money-flow-tab.active{background:var(--bg-tertiary);color:var(--text-primary);font-weight:var(--font-semibold);box-shadow:0 1px 4px #0000001a,0 1px 2px #0000000f}.money-flow-tab-icon{font-size:var(--text-body)}.money-flow-content{position:relative}.money-flow-panel{display:none}.money-flow-panel.active{display:block}.settlement-actions{display:flex;justify-content:flex-end;margin-top:var(--space-sm)}.xfer-summary-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-sm);font-size:var(--text-small);color:var(--text-secondary)}.xfer-summary-total{font-weight:var(--font-semibold);color:var(--success)}.xfer-accounts{display:flex;flex-direction:column;gap:var(--space-sm)}.xfer-person-group{display:flex;flex-direction:column;gap:var(--space-xs)}.xfer-person-header{font-size:var(--text-small);font-weight:var(--font-semibold);padding:4px 0 2px;text-transform:uppercase;letter-spacing:.5px}.xfer-account{background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.xfer-account-header{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--success) 8%,transparent);border-bottom:1px solid var(--border-light)}.xfer-account-name{font-weight:var(--font-semibold);font-size:var(--text-body)}.xfer-account-total{font-weight:var(--font-bold);font-size:var(--text-body);font-variant-numeric:tabular-nums;color:var(--success);margin-left:auto}.xfer-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0;font-size:var(--text-small);color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.xfer-item>span:last-child{text-align:right;min-width:90px;font-variant-numeric:tabular-nums;flex-shrink:0}.xfer-item:last-child{border-bottom:none}.xfer-person-pill{display:inline-block;font-size:var(--text-micro);font-weight:var(--font-semibold);padding:1px 6px;border-radius:var(--radius-full);margin-left:4px;vertical-align:middle;line-height:1.4}.xfer-summary-controls{display:flex;align-items:center;gap:var(--space-xs)}.xfer-toggle-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:3px 10px;font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.xfer-toggle-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.xfer-account-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s ease}.xfer-account-header:hover{background:color-mix(in srgb,var(--success) 14%,transparent)}.xfer-account-toggle{font-size:var(--text-micro);color:var(--text-tertiary);transition:transform .25s ease;transform:rotate(0);padding-left:var(--space-xs)}.xfer-account.expanded .xfer-account-toggle{transform:rotate(180deg)}.xfer-account-items{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 var(--space-md)}.xfer-account.expanded .xfer-account-items{max-height:2000px;padding:var(--space-xs) var(--space-md)}.xfer-account:not(.expanded) .xfer-account-header{border-bottom-color:transparent}.variance-empty{text-align:center;padding:var(--space-2xl) var(--space-xl)}.variance-empty-icon{font-size:48px;margin-bottom:var(--space-md);opacity:.5}.variance-empty-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-xs)}.variance-empty-desc{font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:var(--space-lg);max-width:280px;margin-left:auto;margin-right:auto;line-height:1.5}.variance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-lg)}.variance-stat{text-align:center;padding:var(--space-sm) 0}.variance-stat-label{font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-xs)}.variance-stat-value{font-size:var(--text-heading);font-weight:var(--font-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.variance-categories{display:flex;flex-direction:column;gap:var(--space-xs)}.variance-category{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);transition:background var(--duration-fast)}.variance-category:hover{background:var(--bg-tertiary)}.variance-cat-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-body);margin-bottom:6px}.variance-cat-header span:first-child{font-weight:var(--font-medium)}.variance-cat-header span:last-child{font-size:var(--text-caption);font-variant-numeric:tabular-nums}.variance-bar-track{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden;position:relative}.variance-bar-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.4,0,.2,1)}.variance-bar-over{height:100%;border-radius:0 3px 3px 0;position:absolute;top:0;opacity:.5}.review-badge{display:inline-block;font-size:11px;font-weight:var(--font-semibold);padding:3px 10px;border-radius:var(--radius-full);letter-spacing:.02em}.review-badge.reviewed{background:var(--success-light);color:var(--success)}.review-badge.pending{background:var(--warning-light);color:var(--warning)}.variance-pace{padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-lg)}.pace-track{position:relative;height:8px;background:var(--border-light);border-radius:4px;margin-bottom:var(--space-sm);overflow:visible}.pace-month-progress{position:absolute;top:0;left:0;height:100%;background:color-mix(in srgb,var(--text-secondary) 25%,transparent);border-radius:4px}.pace-spending-marker{position:absolute;top:-3px;width:3px;height:14px;background:var(--text-primary);border-radius:2px;transform:translate(-50%)}.pace-labels{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--text-secondary);margin-bottom:var(--space-xs)}.pace-projection{font-size:var(--text-caption);font-weight:var(--font-medium);text-align:center}.variance-action{text-align:center;margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border-light)}@media(max-width:480px){.variance-summary{grid-template-columns:1fr}}.variance-trend-chart-wrap{position:relative;height:260px;padding:var(--space-sm) 0}.variance-trend-horizon{display:flex;gap:2px;background:var(--bg-secondary);border-radius:var(--radius-full);padding:2px;margin-left:auto;flex-shrink:0}.horizon-btn{background:none;border:none;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast)}.horizon-btn.active{background:var(--bg-tertiary);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.variance-trend-insights{padding:var(--space-sm) var(--space-md) 0}.trend-insights-grid{display:flex;justify-content:center;gap:var(--space-xl);padding:var(--space-sm) 0 var(--space-md)}.trend-insight-stat{text-align:center}.trend-insight-value{font-size:var(--text-body);font-weight:var(--font-bold);font-variant-numeric:tabular-nums}.trend-insight-label{font-size:var(--text-micro);color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.trend-insight{font-size:var(--text-caption);color:var(--text-secondary);text-align:center;line-height:1.5}.variance-trend-categories{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.variance-cat-toggle{display:flex;align-items:center;gap:var(--space-xs);background:none;border:none;font-size:var(--text-caption);font-weight:var(--font-semibold);color:var(--text-secondary);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:color var(--duration-fast)}.variance-cat-toggle:hover{color:var(--text-primary)}.variance-cat-chevron{font-size:10px;transition:transform var(--duration-fast)}.variance-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-sm);padding:var(--space-sm) 0}.variance-cat-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.variance-cat-card-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-caption);margin-bottom:6px}.variance-cat-card-bar{position:relative;height:4px;background:var(--border-light);border-radius:2px;margin-bottom:4px}.variance-cat-card-bar-planned{position:absolute;top:0;left:0;height:100%;background:#5856d64d;border-radius:2px}.variance-cat-card-bar-actual{position:absolute;top:0;left:0;height:100%;border-radius:2px;transition:width .4s ease}.variance-cat-card-detail{display:flex;justify-content:space-between;font-size:10px;color:var(--text-tertiary)}@media(max-width:480px){.variance-trend-chart-wrap{height:200px}.trend-insights-grid{gap:var(--space-md);flex-wrap:wrap}.variance-cat-grid{grid-template-columns:1fr}}.recommendations-list{display:flex;flex-direction:column;gap:var(--space-sm)}.recommendation-item{display:flex;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid transparent;transition:transform var(--duration-fast),box-shadow var(--duration-fast)}.recommendation-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.recommendation-item.success{border-color:color-mix(in srgb,var(--success) 25%,transparent)}.recommendation-item.warning{border-color:color-mix(in srgb,var(--warning) 25%,transparent)}.recommendation-item.danger{border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.recommendation-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.recommendation-item.success .recommendation-icon{background:var(--success-light)}.recommendation-item.warning .recommendation-icon{background:var(--warning-light)}.recommendation-item.danger .recommendation-icon{background:var(--danger-light)}.recommendation-content{flex:1;min-width:0}.recommendation-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.recommendation-desc{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.5}.recommendation-severity{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:6px}.recommendation-item.success .recommendation-severity{background:var(--success)}.recommendation-item.warning .recommendation-severity{background:var(--warning)}.recommendation-item.danger .recommendation-severity{background:var(--danger)}.buffer-card--you{border-width:2px;box-shadow:0 4px 20px #0000000f}.buffer-card--you.person-0{border-color:var(--person-0)}.buffer-card--you.person-1{border-color:var(--person-1)}.buffer-card--you.person-2{border-color:var(--person-2)}.buffer-card--you.person-3{border-color:var(--person-3)}.buffer-card--you.person-4{border-color:var(--person-4)}.savings-person--you{border-width:2px}.savings-person--you.person-0{border-color:var(--person-0)}.savings-person--you.person-1{border-color:var(--person-1)}.savings-person--you.person-2{border-color:var(--person-2)}.savings-person--you.person-3{border-color:var(--person-3)}.savings-person--you.person-4{border-color:var(--person-4)}.dash-card--you{border:2px solid var(--primary);box-shadow:0 4px 20px #0071e30f}.share-column--you{flex:1}.share-column--you+.share-divider+.share-column{flex:1}.compact-view .dashboard-hero{padding:var(--space-md) var(--space-lg)}.compact-view .dashboard-title{font-size:var(--text-heading)}.compact-view .dashboard-subtitle{font-size:var(--text-small);margin-top:2px}.compact-view .metrics-section{padding:var(--space-sm);margin-bottom:var(--space-md)}.compact-view .metrics-row{gap:var(--space-sm);margin-bottom:var(--space-sm)}.compact-view .metric-card{padding:var(--space-sm) var(--space-md)}.compact-view .metric-icon{width:32px;height:32px;font-size:1rem;margin-bottom:var(--space-xs);flex-shrink:0}.compact-view .metric-value{font-size:clamp(16px,3vw,22px)}.compact-view .metric-label{font-size:var(--text-micro);margin-top:2px}.compact-view .metric-sub{font-size:10px;margin-top:4px;padding-top:4px}.compact-view .buffer-cards{gap:var(--space-sm)}.compact-view .buffer-card{padding:var(--space-sm) var(--space-md)}.compact-view .buffer-card-header{gap:var(--space-sm);margin-bottom:var(--space-sm)}.compact-view .buffer-avatar{width:32px;height:32px;font-size:12px;border-width:2px}.compact-view .buffer-name{font-size:var(--text-small)}.compact-view .buffer-income{font-size:10px}.compact-view .buffer-grid{gap:var(--space-xs)}.compact-view .buffer-item{padding:var(--space-xs)}.compact-view .buffer-item-value{font-size:clamp(10px,1.2vw,14px)}.compact-view .buffer-item-label{font-size:clamp(7px,.8vw,9px);margin-top:2px}.compact-view .dashboard-grid{gap:var(--space-sm)}.compact-view .dash-card{padding:var(--space-md);border-radius:var(--radius-lg)}.compact-view .dash-card:hover{transform:translateY(-1px)}.compact-view .dash-card-header{margin-bottom:var(--space-sm)}.compact-view .dash-card-icon{width:32px;height:32px;font-size:1rem}.compact-view .dash-card-header-left{gap:var(--space-sm)}.compact-view .dash-card-title{font-size:var(--text-small)}.compact-view .savings-person{padding:var(--space-sm)}.compact-view .savings-rate-ring{width:80px;height:80px}.compact-view .savings-rate-ring svg{width:80px;height:80px}.compact-view .savings-rate-value{font-size:var(--text-body)}.compact-view .savings-person-name{font-size:var(--text-small);margin-bottom:var(--space-xs)}.compact-view .savings-amounts{font-size:var(--text-small)}.compact-view .category-bar-row{padding:var(--space-xs) 0;gap:var(--space-xs)}.compact-view .category-bar-name,.compact-view .category-bar-amount{font-size:var(--text-small)}.compact-view .share-column{padding:var(--space-sm) var(--space-md)}.compact-view .share-name{font-size:var(--text-body)}.compact-view .share-stat-value{font-size:var(--text-small)}.compact-view .share-stat-label{font-size:var(--text-micro)}.compact-view .share-balance-label{font-size:var(--text-small)}.compact-view .share-balance-legend{font-size:var(--text-micro)}.compact-view .goal-card{padding:var(--space-sm) var(--space-md)}.compact-view .goal-name{font-size:var(--text-body)}.compact-view .goal-progress-text{font-size:var(--text-small)}.compact-view .projection-chart-card{padding:var(--space-sm)}.compact-view .horizon-pill{padding:6px 12px;font-size:var(--text-micro)}.compact-view .paycheck-card{padding:var(--space-sm) var(--space-md)}.compact-view .paycheck-card-name{font-size:var(--text-small)}.compact-view .paycheck-card-total{font-size:var(--text-body)}.compact-view .future-card{padding:var(--space-md)}.compact-view .future-total{font-size:var(--text-heading)}.compact-view .future-item{padding:var(--space-xs) 0}.compact-view .money-flow-section .dash-card-header{margin-bottom:var(--space-xs)}.compact-view .others-strip{gap:6px}.compact-view .other-card{padding:8px 10px;gap:6px}.compact-view .other-card .buffer-avatar{width:24px!important;height:24px!important;font-size:9px!important}.compact-view .others-strip-label{font-size:9px;margin-bottom:4px}.compact-view .other-card-name{font-size:var(--text-micro)}.compact-view .other-card-sub{font-size:9px}.compact-view .other-card-buffer-value{font-size:var(--text-small)}.compact-view .mini-ring{width:36px;height:36px}.compact-view .mini-ring-value{font-size:9px}.compact-view .other-savings-row{padding:6px 10px;gap:8px}.compact-view .other-savings-name{font-size:var(--text-micro)}.compact-view .other-savings-sub{font-size:9px}.compact-view .proposed-savings{gap:16px}.compact-view .your-savings{padding:var(--space-sm) var(--space-md)}.compact-view .your-savings .savings-rate-value{font-size:20px}.compact-view .your-savings-name{font-size:var(--text-small);margin-bottom:8px}.compact-view .your-savings-amount{font-size:var(--text-small)}.compact-view .your-buffer-card{padding:var(--space-md) var(--space-lg)}.compact-view .your-card-name{font-size:15px}.compact-view .your-stat{padding:10px 6px}.compact-view .your-stat-value{font-size:14px}.compact-view .proposed-share{gap:10px}.compact-view .your-share-col{padding:var(--space-sm) var(--space-md)}.compact-view .other-share-col{padding:var(--space-xs) var(--space-sm)}.compact-view .other-share-col .share-name{font-size:var(--text-small)}.compact-view .other-share-col .share-stat-value{font-size:var(--text-micro)}.compact-view .your-split-card{padding:var(--space-md)}.compact-view .your-split-card .shared-bar,.compact-view .your-split-card .split-bar{height:24px}.compact-view .split-legend{font-size:var(--text-micro);gap:10px}.compact-view .alert-banner{padding:var(--space-xs) var(--space-sm);font-size:var(--text-small)}.compact-view .recommendation-item{padding:var(--space-xs) var(--space-sm);gap:var(--space-sm)}.compact-view .recommendation-icon{width:28px;height:28px;font-size:14px}.compact-view .recommendation-title{font-size:var(--text-small);margin-bottom:1px}.compact-view .recommendation-desc{font-size:var(--text-micro);line-height:1.4}.compact-view .recommendation-text{font-size:var(--text-small)}.compact-view .category-bar-item{margin-bottom:12px}.compact-view .category-bar-header{margin-bottom:4px}.compact-view .category-bar-track{height:18px}.compact-view .category-bar-fill span{font-size:8px}.compact-view .shared-bar{height:32px}.compact-view .shared-legend{margin-top:6px;gap:var(--space-xs)}.compact-view .shared-legend-item{font-size:var(--text-micro)}.compact-view .shared-segment{font-size:9px}.compact-view .chart-container{height:150px}.compact-view .chart-container canvas{max-height:150px!important}.compact-view .chart-container-combined{height:220px}.compact-view .chart-container-combined canvas{max-height:220px!important}.compact-view .chart-legend{margin-top:var(--space-xs);gap:var(--space-xs)}.compact-view .future-grid{gap:var(--space-sm)}.compact-view .future-item{padding:var(--space-sm)}.compact-view .future-icon{font-size:22px;margin-bottom:4px}.compact-view .future-name{font-size:var(--text-small);margin-bottom:2px}.compact-view .future-amount{font-size:var(--text-body)}.compact-view .future-split{font-size:9px}.compact-view .share-column{padding:var(--space-sm)}.compact-view .share-stats{gap:var(--space-xs)}.compact-view .share-stat{padding:0}.compact-view .share-balance-bar{margin-top:12px;padding-top:10px}.compact-view .share-balance-visual{height:18px}.compact-view .share-balance-label{font-size:var(--text-micro);margin-bottom:6px}.compact-view .share-balance-legend{margin-top:6px}.compact-view .share-divider{margin:0 var(--space-xs)}.compact-view .money-flow-tabs{margin-bottom:var(--space-sm)}.compact-view .money-flow-tab{padding:6px var(--space-sm);font-size:var(--text-small)}.compact-view .money-flow-tab-icon{font-size:var(--text-small)}.compact-view .settlement-item{padding:5px 10px;margin-bottom:4px;font-size:var(--text-small)}.compact-view .settlement-item-amount{font-size:var(--text-small)}.compact-view .settlement-item-direction{font-size:9px;padding:1px 5px}.compact-view .settlement-person{gap:var(--space-xs)}.compact-view .settlement-amount{font-size:var(--text-heading)}.manage-templates-modal .version-modal{max-width:480px;border-radius:var(--radius-xl);overflow:hidden;position:relative}.manage-templates-modal .version-modal-close{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10;width:44px;height:44px;font-size:var(--text-body);background:var(--bg-secondary)}.manage-templates-header{text-align:center;padding:var(--space-xl) var(--space-xl) var(--space-md);border-bottom:1px solid var(--border-light)}.manage-templates-header h3{font-size:var(--text-heading);font-weight:var(--font-bold);margin-bottom:var(--space-xs);color:var(--text-primary)}.manage-templates-header p{font-size:var(--text-small);color:var(--text-secondary);margin:0}.manage-templates-list{padding:var(--space-md);max-height:400px;overflow-y:auto}.manage-template-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);background:var(--bg-secondary);border:1px solid transparent;transition:all var(--duration) ease}.manage-template-item:last-child{margin-bottom:0}.manage-template-item:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.manage-template-item.base{background:linear-gradient(135deg,#007aff14,#007aff0a);border-color:#007aff33}.manage-template-item.base:hover{border-color:#007aff66}.manage-template-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;background:linear-gradient(135deg,var(--person-0),#40a9ff);color:#fff;box-shadow:0 2px 8px #007aff4d}.manage-template-item.base .manage-template-icon{background:linear-gradient(135deg,#007aff,#5ac8fa)}.manage-template-info{flex:1;min-width:0}.manage-template-name{font-weight:var(--font-semibold);font-size:var(--text-body);color:var(--text-primary);margin-bottom:2px;display:flex;align-items:center;gap:var(--space-xs)}.manage-template-badge{font-size:9px;font-weight:var(--font-semibold);padding:2px 6px;border-radius:10px;background:var(--person-0);color:#fff;text-transform:uppercase;letter-spacing:.5px}.manage-template-usage{font-size:var(--text-small);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-template-actions{display:flex;gap:var(--space-xs);opacity:0;transition:opacity var(--duration) ease}.manage-template-item:hover .manage-template-actions{opacity:1}.manage-template-action-btn{width:44px;height:44px;border-radius:var(--radius-md);border:none;background:var(--bg-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--duration) ease;box-shadow:0 1px 3px #0000001a}.manage-template-action-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 2px 8px #00000026}.manage-template-action-btn.rename:hover{background:var(--person-0-light);color:var(--person-0)}.manage-template-action-btn.delete:hover:not(:disabled){background:var(--danger-light);color:var(--danger)}.manage-template-action-btn:disabled{opacity:.3;cursor:not-allowed}.manage-template-protected{font-size:var(--text-micro);color:var(--text-tertiary);padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-sm)}.manage-templates-footer{padding:var(--space-md) var(--space-xl) var(--space-xl);border-top:1px solid var(--border-light);display:flex;justify-content:center}.manage-templates-create-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);font-size:var(--text-small);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration) ease;width:100%;justify-content:center}.manage-templates-create-btn:hover{border-color:var(--person-0);color:var(--person-0);background:var(--person-0-light)}.manage-templates-create-btn .plus-icon{width:24px;height:24px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--duration) ease}.manage-templates-create-btn:hover .plus-icon{background:var(--person-0);color:#fff}.manage-template-protected{font-size:var(--text-small);color:var(--text-tertiary);font-style:italic}.budget-summary{max-width:1000px;margin:-30px auto 40px;padding:0 24px}.summary-compact-bar{display:none}.budget-summary-card{background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:var(--space-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.summary-hero{text-align:center;padding:var(--space-xs) 0}.summary-hero-value{font-size:clamp(1.5rem,4vw,2rem);font-weight:var(--font-bold);letter-spacing:-.03em;color:var(--text-primary);line-height:1.2}.summary-hero-label{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.05em}.summary-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);width:100%}.summary-stat-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-xs);text-align:center;transition:all var(--duration) var(--ease);border:1px solid transparent}.summary-stat-card:hover{background:var(--bg-primary);border-color:var(--border-light)}.summary-stat-card.expenses{background:#ff3b300f}.summary-stat-card.expenses:hover{background:#ff3b301a;border-color:#ff3b3033}.summary-stat-card.savings{background:#34c7590f}.summary-stat-card.savings:hover{background:#34c7591a;border-color:#34c75933}.summary-stat-card.reserves{background:#ff9f0a0f}.summary-stat-card.reserves:hover{background:#ff9f0a1a;border-color:#ff9f0a33}.summary-stat-card.reserves .summary-stat-value{color:var(--warning)}.summary-stat-card.unallocated{background:#007aff0f}.summary-stat-card.unallocated:hover{background:#007aff1a;border-color:#007aff33}.summary-stat-value{font-size:var(--text-subheading);font-weight:var(--font-bold)}.summary-stat-card.expenses .summary-stat-value{color:var(--danger)}.summary-stat-card.savings .summary-stat-value{color:var(--success)}.summary-stat-card.unallocated .summary-stat-value{color:var(--person-0)}.summary-stat-label{font-size:var(--text-micro);color:var(--text-secondary);margin-top:2px}.summary-stat-percent{font-size:var(--text-micro);color:var(--text-tertiary);margin-top:1px}.summary-person-toggle{display:flex;align-items:center;gap:var(--space-xs);padding:6px var(--space-sm);background:var(--bg-secondary);border:none;border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-micro);cursor:pointer;transition:all var(--duration) var(--ease)}.summary-person-toggle:hover{background:var(--bg-primary);color:var(--text-primary)}.summary-person-toggle .toggle-icon{transition:transform var(--duration) var(--ease);font-size:10px}.summary-person-toggle.expanded .toggle-icon{transform:rotate(180deg)}.summary-person-details{display:none;width:100%;grid-template-columns:1fr 1fr;gap:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.summary-person-details.show{display:grid}.summary-person-card{text-align:center;padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-secondary)}.summary-person-card.person-0{border-left:3px solid var(--person-0)}.summary-person-card.person-1{border-left:3px solid var(--person-1)}.summary-person-card.person-2{border-left:3px solid var(--person-2)}.summary-person-card.person-3{border-left:3px solid var(--person-3)}.summary-person-card.person-4{border-left:3px solid var(--person-4)}.summary-person-name{font-size:var(--text-micro);color:var(--text-secondary);margin-bottom:2px}.summary-person-value{font-size:var(--text-body);font-weight:var(--font-semibold)}.summary-person-card.person-0 .summary-person-value{color:var(--person-0)}.summary-person-card.person-1 .summary-person-value{color:var(--person-1)}.summary-person-card.person-2 .summary-person-value{color:var(--person-2)}.summary-person-card.person-3 .summary-person-value{color:var(--person-3)}.summary-person-card.person-4 .summary-person-value{color:var(--person-4)}.summary-person-sublabel{font-size:var(--text-micro);color:var(--text-tertiary)}.split-bar{display:flex;width:100%;height:6px;border-radius:3px;overflow:hidden;background:var(--bg-secondary);margin-top:4px}.split-bar-segment{height:100%;transition:width var(--duration) var(--ease);position:relative}.split-bar-segment.person-0{background:var(--person-0);border-radius:3px 0 0 3px}.split-bar-segment.person-1{background:var(--person-1)}.split-bar-segment.person-2{background:var(--person-2)}.split-bar-segment.person-3{background:var(--person-3)}.split-bar-segment.person-4{background:var(--person-4)}.split-bar-segment:last-child{border-radius:0 3px 3px 0}.budget-content{max-width:1000px;margin:0 auto;padding:0 var(--container-padding)}.budget-section{background:var(--bg-tertiary);border-radius:var(--radius-xl);margin-bottom:var(--space-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.budget-section.savings-section{border:2px solid var(--success)}.budget-section[data-category-type=expense]{background:linear-gradient(135deg,rgba(255,59,48,.02),var(--bg-tertiary))}.budget-section[data-category-type=savings]{background:linear-gradient(135deg,rgba(52,199,89,.02),var(--bg-tertiary))}.budget-section[data-category-type=reserve]{background:linear-gradient(135deg,rgba(255,149,0,.02),var(--bg-tertiary))}.budget-section[data-category-type=income]{background:linear-gradient(135deg,rgba(0,122,255,.02),var(--bg-tertiary))}.budget-section-header{padding:24px 28px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background var(--duration) var(--ease);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.budget-section-header:hover{background:var(--bg-secondary)}.budget-section-title{font-size:var(--text-lg);font-weight:var(--font-semibold);display:flex;align-items:center;gap:var(--space-sm)}.budget-section-title>span:first-child{font-size:var(--text-heading)}.budget-section-badge{font-size:9px;padding:2px 6px;border-radius:4px;font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.02em;opacity:.85;vertical-align:middle;margin-left:2px}.badge-expense{background:var(--danger-light);color:var(--danger)}.badge-savings{background:var(--success-light);color:var(--success)}.badge-reserve{background:var(--warning-light);color:var(--warning)}.badge-income{background:var(--person-0-light);color:var(--person-0)}.budget-section-total{display:flex;align-items:center;gap:var(--space-lg)}.budget-section-amount{font-size:var(--text-heading);font-weight:var(--font-bold)}.budget-section-toggle{width:28px;height:28px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-small);color:var(--text-secondary);transition:all var(--duration) var(--ease)}.budget-section.collapsed .budget-section-toggle{transform:rotate(-90deg)}.budget-section.collapsed .budget-section-header{border-radius:var(--radius-xl)}.budget-section-content{border-top:1px solid var(--border-light);overflow:hidden;transition:max-height .3s ease;border-radius:0 0 var(--radius-xl) var(--radius-xl);background:var(--bg-tertiary)}.budget-section.collapsed .budget-section-content{max-height:0;border-top:none}.budget-table-header{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,120px) 32px;gap:var(--space-sm);padding:10px 16px;background:var(--bg-secondary);font-size:var(--text-micro);font-weight:var(--font-semibold);text-transform:uppercase;color:var(--text-tertiary)}#section-income .budget-row{border-left:3px solid transparent}#section-income .budget-row:hover{border-left-color:var(--person-0)}.period-toggle{display:inline-flex;background:var(--bg-secondary);border-radius:var(--radius-xs);padding:2px;font-size:var(--text-micro);margin-left:8px;vertical-align:middle}.period-btn{padding:4px 8px;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:var(--text-micro);color:var(--text-secondary);transition:all var(--duration)}.period-btn.active{background:var(--person-0);color:#fff}.budget-table-header span:not(:first-child){text-align:right}.budget-row{display:grid;grid-template-columns:32px minmax(100px,1fr) 44px minmax(70px,110px) minmax(70px,110px) minmax(70px,110px) minmax(60px,80px) 44px 44px;grid-template-rows:auto auto;gap:var(--space-sm);padding:16px 20px;align-items:center;border-bottom:1px solid var(--border-light);transition:background var(--duration) var(--ease),transform .15s cubic-bezier(.2,0,0,1)}.budget-row.shared-item{background:linear-gradient(90deg,rgba(0,122,255,.03),transparent)}.budget-row.shared-item:hover{background:linear-gradient(90deg,#007aff0f,#00000003)}.budget-row:hover{background:#00000003}.budget-row:last-child{border-bottom:none}.budget-row.collapsed{grid-template-columns:minmax(100px,1fr) auto 32px;grid-template-rows:auto;cursor:pointer;padding:12px 16px}.budget-section.reorder-mode .budget-row.collapsed{grid-template-columns:32px minmax(100px,1fr) auto 32px}.budget-row.collapsed:hover{background:var(--bg-secondary)}.budget-row.collapsed .budget-row-controls{display:none!important}.budget-row.collapsed>.drag-handle{display:none;grid-column:1;grid-row:1}.budget-section.reorder-mode .budget-row.collapsed>.drag-handle{display:flex;opacity:1;pointer-events:auto}.budget-row.collapsed .budget-row-name{grid-column:1;overflow:visible;flex-wrap:wrap;min-width:0}.budget-section.reorder-mode .budget-row.collapsed .budget-row-name{grid-column:2}.budget-row.collapsed .budget-row-total,.budget-row.collapsed .budget-input.total-input{grid-column:2;grid-row:1}.budget-section.reorder-mode .budget-row.collapsed .budget-row-total,.budget-section.reorder-mode .budget-row.collapsed .budget-input.total-input{grid-column:3}.budget-row.collapsed .expand-indicator{display:flex;grid-column:3;grid-row:1}.budget-section.reorder-mode .budget-row.collapsed .expand-indicator{grid-column:4}.budget-row.collapsed .budget-row-split-collapsed{grid-column:1 / -1;grid-row:2;margin-top:4px}.budget-row-persons{display:none;font-size:var(--text-small);color:var(--text-tertiary);gap:8px}.budget-row.collapsed .budget-row-persons{display:flex;flex-wrap:wrap;grid-column:1 / -1;grid-row:2;margin-top:2px;padding-left:2px}.budget-row.collapsed .budget-row-split-collapsed~.budget-row-persons,.budget-row.collapsed .budget-row-persons:has(~.budget-row-split-collapsed){grid-row:3}.budget-row.collapsed.shared-item .budget-row-persons{grid-row:3}.person-amount{display:flex;gap:4px;white-space:nowrap;flex-shrink:0}.person-amount .person-label{font-weight:var(--font-medium)}.person-amount.person-0 .person-label{color:var(--person-0)}.person-amount.person-1 .person-label{color:var(--person-1)}.person-amount.person-2 .person-label{color:var(--person-2)}.person-amount.person-3 .person-label{color:var(--person-3)}.person-amount.person-4 .person-label{color:var(--person-4)}.expand-indicator{display:none;width:32px;height:32px;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:12px;transition:transform var(--duration) var(--ease)}.budget-row.expanded .expand-indicator{display:flex;transform:rotate(180deg)}.budget-row-split-collapsed{display:none}.budget-row.collapsed .budget-row-split-collapsed{display:block}.budget-row-split-collapsed .split-bar{height:4px}.budget-row.expanded{display:block;background:var(--bg-secondary);border-radius:var(--radius-md);margin:4px 0;border:1px solid var(--border-light);padding:16px}.budget-row.expanded .budget-row-name{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.budget-row.expanded .budget-row-name input{flex:1;font-size:var(--text-lg);font-weight:var(--font-semibold);padding:8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary)}.budget-row.expanded .budget-row-total,.budget-row.expanded .budget-input.total-input,.budget-row.expanded .expand-indicator,.budget-row.expanded .budget-row-split-collapsed{display:none}.budget-row.collapsed .budget-row-name input{pointer-events:none;background:transparent;border:none;padding:0 0 0 1px;font-weight:var(--font-medium)}.budget-row.collapsed .budget-row-name input:hover{background:transparent}.input-with-label{display:flex;flex-direction:column;gap:4px}.input-label{font-size:var(--text-micro);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.budget-row-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:var(--space-md);padding-top:var(--space-md);margin-top:var(--space-sm);border-top:1px solid var(--border-light)}.budget-row.collapsed .budget-row-controls{display:none}.budget-row>*{min-width:0}.budget-row-name{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.budget-row-name input{flex:1;min-width:0;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--font-medium);background:transparent;transition:all var(--duration) var(--ease);text-overflow:ellipsis;overflow:hidden}.budget-row-name input:hover{background:var(--bg-secondary)}.budget-row-name input:focus{outline:none;border-color:var(--person-0);background:var(--bg-tertiary);box-shadow:0 0 0 4px var(--person-0-light)}.budget-input{width:100%;padding:10px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:clamp(11px,1.2vw,14px);font-weight:var(--font-medium);text-align:right;background:var(--bg-primary);transition:all var(--duration) var(--ease);box-sizing:border-box;font-variant-numeric:tabular-nums;min-height:40px;box-shadow:inset 0 1px 2px #0000000a}.budget-input:hover{background:var(--bg-tertiary);border-color:var(--border-medium)}.budget-input:focus{outline:none;background:var(--bg-tertiary);box-shadow:inset 0 1px 2px #0000000a,0 0 0 3px var(--person-0-light)}.budget-input.person-0-input:focus{border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.budget-input.person-1-input:focus{border-color:var(--person-1);box-shadow:0 0 0 4px var(--person-1-light)}.budget-input.person-2-input:focus{border-color:var(--person-2);box-shadow:0 0 0 4px var(--person-2-light)}.budget-input.person-3-input:focus{border-color:var(--person-3);box-shadow:0 0 0 4px var(--person-3-light)}.budget-input.person-4-input:focus{border-color:var(--person-4);box-shadow:0 0 0 4px var(--person-4-light)}.budget-input.total-input{background:var(--success-light);font-weight:var(--font-bold);color:var(--success);border:1px solid rgba(52,199,89,.3)}.budget-input.total-input:hover{background:#34c75926}.budget-input.total-input:focus{border-color:var(--success);box-shadow:0 0 0 4px var(--success-light);background:#34c7591a}.budget-row-total{width:100%;font-size:clamp(10px,1.1vw,15px);font-weight:var(--font-semibold);text-align:right;padding:8px 4px;background:var(--bg-secondary);border-radius:var(--radius-sm);box-sizing:border-box;font-variant-numeric:tabular-nums}.budget-row-delete{width:44px;height:44px;border:none;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:var(--text-lg);transition:all var(--duration) var(--ease);display:flex;align-items:center;justify-content:center;flex-shrink:0}.budget-row-delete:hover{background:var(--danger-light);color:var(--danger);transform:scale(1.05)}.budget-row-delete:active{transform:scale(.95)}.budget-row-action-btn{width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:var(--text-body);transition:all var(--duration-fast) var(--ease);display:flex;align-items:center;justify-content:center;flex-shrink:0}.budget-row-action-btn:hover{background:var(--person-0-light);color:var(--person-0)}.move-cat-option{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer;font-size:var(--text-body);transition:all var(--duration-fast) var(--ease);text-align:left;width:100%}.move-cat-option:hover{background:var(--bg-secondary);border-color:var(--person-0)}.drag-handle{width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--duration) var(--ease);flex-shrink:0;touch-action:none;user-select:none;-webkit-user-select:none;opacity:0;pointer-events:none}.budget-section.reorder-mode .drag-handle{opacity:1;pointer-events:auto}.drag-handle:hover{background:var(--bg-secondary);color:var(--text-secondary)}.drag-handle:active{cursor:grabbing}.drag-handle-icon{display:flex;flex-direction:column;gap:3px}.drag-handle-icon span{display:block;width:14px;height:2px;background:currentColor;border-radius:1px}.budget-row.dragging{opacity:0;pointer-events:none}.drag-ghost{position:fixed;z-index:9999;pointer-events:none;background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:0 20px 40px #00000026,0 8px 16px #0000001a,0 0 0 1px #0000000d;transform:scale(1.02) rotate(1deg);transition:transform .15s cubic-bezier(.2,0,0,1);padding:12px 16px;min-width:280px;max-width:400px}.drag-ghost-content{display:flex;align-items:center;gap:var(--space-md)}.drag-ghost-name{font-weight:var(--font-semibold);font-size:var(--text-body);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-ghost-amount{font-weight:var(--font-medium);color:var(--text-secondary);font-size:var(--text-caption)}.budget-row.drag-over-above{transform:translateY(4px);transition:transform .15s cubic-bezier(.2,0,0,1)}.budget-row.drag-over-below{transform:translateY(-4px);transition:transform .15s cubic-bezier(.2,0,0,1)}body.is-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing!important}body.is-dragging *{cursor:grabbing!important}[data-theme=dark] .drag-ghost{box-shadow:0 20px 40px #0006,0 8px 16px #0000004d,0 0 0 1px #ffffff1a}.budget-row-wrapper{display:flex;flex-direction:column}.budget-row-note-inline{display:flex;align-items:flex-start;gap:var(--space-sm);padding:8px 12px 12px 16px;margin-top:-4px;background:linear-gradient(135deg,#0071e30a,#af52de0a);border-left:3px solid var(--person-0);border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm);font-size:var(--text-small);color:var(--text-secondary);line-height:1.5}.budget-row-note-inline .note-icon{font-size:var(--text-micro);opacity:.7;flex-shrink:0;margin-top:2px}.budget-row-note-inline .note-text{flex:1;word-break:break-word}.budget-row.has-note{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}.budget-row-note-inline+.budget-row{margin-top:8px}.shared-toggle{display:flex;align-items:center;justify-content:center}.shared-toggle-btn{width:40px;height:24px;border-radius:var(--radius-md);border:none;background:var(--bg-tertiary);cursor:pointer;position:relative;transition:all var(--duration-slow) var(--ease)}.shared-toggle-btn:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:44px;min-height:44px}.shared-toggle-btn:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:all var(--duration-slow) var(--ease);box-shadow:var(--shadow-sm)}.shared-toggle-btn.active{background:linear-gradient(135deg,var(--person-0),var(--person-1))}.shared-toggle-btn.active:after{left:19px}.shared-toggle-btn:hover{transform:scale(1.05)}.shared-badge{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-micro);font-weight:var(--font-semibold);color:var(--person-0);background:var(--person-0-light);padding:2px 6px;border-radius:4px;margin-left:8px;flex-shrink:0;white-space:nowrap;cursor:pointer;transition:opacity .15s ease}.shared-badge:active{opacity:.7}.shared-badge:before{content:"🔗";font-size:8px}.budget-add-btn{width:calc(100% - 2 * var(--space-md));padding:var(--space-md);border:2px dashed var(--border-light);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--text-small);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration) var(--ease);display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin:var(--space-sm) var(--space-md) var(--space-md);box-sizing:border-box}.budget-add-btn:hover{background:var(--person-0-light);border-color:var(--person-0);color:var(--person-0)}.budget-add-btn:active{transform:scale(.98)}.category-actions{display:flex;gap:var(--space-xs);margin-right:12px;opacity:0;transition:opacity var(--duration) var(--ease)}.budget-section-header:hover .category-actions{opacity:1}.category-action-btn{width:28px;height:28px;border:none;background:var(--bg-secondary);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-small);display:flex;align-items:center;justify-content:center;transition:all var(--duration) var(--ease)}.category-action-btn:hover{background:var(--bg-tertiary);transform:scale(1.05)}.category-action-btn.delete:hover{background:var(--danger-light)}.category-action-btn.reorder-btn{font-weight:700;letter-spacing:-1px}.category-action-btn.reorder-btn.active{background:var(--person-0-light);color:var(--person-0)}.category-action-btn.hidden{display:none}.add-category-btn{width:100%;padding:var(--space-lg);margin-top:16px;border:2px dashed var(--border-medium);background:transparent;border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-body);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration) var(--ease)}.add-category-btn:hover{border-color:var(--person-0);color:var(--person-0);background:var(--person-0-light)}.category-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3500;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.category-modal-overlay.show{opacity:1;visibility:visible}.category-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:90%;max-width:420px;box-shadow:var(--shadow-xl);transform:scale(.9) translateY(20px);transition:transform var(--duration-slow) var(--ease)}.category-modal-overlay.show .category-modal{transform:scale(1) translateY(0)}.category-modal-header{margin-bottom:24px}.category-modal-title{font-size:var(--text-heading);font-weight:var(--font-bold)}.category-modal-subtitle{font-size:var(--text-caption);color:var(--text-secondary);margin-top:4px}.category-form-group{margin-bottom:20px}.category-form-label{display:block;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}.category-form-input{width:100%;padding:12px 16px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-body);background:var(--bg-tertiary);transition:all var(--duration) var(--ease)}.category-form-input:focus{outline:none;border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.category-icon-picker{display:flex;gap:var(--space-xs);flex-wrap:wrap;max-height:192px;overflow-y:auto;padding:2px;-webkit-overflow-scrolling:touch}.category-icon-option{width:40px;height:40px;border:2px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-tertiary);font-size:18px;cursor:pointer;transition:all var(--duration) var(--ease);display:flex;align-items:center;justify-content:center;flex-shrink:0}.category-icon-option:hover{border-color:var(--text-secondary);transform:scale(1.05)}.category-icon-option.selected{border-color:var(--person-0);background:var(--person-0-light)}.category-custom-icon{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.category-custom-icon-label{font-size:var(--text-caption);color:var(--text-tertiary);white-space:nowrap}.category-custom-icon-input{width:56px;height:40px;text-align:center;font-size:20px;border:2px dashed var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);padding:0;transition:border-color var(--duration) var(--ease);font-family:inherit}.category-custom-icon-input:focus{outline:none;border-color:var(--person-0);border-style:solid;box-shadow:0 0 0 3px var(--person-0-light)}.category-custom-icon-input::placeholder{font-size:var(--text-caption);color:var(--text-muted)}.category-type-picker{display:flex;gap:var(--space-sm)}.category-type-option{flex:1;padding:var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-tertiary);cursor:pointer;text-align:center;transition:all var(--duration) var(--ease)}.category-type-option:hover{border-color:var(--text-secondary)}.category-type-option.selected{border-width:2px}.category-type-option.selected.type-expense{border-color:var(--danger);background:var(--danger-light)}.category-type-option.selected.type-savings{border-color:var(--success);background:var(--success-light)}.category-type-option.selected.type-reserve{border-color:var(--warning);background:var(--warning-light)}.category-type-label{font-size:var(--text-caption);font-weight:var(--font-semibold)}.category-type-desc{font-size:var(--text-micro);color:var(--text-secondary);margin-top:2px}.category-modal-actions{display:flex;gap:var(--space-md);margin-top:24px}.category-modal-actions .btn{flex:1;padding:14px}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;z-index:10000;transition:opacity .5s ease,visibility .5s ease}.login-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.login-card{background:#fff;border-radius:var(--radius-xl);padding:48px;width:90%;max-width:400px;text-align:center;box-shadow:var(--shadow-xl)}.login-logo{width:80px;height:80px;background:linear-gradient(135deg,#0071e3,#40a9ff);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:36px;font-weight:var(--font-bold);color:#fff}.login-title{font-size:28px;font-weight:var(--font-bold);color:#1d1d1f;margin-bottom:8px}.login-subtitle{font-size:var(--text-body);color:#86868b;margin-bottom:32px}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-md);width:100%;padding:14px 24px;border:1px solid #dadce0;border-radius:var(--radius-md);background:#fff;font-size:var(--text-body);font-weight:var(--font-medium);color:#3c4043;cursor:pointer;transition:all var(--duration) var(--ease)}.google-signin-btn:hover{background:#f8f9fa;box-shadow:var(--shadow-sm)}.google-signin-btn:active{transform:scale(.98)}.google-signin-btn svg{width:20px;height:20px}.login-info{font-size:var(--text-small);color:#86868b;margin-top:24px}.login-error{background:#fff0f0;color:#d32f2f;padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-caption);margin-top:16px;text-align:left;line-height:1.5}[data-theme=dark] .login-error{background:#d32f2f26;color:#ff6b6b}.login-loading{display:none;flex-direction:column;align-items:center;gap:var(--space-lg)}.login-loading.show{display:flex}.login-spinner{width:40px;height:40px;border:3px solid #e5e5e7;border-top-color:#0071e3;border-radius:50%;animation:spin 1s linear infinite}.user-profile{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px 0 3px;background:var(--bg-secondary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration) var(--ease)}.user-profile:hover{background:var(--bg-tertiary)}.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--person-0);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--font-semibold);color:#fff;overflow:hidden;flex-shrink:0}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-name{font-size:var(--text-caption);font-weight:var(--font-medium);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.members-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3600;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.members-modal-overlay.show{opacity:1;visibility:visible}.members-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:90%;max-width:450px;box-shadow:var(--shadow-xl);max-height:90vh;overflow-y:auto}.members-modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.members-modal-title{font-size:var(--text-heading);font-weight:var(--font-bold);margin-bottom:4px}.members-modal-subtitle{font-size:var(--text-caption);color:var(--text-secondary)}.members-modal-close{background:none;border:none;font-size:var(--text-title);cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.members-modal-close:hover{color:var(--text-primary)}.view-only-banner{background:var(--warning-light);color:var(--warning);padding:10px 16px;border-radius:var(--radius-md);font-size:var(--text-small);font-weight:var(--font-medium);text-align:center;margin-bottom:16px}.household-cards{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.household-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px;border:1px solid var(--border-light);transition:all var(--duration) var(--ease)}.household-card.is-you{border-color:var(--person-0);box-shadow:0 0 0 1px var(--person-0-light)}.hc-top{display:flex;align-items:center;gap:12px}.hc-avatar{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:var(--text-lg);flex-shrink:0;overflow:hidden}.hc-avatar img{width:100%;height:100%;object-fit:cover}.hc-info{flex:1;min-width:0}.hc-name-row{display:flex;align-items:center;gap:8px}.hc-name{font-weight:var(--font-semibold);font-size:var(--text-body)}.hc-badge{font-size:10px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.hc-badge.owner{background:var(--person-0-light);color:var(--person-0)}.hc-badge.member{background:var(--bg-tertiary);color:var(--text-secondary)}.hc-badge.you{background:var(--success-light);color:var(--success)}.hc-badge.local{background:var(--warning-light, rgba(255, 149, 0, .12));color:var(--warning)}.hc-email{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hc-meta{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.hc-permission{font-size:var(--text-small);color:var(--text-tertiary)}.hc-permission-select{font-size:var(--text-small);padding:4px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.hc-remove-btn{margin-left:auto;font-size:var(--text-small);color:var(--danger);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);font-weight:var(--font-medium)}.hc-remove-btn:hover{background:var(--danger-light)}.hc-edit-row{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}.hc-edit-row input[type=text]{flex:1;padding:6px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-small);background:var(--bg-primary);min-width:0}.hc-edit-row input[type=text]:focus{outline:2px solid var(--person-0);outline-offset:-2px;border-color:var(--person-0)}.hc-short-input{width:44px!important;flex:none!important;text-align:center}.hc-edit-row input[type=color]{width:44px;height:44px;min-width:44px;min-height:44px;border:none;border-radius:var(--radius-sm);cursor:pointer;padding:0;flex-shrink:0}.hc-edit-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.hc-edit-row input[type=color]::-webkit-color-swatch{border:none;border-radius:var(--radius-xs)}.hc-avatar-upload{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--bg-tertiary);cursor:pointer;font-size:14px;flex-shrink:0}.hc-avatar-upload:hover{background:var(--person-0-light)}.hc-avatar-upload input{display:none}.hc-salary-row{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light)}.hc-salary-label{font-size:var(--text-small);color:var(--text-secondary);white-space:nowrap}.hc-salary-select{padding:4px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-small);background:var(--bg-primary);color:var(--text-primary)}.hc-link-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}.hc-link-label{font-size:var(--text-small);color:var(--text-secondary);margin-bottom:6px}.hc-link-row{display:flex;gap:8px;align-items:center}.hc-link-row select,.hc-link-row input{flex:1;padding:8px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-small);background:var(--bg-primary);min-width:0}.hc-link-row select:focus,.hc-link-row input:focus{outline:2px solid var(--person-0);outline-offset:-2px;border-color:var(--person-0)}.hc-link-btn{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--person-0);color:#fff;font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;white-space:nowrap;flex-shrink:0}.hc-link-btn:hover{opacity:.9}.hc-or-divider{text-align:center;font-size:var(--text-small);color:var(--text-tertiary);margin:8px 0}.hc-local-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light)}.hc-convert-btn{font-size:var(--text-small);color:var(--text-tertiary);background:none;border:1px dashed var(--border-medium);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;transition:all .2s ease;width:100%}.hc-convert-btn:hover{color:var(--text-secondary);border-color:var(--text-tertiary);background:var(--bg-tertiary)}.hc-link-hint{font-size:var(--text-caption);color:var(--text-tertiary);margin-bottom:6px;line-height:1.3}.hc-invite-code-btn{font-size:var(--text-small);font-weight:var(--font-medium);font-family:inherit;color:var(--accent);background:var(--accent-light, rgba(0, 113, 227, .08));border:1px solid rgba(0,113,227,.2);border-radius:var(--radius-sm);padding:8px 12px;cursor:pointer;transition:all .2s ease;width:100%}.hc-invite-code-btn:hover{background:var(--accent-light, rgba(0, 113, 227, .14));border-color:var(--accent)}.household-card.is-local{border-style:dashed;border-color:var(--warning);opacity:.92}.hc-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 4px}.hc-seat-count{font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-tertiary)}.hc-add-actions{display:flex;gap:6px}.hc-add-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:6px 14px;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--accent);cursor:pointer;transition:all .2s ease}.hc-add-btn:hover{background:var(--accent);color:#fff}.hc-add-btn.hc-add-local{color:var(--warning);border-style:dashed}.hc-add-btn.hc-add-local:hover{background:var(--warning);color:#fff;border-style:solid}.members-actions{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border-light)}.btn-danger{background:var(--danger-light);color:var(--danger)}.member-error{text-align:center;color:var(--danger);padding:var(--space-lg);font-size:var(--text-caption)}.hc-demo-notice{text-align:center;padding:14px 16px;margin-top:8px;border-radius:var(--radius-md);background:var(--accent-light, rgba(0, 113, 227, .06));border:1px solid var(--accent-border, rgba(0, 113, 227, .15))}.hc-demo-notice p{margin:0;font-size:var(--text-small);color:var(--text-secondary);line-height:1.5}.household-hub{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-light)}.household-hub-row{display:flex;gap:10px;margin-bottom:10px}.household-hub-invite-row{margin-bottom:10px}.hub-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-primary);cursor:pointer;transition:all .2s ease;font-family:inherit}.hub-btn:hover{background:var(--accent-light, rgba(0, 113, 227, .06));border-color:#0071e333;color:var(--accent)}.hub-btn-icon{font-size:16px}.hub-btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.hub-btn-accent:hover{background:var(--accent-hover, #0077ED);color:#fff;border-color:var(--accent-hover, #0077ED)}.hub-btn-danger{color:var(--danger, #ff3b30);border-color:transparent;background:transparent}.hub-btn-danger:hover{background:#ff3b3014;border-color:#ff3b3033;color:var(--danger, #ff3b30)}.household-hub-leave-row{margin-bottom:4px}.sign-out-row{display:flex;justify-content:flex-end}.sign-out-btn{padding:8px 16px;border:none;background:var(--danger-light);color:var(--danger);border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;transition:all .2s ease;font-family:inherit}.sign-out-btn:hover{background:var(--danger);color:#fff}.join-household-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3700;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.join-household-overlay.show{opacity:1;visibility:visible}.join-household-modal{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:400px;padding:28px 24px}.join-header{text-align:center;margin-bottom:24px}.join-icon{font-size:40px;margin-bottom:8px}.join-title{font-size:var(--text-heading);font-weight:var(--font-bold);letter-spacing:-.3px;margin-bottom:4px}.join-desc{font-size:var(--text-small);color:var(--text-secondary)}.join-input-group{margin-bottom:20px}.join-label{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:6px;display:block}.join-code-input{width:100%;padding:14px 16px;border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:20px;font-weight:var(--font-bold);letter-spacing:4px;text-align:center;font-family:inherit;color:var(--text-primary);background:var(--bg-secondary);outline:none;transition:border-color .2s;text-transform:uppercase}.join-code-input:focus{border-color:var(--accent)}.join-code-input::placeholder{letter-spacing:2px;color:var(--text-tertiary);font-weight:400;font-size:16px}.join-error{background:var(--danger-light);color:var(--danger);padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--text-small);margin-bottom:16px;text-align:center}.join-actions{display:flex;gap:10px}.join-actions .btn{flex:1;padding:12px 20px;border:none;border-radius:var(--radius-md);font-size:var(--text-body);font-weight:var(--font-semibold);cursor:pointer;font-family:inherit;transition:all .2s ease}.join-actions .btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light)}.join-actions .btn-primary{background:var(--accent);color:#fff}.join-actions .btn-primary:hover{background:var(--accent-hover, #0077ED)}.join-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.invite-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3700;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.invite-modal-overlay.show{opacity:1;visibility:visible}.invite-modal{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:400px;padding:28px 24px}.invite-section{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:20px;text-align:center}.invite-section-label{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:4px}.invite-hint{font-size:var(--text-caption);color:var(--text-tertiary);line-height:1.4;margin-bottom:8px}.invite-hint strong{color:var(--text-secondary);font-weight:var(--font-semibold)}.invite-code-display{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0}.invite-code-box{font-size:28px;font-weight:700;letter-spacing:6px;color:var(--accent);background:var(--accent-light, rgba(0, 113, 227, .06));padding:12px 24px;border-radius:var(--radius-md);font-family:SF Mono,Menlo,Consolas,monospace}.copy-btn{width:40px;height:40px;border:1px solid var(--border-medium, rgba(0, 0, 0, .15));background:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s}.copy-btn:hover{background:var(--accent-light, rgba(0, 113, 227, .08));border-color:var(--accent)}.invite-expiry{font-size:var(--text-small);color:var(--text-tertiary)}.invite-expiry a{color:var(--accent);text-decoration:none;cursor:pointer;font-weight:var(--font-semibold);padding:2px 8px;border-radius:var(--radius-sm);background:var(--accent-light, rgba(0, 113, 227, .08))}.invite-expiry a:hover{text-decoration:underline;background:var(--accent-light, rgba(0, 113, 227, .14))}.invite-or{margin:20px 0;display:flex;align-items:center;gap:12px;color:var(--text-tertiary);font-size:var(--text-small)}.invite-or:before,.invite-or:after{content:"";flex:1;height:1px;background:var(--border-light)}.invite-email-row{display:flex;gap:8px}.invite-email-input{flex:1;padding:10px 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-small);font-family:inherit;outline:none;background:var(--bg-secondary);color:var(--text-primary)}.invite-email-input:focus{border-color:var(--accent)}.invite-send-btn{padding:10px 18px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;font-family:inherit}.invite-send-btn:hover{background:var(--accent-hover, #0077ED)}.welcome-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:10100;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.welcome-overlay.show{opacity:1;visibility:visible}.welcome-card{background:var(--bg-primary);border-radius:var(--radius-xl);padding:32px 24px;text-align:center;box-shadow:var(--shadow-xl);max-width:380px;width:90%}.welcome-emoji{font-size:48px;margin-bottom:12px}.welcome-title{font-size:24px;font-weight:var(--font-bold);letter-spacing:-.3px;margin-bottom:6px}.welcome-msg{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:24px;line-height:1.6}.welcome-household{display:flex;align-items:center;gap:14px;padding:16px;background:var(--accent-light, rgba(0, 113, 227, .06));border:1px solid rgba(0,113,227,.15);border-radius:var(--radius-md);margin-bottom:20px;text-align:left}.welcome-household-icon{font-size:32px}.welcome-household-name{font-size:16px;font-weight:var(--font-semibold)}.welcome-household-meta{font-size:var(--text-small);color:var(--text-secondary)}.welcome-actions{display:flex;flex-direction:column;gap:10px}.welcome-btn{width:100%;padding:14px;border-radius:var(--radius-md);font-size:16px;font-weight:var(--font-semibold);cursor:pointer;font-family:inherit;transition:all .2s ease;border:none}.welcome-btn-primary{background:var(--accent);color:#fff}.welcome-btn-primary:hover{background:var(--accent-hover, #0077ED)}.household-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.household-picker-overlay.show{opacity:1;visibility:visible}.household-picker{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--glass-shadow);width:90%;max-width:440px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;transform:scale(.95);transition:transform .25s ease}.household-picker-overlay.show .household-picker{transform:scale(1)}.household-picker-header{padding:24px 24px 16px;text-align:center;position:relative}.household-picker-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:var(--text-title);cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.household-picker-close:hover{color:var(--text-primary)}.household-picker-title{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.household-picker-subtitle{font-size:var(--text-caption);color:var(--text-secondary);margin:4px 0 0}.household-picker-list{padding:0 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:8px}.household-picker-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1px solid var(--border-light);background:var(--bg-tertiary);cursor:pointer;transition:all .2s ease;text-align:left;width:100%;font-family:inherit;font-size:inherit;color:inherit}.household-picker-card:hover{border-color:var(--primary);background:var(--primary-light);transform:translateY(-1px);box-shadow:0 4px 12px #0071e31f}.household-picker-card:active{transform:translateY(0)}.household-picker-card.hpc-create{border-style:dashed;border-color:var(--border-medium);background:transparent}.household-picker-card.hpc-create:hover{border-color:var(--primary);border-style:dashed;background:var(--primary-light)}.hpc-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.hpc-icon-add{background:transparent;border:2px dashed var(--border-medium);font-size:22px;font-weight:300;color:var(--text-secondary)}.hpc-info{flex:1;min-width:0}.hpc-name{font-weight:var(--font-semibold);font-size:var(--text-body);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hpc-meta{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.hpc-dot{margin:0 4px}.hpc-badge{font-size:11px;font-weight:var(--font-semibold);padding:3px 8px;border-radius:6px;flex-shrink:0;text-transform:capitalize}.hpc-badge.owner{background:var(--primary-light);color:var(--primary)}.hpc-badge.member{background:var(--bg-secondary);color:var(--text-secondary)}.household-picker-card-wrapper{display:flex;align-items:center;gap:8px}.household-picker-card-wrapper .household-picker-card{flex:1;min-width:0}.hpc-delete-btn{flex-shrink:0;width:36px;height:36px;border-radius:10px;border:1px solid var(--border-light);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.hpc-delete-btn:hover{background:#ff3b301a;border-color:var(--danger);color:var(--danger)}.household-picker-footer{padding:16px 24px 20px;border-top:1px solid var(--border-light)}.household-picker-remember{display:flex;align-items:center;gap:8px;font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer}.household-picker-remember input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.household-picker-actions{display:flex;gap:10px;padding:0 24px 20px}.picker-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 14px;border:1px dashed var(--border-light);border-radius:var(--radius-md);background:transparent;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .2s ease}.picker-action-btn:hover{border-style:solid;border-color:var(--accent);color:var(--accent);background:var(--accent-light, rgba(0, 113, 227, .06))}.household-create-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10001;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.household-create-overlay.show{opacity:1;visibility:visible}.household-create-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--glass-shadow);width:90%;max-width:400px;overflow:hidden}.household-create-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px}.household-create-header h2{font-size:var(--text-subheading);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.household-create-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.household-create-close:hover{background:var(--bg-tertiary)}.household-create-body{padding:8px 24px 16px}.household-create-label{display:block;font-size:var(--text-caption);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:6px}.household-create-input{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--border-medium);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-body);font-family:inherit;outline:none;transition:border-color .2s ease;box-sizing:border-box}.household-create-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0071e31a}.household-create-hint{font-size:var(--text-small);color:var(--text-tertiary);margin-top:6px}.household-create-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 24px 20px}.export-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:3600;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.export-modal-overlay.show{opacity:1;visibility:visible}.export-modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:90%;max-width:480px;box-shadow:var(--shadow-xl);max-height:90vh;overflow-y:auto}.export-modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.export-modal-title{font-size:var(--text-heading);font-weight:var(--font-bold);margin-bottom:4px}.export-modal-subtitle{font-size:var(--text-caption);color:var(--text-secondary)}.export-modal-close{background:none;border:none;font-size:var(--text-title);cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.export-modal-close:hover{color:var(--text-primary)}.export-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.export-option-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease);text-align:center}.export-option-card:hover{border-color:var(--person-0);background:var(--person-0-light);transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.export-option-icon{width:56px;height:56px;border-radius:var(--radius-md);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--duration) var(--ease)}.export-option-card:hover .export-option-icon{background:var(--person-0);color:#fff}.export-option-label{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.export-option-desc{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4}.export-preview{border-top:1px solid var(--border-light);padding-top:20px}.export-preview canvas{width:100%;border-radius:var(--radius-md);box-shadow:0 4px 24px #0000001f}.export-preview-actions{display:flex;gap:8px;margin-top:16px;justify-content:center}.export-preview-actions .btn{flex:1;max-width:200px}@media(max-width:480px){.export-options{grid-template-columns:1fr}.export-modal{padding:20px}}.sync-status{display:flex;align-items:center;gap:5px;font-size:var(--text-micro);font-weight:var(--font-medium);color:var(--text-secondary);height:34px;padding:0 12px;background:var(--bg-secondary);border-radius:var(--radius-full)}.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);transition:background .3s ease}.sync-dot.synced{background:var(--success)}.sync-dot.syncing{background:var(--warning);animation:pulse 1s infinite}.sync-dot.error{background:var(--danger)}.sync-dot.offline{background:var(--text-tertiary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.toast{position:fixed;bottom:32px;right:32px;transform:translateY(100px);background:var(--bg-tertiary);color:var(--text-primary);padding:14px 24px;border-radius:var(--radius-md);font-size:var(--text-body);font-weight:var(--font-medium);box-shadow:var(--shadow-xl);border:1px solid var(--border-light);opacity:0;transition:all var(--duration-slow) var(--ease);z-index:10000}.toast.show{transform:translateY(0);opacity:1}.confirm-modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);justify-content:center;align-items:center;opacity:0;transition:opacity .2s ease}.confirm-modal-overlay.show{opacity:1}.confirm-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:340px;width:90%;padding:var(--space-xl) var(--space-lg) var(--space-lg);text-align:center;transform:scale(.92);transition:transform .2s ease}.confirm-modal-overlay.show .confirm-modal{transform:scale(1)}.confirm-modal-icon{font-size:2.5rem;margin-bottom:var(--space-sm);line-height:1}.confirm-modal-title{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--space-xs)}.confirm-modal-message{font-size:var(--text-body);color:var(--text-secondary);margin:0 0 var(--space-lg);line-height:1.5}.confirm-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.confirm-modal-cancel{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-weight:var(--font-semibold);font-size:var(--text-body);cursor:pointer;transition:all var(--duration) ease}.confirm-modal-cancel:hover{background:var(--bg-tertiary)}.confirm-modal-confirm{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-weight:var(--font-semibold);font-size:var(--text-body);cursor:pointer;border:none;transition:all var(--duration) ease}.confirm-modal-confirm.confirm-danger{background:var(--danger);color:#fff}.confirm-modal-confirm.confirm-danger:hover{filter:brightness(1.1)}.confirm-modal-confirm.confirm-primary{background:var(--primary);color:#fff}.confirm-modal-confirm.confirm-primary:hover{filter:brightness(1.1)}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:10001;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none;width:auto;max-width:90%}.undo-toast{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);background:var(--bg-tertiary);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-body);color:var(--text-primary);transform:translateY(20px);opacity:0;transition:all .3s var(--ease);pointer-events:auto;white-space:nowrap}.undo-toast.show{transform:translateY(0);opacity:1}.undo-toast-message{flex:1}.undo-toast-btn{background:transparent;border:none;color:var(--primary);font-weight:var(--font-bold);font-size:var(--text-body);cursor:pointer;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);transition:background var(--duration) ease;white-space:nowrap}.undo-toast-btn:hover{background:#0071e31a}@media(max-width:480px){.toast-container{bottom:calc(env(safe-area-inset-bottom,0px) + 70px);left:var(--space-md);right:var(--space-md);transform:none;max-width:none}.confirm-modal{max-width:calc(100% - 2 * var(--space-md))}}@media(max-width:1200px){.future-grid{grid-template-columns:repeat(3,1fr)}}.review-modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);justify-content:center;align-items:center}.review-modal-overlay.show{display:flex}.review-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:680px;max-height:85vh;overflow-y:auto;padding:var(--space-lg)}.review-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.review-modal-header h2{font-size:var(--text-heading);font-weight:var(--font-bold);margin:0}.modal-close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.modal-close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.review-summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin-bottom:var(--space-md)}.review-summary-card{text-align:center;padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-md)}.review-summary-label{font-size:var(--text-small);color:var(--text-secondary);margin-bottom:4px}.review-summary-value{font-size:var(--text-lg);font-weight:var(--font-bold);font-variant-numeric:tabular-nums}.review-bulk-actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-sm)}.review-bulk-actions .btn-sm{font-size:var(--text-small);padding:4px 12px}.review-column-headers{display:grid;grid-template-columns:1fr 90px 110px 36px 90px;gap:var(--space-xs);padding:var(--space-xs) 0;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-light);margin-bottom:var(--space-sm)}.review-column-headers div:nth-child(2),.review-column-headers div:nth-child(3),.review-column-headers div:nth-child(5){text-align:right}.review-type-header{font-size:var(--text-small);font-weight:var(--font-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-sm) 0 var(--space-xs);margin-top:var(--space-sm)}.review-type-header:first-child{margin-top:0}.review-category{margin-bottom:var(--space-xs)}.review-category-header{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px;padding:var(--space-xs) 0;border-bottom:1px solid var(--border-light)}.review-item{display:grid;grid-template-columns:1fr 90px 110px 36px 90px;gap:var(--space-xs);align-items:center;padding:var(--space-xs) 0;font-size:var(--text-body)}.review-item-name{font-weight:var(--font-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-item-planned{color:var(--text-secondary);font-size:var(--text-small);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.review-item-input{width:100%;padding:6px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-body);font-variant-numeric:tabular-nums;text-align:right;background:var(--bg-secondary);box-sizing:border-box}.review-item-input:focus{border-color:var(--person-0);box-shadow:0 0 0 3px var(--person-0-light);outline:none}.as-planned-btn{white-space:nowrap;padding:6px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--text-small);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration-fast);flex-shrink:0}.as-planned-btn:hover{border-color:var(--success);color:var(--success)}.as-planned-btn.active{background:var(--success-light);border-color:var(--success);color:var(--success)}.review-item-variance{font-weight:var(--font-semibold);font-size:var(--text-small);white-space:nowrap;text-align:right}.review-item-variance.over{color:var(--danger)}.review-item-variance.under{color:var(--success)}.review-item-variance.on-budget{color:var(--text-secondary)}.review-notes-section{margin-top:var(--space-md)}.review-notes-section label{display:block;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);margin-bottom:var(--space-xs)}.review-notes-input{width:100%;padding:var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-body);resize:vertical;font-family:inherit;background:var(--bg-secondary)}.review-notes-input:focus{border-color:var(--person-0);box-shadow:0 0 0 3px var(--person-0-light);outline:none}.review-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-light)}.review-actions #review-unreview-btn{color:var(--warning);border:1px solid var(--warning);background:transparent}.review-actions #review-unreview-btn:hover{background:var(--warning-light)}@media(max-width:600px){.review-column-headers,.review-item{grid-template-columns:1fr 80px 90px 32px 70px}}@media(max-width:480px){.review-column-headers{grid-template-columns:1fr auto}.review-column-headers div:nth-child(3),.review-column-headers div:nth-child(4),.review-column-headers div:nth-child(5){display:none}.review-item{grid-template-columns:1fr auto}.review-item-input{grid-column:1 / -1}.as-planned-btn,.review-item-variance{display:none}.review-summary-row{grid-template-columns:1fr}}.audit-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;z-index:1000;transition:all var(--duration-slow) var(--ease)}.audit-modal-overlay.show{display:flex}.audit-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:600px;max-height:80vh;overflow-y:auto;padding:var(--space-lg)}.audit-modal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.audit-modal-header h2{font-size:var(--text-heading);font-weight:var(--font-bold);margin:0;color:var(--text-primary)}.audit-filters{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}.audit-filter-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);padding:6px 16px;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--duration) var(--ease)}.audit-filter-btn:hover{background:var(--bg-tertiary);border-color:var(--border-medium);color:var(--text-primary)}.audit-filter-btn.active{background:var(--person-0);border-color:var(--person-0);color:#fff}.audit-log-list{display:flex;flex-direction:column}.audit-entry{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-light)}.audit-entry:last-child{border-bottom:none}.audit-entry-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-small);flex-shrink:0;background:var(--bg-secondary)}.audit-entry.budget .audit-entry-icon{background:var(--person-0-light)}.audit-entry.settings .audit-entry-icon{background:var(--warning-light)}.audit-entry.members .audit-entry-icon{background:var(--person-1-light)}.audit-entry-content{display:flex;flex-direction:column;flex:1;min-width:0}.audit-entry-action{font-weight:var(--font-semibold);font-size:var(--text-body);color:var(--text-primary)}.audit-entry-detail{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.audit-entry-time{font-size:var(--text-micro);color:var(--text-muted);margin-left:auto;white-space:nowrap;flex-shrink:0;padding-top:2px}.audit-empty{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--text-secondary);font-size:var(--text-body)}[data-theme=dark] .audit-modal{box-shadow:var(--shadow-xl),inset 0 0 0 .5px #ffffff0f}[data-theme=dark] .audit-filter-btn{border-color:var(--border-medium)}[data-theme=dark] .audit-filter-btn.active{border-color:var(--person-0)}[data-theme=dark] .audit-entry{border-bottom-color:var(--border-medium)}@media(max-width:480px){.audit-modal{width:100%;max-width:100%;max-height:90vh;border-radius:var(--radius-md);padding:var(--space-md)}.audit-modal-header h2{font-size:var(--text-lg)}.audit-filters{gap:6px}.audit-filter-btn{padding:5px 12px;font-size:var(--text-micro)}.audit-entry{gap:var(--space-sm)}.audit-entry-time{font-size:10px}}.new-user-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:4000;opacity:0;visibility:hidden;transition:all var(--duration-slow) var(--ease)}.new-user-overlay.show{opacity:1;visibility:visible}.new-user-card{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;padding:32px 24px;text-align:center}.new-user-icon{font-size:48px;margin-bottom:8px}.new-user-title{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:4px}.new-user-subtitle{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:24px}.new-user-options{display:flex;flex-direction:column;gap:12px}.new-user-option{display:flex;align-items:center;gap:16px;padding:16px;border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit}.new-user-option:hover{border-color:var(--accent);background:var(--accent-light, rgba(0, 113, 227, .06))}.new-user-option-icon{font-size:28px;flex-shrink:0}.new-user-option-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.new-user-option-desc{font-size:var(--text-caption);color:var(--text-secondary);margin-top:2px}.new-user-join-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-light)}.new-user-join-prompt{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:12px}.new-user-join-options{display:flex;gap:8px}.new-user-join-btn{flex:1;padding:12px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-primary);cursor:pointer;transition:all .2s ease;font-family:inherit}.new-user-join-btn:hover{border-color:var(--accent);color:var(--accent)}.new-user-join-info{margin-top:16px;padding:14px;background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-small);color:var(--text-secondary);line-height:1.5;text-align:left}.calendar-page{padding:var(--space-xl);padding-top:100px;padding-bottom:100px;max-width:1400px;margin:0 auto}.calendar-header{margin-bottom:var(--space-xl)}.calendar-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg)}.calendar-title{font-size:28px;font-weight:var(--font-semibold);margin:0 0 8px}.calendar-subtitle{font-size:var(--text-body);color:var(--text-secondary);margin:0}.calendar-year-nav{display:flex;align-items:center;gap:var(--space-sm);background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-full);padding:4px 8px}.calendar-year{font-size:var(--text-heading);font-weight:var(--font-semibold);min-width:60px;text-align:center}.calendar-container{display:flex;flex-direction:column;gap:var(--space-xl)}.calendar-months-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.month-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative;overflow:hidden}.month-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #0000001f;border-color:#0071e34d}.month-card.past-month{opacity:.8}.month-card.past-month:hover{opacity:1;transform:translateY(-1px);box-shadow:0 8px 24px #00000014}.month-card-template.snapshot{background:var(--success-light);color:var(--success);font-weight:var(--font-medium);border-radius:var(--radius-full)}.month-card.current-month{border:2px solid var(--person-0);box-shadow:var(--glass-shadow),0 0 20px #0071e326}.month-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.month-card-name{font-size:var(--text-subheading);font-weight:var(--font-semibold);color:var(--text-primary)}.month-card-template{font-size:var(--text-small);padding:4px 8px;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-card-template.custom{background:var(--person-0-light);color:var(--person-0)}.month-card-values{display:flex;flex-direction:column;gap:var(--space-sm)}.month-card-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-small)}.month-card-label{color:var(--text-secondary)}.month-card-value{font-weight:var(--font-medium);font-family:var(--font-mono)}.month-card-value.income{color:var(--success)}.month-card-value.expense{color:var(--danger)}.month-card-value.savings{color:var(--person-0)}.month-card-divider{height:1px;background:var(--border-light);margin:var(--space-sm) 0}.month-card-edit-hint{position:absolute;bottom:var(--space-sm);right:var(--space-sm);font-size:10px;color:var(--text-tertiary);opacity:0;transition:opacity var(--duration)}.month-card:hover .month-card-edit-hint{opacity:1}.month-card.past-month .month-card-edit-hint{display:block}.snapshot-editor-modal{max-width:680px;max-height:85vh;display:flex;flex-direction:column}.snapshot-editor-modal .version-modal-body{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.snapshot-warning{background:var(--warning-light);color:var(--text-primary);padding:var(--space-md) var(--space-lg);margin:0 var(--space-xl) var(--space-md);border-radius:var(--radius-md);font-size:var(--text-small);font-weight:var(--font-medium);line-height:1.5;border-left:4px solid var(--warning)}.snapshot-section{margin-bottom:var(--space-lg)}.snapshot-section-title{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:2px solid var(--border-light)}.snapshot-item{display:grid;grid-template-columns:1fr 110px 110px;gap:var(--space-sm);align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-light);transition:background var(--duration) var(--ease)}.snapshot-item:hover{background:var(--bg-secondary);border-radius:var(--radius-sm);margin:0 calc(var(--space-sm) * -1);padding-left:var(--space-sm);padding-right:var(--space-sm)}.snapshot-item:last-child{border-bottom:none}.snapshot-item-name{font-size:var(--text-body);font-weight:var(--font-medium);color:var(--text-primary)}.snapshot-item input{width:100%;padding:10px 12px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:var(--text-body);text-align:right;background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease);-moz-appearance:textfield}.snapshot-item input::-webkit-outer-spin-button,.snapshot-item input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.snapshot-item input:focus{outline:none;border-color:var(--person-0);box-shadow:0 0 0 3px var(--person-0-light)}.snapshot-item-header{border-bottom:none;padding-bottom:0}.snapshot-item-header:hover{background:transparent;margin:0;padding-left:0;padding-right:0}.snapshot-person-label{font-size:var(--text-micro);font-weight:var(--font-semibold);color:var(--text-secondary);text-align:center;text-transform:uppercase;letter-spacing:.3px}.snapshot-section-title .type-badge{font-size:var(--text-micro);padding:2px 8px;border-radius:var(--radius-full);font-weight:var(--font-medium);text-transform:none;letter-spacing:0;vertical-align:middle;margin-left:var(--space-xs)}.calendar-onetime-section{background:var(--bg-tertiary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-light)}.calendar-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.calendar-section-header h3{margin:0;font-size:var(--text-subheading);font-weight:var(--font-semibold)}.onetime-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md)}.onetime-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-secondary);border-radius:var(--radius-md);transition:all var(--duration)}.onetime-item:hover{background:var(--bg-primary);box-shadow:var(--shadow-sm)}.onetime-info{display:flex;flex-direction:column;gap:2px}.onetime-month{font-size:var(--text-micro);font-weight:var(--font-semibold);color:var(--person-0);text-transform:uppercase}.onetime-name{font-size:var(--text-body);font-weight:var(--font-medium)}.onetime-payer{font-size:var(--text-small);color:var(--text-secondary)}.onetime-amount{font-size:var(--text-subheading);font-weight:var(--font-semibold)}.onetime-delete{margin-left:12px;padding:4px 8px;font-size:var(--text-small);color:var(--danger);background:var(--danger-light);border:none;border-radius:var(--radius-xs);cursor:pointer;opacity:0;transition:opacity var(--duration)}.onetime-item:hover .onetime-delete{opacity:1}.onetime-item.reserve-funded{border-left:3px solid var(--warning);background:color-mix(in srgb,var(--warning) 6%,var(--bg-secondary))}.onetime-reserve-badge{display:inline-block;font-size:9px;font-weight:var(--font-semibold);color:var(--warning);background:var(--warning-light);padding:1px 6px;border-radius:var(--radius-xs);margin-left:6px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.onetime-reserve-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:var(--font-medium)}.onetime-reserve-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--warning);cursor:pointer}.onetime-reserve-toggle-label{color:var(--warning);font-weight:var(--font-semibold)}.onetime-reserve-hint{font-size:var(--text-micro, 11px);color:var(--text-tertiary);margin-top:4px;line-height:1.4}.calendar-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-md)}.summary-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);text-align:center;transition:transform .2s ease,box-shadow .2s ease}.summary-card.highlight{background:var(--success-light);border-color:var(--success)}.summary-label{font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:8px}.summary-value{font-size:var(--text-title);font-weight:var(--font-semibold)}.summary-card.highlight .summary-value{color:var(--success)}.onetime-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--duration-slow);z-index:2000}.onetime-modal-overlay.show{opacity:1;visibility:visible}.onetime-modal{background:var(--bg-tertiary);border-radius:var(--radius-lg);width:90%;max-width:400px;transform:scale(.9);transition:transform var(--duration-slow)}.onetime-modal-overlay.show .onetime-modal{transform:scale(1)}.onetime-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-light)}.onetime-modal-header h3{margin:0;font-size:var(--text-lg)}.onetime-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-secondary);font-size:var(--text-heading);cursor:pointer}.onetime-modal-body{padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.onetime-form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.onetime-form-group label{font-size:var(--text-caption);font-weight:var(--font-medium);color:var(--text-secondary)}.onetime-form-group input,.onetime-form-group select{padding:12px 16px;font-size:var(--text-subheading);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.onetime-form-group input:focus,.onetime-form-group select:focus{outline:none;border-color:var(--person-0)}.onetime-modal-footer{display:flex;gap:var(--space-md);justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border-light)}@media(min-width:768px)and (max-width:1199px){.nav-container{display:flex!important}.mobile-header,.bottom-tab-bar{display:none!important}.page{padding-top:60px;padding-bottom:0}.nav-inner{padding:10px var(--container-padding)}.nav-tab{padding:7px 14px;font-size:var(--text-caption)}.nav-brand{font-size:var(--text-body)}.nav-actions .btn-ghost,.nav-actions .btn-icon{height:36px}.nav-actions .btn-icon{width:36px}.sync-status,.user-profile{height:36px}}@media(max-width:1199px)and (min-width:1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.dash-card.span-4,.dash-card.span-5,.dash-card.span-6,.dash-card.span-7{grid-column:span 1}.dash-card.span-12{grid-column:span 2}.buffer-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg)}.income-split{flex-direction:row;align-items:flex-start;gap:var(--space-xl)}.income-donut{width:180px;height:180px}.savings-comparison{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-lg)}.savings-rate-ring{width:100px;height:100px}.calendar-months-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.budget-row{grid-template-columns:28px 1fr 40px 100px 100px 100px 80px 44px 44px;padding:14px 20px;gap:8px;min-height:56px}.budget-input{font-size:var(--text-caption);padding:10px 8px;min-height:44px}.budget-row-total{font-size:var(--text-caption);padding:10px 8px}}@media(max-width:1023px)and (min-width:768px){.theme-switcher{display:none!important}.nav-actions .theme-toggle-compact{display:block}.nav-btn-label{display:none}.nav-actions .btn-ghost{padding:0;width:36px}.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.dash-card.span-4,.dash-card.span-5,.dash-card.span-6,.dash-card.span-7{grid-column:span 1}.dash-card.span-12{grid-column:span 2}.metrics-row{gap:8px}.metric-card{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 14px;text-align:left}.metric-card:hover{transform:none}.metric-icon{width:32px;height:32px;font-size:1rem;margin-bottom:0;flex-shrink:0}.metric-value{font-size:clamp(14px,2vw,17px);line-height:1.2}.metric-label{font-size:10px;margin-top:1px}.metric-sub{display:none}.buffer-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md)}.buffer-card{padding:var(--space-md)}.buffer-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-xs)}.income-split{flex-direction:column;align-items:center;gap:var(--space-lg)}.income-donut{width:160px;height:160px}.income-details{width:100%}.savings-comparison{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--space-md)}.savings-rate-ring{width:90px;height:90px}.calendar-months-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.month-card{padding:var(--space-md)}.month-card-name{font-size:var(--text-body)}.budget-row{grid-template-columns:28px 1fr 36px 85px 85px 85px 65px 40px 40px;padding:12px 16px;gap:6px;min-height:52px}.budget-input{font-size:13px;padding:8px 6px;min-height:40px}.category-bar-item{border-radius:var(--radius-md);margin-bottom:var(--space-sm)}.category-bar-track{height:28px}}@media(max-width:834px)and (min-width:768px){.metrics-section{padding:var(--space-md)}.buffer-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){:root{--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px}.dashboard-grid{grid-template-columns:1fr;gap:var(--space-md);padding:0 var(--space-md) 100px;overflow-x:hidden}.dash-card.span-4,.dash-card.span-5,.dash-card.span-6,.dash-card.span-7,.dash-card.span-12{grid-column:span 1}.nav-inner{flex-wrap:wrap;height:auto;padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.nav-brand{width:100%;text-align:center;font-size:var(--text-body)}.nav-tabs{order:3;width:100%;justify-content:center}.nav-actions{position:absolute;right:var(--space-md);top:var(--space-sm)}.metrics-row{gap:8px}.metric-card{padding:10px 12px;border-radius:var(--radius-md);display:flex;flex-direction:row;align-items:center;gap:8px;text-align:left}.metric-card:hover{transform:none}.metric-icon{width:28px;height:28px;font-size:.875rem;margin-bottom:0;flex-shrink:0}.metric-value{font-size:clamp(13px,3.5vw,16px)!important;font-weight:var(--font-bold);line-height:1.2;white-space:nowrap}.metric-label{font-size:10px;color:var(--text-secondary);line-height:1.2;margin-top:1px}.metric-sub{display:none}.buffer-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-sm)}.buffer-card{padding:var(--space-md)}.buffer-card-header{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.buffer-avatar{width:36px;height:36px;font-size:14px}.buffer-name{font-size:var(--text-small)}.buffer-income{font-size:10px}.buffer-grid{grid-template-columns:1fr;gap:var(--space-xs)}.buffer-item{padding:var(--space-sm)}.buffer-item-value{font-size:var(--text-body)}.buffer-item-label{font-size:clamp(8px,2.5vw,10px)}.income-split{flex-direction:column;align-items:stretch;gap:20px;overflow:hidden;max-width:100%}.income-donut{width:clamp(100px,30vw,140px);height:clamp(100px,30vw,140px);margin:0 auto;flex-shrink:0}.income-donut circle{stroke-width:16}.income-donut-total{font-size:clamp(14px,4vw,18px)}.income-donut-label{font-size:clamp(9px,2.5vw,11px)}.income-details{width:100%}.income-person{padding:12px 0;gap:12px}.income-name{font-size:clamp(13px,3.5vw,16px)}.income-percent{font-size:clamp(11px,3vw,13px)}.income-amount{font-size:clamp(14px,4vw,18px)}.savings-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;overflow:hidden}.savings-person{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 12px;background:var(--bg-secondary);border-radius:var(--radius-lg);min-height:180px}.savings-person-name{font-size:clamp(12px,3vw,14px);font-weight:var(--font-semibold);margin-bottom:16px;color:var(--text-primary)}.savings-rate-ring{width:clamp(70px,20vw,100px);height:clamp(70px,20vw,100px);margin:0 0 16px}.savings-rate-ring svg{width:100%;height:100%}.savings-rate-ring circle{stroke-width:10}.savings-rate-value{font-size:clamp(18px,5vw,24px);font-weight:var(--font-bold)}.savings-amounts{font-size:clamp(10px,2.5vw,12px);color:var(--text-secondary);margin-top:8px}.savings-amounts strong{color:var(--text-primary);font-size:clamp(12px,3vw,14px);display:block}.future-grid,.budget-summary-card{grid-template-columns:repeat(2,1fr)}.budget-table-header{display:none}.period-toggle{margin-left:0;margin-top:var(--space-xs)}.search-box.full-width{max-width:100%}.category-bar-item{margin:0;border-radius:0}.category-bar-fill[style*="width: 0"],.category-bar-fill[style*="width:0"],.category-bar-fill[style*="width: 0%"],.category-bar-fill[style*="width:0%"]{display:none!important}.category-bar-fill:only-child,.category-bar-fill.person-0:first-child:last-child,.category-bar-fill.person-1:first-child:last-child,.category-bar-fill.person-2:first-child:last-child,.category-bar-fill.person-3:first-child:last-child,.category-bar-fill.person-4:first-child:last-child{border-radius:var(--radius-md)!important}.category-bar-track{height:24px}.category-bar-fill span{display:none}.dash-card.span-6{padding:16px}.shared-segment{font-size:0!important}.shared-bar{height:24px;border-radius:var(--radius-md)}.shared-visual{margin-top:12px}.shared-bar{height:20px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.shared-bar>div[style*="width: 0"],.shared-bar>div[style*="width:0"],.shared-bar>div[style*="width: 0%"],.shared-bar>div[style*="width:0%"]{display:none!important}.shared-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px}.shared-legend-item{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-secondary)}.shared-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.future-card .dash-card-header{flex-direction:column;align-items:flex-start;gap:8px}.future-total{font-size:clamp(16px,4.5vw,22px);word-break:break-word;max-width:100%}.btn{min-height:44px;padding:var(--space-sm) var(--space-md)}.projection-chart-card{padding:var(--space-md)}.chart-container{height:200px}.chart-container-combined{height:220px}.chart-container-combined canvas{max-height:220px!important}.share-split-modal{padding:20px}.share-split-preview{padding:var(--space-md);gap:var(--space-sm)}.share-split-preview-card{padding:var(--space-sm) var(--space-md)}.share-split-preview-amount-input input{width:130px;padding:8px 10px;font-size:var(--text-body)}.dash-card{overflow-x:hidden;max-width:100%}.dash-card-header{flex-wrap:wrap;gap:var(--space-sm);max-width:100%}.dash-card-icon,.dash-section-icon{width:36px;height:36px;font-size:18px}.dash-card-title,.dash-section-title{font-size:clamp(13px,3.2vw,15px)}.dash-card-value,.dash-section-subtitle{font-size:clamp(11px,2.6vw,12px)}.expand-controls{width:100%;display:flex;justify-content:flex-start;gap:var(--space-xs);flex-wrap:wrap}.expand-btn{font-size:clamp(10px,2.8vw,12px);padding:3px 8px;white-space:nowrap}.budget-export-label{display:none}.budget-export-btn{padding:6px 8px;min-width:32px;min-height:32px;justify-content:center}.category-bars{overflow:hidden;max-width:100%}.category-bar-item{overflow:hidden;max-width:100%;margin:0 0 var(--space-md) 0;padding:var(--space-sm)}.category-bar-header{margin:0;padding:var(--space-xs);flex-wrap:wrap;gap:var(--space-xs)}.category-bar-name{font-size:clamp(12px,3.5vw,14px);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.category-bar-amount{font-size:clamp(12px,3.5vw,14px);flex-shrink:0}.category-bar-track{max-width:100%}.type-badge{font-size:8px;padding:2px 6px;margin-left:4px}.category-bar-header .expand-icon{margin-left:4px}#money-flow-section{overflow:visible}#money-flow-section .dash-card-header{flex-direction:column;align-items:stretch;gap:var(--space-sm);overflow:visible}#money-flow-section .dash-card-header>div:first-child{min-width:0}.money-flow-tab{padding:10px var(--space-sm);font-size:var(--text-caption)}.goals-card{overflow:hidden}.goals-grid{display:grid;grid-template-columns:1fr!important;gap:var(--space-md);overflow:hidden;max-width:100%}.goal-item{padding:var(--space-md);overflow:hidden;max-width:100%;min-width:0;box-sizing:border-box}.goal-header{flex-wrap:wrap;gap:var(--space-sm)}.goal-header>div:first-child{min-width:0;flex:1}.goal-icon{font-size:24px;margin-bottom:4px}.goal-name{font-size:clamp(13px,3.5vw,16px);word-break:break-word;white-space:normal;line-height:1.3}.goal-target{font-size:clamp(11px,3vw,14px);white-space:normal;word-break:break-word}.goal-percentage{font-size:clamp(16px,4.5vw,22px);flex-shrink:0}.goal-progress-track{height:6px;margin-bottom:10px}.goal-stats{font-size:clamp(11px,3vw,13px);flex-wrap:wrap;gap:4px}.goal-eta{flex-wrap:wrap;font-size:clamp(10px,2.8vw,12px);gap:4px;margin-top:10px;padding-top:10px}.goal-eta>span:last-child{margin-left:0!important;width:100%;margin-top:2px}.goal-add-btn{min-height:100px;padding:var(--space-md)}.goal-add-icon{font-size:24px}.goal-add-text{font-size:clamp(12px,3vw,14px)}.projection-controls .btn{white-space:nowrap;font-size:clamp(11px,3vw,14px);padding:var(--space-sm) var(--space-md);min-width:max-content}.horizon-selector{gap:6px}.horizon-pill{padding:6px 14px;font-size:clamp(11px,3vw,13px)}.projection-glass-cards{grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.proj-glass-card{padding:var(--space-md)}.proj-glass-value{font-size:var(--text-lg)}.chart-container-combined{height:240px}.chart-container-combined canvas{max-height:240px!important}}@media(max-width:480px){.metrics-section{padding:var(--space-sm);border-radius:var(--radius-md)}.metrics-row{gap:6px}.metric-card{padding:8px 10px;gap:6px}.metric-icon{width:24px;height:24px;font-size:.75rem}.metric-value{font-size:clamp(12px,3.2vw,14px)!important}.metric-label{font-size:9px}.buffer-cards{gap:var(--space-xs)}.buffer-card{padding:var(--space-sm)}.buffer-avatar{width:32px;height:32px;font-size:12px}.buffer-item-value{font-size:var(--text-small)}.savings-person{padding:12px 6px}.savings-person-name{font-size:11px}.savings-rate-ring{width:64px;height:64px}.savings-rate-ring svg{width:64px;height:64px}.savings-rate-ring circle{stroke-width:6}.savings-rate-ring circle.bg,.savings-rate-ring circle.fill{r:26}.savings-rate-ring circle.fill{stroke-dasharray:163.36}.savings-rate-value{font-size:clamp(14px,4vw,18px)}.savings-amounts{font-size:clamp(9px,2.5vw,11px)}.savings-amounts strong{font-size:clamp(10px,3vw,13px)}.future-grid{grid-template-columns:1fr}.budget-summary-card{grid-template-columns:1fr;gap:var(--space-md)}.search-bar-container{margin-top:var(--space-sm)}.search-box.full-width .search-input{padding:8px 36px}.dash-card{padding:var(--space-md);border-radius:var(--radius-md)}.income-donut{width:100px;height:100px}.income-donut circle{stroke-width:14}.income-donut-total{font-size:clamp(12px,3.5vw,16px)}.chart-container{height:160px}.share-split-modal{padding:16px}.share-split-preview{padding:var(--space-sm);gap:var(--space-xs)}.share-split-preview-card{padding:var(--space-xs) var(--space-sm)}.share-split-preview-name,.share-split-preview-amount-input .currency-prefix{font-size:clamp(11px,3vw,13px)}.share-split-preview-amount-input input{width:110px;padding:6px 8px;font-size:clamp(12px,3.2vw,14px)}.future-item{padding:12px}.future-amount{font-size:clamp(12px,3.5vw,15px)}.goal-item{padding:var(--space-sm)}.goal-icon{font-size:20px;margin-bottom:2px}.goal-name{font-size:clamp(12px,3.2vw,14px)}.goal-target{font-size:clamp(10px,2.8vw,12px)}.goal-percentage{font-size:clamp(14px,4vw,18px)}.goal-stats{font-size:clamp(10px,2.8vw,12px)}.goal-eta{font-size:clamp(9px,2.5vw,11px)}.goal-add-btn{min-height:80px}.dash-card-icon,.dash-section-icon{width:32px;height:32px;font-size:16px}.dash-card-title,.dash-section-title{font-size:clamp(12px,3vw,14px)}.dash-card-value,.dash-section-subtitle{font-size:clamp(10px,2.4vw,11px)}}@media(max-width:375px){.share-split-modal{padding:14px}.share-split-preview{padding:var(--space-sm);gap:var(--space-sm)}.share-split-preview-card{flex-wrap:wrap;gap:var(--space-xs)}.share-split-preview-amount-input input{width:100px}.buffer-cards{grid-template-columns:1fr}.metrics-row{gap:4px}.metric-card{padding:6px 8px;gap:5px;border-radius:var(--radius-sm)}.metric-icon{width:22px;height:22px;font-size:.65rem;border-radius:var(--radius-sm)}.metric-value{font-size:clamp(11px,3vw,13px)!important}.metric-label{font-size:8px}.income-donut{width:80px;height:80px}.income-donut circle{stroke-width:12}.income-donut-center{display:none}.income-person{padding:var(--space-sm) 0;gap:var(--space-sm)}.income-amount{font-size:clamp(12px,3.5vw,15px)}.savings-comparison{grid-template-columns:1fr;gap:8px}.savings-person{display:flex;flex-direction:row;align-items:center;gap:12px;text-align:left;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md)}.savings-person-name{font-size:12px;margin-bottom:0;order:1}.savings-rate-ring{width:48px;height:48px;margin:0;flex-shrink:0;order:0}.savings-rate-ring svg{width:48px;height:48px}.savings-rate-ring circle{stroke-width:5}.savings-rate-ring circle.bg,.savings-rate-ring circle.fill{r:20}.savings-rate-ring circle.fill{stroke-dasharray:125.66}.savings-rate-value{font-size:clamp(12px,3.5vw,15px)}.savings-amounts{font-size:clamp(9px,2.5vw,11px);margin-top:2px}.savings-amounts strong{font-size:clamp(10px,3vw,13px)}.chart-container{height:140px}.dash-card-icon,.dash-section-icon{width:28px;height:28px;font-size:14px}.dash-card-title,.dash-section-title{font-size:clamp(11px,2.8vw,13px)}.dash-card-value,.dash-section-subtitle{font-size:clamp(10px,2.2vw,11px)}.goal-item{padding:10px}.goal-header{margin-bottom:10px}.goal-icon{font-size:18px}.goal-name{font-size:clamp(11px,3vw,13px)}.goal-target{font-size:clamp(9px,2.5vw,11px)}.goal-percentage{font-size:clamp(13px,3.5vw,16px)}.goal-stats{font-size:clamp(9px,2.5vw,11px)}.goal-eta{font-size:clamp(9px,2.4vw,10px)}.goal-add-btn{min-height:64px;gap:4px}.goal-add-icon{font-size:20px}.goal-add-text{font-size:11px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate-in{animation:fadeInUp .6s ease forwards}@keyframes rowSlideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.budget-row{animation:rowSlideIn .3s ease forwards}.budget-row:nth-child(1){animation-delay:0s}.budget-row:nth-child(2){animation-delay:.02s}.budget-row:nth-child(3){animation-delay:.04s}.budget-row:nth-child(4){animation-delay:.06s}.budget-row:nth-child(5){animation-delay:.08s}.budget-row:nth-child(6){animation-delay:.1s}.budget-row:nth-child(n+7){animation-delay:.12s}@keyframes heroPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.summary-hero-value.updating{animation:heroPulse .3s ease}.split-bar-segment{transition:width .4s cubic-bezier(.4,0,.2,1)}.compact-view .budget-row{padding:8px 12px}.compact-view .budget-item-name{font-size:var(--text-small)}.compact-view .budget-input{padding:4px 8px;font-size:var(--text-small)}@media(max-width:1023px)and (min-width:481px){.others-strip{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.others-strip[data-count="1"]{grid-template-columns:1fr;max-width:400px}.your-buffer-card{padding:18px 20px}.your-card-name{font-size:16px}.your-stat-value{font-size:15px}.proposed-savings{flex-direction:column;gap:16px}.your-savings{width:100%;display:flex;align-items:center;gap:20px;text-align:left}.your-savings .savings-rate-ring{width:100px!important;height:100px!important;flex-shrink:0;margin:0!important}.your-savings .savings-rate-value{font-size:20px!important}.others-savings-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.others-savings-col[data-count="1"]{grid-template-columns:1fr}.proposed-share{flex-direction:column;gap:12px}.others-share-stack{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.your-split-card{padding:20px}.compact-view .metrics-row{gap:var(--space-xs)}.compact-view .metric-card{padding:8px 10px;gap:8px}.compact-view .metric-icon{width:26px;height:26px;font-size:.8rem;margin-bottom:0}.compact-view .metric-value{font-size:clamp(12px,2vw,15px)}.compact-view .metric-label{font-size:9px}.compact-view .buffer-card{padding:var(--space-xs) var(--space-sm)}.compact-view .savings-rate-ring,.compact-view .savings-rate-ring svg{width:64px;height:64px}.compact-view .savings-rate-value{font-size:var(--text-small)}.compact-view .dash-card{padding:var(--space-sm)}.dash-card.span-5,.dash-card.span-7{grid-column:1 / -1}}@media(max-width:480px){.others-strip{grid-template-columns:1fr}.your-buffer-card{padding:14px 16px;border-radius:var(--radius-lg)}.your-card-header{gap:10px;margin-bottom:14px}.your-card-header .buffer-avatar{width:40px!important;height:40px!important;font-size:14px!important}.your-card-name{font-size:15px}.your-card-income{font-size:11px}.your-stats-grid{grid-template-columns:repeat(2,1fr);gap:6px}.your-stat{padding:10px 6px}.your-stat-value{font-size:14px}.your-stat-label{font-size:9px}.other-card{padding:10px 12px;gap:8px}.other-card .buffer-avatar{width:28px!important;height:28px!important;font-size:10px!important}.other-card-name{font-size:11px}.other-card-sub{font-size:9px}.other-card-buffer-value{font-size:12px}.proposed-savings{flex-direction:column;gap:10px}.your-savings{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px}.your-savings .savings-rate-ring{width:64px!important;height:64px!important;flex-shrink:0;margin:0!important}.your-savings .savings-rate-value{font-size:16px!important}.your-savings-name{font-size:13px;margin-bottom:0}.your-savings-amount{font-size:11px}.others-savings-col{gap:6px}.other-savings-row{padding:8px 12px;gap:10px}.mini-ring{width:36px;height:36px}.mini-ring-value{font-size:9px}.other-savings-name{font-size:11px}.other-savings-sub{font-size:9px}.your-split-card{padding:16px;border-radius:var(--radius-lg)}.your-split-card .split-bar,.your-split-card .shared-bar{height:24px}.split-legend{gap:10px;font-size:10px}.proposed-share{flex-direction:column;gap:10px}.your-share-col{padding:14px}.others-share-stack{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.other-share-col{padding:10px}.other-share-col .share-name{font-size:12px}.other-share-col .share-stat{font-size:9px}.compact-view .dashboard-hero{padding:var(--space-xs) var(--space-sm)}.compact-view .dashboard-title{font-size:var(--text-body)}.compact-view .metrics-section{padding:var(--space-xs)}.compact-view .metric-card{padding:6px 8px;gap:6px}.compact-view .metric-icon{width:22px;height:22px;font-size:.7rem;margin-bottom:0}.compact-view .metric-value{font-size:clamp(11px,3vw,14px)}.compact-view .metric-label{font-size:9px}.compact-view .buffer-grid{gap:4px}.compact-view .savings-rate-ring,.compact-view .savings-rate-ring svg{width:56px;height:56px}.compact-view .savings-rate-value{font-size:var(--text-micro)}.compact-view .dash-card{padding:var(--space-sm)}.compact-view .dash-card-icon{width:24px;height:24px;font-size:.8rem}.dash-card.span-5,.dash-card.span-7{grid-column:1 / -1}.sub-audit-amt{width:64px;font-size:10px}}@media(max-width:375px){.others-share-stack{grid-template-columns:1fr}.compact-view .metric-icon{width:18px;height:18px;font-size:.55rem}.compact-view .buffer-avatar{width:24px;height:24px;font-size:10px}.compact-view .buffer-card{padding:var(--space-xs)}.compact-view .buffer-item{padding:4px 2px}.compact-view .buffer-item-value{font-size:10px}.compact-view .savings-rate-ring,.compact-view .savings-rate-ring svg{width:48px;height:48px}}.view-only-mode .budget-input,.view-only-mode .person-name-input,.view-only-mode .person-short-input,.view-only-mode .budget-row-name input{pointer-events:none;opacity:.7}.view-only-mode .budget-row-delete,.view-only-mode .item-action-btn,.view-only-mode .add-category-btn,.view-only-mode .shared-toggle,.view-only-mode .note-btn,.view-only-mode .period-toggle{display:none!important}.btn{position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#ffffff1a,#fff0);opacity:0;transition:opacity var(--duration)}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.budget-row{transition:all var(--duration) var(--ease);border-left:3px solid transparent}.budget-row:hover{background:var(--bg-secondary);border-left-color:var(--person-0)}.budget-input{transition:all var(--duration) var(--ease)}.budget-input:focus{box-shadow:0 0 0 4px var(--person-0-light);border-color:var(--person-0)}.search-box:focus-within{box-shadow:0 0 0 4px var(--person-0-light);border-color:var(--person-0)}.search-box:focus-within .search-icon{color:var(--person-0)}.category-bar-fill{transition:width .6s var(--ease-spring)}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.metric-value,.dash-card-value{animation:countUp .4s ease forwards}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.future-item{opacity:0;animation:fadeInUp .4s ease forwards}.future-item:nth-child(1){animation-delay:.05s}.future-item:nth-child(2){animation-delay:.1s}.future-item:nth-child(3){animation-delay:.15s}.future-item:nth-child(4){animation-delay:.2s}.future-item:nth-child(5){animation-delay:.25s}.future-item:nth-child(6){animation-delay:.3s}.future-item:nth-child(7){animation-delay:.35s}.future-item:nth-child(8){animation-delay:.4s}.dashboard-settled .future-item{opacity:1;animation:none}.dashboard-settled .metric-value,.dashboard-settled .dash-card-value{animation:none}.dashboard-settled .animate-in{opacity:1;animation:none}.dashboard-settled .delay-1,.dashboard-settled .delay-2,.dashboard-settled .delay-3,.dashboard-settled .delay-4,.dashboard-settled .delay-5{opacity:1}.future-item{transition:transform .2s ease,box-shadow .2s ease}.future-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.future-item:hover .future-icon{transform:scale(1.2)}.future-icon{transition:transform var(--duration) var(--ease)}.settings-toggle{transition:background .3s var(--ease)}.settings-toggle:after{transition:transform .3s cubic-bezier(.4,0,.2,1)}.category-bar-tooltip{transition:opacity .2s ease,transform .2s ease;transform:translateY(-5px)}.category-bar-fill:hover .category-bar-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.dashboard-title{background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.simulator-panel{backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}[data-theme=dark] .simulator-panel{background:#1e1e20eb;box-shadow:var(--shadow-xl),inset 0 0 0 .5px #ffffff0f}[data-theme=dark] .settings-panel{background:#1c1c1e}[data-theme=dark] .settings-group{background:#2c2c2e}[data-theme=dark] .settings-name-input{background:#1c1c1e;border-color:#3a3a3c}[data-theme=dark] .settings-select{background:#3a3a3c;color:var(--text-secondary)}[data-theme=dark] .settings-select:hover{background:#48484a}[data-theme=dark] .settings-close{background:#2c2c2e}[data-theme=dark] .settings-close:hover{background:#3a3a3c}.dash-card{border:1px solid rgba(0,0,0,.04)}[data-theme=dark] .dash-card{border:1px solid rgba(255,255,255,.06)}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--person-0),var(--person-1));border-radius:var(--radius-md) var(--radius-md) 0 0;opacity:0;transition:opacity var(--duration-slow)}.metric-card:hover:before{opacity:1}.buffer-card{position:relative;background:var(--bg-primary)}.buffer-card[class*=person-]:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-md) var(--radius-md) 0 0}.buffer-card.person-0:before{background:var(--person-0-gradient)}.buffer-card.person-1:before{background:var(--person-1-gradient)}.buffer-card.person-2:before{background:var(--person-2-gradient)}.buffer-card.person-3:before{background:var(--person-3-gradient)}.buffer-card.person-4:before{background:var(--person-4-gradient)}.income-donut svg{filter:drop-shadow(0 4px 12px rgba(0,0,0,.1))}.expand-icon{transition:transform var(--duration-slow) var(--ease);display:inline-block}.category-bar-item.expanded .expand-icon{transform:rotate(180deg)}.budget-section-header{position:relative;overflow:visible;z-index:2}.budget-section-header:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--person-0-gradient)}.view-toggle{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:4px}*:focus-visible{outline:2px solid var(--person-0);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--person-0);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--person-0);color:#fff;padding:8px 16px;z-index:100;transition:top var(--duration-slow)}.skip-link:focus{top:0}.btn.loading{pointer-events:none;opacity:.7}.btn.loading:before{content:"";display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:8px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ripple{to{transform:scale(4);opacity:0}}.btn.success{background:var(--success)!important}html{scroll-behavior:smooth}@media(max-width:768px){.btn,.nav-links a,.budget-row{min-height:44px}.settings-toggle{width:52px;height:32px}.settings-toggle:after{width:28px;height:28px}.settings-toggle.active:after{transform:translate(20px)}}.metric-value,.dash-card-value,.budget-row-total,.budget-input,.savings-amounts,.category-bar-total,.buffer-value,.income-value,.category-bar-amount,.sim-result-before,.sim-result-after,.sim-result-diff{font-variant-numeric:tabular-nums}.dashboard-hero{text-align:center}.dashboard-date{font-size:var(--text-small);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm)}.dashboard-title{font-size:var(--text-hero);font-weight:var(--font-bold);letter-spacing:-.02em;margin-bottom:var(--space-xs)}.dashboard-subtitle{font-size:var(--text-body);color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--bg-tertiary)}::selection{background:#007aff33;color:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.delay-1{animation-delay:.1s;opacity:0}.delay-2{animation-delay:.2s;opacity:0}.delay-3{animation-delay:.3s;opacity:0}.delay-4{animation-delay:.4s;opacity:0}.delay-5{animation-delay:.5s;opacity:0}@media(prefers-reduced-motion:reduce){.fade-in,.slide-up,.slide-in,.scale-in,.metric-card,.buffer-card,.dashboard-card{animation:none!important;opacity:1!important;transform:none!important}.overlay,.modal,[class*=panel]{transition:none!important}}@media print{@page{size:A4 portrait;margin:1.5cm}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important;font-size:9px!important;color:#1d1d1f!important}[data-theme=dark]{--bg-primary: #ffffff;--bg-secondary: #f5f5f7;--bg-tertiary: #ffffff;--text-primary: #1d1d1f;--text-secondary: #6e6e73;--text-tertiary: #86868b;--text-muted: #aeaeb2;--border-light: #e5e5e7;--border-medium: #d2d2d7;--glass-bg: #ffffff;--glass-border: #e0e0e0;--glass-shadow: none;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-xl: none}.nav-container,.mobile-header,.bottom-tab-bar,#budget-page,.toast,.recommendations-card,.quick-tools,.btn,.month-card-edit-hint,.calendar-year-nav button,.version-modal-overlay,.onetime-modal-overlay,.manage-templates-modal,.view-toggle,.expand-controls,.dropdown{display:none!important}.metric-card,.buffer-card,.month-card,.summary-card,.dash-card,.calendar-year-nav,.sim-hero-card,.category-bar-tooltip,.budget-summary-card,.share-summary-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fff!important;box-shadow:none!important;border:1px solid #e0e0e0!important}.month-card.current-month{border:2px solid #0071e3!important;box-shadow:none!important}.summary-card.highlight{background:#f0faf3!important;border-color:#34c759!important}.metric-value,.buffer-item-value,.month-card-value,.summary-value,.dash-card-value,.income-amount,.print-summary-value,.print-table .amount{font-variant-numeric:tabular-nums!important}.text-primary,.metric-label,.buffer-name,.month-card-name,.summary-label,.dash-card-title,.category-bar-name{color:#1d1d1f!important}.text-secondary,.metric-sub,.buffer-income,.month-card-label,.buffer-item-label{color:#6e6e73!important}.buffer-card.person-0 .buffer-avatar{background:#0071e3!important;color:#fff!important}.buffer-card.person-1 .buffer-avatar{background:#af52de!important;color:#fff!important}.buffer-card.person-2 .buffer-avatar{background:#34c759!important;color:#fff!important}.buffer-card.person-3 .buffer-avatar{background:#ff9500!important;color:#fff!important}.buffer-card.person-4 .buffer-avatar{background:#ff3b30!important;color:#fff!important}.month-card-value.income{color:#248a3d!important}.month-card-value.expense{color:#d70015!important}.month-card-value.savings{color:#0071e3!important}.calendar-months-grid{grid-template-columns:repeat(3,1fr)!important;gap:10px!important}.calendar-summary{grid-template-columns:repeat(4,1fr)!important;gap:10px!important}.calendar-year-nav{background:#f5f5f7!important;border:1px solid #d2d2d7!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.month-card.past-month{opacity:1!important}*{transition:none!important;transform:none!important}.metrics-section{background:#f8f9fa!important}.dash-card{break-inside:avoid}#dashboard-page{display:block!important;padding-top:0!important}.dashboard{padding-top:0!important}.dashboard-hero{padding:8px 12px 4px!important}.dashboard-title{font-size:22px!important;margin-bottom:2px!important}.dashboard-subtitle{font-size:12px!important}.dashboard-date{font-size:9px!important}.dashboard-template-pill{font-size:8px!important;padding:2px 7px!important}.metrics-section{margin:0 auto 8px!important;padding:0 8px!important}.metrics-row{gap:8px!important;margin-bottom:8px!important}.metric-card{padding:10px!important;border-radius:var(--radius-sm)!important}.metric-icon{font-size:18px!important;margin-bottom:4px!important}.metric-value{font-size:16px!important}.metric-label{font-size:9px!important;margin-top:2px!important}.metric-sub{font-size:8px!important;margin-top:4px!important;padding-top:4px!important}.buffer-cards{gap:8px!important}.buffer-card{padding:12px!important;border-radius:var(--radius-sm)!important}.buffer-avatar{width:28px!important;height:28px!important;font-size:12px!important}.buffer-name{font-size:11px!important}.buffer-income{font-size:9px!important}.buffer-card-header{margin-bottom:8px!important;gap:8px!important}.buffer-grid{gap:6px!important}.buffer-item{padding:8px!important;border-radius:var(--radius-xs)!important}.buffer-item-value{font-size:13px!important}.buffer-item-label{font-size:7px!important;margin-top:2px!important}.dashboard-grid{padding:0 8px 8px!important;gap:8px!important}.dash-card{padding:12px!important;border-radius:var(--radius-md)!important}.dash-card-header{margin-bottom:8px!important}.dash-card-title{font-size:9px!important}.dash-card-value{font-size:14px!important;margin-top:2px!important}.income-split{gap:16px!important;margin-top:8px!important}.income-donut{width:100px!important;height:100px!important}.income-donut circle{stroke-width:16!important}.income-donut-total{font-size:14px!important}.income-donut-label{font-size:8px!important}.income-person{padding:8px 0!important;gap:8px!important}.income-name{font-size:11px!important}.income-percent{font-size:9px!important}.income-amount{font-size:12px!important}.savings-comparison{gap:16px!important}.savings-person-name{font-size:10px!important}.savings-rate-ring svg{width:70px!important;height:70px!important}.savings-rate-value{font-size:14px!important}.savings-amounts{font-size:9px!important}.category-bar-item{margin-bottom:8px!important}.category-bar-name,.category-bar-amount{font-size:10px!important}.category-bar-tooltip{position:static!important;opacity:1!important;visibility:visible!important;display:inline-block!important;padding:2px 6px!important;margin-top:4px!important;font-size:7px!important}.category-bar-tooltip:after{display:none!important}.category-bar-track{display:block!important;height:18px!important}.category-bar-fill{display:inline-block!important;vertical-align:top!important;font-size:8px!important}.category-detail-wrapper,.category-bar-header .expand-icon{display:none!important}.type-badge{font-size:7px!important;padding:1px 4px!important}.legend-item{padding:4px 0!important}.shared-bar{height:24px!important}.shared-segment{font-size:9px!important}.shared-legend{margin-top:6px!important}.shared-legend-item{font-size:9px!important}.shared-dot{width:8px!important;height:8px!important}.animate-in{animation:none!important;opacity:1!important}.projections-card{display:none!important}#print-view{display:block!important;padding:0!important;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}.print-header{text-align:center;padding:28px 24px 24px;background:#1d1d1f;color:#fff;margin:-1.5cm -1.5cm 24px;border-bottom:3px solid #0071e3}.print-logo{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-bottom:6px}.print-subtitle{font-size:13px;font-weight:400;opacity:.6;letter-spacing:.3px}.print-date{font-size:10px;opacity:.45;margin-top:6px;font-weight:400}.print-section{margin-bottom:18px;break-inside:avoid;page-break-inside:avoid}.print-section-title{font-size:12px;font-weight:700;color:#fff;padding:8px 14px;background:#1d1d1f;border-radius:6px;margin-bottom:8px;letter-spacing:.2px}.print-table{width:100%;border-collapse:collapse;font-size:10px}.print-table th{background:#f5f5f7;padding:8px 12px;text-align:left;font-weight:600;font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:#6e6e73;border-bottom:1px solid #e5e5ea}.print-table td{padding:7px 12px;border-bottom:1px solid #f2f2f7;color:#1d1d1f}.print-table tr:nth-child(2n) td{background:#fafafa}.print-table .amount{text-align:right;font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;font-weight:500}.print-table .total-row{font-weight:700;background:#1d1d1f!important}.print-table .total-row td{border-bottom:none;padding:9px 12px;color:#fff!important}.print-table .note-row td{padding:5px 12px 8px 28px;font-size:9px;color:#6c757d;font-style:italic;background:#fefef5;border-left:3px solid #ffcc00}.print-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.print-summary-card{background:#fff;border-radius:10px;padding:16px 18px;text-align:center;border:1px solid #e5e5ea;border-top:3px solid #e5e5ea}.print-summary-label{font-size:9px;color:#86868b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.8px;font-weight:600}.print-summary-value{font-size:20px;font-weight:800;color:#1d1d1f;margin-bottom:6px;font-variant-numeric:tabular-nums}.print-summary-sub{font-size:8px;color:#aeaeb2;margin-top:4px;letter-spacing:.2px}.print-footer{margin:30px -1.5cm -1.5cm;padding:14px 24px;background:#1d1d1f;border-top:3px solid #0071e3;text-align:center;font-size:8px;color:#ffffff80;letter-spacing:.3px}}#print-view,.mobile-header{display:none}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@media(max-width:768px){:root{--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px}html,body{overflow-x:hidden;width:100%;max-width:100vw}body{padding-bottom:80px;-webkit-overflow-scrolling:touch}.page,.budget-container{overflow-x:hidden;max-width:100vw}*,*:before,*:after{max-width:100%;box-sizing:border-box}img,video,iframe,table{max-width:100%}.budget-table-wrapper,.category-section,.dash-card,.card{overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-page{padding:var(--space-md)}.calendar-header-top{flex-direction:column;gap:var(--space-md)}.calendar-title{font-size:22px}.calendar-year-nav{width:100%;justify-content:space-between}.calendar-months-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.month-card{padding:var(--space-md)}.month-card-name{font-size:var(--text-body)}.month-card-template{font-size:10px;padding:2px 6px}.calendar-summary{grid-template-columns:repeat(2,1fr)}.summary-card{padding:var(--space-md)}.summary-value{font-size:var(--text-lg)}.onetime-list{grid-template-columns:1fr}.onetime-modal{width:95%}.projection-controls{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.horizon-selector{overflow-x:auto;flex-wrap:nowrap;gap:6px;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.horizon-selector::-webkit-scrollbar{display:none}.horizon-pill{padding:6px 12px;font-size:var(--text-small);flex-shrink:0}.projection-chart-card{padding:var(--space-md)}.chart-container-combined{height:200px}.chart-container-combined canvas{max-height:200px!important}.chart-container{height:180px}.projection-glass-cards{grid-template-columns:1fr;gap:var(--space-sm)}.proj-glass-card{padding:var(--space-md);display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.proj-glass-card:before{display:none}.proj-glass-icon{margin-bottom:0}.proj-glass-label{flex:1;margin-bottom:0}.proj-glass-value{font-size:var(--text-lg);margin-bottom:0}.proj-glass-sub{width:100%;margin-top:-2px}.assets-debts-summary{grid-template-columns:1fr;gap:var(--space-lg)}.assets-modal{width:95%;max-height:90vh}.asset-edit-item{grid-template-columns:1fr 80px 60px 32px;gap:var(--space-xs);padding:10px}.debt-edit-item{grid-template-columns:1fr 70px 50px 70px 32px;gap:var(--space-xs);padding:10px}.debt-labels{grid-template-columns:1fr 70px 50px 70px 32px;gap:var(--space-xs);padding:0 10px 6px;font-size:var(--text-micro)}.asset-edit-item input,.debt-edit-item input{padding:6px 8px;font-size:var(--text-caption)}.mobile-header{display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;padding-top:env(safe-area-inset-top,0);background:var(--bg-primary);border-bottom:1px solid var(--border-light);z-index:1001;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#fbfbfdeb}[data-theme=dark] .mobile-header{background:#1c1c1eeb}.mobile-header-top{display:flex;align-items:center;justify-content:space-between;padding:10px 16px}.mobile-header-left{display:flex;align-items:center;gap:var(--space-sm)}.mobile-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.3px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-title.has-switcher{cursor:pointer;position:relative;padding-right:16px}.mobile-title.has-switcher:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-secondary);transition:transform .2s ease}.mobile-title.has-switcher.picker-open:after{transform:translateY(-50%) rotate(180deg)}.mobile-sync{width:24px;height:24px;padding:0;background:var(--bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center}.mobile-sync .sync-dot{width:8px;height:8px}.mobile-header-right{display:flex;align-items:center;gap:3px}.mobile-header .theme-toggle-compact{display:block}.mobile-header-btn{width:36px;height:36px;min-width:36px;min-height:36px;border:none;background:var(--bg-secondary);border-radius:50%;font-size:var(--text-body);line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:all var(--duration) var(--ease);color:var(--text-primary)}.mobile-header-btn svg{width:16px;height:16px}.mobile-header-btn:active{transform:scale(.92);background:var(--border-medium)}.mobile-avatar{margin-left:2px}.mobile-avatar .user-avatar{width:30px;height:30px;font-size:11px;border:2px solid var(--bg-secondary)}.mobile-tabs{display:flex;margin:0 12px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm);padding:3px}.mobile-tab{flex:1;padding:9px 16px;font-size:var(--text-caption);font-weight:var(--font-medium);border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--duration) var(--ease)}.mobile-tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.mobile-tab:active{transform:scale(.98)}.nav-actions{display:none}.nav-container{display:none!important}.page{padding-top:calc(var(--mobile-header-height) + env(safe-area-inset-top,0) + 8px);padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0) + 20px);overflow-x:hidden;max-width:100vw}.dashboard,.calendar-page,.budget-page{padding-bottom:var(--space-lg);overflow-x:hidden}.user-name{display:none}.user-avatar{width:36px;height:36px}.nav-actions .btn-ghost{padding:var(--space-sm);font-size:var(--text-lg);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.nav-actions .btn-ghost:nth-child(2){order:2}.nav-actions .btn-ghost:nth-child(3){order:4}.nav-actions .btn-ghost:nth-child(4){order:5}.nav-actions .btn-ghost{font-size:0}.nav-actions .btn-ghost:before{font-size:var(--text-heading)}.nav-actions .btn-ghost[onclick*=Settings]:before{content:"⚙️"}.nav-actions .btn-ghost[onclick*=Simulator]:before{content:"🔮"}#dark-mode-btn{font-size:var(--text-heading)}.budget-container,.calendar-page{padding:var(--space-lg);padding-top:80px}.dash-card,.card,.metric-card,.category-section{border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:12px}.metric-card{padding:20px 16px}.metric-value{font-size:32px;font-weight:var(--font-bold)}.metric-label{font-size:var(--text-caption)}.budget-row{display:flex!important;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-lg);padding-left:var(--space-md);margin:0;border-radius:0;border-bottom:1px solid var(--border-light);align-items:center;grid-template-columns:unset!important;position:relative}.budget-row:active{background:var(--bg-secondary)}.budget-row .drag-handle{width:28px;height:44px;order:-1;margin-right:var(--space-xs)}.budget-row .drag-handle-icon span{width:12px;height:2px}.budget-row-name{width:calc(100% - 36px);flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.budget-row-name input{font-size:var(--text-subheading);font-weight:var(--font-medium);flex:1;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:10px 12px;min-height:44px}.budget-row-name input:focus{background:var(--bg-tertiary);border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.budget-row .shared-toggle{order:10}.budget-row .budget-input{flex:1;min-width:calc(50% - var(--space-sm));max-width:calc(50% - var(--space-sm));font-size:16px!important;padding:12px 10px;border-radius:var(--radius-md);min-height:44px;-webkit-appearance:none;background:var(--bg-secondary)!important;border:1px solid var(--border-medium)!important}.budget-row .budget-input:focus{background:var(--bg-tertiary)!important;border-color:var(--person-0)!important}.budget-row .budget-input.person-0-input{border-left:3px solid var(--person-0)!important}.budget-row .budget-input.person-1-input{border-left:3px solid var(--person-1)!important}.budget-row .budget-input.person-2-input{border-left:3px solid var(--person-2)!important}.budget-row .budget-input.person-3-input{border-left:3px solid var(--person-3)!important}.budget-row .budget-input.person-4-input{border-left:3px solid var(--person-4)!important}.budget-row .budget-input.total-input{flex:1;min-width:100%;max-width:100%;margin-top:var(--space-xs);background:var(--success-light)!important;border:1px solid rgba(52,199,89,.3)!important;border-left:3px solid var(--success)!important}.budget-row-total{width:100%;font-size:clamp(14px,4vw,18px);font-weight:var(--font-semibold);text-align:right;padding:var(--space-sm);margin-top:var(--space-xs);border-top:1px dashed var(--border-light);background:var(--bg-secondary);border-radius:var(--radius-sm);word-break:break-word;overflow-wrap:break-word}.budget-row-persons{width:100%}.budget-row .note-btn,.budget-row .budget-row-delete,.budget-row .item-action-btn{flex-shrink:0}.budget-row .note-btn,.budget-row .item-action-btn,.budget-row .budget-row-delete{width:40px;height:40px}.budget-row .period-toggle{margin-left:auto;margin-top:0}.budget-row-wrapper{margin:0}.budget-row-note-inline{padding:12px 16px;margin-top:0;border-left-width:4px;font-size:var(--text-caption);border-radius:0;border-bottom:1px solid var(--border-light)}.budget-row.has-note{border-bottom:none}.category-section{margin:0 0 16px;border-radius:0;padding:0}.category-header{padding:var(--space-lg);position:sticky;top:70px;background:var(--bg-primary);z-index:10}.category-header h3{font-size:var(--text-heading)}.settings-panel,.simulator-panel{position:fixed;bottom:0;left:0;right:0;top:auto;max-height:90vh;width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(100%);padding-bottom:env(safe-area-inset-bottom,20px)}.settings-panel.show,.simulator-panel.show{transform:translateY(0)}.settings-content{padding:0 16px 20px}.settings-header{padding:16px 20px 12px}.settings-header h2{font-size:1.3rem}.settings-select{width:auto;min-width:100px;max-width:160px}.settings-name-input{margin-left:44px}.settings-item-icon{width:30px;height:30px;font-size:15px;border-radius:7px}.settings-item:not(:last-child):after{left:56px}.settings-panel:before,.simulator-panel:before,.transfer-modal:before,.goal-modal:before,.members-modal:before{content:"";display:block;width:36px;height:5px;background:var(--border-medium);border-radius:3px;margin:8px auto 16px}.sim-segmented{grid-template-columns:repeat(2,1fr)}.sim-segmented-track{width:calc(50% - 1.5px)}.sim-person-cards{grid-template-columns:1fr}.sim-ring-wrap{width:80px;height:80px}.sim-stats-row{padding:var(--space-sm) var(--space-md)}.sim-stat-divider{margin:0 var(--space-md)}.sim-burden-body{flex-wrap:wrap;gap:var(--space-md)}.simulator-panel{max-height:92vh}.transfer-modal,.goal-modal,.category-modal,.members-modal{position:fixed;bottom:0;left:0;right:0;top:auto;max-height:90vh;width:100%;max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-lg);padding-bottom:calc(20px + env(safe-area-inset-bottom,0));overflow-y:auto}.transfer-modal-overlay.show .transfer-modal,.goal-modal-overlay.show .goal-modal,.members-modal-overlay.show .members-modal{animation:slideUpModal .3s cubic-bezier(.2,.9,.3,1)}@keyframes slideUpModal{0%{transform:translateY(100%)}to{transform:translateY(0)}}.btn{min-height:48px;padding:14px 20px;font-size:var(--text-subheading);border-radius:var(--radius-md)}.btn-primary{font-weight:var(--font-semibold)}.add-category-btn{min-height:52px;font-size:var(--text-body);border-radius:var(--radius-md)}.search-box{border-radius:var(--radius-full, 9999px);min-height:auto}.search-input{font-size:var(--text-small);padding:8px 36px}.quick-tools{bottom:80px;right:16px;left:auto;transform:none;flex-direction:column;padding:var(--space-sm);gap:var(--space-xs);border-radius:var(--radius-lg)}.quick-tool-btn{width:48px;height:48px;padding:0;border-radius:var(--radius-md);justify-content:center}.quick-tool-btn .quick-tool-icon{font-size:var(--text-heading)}.quick-tool-btn span:not(.quick-tool-icon){display:none}#money-flow-section{overflow:visible;max-width:100%}#money-flow-section .dash-card-header{overflow:visible}.settlement-card{border-radius:var(--radius-lg);padding:var(--space-md);overflow:hidden;max-width:100%}.settlement-result{flex-direction:column;gap:var(--space-sm);text-align:center;overflow:hidden;max-width:100%;padding:var(--space-md)}.settlement-person{flex-direction:row;justify-content:center;flex-wrap:wrap}.settlement-arrow{transform:rotate(90deg);margin:4px 0;font-size:clamp(16px,4vw,24px)}.settlement-amount{font-size:clamp(16px,5vw,24px);word-break:break-word}.settlement-balanced{font-size:clamp(12px,3.5vw,16px);padding:var(--space-md)}.settlement-breakdown{margin-top:12px;overflow:hidden}.settlement-breakdown-header{padding:var(--space-sm)}.settlement-breakdown-title{font-size:clamp(12px,3.5vw,14px)}.settlement-breakdown-content{max-height:none;overflow:hidden}.settlement-item{flex-wrap:wrap;gap:var(--space-xs);padding:10px 0;max-width:100%}.settlement-item-name{flex:1 1 100%;font-size:clamp(12px,3.5vw,14px);word-break:break-word}.settlement-item-direction{font-size:clamp(9px,2.5vw,11px)}.settlement-item-amount{font-size:clamp(12px,3.5vw,14px)}.transfer-direction-option{padding:var(--space-lg);min-height:60px}.transfer-amount-input input{font-size:32px;padding:var(--space-lg)}.goals-grid{grid-template-columns:1fr;gap:var(--space-md)}.goal-item{padding:var(--space-lg);border-radius:var(--radius-lg)}.future-grid{grid-template-columns:1fr;gap:0;margin-top:12px;background:var(--glass-bg);border-radius:var(--radius-lg);border:1px solid var(--glass-border);overflow:hidden}.future-item{display:grid;grid-template-columns:32px 1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:11px 14px;border-radius:0;box-shadow:none;text-align:left;background:transparent;border-bottom:1px solid var(--glass-border)}.future-item:last-child{border-bottom:none}.future-item:hover{transform:none;box-shadow:none}[data-theme=dark] .future-item,[data-theme=dark] .future-item[style*=linear-gradient]{background:transparent!important}.future-icon{grid-row:1 / 3;grid-column:1;font-size:22px!important;margin-bottom:0;display:flex;align-items:center;justify-content:center}.future-name{grid-row:1;grid-column:2;font-size:14px;margin-bottom:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.future-split{grid-row:2;grid-column:2;font-size:11px;margin-top:0;line-height:1.3}.future-amount{grid-row:1;grid-column:3;font-size:14px;font-weight:var(--font-semibold);text-align:right;white-space:nowrap}.future-yearly{grid-row:2;grid-column:3;font-size:11px;text-align:right;margin-top:0;line-height:1.3}.buffer-card{padding:20px 16px;border-radius:var(--radius-lg)}.category-bar-item{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:12px;border:1px solid var(--border-light)}.category-bar-header{padding:0;margin:0;display:flex;justify-content:space-between;align-items:center}.category-bar-header:hover{background:transparent}.category-bar-name{font-size:var(--text-body);font-weight:var(--font-semibold);display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.category-bar-name .type-badge{font-size:9px;padding:2px 6px}.category-bar-name .expand-icon{font-size:var(--text-micro);opacity:.5}.category-bar-amount{font-size:var(--text-lg);font-weight:var(--font-semibold)}.category-bar-track{height:24px;margin-top:12px;border-radius:var(--radius-md)}.category-bar-fill{font-size:var(--text-micro);font-weight:var(--font-medium)}.category-detail-wrapper{overflow:hidden}.category-detail-table{background:transparent;border-radius:0;margin-top:8px}.category-detail-header{display:none!important}.category-detail-row{display:flex;flex-direction:column;gap:var(--space-sm);padding:14px 16px;margin:0 -4px 8px;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-light)}.category-detail-row:last-child{margin-bottom:0}.category-detail-row .item-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:4px}.category-detail-row .person-0-amount,.category-detail-row .person-1-amount,.category-detail-row .person-2-amount,.category-detail-row .person-3-amount,.category-detail-row .person-4-amount,.category-detail-row .total-amount{font-size:var(--text-body);display:inline-flex;align-items:center;gap:var(--space-xs)}.category-detail-row .person-0-amount:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--person-0)}.category-detail-row .person-1-amount:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--person-1)}.category-detail-row .person-2-amount:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--person-2)}.category-detail-row .person-3-amount:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--person-3)}.category-detail-row .person-4-amount:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--person-4)}.category-detail-row .total-amount{font-weight:var(--font-semibold);color:var(--text-primary);margin-top:6px;padding-top:8px;border-top:1px solid var(--border-light)}.category-detail-row .total-amount:before{content:"Total:";font-weight:var(--font-regular);color:var(--text-secondary)}.category-detail-row .income-pct,.category-detail-row .split-ratio,.category-detail-row .pct-amount{display:none}.login-card{width:100%;max-width:100%;margin:0;border-radius:0;min-height:100vh;padding:40px 24px;display:flex;flex-direction:column;justify-content:center}.login-logo{width:80px;height:80px;font-size:32px}.login-title{font-size:28px}.google-signin-btn{padding:16px 24px;font-size:var(--text-lg);border-radius:var(--radius-md);min-height:56px}.invite-input{font-size:var(--text-subheading);padding:14px 16px;border-radius:var(--radius-md);min-height:48px}.dashboard-hero .view-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:12px;background:transparent;padding:0}.dashboard-hero .view-toggle-label{font-size:var(--text-caption);font-weight:var(--font-semibold);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.dashboard-hero .view-toggle-label.active{color:var(--text-primary);background:transparent;box-shadow:none}.dashboard-hero .capsule-toggle{display:block;width:44px;height:26px;border-radius:var(--radius-md);flex-shrink:0}.dashboard-hero-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:12px}.dashboard-hero-controls .view-toggle{margin-top:0}.dashboard-hero-controls .ai-dashboard-btn{margin-top:0!important;padding:8px 16px;font-size:var(--text-caption)}.household-picker-overlay{align-items:flex-end}.household-picker{width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:70vh}.household-picker-overlay.show .household-picker{transform:translateY(0)}.household-picker:before{content:"";display:block;width:36px;height:5px;background:var(--text-tertiary);border-radius:3px;margin:12px auto 8px;opacity:.5}.household-picker-header{text-align:center}.join-household-modal,.invite-modal{width:100%;max-width:100%;border-radius:20px 20px 0 0}.join-household-overlay,.invite-modal-overlay,.members-modal-overlay{align-items:flex-end}.members-modal{width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:85vh}.hub-btn{padding:14px 12px;font-size:13px}}@media(max-width:380px){.nav-tab{min-width:56px;padding:6px 10px;font-size:9px}.metric-value{font-size:26px}.buffer-cards{grid-template-columns:1fr}.sim-rings-container{flex-direction:column;gap:var(--space-sm)}.sim-ring-divider{transform:rotate(90deg)}.sim-stats-row{flex-direction:column;gap:var(--space-md)}.sim-stat-divider{width:100%;height:1px;margin:0}}@media(max-width:768px)and (orientation:landscape){.nav-inner{padding:6px var(--container-padding)}.nav-tab{font-size:var(--text-caption)}body{padding-bottom:60px}.budget-container,.calendar-page{padding-bottom:160px}.login-card{padding:20px 40px;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-lg)}.login-card>*{flex:0 0 auto}}@media(hover:none)and (pointer:coarse){.btn:hover,.nav-tab:hover,.budget-row:hover,.category-bar-header:hover{transform:none}.btn:active{transform:scale(.97);opacity:.9}.nav-tab:active,.budget-row:active{background:var(--bg-secondary)}*{-webkit-tap-highlight-color:transparent}.btn,.nav-tab,.quick-tool-btn{-webkit-user-select:none;user-select:none}}.bottom-tab-bar{display:none}@media(max-width:767px){.bottom-tab-bar{display:block;position:fixed;bottom:0;left:0;right:0;z-index:1000;background:#fbfbfdeb;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--border-light);padding-bottom:env(safe-area-inset-bottom,0)}[data-theme=dark] .bottom-tab-bar{background:#1c1c1eeb}.tab-bar-inner{display:flex;justify-content:space-around;align-items:center;height:49px;max-width:500px;margin:0 auto}.bottom-tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 0;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s ease}.bottom-tab-item:active{transform:scale(.92)}.bottom-tab-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center}.bottom-tab-icon svg{width:24px;height:24px;fill:none;stroke:var(--text-tertiary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:all .2s ease}.bottom-tab-item.active .bottom-tab-icon svg{stroke:var(--person-0)}.bottom-tab-item.active .bottom-tab-icon svg rect,.bottom-tab-item.active .bottom-tab-icon svg path[data-fill=true]{fill:var(--person-0-light)}.bottom-tab-label{font-size:10px;font-weight:var(--font-medium);color:var(--text-tertiary);transition:color .2s ease;letter-spacing:-.1px}.bottom-tab-item.active .bottom-tab-label{color:var(--person-0)}body{padding-bottom:calc(69px + env(safe-area-inset-bottom,0))!important}.mobile-tabs{display:none!important}.mobile-header{padding-bottom:0}.mobile-header-top{padding:12px 16px}button,.btn,.nav-tab,.mobile-tab,.bottom-tab-item,input[type=checkbox],input[type=radio],select,.expand-icon,.category-bar-header{min-height:44px;cursor:pointer}.settings-toggle,.shared-toggle-btn,.alert-rule-toggle{min-height:auto}input[type=text],input[type=number],input[type=email],input[type=password],input[type=tel],input[type=search],select,textarea{font-size:16px!important;-webkit-appearance:none}.category-bar-header:active{background:var(--bg-secondary);border-radius:var(--radius-sm)}.month-card:active{transform:scale(.98);opacity:.9}.summary-card:active,.future-item:active,.legend-item:active{background:var(--bg-secondary)}.budget-section,.calendar-months-grid,.settings-panel,.simulator-panel{-webkit-overflow-scrolling:touch}button,.btn,.nav-tab,.bottom-tab-item,.mobile-header-btn,.category-bar-header{-webkit-user-select:none;user-select:none}button,.btn,.card,.dash-card,.month-card,.budget-row,.category-bar-header{transition:transform .15s ease,background .15s ease,opacity .15s ease}}.budget-bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;background:#0000;pointer-events:none;transition:background .3s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.budget-bottom-sheet-overlay.show{pointer-events:auto;background:#0006}.budget-bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--bg-tertiary);border-radius:16px 16px 0 0;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateY(100%);transition:transform .38s cubic-bezier(.32,.72,0,1);padding-bottom:calc(20px + env(safe-area-inset-bottom,0));box-shadow:0 -8px 40px #00000026;will-change:transform}.budget-bottom-sheet-overlay.show .budget-bottom-sheet{transform:translateY(0)}.sheet-drag-handle{width:36px;height:5px;background:var(--border-medium);border-radius:3px;margin:10px auto 0;cursor:grab}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}.sheet-title{font-size:18px;font-weight:var(--font-semibold);color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:12px}.sheet-close-btn{width:30px;height:30px;min-width:44px;min-height:44px;aspect-ratio:1;border:none;background:var(--bg-secondary);border-radius:50%;font-size:18px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease;line-height:1;padding:0;box-sizing:border-box}.sheet-close-btn:active{background:var(--border-medium)}.sheet-body{padding:0 20px 20px}.sheet-field{margin-bottom:16px}.sheet-label{display:block;font-size:13px;font-weight:var(--font-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}.sheet-input{width:100%;padding:14px 16px;border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:16px;font-weight:var(--font-medium);background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;-webkit-appearance:none;transition:border-color .2s ease,box-shadow .2s ease;min-height:48px}.sheet-input:focus{outline:2px solid var(--person-0);outline-offset:-2px;border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light);background:var(--bg-tertiary)}.sheet-amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.sheet-amount-field{display:flex;flex-direction:column}.sheet-amount-field.person-0 .sheet-input{border-left:3px solid var(--person-0)}.sheet-amount-field.person-1 .sheet-input{border-left:3px solid var(--person-1)}.sheet-amount-field.person-2 .sheet-input{border-left:3px solid var(--person-2)}.sheet-amount-field.person-3 .sheet-input{border-left:3px solid var(--person-3)}.sheet-amount-field.person-4 .sheet-input{border-left:3px solid var(--person-4)}.sheet-amount-field.person-0 .sheet-input:focus{border-color:var(--person-0);box-shadow:0 0 0 4px var(--person-0-light)}.sheet-amount-field.person-1 .sheet-input:focus{border-color:var(--person-1);box-shadow:0 0 0 4px var(--person-1-light)}.sheet-amount-input-row{display:flex;gap:6px;align-items:stretch}.sheet-amount-input-row .sheet-input{flex:1;min-width:0}.sheet-person-acct-select{width:68px;min-width:68px;padding:8px 16px 8px 4px;font-size:12px;font-weight:var(--font-medium);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236e6e73' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;text-overflow:ellipsis}.sheet-person-acct-select:focus{border-color:var(--person-0);outline:2px solid var(--person-0);outline-offset:-2px}.sheet-total-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--success-light);border-radius:var(--radius-md);border:1px solid rgba(52,199,89,.2);margin-bottom:20px}.sheet-total-row span:first-child{font-size:14px;font-weight:var(--font-medium);color:var(--text-secondary)}.sheet-total-value{font-size:18px;font-weight:var(--font-bold);color:var(--success);font-variant-numeric:tabular-nums}.sheet-controls{display:flex;flex-direction:column;gap:0;background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;margin-bottom:20px}.sheet-control-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-light)}.sheet-control-row:last-child{border-bottom:none}.sheet-control-label{font-size:15px;font-weight:var(--font-medium);color:var(--text-primary);white-space:nowrap;flex-shrink:0}.sheet-control-row .shared-toggle-btn{width:51px;min-width:51px;height:31px;min-height:31px;border-radius:16px;flex-shrink:0;padding:0}.sheet-control-row .shared-toggle-btn:after{width:27px;height:27px;top:2px;left:2px}.sheet-control-row .shared-toggle-btn.active:after{left:22px}.sheet-control-row .transfer-btn{min-width:60px;height:34px;border-radius:var(--radius-sm);font-size:14px;font-weight:var(--font-semibold);padding:0 14px;opacity:1;background:var(--bg-tertiary);border:1px solid var(--border-medium);white-space:nowrap}.sheet-control-row .transfer-btn.active{border-color:transparent}.sheet-control-row .destination-toggle{display:flex;gap:6px;flex-shrink:0;width:auto;justify-content:flex-end;flex-wrap:wrap}.sheet-control-row .dest-btn{min-width:50px;height:34px;border-radius:var(--radius-sm);font-size:13px;font-weight:var(--font-semibold);padding:0 12px;opacity:1;background:var(--bg-tertiary);border:1px solid var(--border-medium);white-space:nowrap}.sheet-control-row .dest-btn.active{border-color:var(--dest-color, var(--border-medium));background:color-mix(in srgb,var(--dest-color, var(--text-secondary)) 12%,transparent);color:var(--dest-color)}.sheet-note-field{margin-bottom:20px}.sheet-note-textarea{min-height:60px;resize:vertical;font-family:inherit;line-height:1.4}.sheet-period-toggle{display:flex;gap:0;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-medium)}.sheet-period-btn{padding:8px 16px;border:none;background:transparent;font-size:14px;font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.sheet-period-btn.active{background:var(--person-0);color:#fff}.sheet-delete-btn{width:100%;padding:16px;border:none;border-radius:var(--radius-md);background:var(--danger-light);color:var(--danger);font-size:16px;font-weight:var(--font-semibold);cursor:pointer;transition:all .15s ease}.sheet-delete-btn:active{background:#ff3b3033;transform:scale(.98)}.sheet-delete-btn.disabled{opacity:.3;pointer-events:none}[data-theme=dark] .budget-bottom-sheet{background:#1c1c1e;box-shadow:0 -8px 40px #0006}[data-theme=dark] .sheet-close-btn{background:#2c2c2e}[data-theme=dark] .sheet-input{background:#2c2c2e;border-color:#3a3a3c}[data-theme=dark] .sheet-controls{background:#2c2c2e}[data-theme=dark] .sheet-control-row{border-color:#3a3a3c}.swipe-row-container{position:relative;overflow:hidden}.swipe-delete-action{position:absolute;top:0;right:0;bottom:0;width:80px;background:var(--danger);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:var(--font-semibold);opacity:0;transition:opacity .15s ease}.swipe-row-container.swiping .swipe-delete-action{opacity:1}.swipe-row-container .budget-row,.swipe-row-container .budget-row-wrapper{transition:transform .3s cubic-bezier(.32,.72,0,1);position:relative;z-index:1;background:var(--bg-tertiary)}.swipe-row-container.swiping .budget-row,.swipe-row-container.swiping .budget-row-wrapper{transition:none}.category-overflow-btn{display:none;width:32px;height:32px;border:none;background:transparent;color:var(--text-tertiary);font-size:18px;font-weight:var(--font-bold);cursor:pointer;border-radius:var(--radius-sm);align-items:center;justify-content:center;letter-spacing:1px;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s ease}.category-overflow-btn:active{background:var(--bg-secondary)}.category-overflow-menu{display:none;position:absolute;right:12px;top:100%;background:var(--bg-tertiary);border-radius:var(--radius-md);box-shadow:0 4px 24px #00000026,0 0 0 1px var(--border-light);z-index:1000;overflow:hidden;min-width:160px;animation:overflowMenuIn .18s cubic-bezier(.32,.72,0,1)}@keyframes overflowMenuIn{0%{opacity:0;transform:scale(.92) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.category-overflow-menu.show{display:block}.overflow-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text-primary);font-size:15px;font-weight:var(--font-medium);cursor:pointer;text-align:left;transition:background .1s ease}.overflow-menu-item:active{background:var(--bg-secondary)}.overflow-menu-item:not(:last-child){border-bottom:1px solid var(--border-light)}.overflow-menu-item.danger{color:var(--danger)}.overflow-menu-item .overflow-icon{font-size:16px;width:20px;text-align:center}[data-theme=dark] .category-overflow-menu{background:#2c2c2e;box-shadow:0 4px 24px #0006,0 0 0 1px #ffffff14}@media(max-width:768px){.category-overflow-btn{display:flex}.category-actions{display:none!important}.budget-summary-card{position:relative}.budget-summary.mobile-compact .summary-cards-grid,.budget-summary.mobile-compact .summary-person-toggle,.budget-summary.mobile-compact .summary-person-details{display:none}.summary-compact-bar{display:none;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:box-shadow .15s ease;margin-bottom:8px}.summary-compact-bar:active{box-shadow:var(--shadow-sm)}.budget-summary.mobile-compact .summary-compact-bar{display:flex}.budget-summary.mobile-compact .budget-summary-card{display:none}.budget-summary.mobile-expanded .summary-compact-bar{display:flex;margin-bottom:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:none;border-bottom:1px solid var(--border-light)}.budget-summary.mobile-expanded .budget-summary-card{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.compact-bar-left{display:flex;align-items:baseline;gap:8px}.compact-bar-income{font-size:18px;font-weight:var(--font-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.compact-bar-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.compact-bar-toggle{font-size:13px;color:var(--person-0);font-weight:var(--font-semibold);display:flex;align-items:center;gap:4px}.compact-bar-toggle .chevron{font-size:10px;transition:transform .2s ease}.budget-section{border-radius:var(--radius-lg);margin-bottom:var(--space-sm)}.budget-section-header{padding:14px 16px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.budget-section.collapsed .budget-section-header{border-radius:var(--radius-lg)}.budget-section-content{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.budget-section-title{font-size:15px;gap:6px}.budget-section-title>span:first-child{font-size:18px}.budget-section-badge{font-size:8px;padding:1px 5px}.budget-section-total{gap:8px}.budget-section-amount{font-size:15px}.budget-section-toggle{width:24px;height:24px;font-size:11px}.budget-section-content{padding:0}.budget-table-header{padding:8px 16px;font-size:10px}.summary-cards-grid{grid-template-columns:repeat(2,1fr);gap:8px}.summary-stat-card{padding:10px 8px}.summary-stat-value{font-size:14px}.summary-stat-label{font-size:11px}.summary-stat-percent{font-size:10px}.summary-hero-value{font-size:1.5rem}.budget-row.collapsed{padding:14px 16px!important;gap:4px!important;border-left:none!important;min-height:52px}.budget-row.collapsed:active{background:var(--bg-secondary)!important}.budget-row.collapsed:hover{border-left-color:transparent!important}.budget-row.collapsed .expand-indicator{font-size:0!important;width:24px!important;height:24px!important;color:var(--text-muted)!important;order:99}.budget-row.collapsed .expand-indicator:after{content:"›";font-size:22px;font-weight:300;line-height:1}.budget-row.collapsed .budget-row-name{margin-bottom:0!important;width:auto!important;flex:1!important;min-width:0}.budget-row.collapsed .budget-row-name input{font-size:15px!important;font-weight:var(--font-medium)!important;padding:0 0 0 1px!important;min-height:auto!important;background:transparent!important;border:none!important;pointer-events:none}.budget-row.collapsed .budget-row-total{font-size:15px!important;font-weight:var(--font-semibold)!important;color:var(--text-primary);padding:0!important;margin:0!important;border:none!important;background:transparent!important;text-align:right;white-space:nowrap;order:98}.budget-row.collapsed .budget-row-persons{font-size:12px!important;color:var(--text-tertiary)!important;order:100;width:100%;padding-left:0}.budget-row.collapsed .budget-row-persons .person-amount{font-size:12px}.budget-row.collapsed .shared-badge{font-size:9px;padding:1px 5px;margin-left:4px}.budget-row.collapsed .budget-row-split-collapsed{order:101}.budget-row.collapsed .budget-row-split-collapsed .split-bar{height:3px!important;border-radius:2px;opacity:.7}.budget-row.expanded{display:flex!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--border-light)!important;border-radius:0!important;margin:0!important;padding:14px 16px!important}.budget-row.expanded .budget-row-controls{display:none!important}.budget-row.expanded .budget-row-total,.budget-row.expanded .budget-input.total-input{display:block!important}.budget-row.expanded .expand-indicator{display:flex!important}.swipe-delete-action{font-size:13px}}@media(max-width:1023px)and (min-width:769px){.budget-row.expanded .budget-row-controls{display:grid!important;grid-template-columns:1fr 1fr;gap:16px 24px;padding-top:16px}.budget-row.expanded .budget-row-controls .input-with-label{min-width:0}.budget-row.expanded .budget-row-name input{font-size:16px;padding:10px 14px}.budget-row.expanded .budget-input{font-size:15px;padding:10px 12px;min-height:44px}.category-actions{opacity:1!important}}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheetBackdropIn{0%{background:#0000}to{background:#0006}}.manage-templates-compare-btn{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.manage-templates-compare-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-medium)}.template-diff-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2100;opacity:0;pointer-events:none;transition:opacity .3s ease}.template-diff-overlay.show{opacity:1;pointer-events:all}.template-diff-modal{background:var(--bg-tertiary);border-radius:var(--radius-xl);padding:var(--space-xl);max-width:700px;width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.template-diff-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.template-diff-title{font-size:var(--text-heading);font-weight:var(--font-semibold)}.template-diff-selectors{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.template-diff-selectors select{flex:1}.template-diff-arrow{font-size:var(--text-lg);color:var(--text-muted);font-weight:var(--font-bold)}.template-diff-section{margin-bottom:var(--space-lg)}.template-diff-section-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.template-diff-group{background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-sm)}.template-diff-group-header{padding:var(--space-sm) var(--space-md);font-weight:var(--font-semibold);font-size:var(--text-body);background:var(--bg-secondary);border-bottom:1px solid var(--border-light)}.template-diff-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);font-size:var(--text-body);border-bottom:1px solid var(--border-light)}.template-diff-row:last-child{border-bottom:none}.template-diff-item-name{flex:1;color:var(--text-primary)}.template-diff-values{display:flex;align-items:center;gap:var(--space-sm);font-variant-numeric:tabular-nums}.template-diff-old{color:var(--text-muted);text-decoration:line-through}.template-diff-new{font-weight:var(--font-medium);color:var(--text-primary)}.template-diff-badge{font-size:var(--text-small);padding:2px 8px;border-radius:var(--radius-full);font-weight:var(--font-medium)}.template-diff-badge.increase{background:var(--danger-light);color:var(--danger)}.template-diff-badge.decrease{background:var(--success-light);color:var(--success)}.template-diff-added{background:var(--success-light)}.template-diff-removed{background:var(--danger-light)}.diff-copy-btn{padding:3px 10px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--person-0);font-size:var(--text-small);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration-fast) var(--ease);white-space:nowrap;flex-shrink:0;margin-left:var(--space-sm)}.diff-copy-btn:hover{background:var(--person-0-light);border-color:var(--person-0)}.template-diff-summary{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);display:flex;justify-content:space-around;text-align:center;font-size:var(--text-body)}.template-diff-summary-item{display:flex;flex-direction:column;gap:4px}.template-diff-summary-label{color:var(--text-secondary);font-size:var(--text-small)}.template-diff-summary-value{font-weight:var(--font-semibold);font-variant-numeric:tabular-nums}.template-diff-summary-value .diff-positive{color:var(--success)}.template-diff-summary-value .diff-negative{color:var(--danger)}.template-diff-empty{text-align:center;padding:var(--space-xl);color:var(--text-muted)}@media(max-width:640px){.template-diff-modal{width:95vw;padding:var(--space-md);max-height:90vh}.template-diff-selectors{flex-direction:column;gap:var(--space-sm)}.template-diff-arrow{display:none}.template-diff-summary{flex-direction:column;gap:var(--space-sm)}}[data-theme=dark] .template-diff-modal{background:var(--bg-secondary)}[data-theme=dark] .template-diff-group{background:var(--bg-tertiary)}.alert-banners{max-width:calc(var(--container-max) - 2 * var(--container-padding));margin:0 auto;display:flex;flex-direction:column;gap:var(--space-sm)}.alert-banners:not(:empty){margin-bottom:var(--space-xl)}.alert-banner{background:var(--warning-light);border:1px solid rgba(255,149,0,.2);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-md);animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.alert-banner-icon{font-size:1.25rem;flex-shrink:0}.alert-banner-content{flex:1}.alert-banner-title{font-weight:var(--font-semibold);font-size:var(--text-body);color:var(--text-primary);margin-bottom:2px}.alert-banner-detail{font-size:var(--text-small);color:var(--text-secondary)}.alert-banner-progress{height:4px;background:var(--border-light);border-radius:2px;margin-top:var(--space-xs);position:relative;overflow:hidden}.alert-banner-progress-fill{height:100%;border-radius:2px;background:var(--warning);position:relative}.alert-banner-progress-threshold{position:absolute;top:-2px;width:2px;height:8px;background:var(--text-primary);border-radius:1px}.alert-banner-dismiss{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;font-size:18px;flex-shrink:0}.alert-banner-dismiss:hover{color:var(--text-primary)}.alert-banner.danger{background:var(--danger-light);border-color:#ff3b3033}.nav-alert-btn{position:relative;background:none;border:none;cursor:pointer;padding:6px;font-size:16px;color:var(--text-secondary)}.nav-alert-badge{position:absolute;top:0;right:0;background:var(--danger);color:#fff;font-size:10px;font-weight:var(--font-bold);min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.alert-rule-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light)}.alert-rule-item:last-child{border-bottom:none}.alert-rule-left{display:flex;align-items:center;gap:var(--space-sm);flex:1}.alert-rule-label{font-size:var(--text-body);color:var(--text-primary)}.alert-rule-threshold{display:flex;align-items:center;gap:4px;font-size:var(--text-small);color:var(--text-secondary)}.alert-rule-threshold input{width:50px;text-align:center;padding:4px;border:1px solid var(--border-light);border-radius:var(--radius-xs);font-size:var(--text-small);background:var(--bg-tertiary);color:var(--text-primary)}.alert-rule-toggle{position:relative;width:44px;height:24px;background:var(--text-muted);border-radius:12px;cursor:pointer;transition:background .2s ease;border:none;padding:0}.alert-rule-toggle.active{background:var(--success)}.alert-rule-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease}.alert-rule-toggle.active:after{transform:translate(20px)}[data-theme=dark] .alert-banner{background:#ff950026}[data-theme=dark] .alert-banner.danger{background:#ff3b3026}.bank-account-empty{padding:var(--space-md);text-align:center;font-size:var(--text-small);color:var(--text-secondary)}.bank-account-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light)}.bank-account-item:last-child{border-bottom:none}.bank-account-info{display:flex;flex-direction:column;gap:2px;min-width:0}.bank-account-name{font-size:var(--text-body);font-weight:var(--font-medium);color:var(--text-primary)}.bank-account-note{font-size:var(--text-caption);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-account-actions{display:flex;gap:4px;flex-shrink:0}.bank-account-edit,.bank-account-delete{background:none;border:none;cursor:pointer;width:28px;height:28px;border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center}.bank-account-edit:hover{background:var(--bg-tertiary)}.bank-account-delete:hover{background:var(--danger-light);color:var(--danger)}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2200;opacity:0;pointer-events:none;transition:opacity .3s ease}.onboarding-overlay.show{opacity:1;pointer-events:all}.onboarding-modal{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--shadow-xl);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-xl) var(--space-lg);max-width:480px;width:90vw;max-height:90vh;overflow-y:auto;transform:translateY(20px) scale(.97);transition:transform .35s cubic-bezier(.4,0,.2,1);text-align:center}.onboarding-overlay.show .onboarding-modal{transform:translateY(0) scale(1)}.onboarding-step{display:none;flex-direction:column;align-items:center;gap:var(--space-md)}.onboarding-step.active{display:flex}.onboarding-icon{font-size:3rem;margin-bottom:var(--space-xs)}.onboarding-title{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.onboarding-subtitle{font-size:var(--text-body);color:var(--text-secondary);line-height:1.5;margin:0;max-width:360px}.onboarding-form-group{width:100%;display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.onboarding-input-row{display:flex;align-items:center;gap:var(--space-sm)}.onboarding-input-swatch{width:12px;height:12px;border-radius:50%;flex-shrink:0}.onboarding-input-label{font-size:var(--text-small);color:var(--text-secondary);min-width:70px;text-align:left}.onboarding-input{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-body);font-family:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.onboarding-input:focus{border-color:var(--person-0);box-shadow:0 0 0 3px #0071e326}.onboarding-currency-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);width:100%;margin-top:var(--space-sm)}.onboarding-currency-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-body);font-weight:var(--font-medium);cursor:pointer;transition:all .2s ease}.onboarding-currency-btn:hover{border-color:var(--border-medium);background:var(--bg-secondary)}.onboarding-currency-btn.active{border-color:var(--person-0);background:var(--person-0-light);color:var(--person-0);font-weight:var(--font-semibold)}.onboarding-currency-symbol{font-size:var(--text-lg);font-weight:var(--font-bold)}.onboarding-currency-label{font-size:var(--text-small);color:var(--text-secondary)}.onboarding-currency-btn.active .onboarding-currency-label{color:var(--person-0)}.onboarding-tips-list{width:100%;display:flex;flex-direction:column;gap:var(--space-sm);text-align:left;margin-top:var(--space-sm)}.onboarding-tip{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-body);color:var(--text-primary);line-height:1.4}.onboarding-tip-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px}.onboarding-dots{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-md)}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--border-light);transition:all .3s ease}.onboarding-dot.active{width:24px;border-radius:4px;background:var(--person-0)}.onboarding-nav{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:var(--space-md);gap:var(--space-sm)}.onboarding-btn{padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-full);font-size:var(--text-body);font-weight:var(--font-semibold);cursor:pointer;transition:all .2s ease;min-height:44px}.onboarding-btn-back{background:var(--bg-secondary);color:var(--text-secondary)}.onboarding-btn-back:hover{background:var(--bg-tertiary);color:var(--text-primary)}.onboarding-btn-next{background:var(--person-0);color:#fff;margin-left:auto}.onboarding-btn-next:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 12px #0071e34d}.onboarding-btn-next:active{transform:translateY(0)}.onboarding-btn-skip{background:none;color:var(--text-muted);font-weight:var(--font-regular);font-size:var(--text-small);padding:var(--space-xs) var(--space-sm)}.onboarding-btn-skip:hover{color:var(--text-secondary)}@media(max-width:480px){.onboarding-modal{width:95vw;padding:var(--space-lg) var(--space-md) var(--space-md);border-radius:var(--radius-lg);max-height:95vh}.onboarding-title{font-size:var(--text-lg)}.onboarding-currency-grid{grid-template-columns:1fr 1fr;gap:var(--space-xs)}.onboarding-currency-btn{padding:var(--space-sm)}.onboarding-nav{flex-direction:column}.onboarding-btn-back{order:2;width:100%}.onboarding-btn-next{order:1;width:100%;margin-left:0}.onboarding-btn-skip{order:3}.onboarding-input-row{flex-direction:column;align-items:stretch}.onboarding-input-label{text-align:left;min-width:unset}}[data-theme=dark] .onboarding-modal{background:#2c2c2ed9;border-color:#ffffff1a;box-shadow:0 24px 80px #0009}[data-theme=dark] .onboarding-input{background:var(--bg-secondary);border-color:var(--border-medium)}[data-theme=dark] .onboarding-input:focus{border-color:var(--person-0);box-shadow:0 0 0 3px #0071e340}[data-theme=dark] .onboarding-currency-btn{background:var(--bg-secondary);border-color:var(--border-medium)}[data-theme=dark] .onboarding-currency-btn:hover{background:var(--bg-tertiary)}[data-theme=dark] .onboarding-currency-btn.active{border-color:var(--person-0);background:#0071e333}[data-theme=dark] .onboarding-tip{background:var(--bg-tertiary)}[data-theme=dark] .onboarding-btn-back{background:var(--bg-tertiary);color:var(--text-secondary)}[data-theme=dark] .onboarding-btn-back:hover{background:#4a4a4c;color:var(--text-primary)}.error-boundary{background:var(--danger-light);border:1px solid var(--danger);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;margin:var(--space-md)}.error-boundary p{color:var(--text-primary);margin-bottom:var(--space-sm);font-size:var(--text-body)}.error-boundary button{background:var(--danger);color:#fff;border:none;padding:8px 20px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-caption)}.error-boundary button:hover{opacity:.9}[data-theme=dark] .error-boundary{background:#ff3b3026;border-color:#ff3b3066}.update-banner{position:fixed;bottom:0;left:0;right:0;background:var(--person-0);color:#fff;text-align:center;padding:12px 20px;font-size:var(--text-caption);z-index:10001;animation:slideUp .3s ease}.update-banner button{background:#fff;color:var(--person-0);border:none;padding:4px 16px;border-radius:var(--radius-full);margin-left:12px;cursor:pointer;font-weight:var(--font-semibold)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--warning);color:#fff;text-align:center;padding:8px;font-size:var(--text-small);z-index:10001;display:none}.offline-banner.visible{display:block}.onboarding-wizard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:2200;opacity:0;pointer-events:none;transition:opacity .3s ease}.onboarding-wizard-overlay.show{opacity:1;pointer-events:all}.onboarding-wizard-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--shadow-xl);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-xl) var(--space-lg);max-width:520px;width:90vw;max-height:90vh;overflow-y:auto;transform:translateY(20px) scale(.97);transition:transform .35s cubic-bezier(.4,0,.2,1);text-align:center}.onboarding-wizard-overlay.show .onboarding-wizard-modal{transform:translateY(0) scale(1)}.onboarding-wizard-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);animation:onboardingFadeIn .3s ease}@keyframes onboardingFadeIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.onboarding-wizard-dots{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-md)}.onboarding-wizard-dot{width:8px;height:8px;border-radius:50%;background:var(--border-light);transition:all .3s ease}.onboarding-wizard-dot.active{width:24px;border-radius:4px;background:var(--person-0)}.onboarding-color-picker{width:32px;height:32px;border:2px solid var(--border-light);border-radius:50%;padding:0;cursor:pointer;flex-shrink:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.onboarding-color-picker::-webkit-color-swatch-wrapper{padding:0}.onboarding-color-picker::-webkit-color-swatch{border:none;border-radius:50%}.onboarding-color-picker::-moz-color-swatch{border:none;border-radius:50%}.onboarding-add-person-btn{background:none;border:1px dashed var(--border-medium);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);color:var(--person-0);font-size:var(--text-body);font-weight:var(--font-medium);cursor:pointer;transition:all .2s ease;width:100%;margin-top:var(--space-xs)}.onboarding-add-person-btn:hover{background:var(--person-0-light);border-color:var(--person-0)}.onboarding-remove-person-btn{background:none;border:none;color:var(--text-tertiary);font-size:18px;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.onboarding-remove-person-btn:hover{color:var(--danger);background:#ff3b301a}.onboarding-income-row{display:flex;align-items:center;gap:var(--space-sm)}.onboarding-income-swatch{width:12px;height:12px;border-radius:50%;flex-shrink:0}.onboarding-income-label{font-size:var(--text-body);color:var(--text-primary);min-width:80px;text-align:left;font-weight:var(--font-medium)}.onboarding-income-input{flex:1;text-align:right;font-variant-numeric:tabular-nums}.onboarding-template-list{width:100%;display:flex;flex-direction:column;gap:var(--space-sm);text-align:left}.onboarding-template-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;transition:all .2s ease;position:relative}.onboarding-template-option:hover{border-color:var(--border-medium);background:var(--bg-secondary)}.onboarding-template-option.selected{border-color:var(--person-0);background:var(--person-0-light)}.onboarding-template-radio{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.onboarding-template-icon{font-size:1.5rem;flex-shrink:0}.onboarding-template-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.onboarding-template-name{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.onboarding-template-desc{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4}.onboarding-template-check{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--border-light);color:transparent;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:var(--font-bold);transition:all .2s ease}.onboarding-template-option.selected .onboarding-template-check{background:var(--person-0);color:#fff}.onboarding-household-types{display:flex;gap:var(--space-sm);width:100%;justify-content:center}.onboarding-household-type{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md) var(--space-sm);border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-tertiary);cursor:pointer;transition:all .2s ease;min-height:44px}.onboarding-household-type:hover{border-color:var(--border-medium);background:var(--bg-secondary)}.onboarding-household-type.selected{border-color:var(--person-0);background:var(--person-0-light)}.onboarding-household-type-icon{font-size:1.75rem}.onboarding-household-type-label{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.onboarding-household-type-desc{font-size:var(--text-small);color:var(--text-secondary)}.onboarding-salary-day-label{display:flex;align-items:center;gap:4px;flex-shrink:0}.onboarding-salary-day-text{font-size:var(--text-small);color:var(--text-secondary);white-space:nowrap}.onboarding-salary-day-select{width:52px;padding:4px;border:1px solid var(--border-light);border-radius:var(--radius-xs);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-small);font-family:inherit;cursor:pointer;min-height:32px}.onboarding-skip-link{background:none;border:none;color:var(--text-tertiary);font-size:var(--text-small);font-family:inherit;cursor:pointer;padding:var(--space-xs) var(--space-sm);transition:color .2s ease;margin-top:var(--space-xs)}.onboarding-skip-link:hover{color:var(--text-primary)}.onboarding-template-badge{display:inline-block;background:var(--person-0);color:#fff;font-size:var(--text-micro);font-weight:var(--font-semibold);padding:1px 8px;border-radius:var(--radius-full);margin-left:var(--space-xs);vertical-align:middle}.onboarding-btn-demo{background:var(--bg-secondary);color:var(--text-secondary);font-weight:var(--font-medium)}.onboarding-btn-demo:hover{background:var(--bg-tertiary);color:var(--text-primary)}.demo-mode-banner{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,var(--person-0),#40a9ff);color:#fff;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px var(--space-md);font-size:var(--text-body);font-weight:var(--font-medium);z-index:10002;box-shadow:0 2px 12px #0071e34d;animation:slideDown .3s ease}.demo-mode-banner-icon{font-size:1.1rem}.demo-mode-banner-text{flex:0 1 auto}.demo-mode-banner-btn{background:#ffffff40;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-full);padding:4px 16px;font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;transition:all .2s ease;white-space:nowrap}.demo-mode-banner-btn:hover{background:#fff6}.demo-mode-banner-close{background:none;border:none;color:#ffffffb3;font-size:1.2rem;cursor:pointer;padding:4px 8px;line-height:1;flex-shrink:0}.demo-mode-banner-close:hover{color:#fff}.demo-active .mobile-header,.demo-active .nav-container{top:42px}.demo-active .page{padding-top:102px}.login-demo-btn{display:inline-block;margin-top:var(--space-md);padding:var(--space-sm) var(--space-lg);background:none;border:1px solid var(--border-medium);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-body);font-weight:var(--font-medium);cursor:pointer;transition:all .2s ease;font-family:inherit}.login-demo-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-medium)}.income-ratio-pill{display:inline-flex;align-items:center;gap:var(--space-xs);padding:3px var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);margin-top:var(--space-xs)}.income-ratio-pill .income-ratio-label{color:var(--text-tertiary);font-size:var(--text-micro);text-transform:uppercase;letter-spacing:.03em}.income-ratio-pill .income-ratio-value{font-weight:var(--font-semibold)}.proportional-split-btn{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-small);font-weight:var(--font-medium);color:var(--primary);cursor:pointer;transition:all .2s ease;font-family:inherit;min-height:var(--touch-target)}.proportional-split-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.proportional-split-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}[data-theme=dark] .income-ratio-pill,[data-theme=dark] .proportional-split-btn{background:var(--bg-tertiary);border-color:var(--border-medium)}@media(max-width:480px){.onboarding-wizard-modal{width:95vw;padding:var(--space-lg) var(--space-md) var(--space-md);border-radius:var(--radius-lg);max-height:95vh}.onboarding-wizard-step .onboarding-title{font-size:var(--text-lg)}.onboarding-wizard-step .onboarding-currency-grid{grid-template-columns:1fr 1fr;gap:var(--space-xs)}.onboarding-wizard-step .onboarding-currency-btn{padding:var(--space-sm)}.onboarding-wizard-step .onboarding-nav{flex-direction:column}.onboarding-wizard-step .onboarding-btn-back{order:2;width:100%}.onboarding-wizard-step .onboarding-btn-next,.onboarding-wizard-step .onboarding-btn-demo{width:100%}.onboarding-wizard-step .onboarding-btn-next{order:1;margin-left:0}.onboarding-wizard-step .onboarding-btn-demo{order:2}.onboarding-wizard-step .onboarding-btn-back{order:3}.onboarding-household-types{flex-direction:column}.onboarding-household-type{flex-direction:row;padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.onboarding-household-type-icon{font-size:1.5rem}.onboarding-salary-day-label{display:none}.onboarding-income-row{flex-wrap:wrap}.onboarding-income-label{min-width:60px;font-size:var(--text-small)}.onboarding-template-option{padding:var(--space-sm);gap:var(--space-sm)}.demo-mode-banner{flex-wrap:wrap;gap:var(--space-xs);padding:8px var(--space-sm);font-size:var(--text-small)}.demo-active .mobile-header,.demo-active .nav-container{top:62px}.demo-active .page{padding-top:calc(var(--mobile-header-height) + env(safe-area-inset-top,0) + 62px + 8px)}}@media(max-width:375px){.onboarding-wizard-modal{width:98vw;padding:var(--space-md) var(--space-sm) var(--space-sm)}.onboarding-template-desc{display:none}}[data-theme=dark] .onboarding-wizard-modal{background:#2c2c2ed9;border-color:#ffffff1a;box-shadow:0 24px 80px #0009}[data-theme=dark] .onboarding-template-option{background:var(--bg-secondary);border-color:var(--border-medium)}[data-theme=dark] .onboarding-template-option:hover{background:var(--bg-tertiary)}[data-theme=dark] .onboarding-template-option.selected{border-color:var(--person-0);background:#0071e333}[data-theme=dark] .onboarding-add-person-btn{border-color:var(--border-medium)}[data-theme=dark] .onboarding-add-person-btn:hover{background:#0071e326}[data-theme=dark] .onboarding-btn-demo{background:var(--bg-tertiary);color:var(--text-secondary)}[data-theme=dark] .onboarding-btn-demo:hover{background:#4a4a4c;color:var(--text-primary)}[data-theme=dark] .onboarding-color-picker{border-color:var(--border-medium)}[data-theme=dark] .onboarding-household-type{background:var(--bg-secondary);border-color:var(--border-medium)}[data-theme=dark] .onboarding-household-type:hover{background:var(--bg-tertiary)}[data-theme=dark] .onboarding-household-type.selected{border-color:var(--person-0);background:#0071e333}[data-theme=dark] .onboarding-salary-day-select{background:var(--bg-tertiary);border-color:var(--border-medium);color:var(--text-primary)}[data-theme=dark] .demo-mode-banner{background:linear-gradient(135deg,#0060c0,#3090e0)}[data-theme=dark] .login-demo-btn{border-color:var(--border-medium);color:var(--text-secondary)}[data-theme=dark] .login-demo-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-notification-btn{position:relative;background:var(--bg-secondary);border:none;cursor:pointer;padding:0;width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-full);transition:color .2s ease,background .2s ease;display:flex;align-items:center;justify-content:center}.nav-notification-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.notification-badge{position:absolute;top:-2px;right:-2px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:999px;padding:0 4px}.notification-panel{position:fixed;top:60px;right:var(--space-md);width:380px;max-height:480px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:0 12px 40px #0000001f,0 4px 12px #0000000f;z-index:1000;display:none;flex-direction:column;overflow:hidden}.notification-panel.show{display:flex;animation:notif-panel-in .18s ease-out}@keyframes notif-panel-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--border-light)}.notification-panel-header h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.notification-panel-body{overflow-y:auto;padding:4px;flex:1}.notification-card{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease;position:relative}.notification-card+.notification-card{margin-top:2px}.notification-card:hover{background:var(--bg-secondary)}.notification-card.read{opacity:.5}.notification-card:not(.read):before{content:"";position:absolute;left:4px;top:20px;width:6px;height:6px;border-radius:50%;background:var(--primary)}.notification-card-icon{flex-shrink:0;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center}.notification-card-icon svg{width:16px;height:16px}.urgency-high .notification-card-icon{background:#ff3b301a;color:var(--danger)}.urgency-medium .notification-card-icon{background:#ff95001a;color:var(--warning)}.urgency-low .notification-card-icon{background:#0071e31a;color:var(--primary)}.notification-card-body{flex:1;min-width:0}.notification-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.notification-card-message{font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.35}.notification-card-time{font-size:11px;color:var(--text-tertiary);white-space:nowrap;flex-shrink:0}.notification-card-detail{font-size:12px;color:var(--text-secondary);line-height:1.35;margin-top:3px}.notification-card-dismiss{position:absolute;top:8px;right:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;opacity:0;background:var(--bg-secondary);border:none;color:var(--text-tertiary);cursor:pointer;border-radius:50%;transition:opacity .15s,color .15s,background .15s}.notification-card:hover .notification-card-dismiss{opacity:1}.notification-card-dismiss:hover{color:var(--text-primary);background:var(--bg-tertiary)}.notification-empty{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--text-secondary)}.notification-empty-icon{color:var(--text-muted);margin-bottom:var(--space-sm)}.notification-empty-text{font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:2px}.notification-empty-sub{font-size:12px;color:var(--text-tertiary)}@media(max-width:480px){.notification-panel{top:52px;left:var(--space-xs);right:var(--space-xs);width:auto;max-height:60vh}}[data-theme=dark] .notification-panel{box-shadow:0 12px 40px #0006,0 4px 12px #0003}[data-theme=dark] .notification-card:hover{background:var(--bg-tertiary)}[data-theme=dark] .urgency-high .notification-card-icon{background:#ff3b3026}[data-theme=dark] .urgency-medium .notification-card-icon{background:#ff950026}[data-theme=dark] .urgency-low .notification-card-icon{background:#0071e326}[data-theme=dark] .notification-card-dismiss{background:var(--bg-tertiary)}[data-theme=dark] .notification-card-dismiss:hover{background:#4a4a4c}.ai-dashboard-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 24px;background:linear-gradient(135deg,#5856d6,#af52de);border:none;border-radius:var(--radius-full);font-size:var(--text-body);font-weight:var(--font-semibold);color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #5856d64d}.ai-dashboard-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #5856d666;filter:brightness(1.1)}.ai-dashboard-btn:active{transform:translateY(0);box-shadow:0 2px 8px #5856d64d}.ai-dashboard-btn-icon{font-size:1.1em}[data-theme=dark] .ai-dashboard-btn{box-shadow:0 2px 12px #5856d666}[data-theme=dark] .ai-dashboard-btn:hover{box-shadow:0 4px 20px #5856d680}.ai-insights-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2200;opacity:0;pointer-events:none;transition:opacity .3s ease}.ai-insights-overlay.show{opacity:1;pointer-events:all}.ai-insights-modal{background:var(--bg-tertiary);border-radius:var(--radius-xl);width:90vw;max-width:640px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);transform:scale(.95);transition:transform .3s ease;overflow:hidden}.ai-insights-overlay.show .ai-insights-modal{transform:scale(1)}.ai-insights-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-light)}.ai-insights-title{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary)}.ai-insights-subtitle{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.ai-insights-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.ai-insights-close:hover{background:var(--bg-primary);color:var(--text-primary)}.ai-tabs{display:flex;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);border-bottom:1px solid var(--border-light);overflow-x:auto;-webkit-overflow-scrolling:touch}.ai-tab-btn{flex-shrink:0;padding:var(--space-xs) var(--space-md);border:1px solid var(--border-light);border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);font-size:var(--text-small);font-weight:var(--font-medium);cursor:pointer;transition:all .2s ease;white-space:nowrap}.ai-tab-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.ai-tab-btn.active{background:linear-gradient(135deg,#5856d6,#af52de);color:#fff;border-color:transparent}.ai-insights-content{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-xl);min-height:200px}.ai-type-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.ai-type-icon{font-size:2rem}.ai-type-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary)}.ai-type-desc{font-size:var(--text-small);color:var(--text-secondary)}.ai-analyze-btn{display:inline-flex;align-items:center;gap:var(--space-sm);width:100%;justify-content:center}.ai-analyze-btn-icon{font-size:1.1em}.ai-custom-question{margin-bottom:var(--space-lg)}.ai-custom-label{display:block;font-size:var(--text-small);font-weight:var(--font-medium);color:var(--text-secondary);margin-bottom:var(--space-sm)}.ai-custom-textarea{width:100%;padding:var(--space-md);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);font-family:inherit;font-size:var(--text-body);resize:vertical;min-height:80px;margin-bottom:var(--space-md);transition:border-color .2s ease;box-sizing:border-box}.ai-custom-textarea:focus{outline:none;border-color:#5856d6;box-shadow:0 0 0 3px #5856d626}.ai-result{display:none;margin-top:var(--space-lg);animation:aiFadeIn .3s ease}@keyframes aiFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-response{padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);font-size:var(--text-body);line-height:1.6;color:var(--text-primary)}.ai-response h2,.ai-response h3,.ai-response h4{margin-top:var(--space-md);margin-bottom:var(--space-sm);color:var(--text-primary)}.ai-response h2{font-size:var(--text-heading)}.ai-response h3{font-size:var(--text-body);font-weight:var(--font-semibold)}.ai-response h4{font-size:var(--text-small);font-weight:var(--font-semibold)}.ai-response ul{padding-left:var(--space-lg);margin:var(--space-sm) 0}.ai-response li{margin-bottom:var(--space-xs)}.ai-response strong{color:var(--text-primary);font-weight:var(--font-semibold)}.ai-response p{margin-bottom:var(--space-sm)}.ai-result-actions{display:flex;justify-content:flex-end;margin-top:var(--space-md)}.ai-error{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:#ff3b3014;border:1px solid rgba(255,59,48,.2);border-radius:var(--radius-lg);color:var(--danger)}.ai-error-icon{font-size:1.5rem;flex-shrink:0}.ai-error-message{font-size:var(--text-small)}.ai-loading{text-align:center;padding:var(--space-xl) 0;color:var(--text-secondary)}.ai-loading p{margin-top:var(--space-md);font-size:var(--text-small)}.ai-loading-dots{display:inline-flex;gap:6px}.ai-loading-dots span{width:8px;height:8px;border-radius:50%;background:#5856d6;animation:aiDotPulse 1.4s ease-in-out infinite}.ai-loading-dots span:nth-child(2){animation-delay:.2s}.ai-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes aiDotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.ai-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:aiSpin .6s linear infinite}@keyframes aiSpin{to{transform:rotate(360deg)}}.ai-setup-prompt{text-align:center;padding:var(--space-xl) var(--space-lg)}.ai-setup-icon{font-size:3rem;margin-bottom:var(--space-md)}.ai-setup-prompt h3{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-sm)}.ai-setup-prompt p{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:var(--space-sm)}.ai-setup-detail{font-size:var(--text-small)!important;color:var(--text-tertiary)!important}.ai-setup-actions{display:flex;gap:var(--space-md);justify-content:center;margin-top:var(--space-lg)}.ai-key-status{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-medium)}.ai-key-status.configured{background:#34c7591f;color:var(--success)}.ai-key-status.not-configured{background:#ff95001f;color:var(--warning)}.ai-key-input-row{display:flex;gap:var(--space-xs);align-items:center}.ai-key-input{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-family:SF Mono,Menlo,Monaco,monospace;font-size:var(--text-small);min-width:0}.ai-key-input:focus{outline:none;border-color:#5856d6;box-shadow:0 0 0 3px #5856d626}.ai-key-toggle-btn,.ai-key-clear-btn{flex-shrink:0;padding:var(--space-xs) var(--space-sm)!important;font-size:var(--text-caption)!important;min-width:auto!important}.export-ai-icon{color:#5856d6}[data-theme=dark] .export-ai-icon{color:#7d7aff}@media(max-width:480px){.ai-insights-modal{width:95vw;max-height:90vh}.ai-insights-header{padding:var(--space-md) var(--space-lg)}.ai-tabs{padding:var(--space-sm) var(--space-md)}.ai-insights-content{padding:var(--space-md) var(--space-lg)}.ai-setup-actions{flex-direction:column}}.ai-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);padding:var(--space-sm) 0}.ai-type-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:background .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.ai-type-card:hover{background:var(--bg-tertiary);border-color:#5856d6;transform:translateY(-1px)}.ai-type-card:active{transform:translateY(0)}.ai-type-card-icon{font-size:1.6rem;flex-shrink:0;line-height:1}.ai-type-card-body{min-width:0}.ai-type-card-label{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.ai-type-card-desc{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.3}.ai-view-header{margin-bottom:var(--space-md)}.ai-back-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-small);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.ai-back-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.ai-analysis-hero{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0 var(--space-lg);border-bottom:1px solid var(--border-light);margin-bottom:var(--space-lg)}.ai-type-icon-large{font-size:2.4rem;line-height:1;flex-shrink:0}.ai-type-title-large{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:2px}.ai-type-desc-large{font-size:var(--text-small);color:var(--text-secondary)}.ai-scorecard{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);margin-bottom:var(--space-lg)}.ai-score-circle-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.ai-score-svg{display:block}.ai-score-label{font-size:var(--text-caption);font-weight:var(--font-semibold);color:var(--text-secondary);margin-top:var(--space-xs);text-align:center}.ai-metrics-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);flex:1}.ai-metric-pill{display:flex;flex-direction:column;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);min-width:100px}.ai-metric-name{font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:2px}.ai-metric-value{font-size:var(--text-small);font-weight:var(--font-semibold)}.ai-metric-good{background:#34c7591a;border:1px solid rgba(52,199,89,.2)}.ai-metric-good .ai-metric-value{color:var(--success)}.ai-metric-warning{background:#ff95001a;border:1px solid rgba(255,149,0,.2)}.ai-metric-warning .ai-metric-value{color:var(--warning)}.ai-metric-danger{background:#ff3b301a;border:1px solid rgba(255,59,48,.2)}.ai-metric-danger .ai-metric-value{color:var(--danger)}.ai-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.ai-chart-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-md)}.ai-chart-title{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:var(--space-sm);text-align:center}.ai-chart-wrap,.ai-chart-canvas-wrap{position:relative;width:100%}.ai-chart-error{text-align:center;color:var(--text-tertiary);font-size:var(--text-caption);padding:var(--space-lg) 0}.ai-section-heading{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-sm)}.ai-recommendations{margin-bottom:var(--space-lg)}.ai-recommendation{padding:var(--space-md);border-radius:var(--radius-lg);border-left:3px solid transparent;background:var(--bg-secondary);margin-bottom:var(--space-sm)}.ai-rec-high{border-left-color:var(--danger);background:#ff3b300a}.ai-rec-medium{border-left-color:var(--warning);background:#ff95000a}.ai-rec-low{border-left-color:var(--success);background:#34c7590a}.ai-rec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.ai-rec-priority{font-size:var(--text-caption);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.ai-rec-high .ai-rec-priority{color:var(--danger)}.ai-rec-medium .ai-rec-priority{color:var(--warning)}.ai-rec-low .ai-rec-priority{color:var(--success)}.ai-rec-savings{font-size:var(--text-caption);font-weight:var(--font-semibold);color:var(--success);background:#34c7591a;padding:2px var(--space-sm);border-radius:var(--radius-full)}.ai-rec-title{font-size:var(--text-body);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:4px}.ai-rec-desc{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4}.ai-narrative{padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);line-height:1.6;font-size:var(--text-small);color:var(--text-primary)}.ai-narrative h2{font-size:var(--text-heading);font-weight:var(--font-bold);margin:var(--space-md) 0 var(--space-sm)}.ai-narrative h3{font-size:var(--text-body);font-weight:var(--font-semibold);margin:var(--space-md) 0 var(--space-xs)}.ai-narrative h4{font-size:var(--text-small);font-weight:var(--font-semibold);margin:var(--space-sm) 0 var(--space-xs)}.ai-narrative ul,.ai-narrative ol{padding-left:var(--space-lg);margin:var(--space-sm) 0}.ai-narrative li{margin-bottom:var(--space-xs)}.ai-narrative p{margin-bottom:var(--space-sm)}.ai-narrative strong{font-weight:var(--font-semibold);color:var(--text-primary)}.ai-narrative code{font-family:monospace;font-size:.9em;background:var(--bg-primary);padding:1px 4px;border-radius:3px}.ai-chat-container{display:flex;flex-direction:column;height:100%;min-height:300px}.ai-chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) 0 var(--space-md);-webkit-overflow-scrolling:touch}.ai-bubble{max-width:90%}.ai-bubble-user{align-self:flex-end}.ai-bubble-assistant{align-self:flex-start;width:100%;max-width:100%}.ai-bubble-error{align-self:flex-start;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#ff3b3014;border:1px solid rgba(255,59,48,.2);border-radius:var(--radius-lg);max-width:90%}.ai-bubble-user .ai-bubble-text{padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,#5856d6,#0071e3);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg);font-size:var(--text-small);line-height:1.5;word-break:break-word}.ai-bubble-error .ai-bubble-text{font-size:var(--text-small);color:var(--danger)}.ai-bubble-content{width:100%}.ai-chat-input-row{display:flex;gap:var(--space-sm);align-items:flex-end;padding-top:var(--space-md);border-top:1px solid var(--border-light);margin-top:var(--space-md)}.ai-custom-textarea{flex:1;width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);font-family:inherit;font-size:var(--text-small);color:var(--text-primary);resize:none;line-height:1.5;transition:border-color .15s}.ai-custom-textarea:focus{outline:none;border-color:#5856d6;box-shadow:0 0 0 2px #5856d61f}.ai-chat-send-btn{flex-shrink:0;padding:var(--space-sm) var(--space-md)!important;height:40px;white-space:nowrap}.ai-chat-hint{font-size:var(--text-caption);color:var(--text-tertiary);text-align:right;margin-top:4px}.ai-follow-up-chips{padding:var(--space-sm) 0}.ai-follow-up-label{font-size:var(--text-caption);color:var(--text-tertiary);margin-bottom:var(--space-xs)}.ai-follow-up-chip{display:inline-block;margin:2px 4px 4px 0;padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer;transition:background .12s,border-color .12s,color .12s;text-align:left;line-height:1.4}.ai-follow-up-chip:hover{background:#5856d614;border-color:#5856d6;color:#5856d6}.ai-provider-badge{display:inline-block;padding:3px var(--space-sm);background:#5856d614;border:1px solid rgba(88,86,214,.15);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-medium);color:#5856d6;margin-bottom:var(--space-md)}[data-theme=dark] .ai-provider-badge{background:#7d7aff1f;border-color:#7d7aff33;color:#7d7aff}.ai-action-bar{display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border-light)}.ai-score-arc{transition:stroke-dashoffset 1s ease-out}.ai-skeleton-container{animation:aiFadeIn .3s ease}.ai-skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:aiShimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes aiShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ai-skeleton-scorecard{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-light);margin-bottom:var(--space-lg)}.ai-skeleton-circle{width:100px;height:100px;border-radius:50%;flex-shrink:0}.ai-skeleton-metrics-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);flex:1}.ai-skeleton-pill{width:100px;height:44px;border-radius:var(--radius-md)}.ai-skeleton-chart{width:100%;height:200px;margin-bottom:var(--space-lg);border-radius:var(--radius-lg)}.ai-skeleton-recs{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.ai-skeleton-rec{height:72px;border-radius:var(--radius-lg)}.ai-skeleton-text{display:flex;flex-direction:column;gap:var(--space-xs)}.ai-skeleton-line{height:14px;border-radius:var(--radius-sm)}.ai-chat-input-area{display:flex;gap:var(--space-sm);align-items:flex-end;padding-top:var(--space-md);border-top:1px solid var(--border-light);margin-top:var(--space-md)}.ai-chat-input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg);font-family:inherit;font-size:var(--text-small);color:var(--text-primary);resize:none;line-height:1.5;max-height:120px;transition:border-color .15s}.ai-chat-input:focus{outline:none;border-color:#5856d6;box-shadow:0 0 0 2px #5856d61f}.ai-chat-send{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#5856d6,#af52de);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s,opacity .15s}.ai-chat-send:hover{transform:scale(1.05)}.ai-chat-send:active{transform:scale(.95)}.ai-chat-welcome{text-align:center;padding:var(--space-xl) var(--space-lg);color:var(--text-secondary)}.ai-chat-welcome-icon{font-size:2.5rem;margin-bottom:var(--space-md)}.ai-chat-welcome p{font-size:var(--text-small);margin-bottom:var(--space-lg);line-height:1.5}.ai-suggestion-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:center;padding:var(--space-sm) 0}.ai-chip{display:inline-block;padding:var(--space-xs) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer;transition:all .15s;text-align:left;line-height:1.4}.ai-chip:hover{background:#5856d614;border-color:#5856d6;color:#5856d6}.ai-bubble-content{width:100%;font-size:var(--text-small);line-height:1.6;color:var(--text-primary)}.ai-bubble-content h2,.ai-bubble-content h3,.ai-bubble-content h4{margin-top:var(--space-sm);margin-bottom:var(--space-xs)}.ai-bubble-content ul,.ai-bubble-content ol{padding-left:var(--space-lg);margin:var(--space-xs) 0}.ai-bubble-content li{margin-bottom:2px}.ai-bubble-content p{margin-bottom:var(--space-xs)}.ai-bubble-content strong{font-weight:var(--font-semibold)}.ai-error-inline{color:var(--danger);font-size:var(--text-small)}.ai-disclaimer{display:flex;gap:var(--space-sm);padding:var(--space-md);margin-top:var(--space-lg);background:#5856d60a;border:1px solid rgba(88,86,214,.1);border-radius:var(--radius-lg);font-size:var(--text-caption);color:var(--text-secondary);line-height:1.5}.ai-disclaimer svg{flex-shrink:0;margin-top:2px;color:#5856d6}.ai-disclaimer strong{display:block;font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:4px}.ai-disclaimer p{margin:0}.ai-chat-disclaimer{font-size:var(--text-caption);color:var(--text-tertiary);margin-top:var(--space-md);line-height:1.4}[data-theme=dark] .ai-disclaimer{background:#7d7aff0f;border-color:#7d7aff1f}@media(max-width:480px){.ai-type-grid{grid-template-columns:1fr}.ai-scorecard{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.ai-score-circle-wrap{flex-direction:row;gap:var(--space-md);align-items:center}.ai-score-label{margin-top:0}.ai-charts-grid{grid-template-columns:1fr}.ai-skeleton-scorecard{flex-direction:column}.ai-skeleton-circle{width:80px;height:80px}.ai-suggestion-chips{flex-direction:column;align-items:stretch}}.ai-btn-loading{position:relative;pointer-events:none}.ai-btn-loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,#ffffff26,#fff0 60%);animation:aiBtnPulse 1.5s ease-in-out infinite}@keyframes aiBtnPulse{0%,to{opacity:.3}50%{opacity:1}}.ai-copied{color:var(--success)!important;border-color:var(--success)!important;transition:color .2s,border-color .2s}.ai-error-hint{font-size:var(--text-caption);color:var(--text-secondary);margin-top:6px;font-weight:var(--font-medium)}.ai-send-disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.ai-chart-card{will-change:opacity,transform}@keyframes aiScoreArcDraw{0%{stroke-dashoffset:339.29}}.ai-score-arc{animation:aiScoreArcDraw 1s ease-out forwards;transition:stroke-dashoffset 1s ease-out,stroke .3s ease}.ai-bubble-assistant .ai-loading-dots{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-xs);border:1px solid var(--border-light);display:inline-flex}.ai-kbd-hint{font-size:var(--text-caption);color:var(--text-tertiary);text-align:center;margin-top:var(--space-sm)}.ai-kbd-hint kbd{display:inline-block;padding:1px 6px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:4px;font-family:inherit;font-size:.85em;color:var(--text-secondary)}.whats-new-link{cursor:pointer;color:var(--text-secondary);transition:color .15s;position:relative;display:inline-block}.whats-new-link:hover{color:var(--primary)}.whats-new-link.has-update:after{content:"";position:absolute;top:-2px;right:-10px;width:7px;height:7px;border-radius:50%;background:var(--danger);animation:wnPulse 2s ease-in-out infinite}@keyframes wnPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.whats-new-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2200;opacity:0;pointer-events:none;transition:opacity .3s ease}.whats-new-overlay.show{opacity:1;pointer-events:all}.whats-new-modal{background:var(--bg-tertiary);border-radius:var(--radius-xl);width:90vw;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);transform:scale(.95) translateY(10px);transition:transform .3s ease;overflow:hidden}.whats-new-overlay.show .whats-new-modal{transform:scale(1) translateY(0)}.whats-new-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-light);flex-shrink:0}.whats-new-title{font-size:var(--text-heading);font-weight:var(--font-bold);color:var(--text-primary)}.whats-new-subtitle{font-size:var(--text-small);color:var(--text-secondary);margin-top:2px}.whats-new-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.whats-new-close:hover{background:var(--bg-primary);color:var(--text-primary)}.whats-new-body{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-xl) var(--space-xl);-webkit-overflow-scrolling:touch}.wn-release{margin-bottom:var(--space-sm)}.wn-release-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.wn-release-version{display:flex;align-items:center;gap:var(--space-sm)}.wn-version-number{font-size:var(--text-body);font-weight:var(--font-bold);color:var(--text-primary)}.wn-version-badge{display:inline-block;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--font-semibold);background:var(--bg-secondary);color:var(--text-secondary)}.wn-badge-current{background:linear-gradient(135deg,#5856d6,#af52de);color:#fff}.wn-release-date{font-size:var(--text-caption);color:var(--text-tertiary)}.wn-features{display:flex;flex-direction:column;gap:var(--space-sm)}.wn-feature{display:flex;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);transition:background .15s}.wn-feature:hover{background:var(--bg-secondary)}.wn-feature-icon{font-size:1.4rem;flex-shrink:0;line-height:1.4}.wn-feature-body{min-width:0}.wn-feature-title{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.wn-feature-desc{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.45}.wn-divider{height:1px;background:var(--border-light);margin:var(--space-lg) 0}@media(max-width:480px){.whats-new-modal{width:95vw;max-height:90vh}.whats-new-header{padding:var(--space-md) var(--space-lg)}.whats-new-body{padding:var(--space-md) var(--space-lg) var(--space-lg)}.wn-feature{padding:var(--space-xs) var(--space-sm)}}[data-theme=dark] .whats-new-modal{box-shadow:0 12px 40px #00000080}[data-theme=dark] .wn-feature:hover{background:var(--bg-tertiary)}.enc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s ease}.enc-overlay.show{opacity:1;pointer-events:auto}.enc-overlay-blocking{z-index:10010}.encryption-setup-modal,.passphrase-entry-modal{width:min(460px,92vw);max-height:88vh;overflow-y:auto;background:var(--glass-bg, var(--bg-tertiary));backdrop-filter:blur(var(--glass-blur, 20px));-webkit-backdrop-filter:blur(var(--glass-blur, 20px));border:1px solid var(--glass-border);border-radius:var(--radius-xl, 20px);box-shadow:0 16px 48px #0000002e;transform:scale(.92);transition:transform .3s cubic-bezier(.34,1.56,.64,1);padding:0}.enc-overlay.show .encryption-setup-modal,.enc-overlay.show .passphrase-entry-modal{transform:scale(1)}.enc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid var(--glass-border)}.enc-modal-title{font-size:var(--text-lg, 1.15rem);font-weight:var(--font-semibold, 600);color:var(--text-primary)}.enc-modal-close{background:none;border:none;font-size:1.6rem;color:var(--text-secondary);cursor:pointer;padding:4px 8px;line-height:1;border-radius:8px;transition:background .15s}.enc-modal-close:hover{background:var(--bg-secondary)}.enc-setup-intro,.enc-setup-recovery,.enc-setup-processing,.enc-setup-done,.enc-entry{padding:28px 24px;text-align:center}.enc-setup-intro p,.enc-setup-recovery p,.enc-entry p{color:var(--text-secondary);font-size:var(--text-sm, .9rem);line-height:1.6;margin:10px 0}.enc-setup-intro h3,.enc-setup-recovery h3,.enc-setup-processing h3,.enc-setup-done h3,.enc-entry h3{font-size:var(--text-lg, 1.15rem);font-weight:var(--font-semibold, 600);color:var(--text-primary);margin:8px 0 6px}.enc-setup-icon{font-size:2.5rem;margin-bottom:4px}.enc-success-icon{width:56px;height:56px;margin:0 auto 8px;border-radius:50%;background:var(--success);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700}.enc-warning{background:#ff95001a;border:1px solid rgba(255,149,0,.25);border-radius:var(--radius-md, 12px);padding:12px 16px;margin:16px 0;font-size:var(--text-sm, .85rem);color:var(--text-primary);text-align:left;line-height:1.5}.enc-warning strong{color:var(--warning, #ff9500)}.enc-label{display:block;text-align:left;font-size:var(--text-sm, .85rem);font-weight:var(--font-medium, 500);color:var(--text-secondary);margin:14px 0 6px}.enc-input-wrap{position:relative;display:flex;align-items:center}.enc-input{width:100%;padding:10px 56px 10px 14px;font-size:var(--text-body, .95rem);border:1px solid var(--glass-border);border-radius:var(--radius-md, 10px);background:var(--bg-secondary);color:var(--text-primary);outline:none;transition:border-color .2s}.enc-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0071e326}.enc-toggle-vis{position:absolute;right:8px;background:none;border:none;color:var(--primary);font-size:var(--text-sm, .82rem);font-weight:var(--font-medium, 500);cursor:pointer;padding:4px 8px}.enc-recovery-input{font-family:SF Mono,Fira Code,Consolas,monospace;letter-spacing:1px;text-transform:uppercase;padding-right:14px}.enc-pass-error{color:var(--danger);font-size:var(--text-sm, .82rem);margin-top:8px;min-height:1.2em;text-align:left}.enc-recovery-key{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:1rem;letter-spacing:1.5px;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-md, 10px);padding:16px 20px;margin:16px 0 10px;word-break:break-all;line-height:1.8;color:var(--text-primary);-webkit-user-select:all;user-select:all}.enc-recovery-actions{display:flex;justify-content:center;gap:8px;margin-bottom:14px}.enc-checkbox-wrap{display:flex;align-items:flex-start;gap:8px;text-align:left;font-size:var(--text-sm, .85rem);color:var(--text-secondary);margin:16px 0 12px;cursor:pointer}.enc-checkbox-wrap input[type=checkbox]{margin-top:2px;accent-color:var(--primary)}.enc-setup-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.enc-setup-actions .btn{width:100%;padding:12px;font-size:var(--text-body, .95rem)}.enc-progress{height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden;margin:20px 0}.enc-progress-bar{height:100%;background:var(--primary);border-radius:3px;width:0%;transition:width .5s ease}.enc-processing-hint{color:var(--text-secondary);font-size:var(--text-sm, .85rem)}.btn-link{background:none;border:none;color:var(--primary);font-size:var(--text-sm, .85rem);cursor:pointer;padding:8px;margin-top:4px}.btn-link:hover{text-decoration:underline}.enc-recovery-link{display:block;margin-top:12px}.enc-active-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:var(--text-xs, .75rem);font-weight:var(--font-semibold, 600);color:var(--success);background:#34c7591f;border-radius:20px;letter-spacing:.3px}[data-theme=dark] .encryption-setup-modal,[data-theme=dark] .passphrase-entry-modal{box-shadow:0 16px 48px #00000080}[data-theme=dark] .enc-warning{background:#ff950014;border-color:#ff950033}[data-theme=dark] .enc-recovery-key{background:var(--bg-tertiary)}.starter-templates-modal{max-width:640px;width:90vw}.starter-templates-subtitle{color:var(--text-secondary);font-size:var(--text-small);margin:0 0 var(--space-md);line-height:1.5}.starter-templates-grid{display:flex;flex-direction:column;gap:var(--space-sm)}.starter-template-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.starter-template-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 16px #0071e31f}.starter-template-card:active{transform:translateY(0)}.starter-template-icon{font-size:2rem;line-height:1}.starter-template-info{flex:1}.starter-template-name{font-weight:var(--font-semibold);font-size:var(--text-body);color:var(--text-primary);margin-bottom:4px}.starter-template-desc{font-size:var(--text-small);color:var(--text-secondary);line-height:1.4;margin-bottom:var(--space-xs)}.starter-template-meta{display:flex;flex-wrap:wrap;gap:6px}.starter-template-tag{display:inline-block;padding:2px 8px;background:var(--bg-secondary);border-radius:var(--radius-full);font-size:11px;color:var(--text-secondary);font-weight:var(--font-medium)}.starter-template-tip{display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:#34c75914;border-radius:var(--radius-md);font-size:var(--text-small);color:var(--text-secondary);line-height:1.4}.starter-template-tip-icon{flex-shrink:0;font-size:14px}[data-theme=dark] .starter-template-card:hover{box-shadow:0 4px 16px #0071e333}[data-theme=dark] .starter-template-tip{background:#34c7591f}.milestone-celebration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;pointer-events:none;overflow:hidden}.confetti-particle{position:absolute;width:8px;height:8px;border-radius:2px;animation:confetti-fall 3s ease-out forwards;will-change:transform,opacity}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0) scale(1);opacity:1}to{transform:translateY(100vh) rotate(720deg) scale(.3);opacity:0}}@media(prefers-reduced-motion:reduce){.confetti-particle{animation:none;display:none}.milestone-celebration-overlay{display:none}}.milestone-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);z-index:10001;background:var(--glass-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);text-align:center;box-shadow:0 24px 48px #00000026;opacity:0;animation:milestone-toast-in .5s ease forwards;pointer-events:auto}@keyframes milestone-toast-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.milestone-toast-icon{font-size:3rem;margin-bottom:var(--space-sm);animation:milestone-icon-bounce .6s ease .3s both}@keyframes milestone-icon-bounce{0%{transform:scale(.5)}50%{transform:scale(1.3)}to{transform:scale(1)}}.milestone-toast-title{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:4px}.milestone-toast-subtitle{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:var(--space-md)}.milestone-toast-dismiss{padding:var(--space-xs) var(--space-lg);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-small);font-weight:var(--font-semibold);cursor:pointer;transition:background .2s}.milestone-toast-dismiss:hover{background:var(--primary-hover)}@media(prefers-reduced-motion:reduce){.milestone-toast{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}.milestone-toast-icon{animation:none}}.goal-milestone-history{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.goal-milestone-history-title{font-size:var(--text-small);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:var(--space-xs)}.goal-milestone-history-item{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-small);color:var(--text-secondary);padding:2px 0}.goal-milestone-history-item.reached{color:var(--success)}.goal-milestone-history-icon{font-size:12px;width:16px;text-align:center}.ai-tips-section{margin-top:var(--space-md);border-radius:var(--radius-lg);overflow:hidden}.ai-tips-toggle{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:var(--space-sm) var(--space-md);background:#34c75914;border:1px solid rgba(52,199,89,.15);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-primary);font-size:var(--text-small);font-weight:var(--font-semibold);transition:all .2s ease;text-align:left}.ai-tips-toggle:hover{background:#34c7591f}.ai-tips-toggle .tips-chevron{margin-left:auto;transition:transform .2s ease;font-size:12px;color:var(--text-secondary)}.ai-tips-toggle.expanded .tips-chevron{transform:rotate(180deg)}.ai-tips-content{display:none;padding:var(--space-sm) var(--space-md);background:#34c7590a;border:1px solid rgba(52,199,89,.1);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.ai-tips-content.show{display:block}.ai-tip-item{display:flex;align-items:flex-start;gap:var(--space-xs);padding:var(--space-xs) 0;font-size:var(--text-small);color:var(--text-secondary);line-height:1.5}.ai-tip-item+.ai-tip-item{border-top:1px solid rgba(52,199,89,.08)}.ai-tip-icon{flex-shrink:0;font-size:14px;margin-top:1px}[data-theme=dark] .ai-tips-toggle{background:#34c7591f;border-color:#34c75933}[data-theme=dark] .ai-tips-content{background:#34c7590f;border-color:#34c75926}.health-check-container{max-width:var(--container-max);margin:0 auto var(--space-xl);padding:0 var(--container-padding);box-sizing:border-box}.health-check-card{display:block;width:100%;max-width:100%;text-align:left;cursor:pointer;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);box-shadow:var(--glass-shadow);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;font-family:inherit;color:var(--text-primary);overflow:hidden;box-sizing:border-box;position:relative}.health-check-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;opacity:.8;transition:opacity .3s ease}.health-check-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.health-check-card:hover:before{opacity:1}.health-check-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.health-check-main{display:flex;align-items:center;gap:var(--space-lg)}.health-check-score-ring{flex-shrink:0;width:80px;height:80px;transition:filter .3s ease}.health-ring-svg{width:100%;height:100%}.health-ring-bg{fill:none;stroke:var(--bg-secondary);stroke-width:3.5}.health-ring-fill{fill:none;stroke-width:3.5;stroke-linecap:round;transition:stroke-dasharray .6s ease}.health-ring-text{fill:var(--text-primary);font-size:9px;font-weight:700;text-anchor:middle;dominant-baseline:central}.health-check-info{flex:1;min-width:0}.health-check-label{font-size:clamp(1rem,2.5vw,1.15rem);font-weight:700;margin-bottom:4px;letter-spacing:-.01em}.health-check-summary{font-size:var(--text-body);color:var(--text-secondary);line-height:1.5;overflow-wrap:break-word;word-break:break-word}.health-check-details-btn{display:inline-flex;align-items:center;gap:4px;margin-top:var(--space-sm);font-size:var(--text-caption);font-weight:600;color:var(--primary);opacity:.8;transition:opacity .2s ease}.health-check-card:hover .health-check-details-btn{opacity:1}.health-check-details-chevron{display:inline-block;font-size:12px;transition:transform .2s ease}.health-check-card[aria-expanded=true] .health-check-details-chevron{transform:rotate(180deg)}.health-check-breakdown{max-height:0;overflow:hidden;transition:max-height .3s ease,margin-top .3s ease,padding-top .3s ease;margin-top:0;padding-top:0}.health-check-card[aria-expanded=true] .health-check-breakdown{max-height:300px;margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--glass-border)}.health-factor{display:grid;grid-template-columns:100px 1fr auto auto;align-items:center;gap:var(--space-xs) var(--space-sm);padding:8px 0}.health-factor+.health-factor{border-top:1px solid rgba(128,128,128,.1)}.health-factor-label{font-size:var(--text-caption);color:var(--text-secondary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-factor-bar-track{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden}.health-factor-bar{height:100%;border-radius:4px;transition:width .5s ease}.health-factor-success{background:var(--success);box-shadow:0 0 8px #34c7594d}.health-factor-warning{background:var(--warning);box-shadow:0 0 8px #ff95004d}.health-factor-danger{background:var(--danger);box-shadow:0 0 8px #ff3b304d}.health-factor-neutral{background:var(--text-secondary);opacity:.4}.health-factor-value{font-size:var(--text-caption);font-weight:600;color:var(--text-primary);text-align:right;min-width:40px;white-space:nowrap}.health-factor-pts{font-size:11px;color:var(--text-secondary);min-width:32px;text-align:right}.health-check-good{background:linear-gradient(135deg,#34c7590f,#30d15808,#007aff0a);border-color:#34c75933}.health-check-good:before{background:linear-gradient(90deg,#34c759,#30d158,#0071e3)}.health-check-good .health-check-score-ring{filter:drop-shadow(0 0 12px rgba(52,199,89,.35))}.health-check-good:hover{border-color:#34c75959}.health-check-fair{background:linear-gradient(135deg,#ff95000f,#ffcc0008,#af52de0a);border-color:#ff950033}.health-check-fair:before{background:linear-gradient(90deg,#ff9500,#fc0,#af52de)}.health-check-fair .health-check-score-ring{filter:drop-shadow(0 0 12px rgba(255,149,0,.35))}.health-check-fair:hover{border-color:#ff950059}.health-check-needs-attention{background:linear-gradient(135deg,#ff3b300f,#ff950008,#af52de0a);border-color:#ff3b3033}.health-check-needs-attention:before{background:linear-gradient(90deg,#ff3b30,#ff9500,#af52de)}.health-check-needs-attention .health-check-score-ring{filter:drop-shadow(0 0 12px rgba(255,59,48,.35))}.health-check-needs-attention:hover{border-color:#ff3b3059}[data-theme=dark] .health-check-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#2a2a2f;box-shadow:0 2px 12px #0000004d}[data-theme=dark] .health-check-card:hover{box-shadow:0 12px 40px #00000080}[data-theme=dark] .health-check-good{background:linear-gradient(135deg,#34c7591a,#30d1580d,#007aff0f);border-color:#34c75926}[data-theme=dark] .health-check-fair{background:linear-gradient(135deg,#ff95001a,#ffcc000d,#af52de0f);border-color:#ff950026}[data-theme=dark] .health-check-needs-attention{background:linear-gradient(135deg,#ff3b301a,#ff95000d,#af52de0f);border-color:#ff3b3026}@media(max-width:768px){.health-factor{grid-template-columns:90px 1fr auto auto;gap:var(--space-xs)}.health-check-card{padding:var(--space-md) var(--space-lg)}.health-check-score-ring{width:64px;height:64px}}@media(max-width:480px){.health-factor{grid-template-columns:70px 1fr auto;gap:4px var(--space-xs)}.health-factor-pts{display:none}.health-check-card{padding:var(--space-md)}.health-check-score-ring{width:56px;height:56px}.health-check-main{gap:var(--space-md)}}@media(prefers-reduced-motion:reduce){.health-ring-fill,.health-factor-bar,.health-check-breakdown,.health-check-card,.health-check-score-ring{transition:none}}.solo-mode .budget-row-persons,.solo-mode .budget-row-split-collapsed,.solo-mode .shared-toggle,.solo-mode .dest-person-btn,.solo-mode .dest-multi .dest-person-options,.solo-mode .money-flow-tab[data-tab=settlement],.solo-mode .split-calc-quick-tool{display:none!important}.solo-mode .person-inputs-row .input-with-label:not(:first-child){display:none!important}.solo-mode .person-inputs-row .input-with-label:first-child .input-label{display:none}.solo-mode .income-person-amounts,.solo-mode .shared-badge,.solo-mode .dest-sep,.solo-mode .dest-multi .dest-person-btn{display:none!important}.solo-mode .dashboard-subtitle{display:none}.subscription-toggle{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.subscription-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.subscription-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--primary);background:#0071e314;padding:2px 8px;border-radius:10px}[data-theme=dark] .subscription-badge{background:#0071e326}.subscription-audit-section{margin-top:var(--space-sm)}.subscription-audit-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--glass-shadow)}.subscription-audit-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.subscription-audit-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.subscription-audit-title{font-size:var(--text-body);font-weight:600;color:var(--text-primary);white-space:nowrap}.subscription-audit-total{font-size:var(--text-title);font-weight:700;color:var(--danger)}.subscription-audit-list{display:flex;flex-direction:column;gap:8px}.subscription-audit-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-caption);gap:8px}.subscription-audit-item-name{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-weight:500;flex:1;min-width:0;overflow:hidden}.subscription-audit-item-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subscription-audit-item-cat{font-size:11px;color:var(--text-secondary);font-weight:400}.subscription-audit-item-amount{font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right}.sub-audit-amounts{display:flex;gap:0;flex-shrink:0}.sub-audit-amt{display:inline-block;width:80px;text-align:right;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.sub-audit-amt-total{font-weight:600;color:var(--text-primary);border-left:1px solid var(--border-light);margin-left:4px;padding-left:4px}.sub-audit-col-header{background:transparent;padding-top:0;padding-bottom:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.sub-audit-col-header .sub-audit-amt-total{border-left-color:transparent}.subscription-audit-empty{text-align:center;padding:var(--space-lg);color:var(--text-secondary);font-size:var(--text-caption)}.subscription-person-group{margin-top:var(--space-xs)}.subscription-person-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding-left:4px}[data-theme=dark] .subscription-audit-item{background:var(--bg-tertiary)}.sub-audit-filters{display:inline-flex;align-items:center;gap:0;background:var(--bg-secondary);border-radius:var(--radius-full);padding:2px;border:1px solid var(--border-light);flex-shrink:0}.sub-audit-filter-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;min-width:32px;border-radius:var(--radius-full);border:none;background:transparent;font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);font-family:inherit;line-height:1.2;-webkit-tap-highlight-color:transparent}.sub-audit-filter-pill:hover{color:var(--pill-color, var(--text-primary))}.sub-audit-filter-pill.active{background:var(--pill-color, #0071e3);color:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}[data-theme=dark] .sub-audit-filters{background:#ffffff0f;border-color:var(--border-medium)}[data-theme=dark] .sub-audit-filter-pill.active{box-shadow:0 1px 4px #0000004d}.variable-income-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);background:var(--warning-light);color:var(--warning);font-size:12px;font-weight:700;flex-shrink:0;margin-right:4px}.variable-income-toggle{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-caption);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:44px}.variable-income-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--warning);cursor:pointer}.variable-toggle-label{font-weight:500}.income-controls-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;width:100%}.variable-income-ranges{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;padding:var(--space-sm) 0}.variable-range-group{display:flex;flex-direction:column;gap:4px}.variable-range-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.variable-range-inputs{display:flex;gap:var(--space-sm);flex-wrap:wrap}.variable-range-expected{opacity:.7;pointer-events:none}.variable-min-input{border-color:var(--danger)!important;border-left:3px solid var(--danger)!important}.variable-max-input{border-color:var(--success)!important;border-left:3px solid var(--success)!important}.variable-income-range-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:var(--warning-light);font-size:11px;font-weight:500;color:var(--warning);margin-top:var(--space-xs)}.variable-range-icon{font-weight:700;font-size:14px}.sim-variable-income-presets{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.sim-preset-label{font-size:var(--text-caption);color:var(--text-secondary);white-space:nowrap}.sim-preset-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border-radius:var(--radius-full);border:1px solid var(--border-medium);background:var(--bg-secondary);font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-family:inherit;min-height:28px}.sim-preset-btn:hover{background:var(--warning-light);color:var(--warning);border-color:var(--warning)}[data-theme=dark] .variable-income-badge{background:#ff950026}[data-theme=dark] .variable-income-range-indicator{background:#ff95001f}[data-theme=dark] .sim-preset-btn{background:#ffffff0f;border-color:var(--border-medium)}[data-theme=dark] .sim-preset-btn:hover{background:#ff950026}@media(max-width:480px){.variable-income-ranges{gap:var(--space-xs)}.variable-range-inputs{flex-direction:column}.income-controls-row{gap:var(--space-sm)}}.spending-trends-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--glass-shadow)}.spending-trends-header{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.spending-trends-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.spending-trends-title{font-size:var(--text-body);font-weight:600;color:var(--text-primary)}.trend-range-selector{display:inline-flex;gap:0;background:var(--bg-secondary);border-radius:var(--radius-full);padding:2px;border:1px solid var(--border-light)}.trend-range-btn{padding:4px 12px;border-radius:var(--radius-full);border:none;background:transparent;font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-family:inherit}.trend-range-btn.active{background:#0071e3;color:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}.trend-view-filter{display:inline-flex;gap:0;background:var(--bg-secondary);border-radius:var(--radius-full);padding:2px;border:1px solid var(--border-light);align-self:flex-start}.trend-view-btn{padding:3px 10px;min-width:32px;border-radius:var(--radius-full);border:none;background:transparent;font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-family:inherit}.trend-view-btn.active{background:var(--pill-color, #0071e3);color:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}.spending-trends-chart-container{position:relative;height:220px;width:100%;margin-bottom:var(--space-sm)}.spending-trends-legend{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.trend-legend-item{display:flex;align-items:center;gap:6px;font-size:12px}.trend-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.trend-legend-name{color:var(--text-secondary);font-weight:500}.trend-legend-value{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.trend-legend-change{font-size:10px;font-weight:600;padding:1px 6px;border-radius:var(--radius-full)}.trend-legend-change.trend-up{background:var(--danger-light);color:var(--danger)}.trend-legend-change.trend-down{background:var(--success-light);color:var(--success)}[data-theme=dark] .trend-range-selector,[data-theme=dark] .trend-view-filter{background:#ffffff0f;border-color:var(--border-medium)}@media(max-width:480px){.spending-trends-chart-container{height:180px}.spending-trends-legend{gap:var(--space-xs) var(--space-md)}.trend-legend-item{font-size:11px}.spending-trends-title-row{flex-direction:column;align-items:flex-start}}.personal-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:600;color:var(--text-tertiary);background:var(--bg-secondary);padding:2px 8px;border-radius:var(--radius-full);border:1px solid var(--border-light);margin-left:4px;vertical-align:middle}.personal-badge-icon{font-size:10px}.privacy-blur .budget-row-total,.privacy-blur .budget-row-persons,.privacy-blur .person-amount,.privacy-blur .budget-section-amount,.privacy-blur .category-bar-amount,.privacy-blur .category-bar-track-wrapper,.privacy-blur .category-detail-wrapper{filter:blur(8px);-webkit-user-select:none;user-select:none;transition:filter .3s ease}.privacy-reveal-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-secondary);font-size:10px;font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:all .2s ease;font-family:inherit;margin-left:auto;min-height:28px;flex-shrink:0}.privacy-reveal-btn:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.category-personal-desc{font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:var(--space-xs);line-height:1.4}.category-personal-picker{display:flex;gap:4px;flex-wrap:wrap}.personal-picker-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-medium);background:var(--bg-secondary);font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-family:inherit;min-height:36px}.personal-picker-btn:hover{border-color:var(--pill-color, var(--text-primary));color:var(--pill-color, var(--text-primary))}.personal-picker-btn.active{background:var(--pill-color, #0071e3);color:#fff;border-color:var(--pill-color, #0071e3);font-weight:600}[data-theme=dark] .personal-badge,[data-theme=dark] .privacy-reveal-btn,[data-theme=dark] .personal-picker-btn{background:#ffffff0f;border-color:var(--border-medium)}@media(prefers-reduced-motion:reduce){.privacy-blur .budget-row-total,.privacy-blur .budget-row-persons,.privacy-blur .person-amount,.privacy-blur .budget-section-amount,.privacy-blur .category-bar-amount,.privacy-blur .category-bar-track-wrapper,.privacy-blur .category-detail-wrapper{transition:none}}.fire-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.fire-header-left{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.fire-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.fire-subtitle{font-size:var(--text-small);color:var(--text-secondary)}.fire-toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.fire-toggle input{opacity:0;width:0;height:0}.fire-toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:24px;transition:background .2s ease,border-color .2s ease}.fire-toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.fire-toggle input:checked+.fire-toggle-slider{background:var(--primary);border-color:var(--primary)}.fire-toggle input:checked+.fire-toggle-slider:before{transform:translate(20px)}.fire-toggle input:focus-visible+.fire-toggle-slider{outline:2px solid var(--primary);outline-offset:2px}.fire-body{margin-top:var(--space-md)}.fire-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.fire-input-group label{display:block;font-size:var(--text-small);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.fire-optional{font-weight:400;opacity:.7}.fire-input-row{display:flex;align-items:center;gap:var(--space-xs)}.fire-input-row input{width:90px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:var(--text-body);font-family:inherit;-moz-appearance:textfield}.fire-input-row input::-webkit-outer-spin-button,.fire-input-row input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fire-input-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0071e326}.fire-input-suffix{font-size:var(--text-small);color:var(--text-secondary);white-space:nowrap}.fire-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-sm)}.fire-result-card{padding:var(--space-sm) var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));text-align:center}.fire-result-label{font-size:var(--text-small);color:var(--text-secondary);font-weight:500;margin-bottom:var(--space-xs)}.fire-result-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}.fire-result-sub{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.fire-result-target .fire-result-value{color:var(--primary)}.fire-result-date .fire-result-value{color:var(--success)}.fire-result-date .fire-result-value.fire-unreachable{color:var(--danger);font-size:1rem}.fire-progress-bar-wrapper{margin-top:var(--space-xs);height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.fire-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:3px;transition:width .5s ease}@media(prefers-reduced-motion:reduce){.fire-progress-bar{transition:none}.fire-toggle-slider,.fire-toggle-slider:before{transition:none}}.deletion-status-banner{margin-bottom:var(--space-sm);padding:var(--space-md);background:color-mix(in srgb,var(--warning) 8%,var(--glass-bg));border:1px solid color-mix(in srgb,var(--warning) 25%,transparent);border-radius:var(--radius-lg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.deletion-banner-content{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.deletion-banner-icon{font-size:var(--text-title);flex-shrink:0}.deletion-banner-title{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-body)}.deletion-banner-desc{font-size:var(--text-caption);color:var(--text-secondary);margin-top:2px}.deletion-banner-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.deletion-banner-actions .btn{font-size:var(--text-caption);padding:var(--space-xs) var(--space-sm)}.deletion-cancel-btn{color:var(--success)!important}.deletion-execute-btn{background:var(--danger)!important;color:#fff!important}.deletion-status-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.deletion-status-overlay.show{opacity:1;visibility:visible}.deletion-status-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);padding:var(--space-xl);max-width:420px;width:90vw;text-align:center;transform:scale(.95);transition:transform .25s ease}.deletion-status-overlay.show .deletion-status-modal{transform:scale(1)}.deletion-status-icon{font-size:3rem;margin-bottom:var(--space-sm)}.deletion-status-title{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--danger);margin-bottom:var(--space-md)}.deletion-status-countdown{display:flex;flex-direction:column;align-items:center;padding:var(--space-md);margin-bottom:var(--space-md);background:var(--danger-light);border-radius:var(--radius-lg)}.deletion-days-remaining{font-size:2.5rem;font-weight:var(--font-bold);color:var(--danger);line-height:1;font-variant-numeric:tabular-nums}.deletion-days-label{font-size:var(--text-caption);color:var(--text-secondary);margin-top:var(--space-xs)}.deletion-status-date{font-size:var(--text-body);color:var(--text-secondary);margin-bottom:var(--space-md)}.deletion-status-info{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-md)}.deletion-status-checklist{text-align:left;margin-bottom:var(--space-lg)}.deletion-check-item{font-size:var(--text-caption);color:var(--success);padding:var(--space-xs) 0}.deletion-status-actions{display:flex;gap:var(--space-xs);justify-content:center;flex-wrap:wrap}.deletion-status-actions .btn{min-width:100px}.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;font-weight:var(--font-semibold)}.btn-primary:hover{opacity:.9}.btn-danger{background:var(--danger-light);color:var(--danger);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;font-weight:var(--font-semibold)}.btn-danger:hover{background:var(--danger);color:#fff}@media(prefers-reduced-motion:reduce){.deletion-status-overlay,.deletion-status-modal{transition:none}}.calendar-seasonal-btn{font-size:var(--text-caption);white-space:nowrap}.month-card-template.auto-assigned{color:var(--primary);font-style:italic}.seasonal-rules-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.seasonal-rules-overlay.show{opacity:1;visibility:visible}.seasonal-rules-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);padding:var(--space-lg);max-width:480px;width:90vw;max-height:85vh;overflow-y:auto;transform:scale(.95);transition:transform .25s ease}.seasonal-rules-overlay.show .seasonal-rules-modal{transform:scale(1)}.seasonal-rules-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.seasonal-rules-header h3{font-size:var(--text-title);font-weight:var(--font-bold);color:var(--text-primary);margin:0}.seasonal-rules-desc{font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:var(--space-md);line-height:1.4}.seasonal-rules-footer{display:flex;justify-content:flex-end;margin-top:var(--space-md)}.seasonal-rule-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs)}.seasonal-rule-header{display:flex;align-items:center;justify-content:space-between}.seasonal-rule-template{font-weight:var(--font-semibold);color:var(--primary);font-size:var(--text-body)}.seasonal-rule-delete{background:none;border:none;font-size:1.2rem;color:var(--text-secondary);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.seasonal-rule-delete:hover{color:var(--danger);background:var(--danger-light)}.seasonal-rule-months{font-size:var(--text-caption);color:var(--text-secondary);margin-top:2px}.seasonal-empty{text-align:center;padding:var(--space-xl) var(--space-md)}.seasonal-empty-icon{font-size:2rem;margin-bottom:var(--space-sm)}.seasonal-empty-text{font-size:var(--text-caption);color:var(--text-secondary);line-height:1.5}.seasonal-add-rule{border-top:1px solid var(--glass-border);padding-top:var(--space-md);margin-top:var(--space-sm)}.seasonal-add-title{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-body);margin-bottom:var(--space-sm)}.seasonal-add-form{display:flex;flex-direction:column;gap:var(--space-sm)}.seasonal-select{width:100%;padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-body);-webkit-appearance:none;-moz-appearance:none;appearance:none}.seasonal-month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs)}.seasonal-month-checkbox{display:flex;align-items:center;gap:4px;padding:var(--space-xs);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-caption);color:var(--text-primary);transition:background .15s ease}.seasonal-month-checkbox:hover{background:var(--bg-secondary)}.seasonal-month-checkbox input[type=checkbox]{accent-color:var(--primary)}.seasonal-quick-presets{display:flex;gap:var(--space-xs);flex-wrap:wrap}.seasonal-quick-presets .btn{font-size:11px;padding:2px 8px}.seasonal-add-btn{align-self:flex-end}@media(prefers-reduced-motion:reduce){.seasonal-rules-overlay,.seasonal-rules-modal{transition:none}}
