:root{--color-bg-primary: #f8fafc;--color-bg-secondary: #ffffff;--color-bg-tertiary: #e2e8f0;--color-bg-glass: rgba(248, 250, 252, .9);--color-bg-overlay: rgba(15, 23, 42, .55);--color-accent-primary: #2563eb;--color-accent-hover: #3b82f6;--color-accent-light: #93c5fd;--color-accent-subtle: rgba(37, 99, 235, .06);--color-accent-gradient: #1e40af;--color-accent-gradient-hover: #2563eb;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-inverse: #f8fafc;--color-success: #16a34a;--color-success-bg: rgba(22, 163, 74, .1);--color-warning: #d97706;--color-warning-bg: rgba(217, 119, 6, .1);--color-danger: #dc2626;--color-danger-bg: rgba(220, 38, 38, .1);--color-info: #2563eb;--color-purple: #7c3aed;--color-purple-bg: rgba(124, 58, 237, .1);--color-border: rgba(15, 23, 42, .08);--color-border-hover: rgba(15, 23, 42, .16);--color-border-focus: #2563eb;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08);--shadow-md: 0 4px 12px rgba(15, 23, 42, .12);--shadow-lg: 0 8px 28px rgba(15, 23, 42, .14);--shadow-xl: 0 16px 48px rgba(15, 23, 42, .18);--shadow-glow: 0 0 20px rgba(37, 99, 235, .25);--spacing-xs: .25rem;--spacing-sm: .625rem;--spacing-md: 1.125rem;--spacing-lg: 1.75rem;--spacing-xl: 2.5rem;--spacing-2xl: 3.75rem;--radius-sm: .75rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-xl: 2rem;--radius-full: 9999px;--font-sans: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-code: "Space Mono", "Fira Code", monospace;--transition-fast: .15s cubic-bezier(.34, 1.56, .64, 1);--transition-default: .25s cubic-bezier(.34, 1.56, .64, 1);--transition-slow: .4s cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}html,body{height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--spacing-md)}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.625rem}h3{font-size:1.25rem}h4{font-size:1.0625rem}p{margin-bottom:var(--spacing-md)}.glass{background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.glass-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);border-radius:var(--radius-lg)}button{font-family:inherit;font-size:.875rem;letter-spacing:.025em;cursor:pointer;border:none;transition:var(--transition-default)}.btn{padding:.5rem 1.25rem;border-radius:var(--radius-full);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);transition:var(--transition-default);font-size:.875rem;letter-spacing:-.01em}.btn-primary{background:var(--color-accent-primary);color:#fff}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover)}input,select,textarea{font-family:inherit;font-size:.95rem;padding:.75rem 1rem;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid transparent;border-radius:var(--radius-md);transition:var(--transition-default);outline:none;width:100%}input:hover,select:hover,textarea:hover{border-color:var(--color-border-hover)}input:focus,select:focus,textarea:focus{background:var(--color-bg-secondary);border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-accent-subtle)}input::placeholder{color:var(--color-text-muted)}input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:var(--color-accent-primary);border-radius:4px}.card{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--spacing-xl);border:1px solid var(--color-border);transition:var(--transition-default)}.card:hover{border-color:var(--color-border-hover)}.container{max-width:1400px;margin:0 auto;padding:var(--spacing-xl)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInOpacity{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.fade-in{animation:fadeIn var(--transition-slow) ease-out forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:var(--radius-full);border:2px solid var(--color-bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-purple{color:var(--color-purple)}.text-info{color:var(--color-info)}.text-sm{font-size:.875rem}.font-mono{font-family:var(--font-code)}.flex-center{display:flex;align-items:center;justify-content:center}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.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}.sr-only:focus{position:static;width:auto;height:auto;padding:var(--spacing-sm) var(--spacing-md);margin:0;overflow:visible;clip:auto;white-space:normal;background:var(--color-accent-primary);color:#fff;z-index:9999}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);padding:2rem}.error-boundary-content{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:3rem;max-width:600px;width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-boundary-content h1{color:var(--color-text-primary);font-size:2rem;margin-bottom:1rem;font-weight:700}.error-message{color:var(--color-text-secondary);font-size:1.1rem;margin-bottom:2rem;line-height:1.6}.error-details{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:1rem;margin:2rem 0;text-align:left}.error-details summary{cursor:pointer;font-weight:600;color:var(--color-accent-primary);-webkit-user-select:none;user-select:none}.error-details summary:hover{color:var(--color-accent-hover)}.error-stack{margin-top:1rem;padding:1rem;background:var(--color-bg-secondary);border-radius:4px;overflow-x:auto;font-size:.85rem;color:var(--color-danger);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.error-actions .btn{padding:.75rem 2rem;font-size:1rem;border-radius:var(--radius-md);border:none;cursor:pointer;font-weight:600;transition:all .3s ease}.error-actions .btn-primary{background:var(--color-accent-primary);color:#fff}.error-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.error-actions .btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.error-actions .btn-secondary:hover{background:var(--color-border-hover)}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);background:var(--color-bg-primary)}.login-card{width:100%;max-width:420px;padding:var(--spacing-2xl);text-align:center;animation:fadeIn .5s ease-out}.login-header h1{font-size:2rem;margin-bottom:var(--spacing-sm);color:var(--color-text-primary);letter-spacing:-.03em;font-weight:600}.login-header p{color:var(--color-text-secondary);font-size:1rem;margin-bottom:var(--spacing-2xl)}.login-content{margin-bottom:var(--spacing-2xl)}.google-sign-in-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md) var(--spacing-xl);background:#fff;color:#333;border:none;border-radius:var(--radius-full);font-size:.95rem;font-weight:500;cursor:pointer;transition:var(--transition-default);box-shadow:var(--shadow-md)}.google-sign-in-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.google-sign-in-btn:active{transform:translateY(0)}.google-icon{width:24px;height:24px}.error-message{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-danger-bg);border:1px solid var(--color-danger);border-radius:var(--radius-md);color:var(--color-danger);font-size:.875rem}.login-footer{color:var(--color-text-muted);font-size:.875rem}.login-footer p{margin-bottom:var(--spacing-xs)}.privacy-note{font-size:.75rem;opacity:.7}.legal-links{margin-top:var(--spacing-md);font-size:.75rem}.legal-links a{color:var(--color-text-muted);text-decoration:none;transition:var(--transition-fast)}.legal-links a:hover{color:var(--color-accent-primary)}.link-sep{margin:0 var(--spacing-xs);opacity:.4}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--spacing-md)}.sidebar{width:260px;height:100vh;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:var(--spacing-lg) var(--spacing-md);position:fixed;top:0;left:0;z-index:50;transition:transform var(--transition-default)}.sidebar-header{margin-bottom:var(--spacing-xl);padding:0 var(--spacing-sm)}.app-logo{display:flex;align-items:center;gap:var(--spacing-sm)}.app-logo h1{font-size:1.25rem;margin:0;letter-spacing:-.03em;color:var(--color-text-primary);font-weight:600}.logo-icon{font-size:1.5rem}.text-accent{color:var(--color-text-primary)}.user-profile{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-lg);border:none;background:transparent}.avatar{width:36px;height:36px;border-radius:var(--radius-full);border:none;padding:0}.user-details h3{font-size:.9rem;margin:0;font-weight:500;letter-spacing:-.01em}.user-status{font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:.55rem var(--spacing-md);border-radius:var(--radius-full);color:var(--color-text-secondary);background:transparent;transition:var(--transition-default);position:relative;font-size:.875rem}.nav-item:hover{color:var(--color-text-primary);background:var(--color-accent-subtle)}.nav-item.active{color:#fff;background:var(--color-accent-primary);font-weight:500}.nav-icon{font-size:1.1rem;min-width:22px;text-align:center}.nav-label{font-weight:inherit;letter-spacing:-.01em}.active-indicator{display:none}.sidebar-footer{border-top:1px solid var(--color-border);padding-top:var(--spacing-lg);margin-top:auto;padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.net-worth-preview{margin-bottom:var(--spacing-lg)}.net-worth-preview .label{display:block;font-size:.7rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.net-worth-preview .amount{font-size:1.35rem;font-weight:600;color:var(--color-text-primary);letter-spacing:-.02em}.net-worth-preview .amount.negative{color:var(--color-danger)}.net-worth-breakdown{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xs)}.breakdown-item{display:flex;flex-direction:column}.breakdown-label{font-size:.6rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.breakdown-value{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.btn-logout{width:100%;padding:.55rem var(--spacing-md);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted);font-weight:500;font-size:.85rem;transition:var(--transition-default)}.btn-logout:hover{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-bg)}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.layout{display:flex;min-height:100vh;background:var(--color-bg-primary)}.main-content{flex:1;margin-left:260px;min-height:100vh;display:flex;flex-direction:column}.top-bar{height:56px;padding:0 var(--spacing-xl);display:flex;align-items:center;justify-content:flex-end;position:sticky;top:0;z-index:40;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border)}.mobile-menu-btn{display:none;font-size:1.5rem;background:transparent;color:var(--color-text-primary);padding:var(--spacing-sm);margin-right:auto}.content-container{padding:var(--spacing-xl);max-width:1600px;width:100%;margin:0 auto;animation:fadeIn .5s ease-out}.mobile-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:45;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-footer{display:flex;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border);margin-top:auto}.app-footer a{font-size:.75rem;color:var(--color-text-muted);text-decoration:none;transition:var(--transition-fast)}.app-footer a:hover{color:var(--color-accent-primary)}@media(max-width:1024px){.main-content{margin-left:0}.top-bar{padding:0 var(--spacing-md)}.mobile-menu-btn{display:block}.content-container{padding:var(--spacing-md)}}.sync-status{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:12px;font-size:.9rem;font-weight:500;margin-bottom:1.5rem;transition:all .3s ease;box-shadow:var(--shadow-sm)}.sync-icon{font-size:1.2rem;display:flex;align-items:center;justify-content:center}.sync-status.loading{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.sync-status.syncing{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(194,132,26,.2)}.sync-status.saved{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(45,138,78,.2)}.sync-status.error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid rgba(197,48,48,.2)}.sync-icon.spinning{animation:spin 1s linear infinite}.retry-btn{margin-left:auto;padding:.4rem 1rem;background:var(--color-danger);border:none;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-btn:hover{opacity:.9;transform:translateY(-1px)}.retry-btn:active{transform:translateY(0)}@media(max-width:768px){.sync-status{font-size:.85rem;padding:.6rem 1rem}.sync-icon{font-size:1rem}}.onboarding-overlay{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);padding:var(--spacing-md)}.onboarding-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:520px;width:100%;padding:var(--spacing-2xl)}.onboarding-progress{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.onboarding-dot{width:10px;height:10px;border-radius:var(--radius-full);background:var(--color-border);transition:var(--transition-default)}.onboarding-dot.active{background:var(--color-accent-primary);transform:scale(1.2)}.onboarding-dot.completed{background:var(--color-success)}.onboarding-title{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-sm);text-align:center}.onboarding-subtitle{color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-xl);font-size:.95rem}.onboarding-form-group{margin-bottom:var(--spacing-lg)}.onboarding-form-group label{display:block;font-weight:500;margin-bottom:var(--spacing-xs);font-size:.9rem;color:var(--color-text-primary)}.onboarding-form-group .onboarding-hint{display:block;font-size:.8rem;color:var(--color-text-muted);margin-top:var(--spacing-xs)}.onboarding-form-group input{width:100%}.onboarding-quick-expenses{display:flex;flex-direction:column;gap:var(--spacing-sm)}.onboarding-expense-row{display:flex;align-items:center;gap:var(--spacing-sm)}.onboarding-expense-row input[type=text]{flex:1.5}.onboarding-expense-row input[type=number]{flex:1}.onboarding-expense-row button{flex-shrink:0;background:none;color:var(--color-text-muted);font-size:1.2rem;padding:var(--spacing-xs);border-radius:var(--radius-sm);line-height:1}.onboarding-expense-row button:hover{color:var(--color-danger);background:var(--color-danger-bg)}.onboarding-add-expense{background:none;color:var(--color-text-secondary);font-size:.875rem;padding:var(--spacing-sm) 0;text-align:left}.onboarding-add-expense:hover{color:var(--color-text-primary)}.onboarding-actions{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-xl);gap:var(--spacing-sm)}.onboarding-actions-right{display:flex;gap:var(--spacing-sm)}.onboarding-skip-link{background:none;color:var(--color-text-muted);font-size:.8rem;text-decoration:underline;padding:var(--spacing-xs);margin-top:var(--spacing-lg);display:block;text-align:center;width:100%}.onboarding-skip-link:hover{color:var(--color-text-secondary)}.onboarding-welcome-icon{font-size:2.5rem;text-align:center;margin-bottom:var(--spacing-md)}.onboarding-fund-options{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.onboarding-fund-option{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:1px solid var(--color-border);font-size:.875rem;color:var(--color-text-primary);cursor:pointer;transition:var(--transition-default)}.onboarding-fund-option:hover{border-color:var(--color-border-hover)}.onboarding-fund-option.selected{background:var(--color-accent-primary);color:var(--color-text-inverse);border-color:var(--color-accent-primary)}@media(max-width:600px){.onboarding-card{padding:var(--spacing-lg)}.onboarding-title{font-size:1.25rem}.onboarding-expense-row{flex-wrap:wrap}.onboarding-expense-row input[type=text],.onboarding-expense-row input[type=number]{flex:1 1 100%}.onboarding-actions{flex-direction:column-reverse}.onboarding-actions-right{width:100%;justify-content:flex-end}}.budget-summary-container{display:flex;flex-direction:column;gap:var(--spacing-xl);animation:fadeIn .5s ease-out}.summary-input-card{display:flex;align-items:center;gap:var(--spacing-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);flex-wrap:wrap}.card-header-icon{font-size:2.5rem;background:var(--color-bg-tertiary);width:64px;height:64px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.input-content label{display:block;font-size:.875rem;color:var(--color-text-muted);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.paycheck-input-wrapper{display:flex;align-items:center;gap:var(--spacing-xs)}.currency-prefix{font-size:2rem;font-weight:700;color:var(--color-accent-primary)}.paycheck-input{font-size:2rem;font-weight:700;color:var(--color-text-primary);background:transparent;border:none;padding:0;width:200px;outline:none;box-shadow:none!important}.paycheck-input:focus{background:transparent}.paycheck-display-wrapper{display:flex;align-items:center}.paycheck-display{font-size:2rem;font-weight:700;color:var(--color-text-primary)}.edit-income-link{display:inline-block;margin-top:var(--spacing-xs);font-size:.8rem;color:var(--color-accent-primary);text-decoration:none;font-weight:500}.edit-income-link:hover{text-decoration:underline}.input-divider{width:1px;height:60px;background:var(--color-border);margin:0 var(--spacing-md)}.tax-rate-section{min-width:140px}.tax-input-wrapper{display:flex;align-items:center;gap:var(--spacing-xs)}.tax-input{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);width:80px;text-align:center;outline:none;transition:var(--transition-default)}.tax-input:focus{border-color:var(--color-accent-primary);background:var(--color-bg-primary);box-shadow:0 0 0 2px var(--color-accent-subtle)}.percent-suffix{font-size:1.5rem;font-weight:700;color:var(--color-text-muted)}.pretax-income-row{animation:fadeIn .3s ease-out}.pretax-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.pretax-label{font-size:.875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.pretax-value{font-size:1.15rem;font-weight:600;color:var(--color-text-secondary);letter-spacing:-.02em}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-lg)}.stat-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md);transition:var(--transition-default);position:relative;overflow:hidden}.stat-card:hover{border-color:var(--color-border-hover)}.stat-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.stat-icon.icon-danger{color:var(--color-danger);background:var(--color-danger-bg)}.stat-icon.icon-warning{color:var(--color-warning);background:var(--color-warning-bg)}.stat-icon.icon-info{color:var(--color-info);background:#2563eb14}.stat-icon.icon-success{color:var(--color-success);background:var(--color-success-bg)}.stat-icon.icon-purple{color:var(--color-purple);background:var(--color-purple-bg)}.stat-content{display:flex;flex-direction:column}.stat-label{font-size:.875rem;color:var(--color-text-muted);margin-bottom:2px}.stat-value{font-size:1.35rem;font-weight:600;color:var(--color-text-primary);letter-spacing:-.02em}.stat-detail{font-size:.75rem;color:var(--color-text-muted);margin-top:2px}.stat-badge{font-size:.75rem;padding:2px 6px;border-radius:4px;margin-left:8px;font-family:var(--font-sans);vertical-align:middle}.stat-badge.danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.result-card{background:var(--color-bg-tertiary);border:1px solid var(--color-border)}.result-card.positive{border-color:#2d8a4e4d}.result-card.negative{border-color:#c530304d}.dti-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);animation:fadeIn .4s ease-out}.dti-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);font-size:1.1rem;color:var(--color-text-primary)}.dti-icon{font-size:1.25rem}.dti-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg)}.dti-card{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.dti-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.dti-label{font-size:.875rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.dti-badge{font-size:.7rem;padding:2px 8px;border-radius:var(--radius-full);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.dti-badge.text-success{background:var(--color-success-bg);color:var(--color-success)}.dti-badge.text-warning{background:var(--color-warning-bg);color:var(--color-warning)}.dti-badge.text-danger{background:var(--color-danger-bg);color:var(--color-danger)}.dti-value-row{margin-bottom:var(--spacing-md)}.dti-value{font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.dti-bar{height:8px;background:var(--color-bg-primary);border-radius:var(--radius-full);overflow:hidden}.dti-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease-out}.dti-bar-fill.bg-success{background:var(--color-accent-primary)}.dti-bar-fill.bg-warning{background:#8d8d8d}.dti-bar-fill.bg-danger{background:var(--color-danger)}.dti-help-text{margin-top:var(--spacing-lg);font-size:.85rem;color:var(--color-text-muted);line-height:1.5}@media(max-width:768px){.stats-row{grid-template-columns:1fr}.paycheck-input,.currency-prefix{font-size:1.5rem}.input-divider{display:none}.summary-input-card{flex-direction:column;align-items:flex-start}.tax-rate-section{width:100%;margin-top:var(--spacing-md)}.dti-row{grid-template-columns:1fr}}.toast-container{position:fixed;bottom:var(--spacing-lg);left:var(--spacing-lg);z-index:1100;display:flex;flex-direction:column;gap:var(--spacing-sm)}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-full);min-width:250px;max-width:400px;animation:slideIn .2s ease-out;box-shadow:var(--shadow-lg)}.toast-info{background:var(--color-accent-primary);color:#fff}.toast-success{background:var(--color-success);color:#fff}.toast-error{background:var(--color-danger);color:#fff}.toast-message{flex:1;font-size:.85rem}.toast-action{background:#fff3;border:1px solid rgba(255,255,255,.4);color:inherit;cursor:pointer;font-size:.8rem;font-weight:600;padding:2px 10px;border-radius:var(--radius-full);white-space:nowrap;transition:background .15s}.toast-action:hover{background:#ffffff59}.toast-close{background:none;border:none;color:inherit;opacity:.7;cursor:pointer;font-size:1.2rem;padding:0;line-height:1}.toast-close:hover{opacity:1}@keyframes slideIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.budget-table-container{animation:fadeIn .5s ease-out;position:relative}.budget-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);position:sticky;top:64px;z-index:50;background:var(--color-bg-primary);padding:var(--spacing-md) 0;border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}.budget-table-header.scrolled{border-bottom-color:var(--color-border);box-shadow:0 4px 12px #0000001a}.budget-table-header h2{margin:0;color:var(--color-text-primary);font-size:1.5rem}.budget-table-header .header-actions{display:flex;gap:var(--spacing-sm);align-items:center}.budget-list-simple{display:flex;flex-direction:column;padding:var(--spacing-md)!important}.simple-expense-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.simple-expense-row:last-child{border-bottom:none}.expense-details{display:flex;flex-direction:column}.expense-category{font-weight:600;color:var(--color-text-primary)}.expense-date{font-size:.75rem;color:var(--color-text-muted);text-transform:capitalize}.expense-amount{font-weight:700;color:var(--color-text-primary)}.table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border)}.budget-table{width:100%;border-collapse:collapse;min-width:800px}.budget-table thead{background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.budget-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:600;color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.budget-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.budget-table tbody tr:hover{background:var(--color-bg-tertiary)}.budget-table tbody tr:last-child{border-bottom:none}.budget-table td{padding:var(--spacing-md) var(--spacing-lg);vertical-align:middle}.table-input{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:6px 10px;width:100%;transition:var(--transition-default)}.table-input:hover{background:var(--color-bg-tertiary)}.table-input:focus{background:var(--color-bg-primary);border-color:var(--color-accent-primary)}.amount-input-table{display:flex;align-items:center;gap:4px}.amount-input-table .currency{color:var(--color-text-muted)}.table-select{background:transparent;border:1px solid transparent;padding:6px 10px;border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer}.table-select:hover{background:var(--color-bg-tertiary)}.custom-checkbox{display:block;position:relative;padding-left:24px;margin-bottom:24px;cursor:pointer;-webkit-user-select:none;user-select:none;height:20px}.checkbox-cell{text-align:center;padding:0!important}.custom-checkbox input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:0;left:50%;transform:translate(-50%);height:20px;width:20px;background-color:var(--color-bg-tertiary);border-radius:4px;border:1px solid var(--color-border);transition:var(--transition-default)}.custom-checkbox:hover input~.checkmark{border-color:var(--color-accent-primary)}.custom-checkbox input:checked~.checkmark{background-color:var(--color-accent-primary);border-color:var(--color-accent-primary)}.checkmark:after{content:"";position:absolute;display:none}.custom-checkbox input:checked~.checkmark:after{display:block}.custom-checkbox .checkmark:after{left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.actions-cell{text-align:right}.empty-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.empty-content .icon{font-size:2.5rem;margin-bottom:var(--spacing-md);opacity:.5}@media(max-width:767px){.budget-table-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.table-wrapper{overflow-x:visible;background:transparent;border:none;box-shadow:none}.budget-table{min-width:0}.budget-table thead{display:none}.budget-table tbody{display:flex;flex-direction:column;gap:var(--spacing-md)}.budget-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-md);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--color-border)}.budget-table tbody tr:last-child{border-bottom:1px solid var(--color-border)}.budget-table tbody tr:hover{border-color:var(--color-border-hover)}.budget-table td{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-xs)}.budget-table td:before{content:attr(data-label);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);min-width:3.5rem;flex-shrink:0}.budget-table td[data-label=Category]{grid-column:1 / -1;border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-xs)}.budget-table td[data-label=Category] .table-input{font-size:1rem;font-weight:600;padding:6px 8px}.budget-table td[data-label=Amount]{grid-column:1 / -1}.budget-table td[data-label=Amount] .amount-input-table{flex:1}.budget-table td[data-label=Amount] .table-input{font-size:1.1rem;font-weight:600}.budget-table td[data-label=Type]{grid-column:1 / -1}.budget-table td[data-label=Type] .table-select{flex:1;min-height:44px;font-size:.9rem}.budget-table td.checkbox-cell{text-align:left;padding:var(--spacing-sm) var(--spacing-xs)!important;justify-content:flex-start}.budget-table td.checkbox-cell .custom-checkbox{display:flex;align-items:center;padding-left:28px;margin-bottom:0;height:44px}.budget-table td.checkbox-cell .checkmark{left:0;transform:none;width:22px;height:22px}.budget-table td.checkbox-cell .custom-checkbox .checkmark:after{left:7px;top:3px}.budget-table td.actions-cell{grid-column:1 / -1;justify-content:flex-end;border-top:1px solid var(--color-border);padding-top:var(--spacing-md);margin-top:var(--spacing-xs)}.budget-table td.actions-cell:before{display:none}.budget-table td.actions-cell .btn-icon{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.table-input{min-height:44px}.budget-table td.has-override:before{display:none}.budget-table td.has-override{background:#22c55e0d;border-radius:var(--radius-sm)}.budget-table tbody tr:has(.empty-state){display:block}.empty-state{display:block!important}}.new-row-highlight{animation:highlightRow 1s ease-out}@keyframes highlightRow{0%{background:#1f1f1f14}to{background:transparent}}.has-override{position:relative;background:#22c55e0d}.has-override:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-success)}.goals-manager{animation:fadeIn .5s ease-out}.goals-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.goals-header h2{margin:0;color:var(--color-text-primary);font-size:1.5rem}.goals-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.empty-goals{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center;border:2px dashed var(--color-border);background:transparent}.empty-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.goal-card{padding:0;transition:var(--transition-default);background:var(--color-bg-secondary);border:1px solid var(--color-border);overflow:visible}.goal-card:hover{border-color:var(--color-border-hover)}.goal-card.dragging{opacity:.5;border-style:dashed;border-color:var(--color-accent-primary)}.goal-main-row{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-lg)}.goal-drag-handle{color:var(--color-text-muted);cursor:grab;font-size:1.2rem;opacity:.5;padding:var(--spacing-xs)}.goal-drag-handle:hover{opacity:1;color:var(--color-text-primary)}.goal-reorder-buttons{display:flex;flex-direction:column;gap:2px}.btn-reorder{width:24px!important;height:24px!important;padding:0;color:var(--color-text-muted)}.btn-reorder:disabled{opacity:.25;cursor:not-allowed}.btn-reorder:not(:disabled):hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.goal-info{flex:2;min-width:200px;display:flex;flex-direction:column;gap:4px}.goal-name-input{font-size:1.1rem;font-weight:600;padding:0;background:transparent;border:none;color:var(--color-text-primary);width:100%;border-radius:0}.goal-name-input:focus{background:transparent;box-shadow:none;border-bottom:1px dashed var(--color-accent-primary)}.goal-type-select{padding:2px 0;font-size:.8rem;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;width:auto}.goal-type-select:hover{color:var(--color-accent-light)}.goal-progress-section{flex:3;display:flex;flex-direction:column;gap:var(--spacing-xs)}.progress-text{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;font-family:var(--font-mono)}.inline-currency-input{background:transparent;border:none;padding:0;font-family:inherit;font-weight:inherit;color:inherit;width:80px;text-align:right;box-shadow:none!important;outline:none}.inline-currency-input:focus{border-bottom:1px dashed var(--color-accent-primary)}.current-val{font-size:1.1rem;font-weight:700;color:var(--color-text-primary)}.separator{color:var(--color-text-muted);font-size:.9rem}.target-val{font-size:.9rem;color:var(--color-text-muted)}.goal-progress-bar-bg{height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.goal-progress-fill{height:100%;background:var(--color-accent-primary);border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1)}.goal-progress-fill.complete{background:var(--color-accent-primary)}.goal-actions{display:flex;gap:var(--spacing-sm)}.btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);border:1px solid transparent;font-size:1rem}.btn-icon:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-icon.active{background:var(--color-accent-subtle);color:var(--color-accent-light);border-color:var(--color-accent-light)}.btn-icon.delete:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger)}.goal-config-panel{border-top:1px solid var(--color-border);padding:var(--spacing-lg);background:var(--color-bg-tertiary);border-radius:0 0 var(--radius-lg) var(--radius-lg);margin-top:-1px}.goal-config-panel h4{margin:0 0 var(--spacing-md) 0;font-size:.9rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.config-grid{display:grid;grid-template-columns:1fr 2fr;gap:var(--spacing-xl)}.config-group label{display:block;font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.input-group{display:flex;align-items:center;gap:var(--spacing-sm)}.input-group input{width:80px}.suffix{font-size:.9rem;color:var(--color-text-secondary)}.tags-input{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tag-checkbox{display:flex;align-items:center;padding:6px 12px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:.8rem;color:var(--color-text-secondary);cursor:pointer;border:1px solid transparent;transition:var(--transition-default)}.tag-checkbox input{display:none}.tag-checkbox:hover{background:var(--color-bg-primary);border-color:var(--color-border)}.tag-checkbox.active{background:var(--color-accent-subtle);color:var(--color-accent-light);border-color:var(--color-accent-light)}.goals-list-simple{display:flex;flex-direction:column;padding:var(--spacing-md)!important}.simple-goal-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.simple-goal-row:last-child{border-bottom:none}.goal-details{display:flex;flex-direction:column;flex:1;min-width:0;gap:4px}.goal-details .goal-name{font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-details .goal-progress-bar-bg.small{height:4px;max-width:120px}.simple-goal-row .goal-amount{font-size:.85rem;font-family:var(--font-mono);color:var(--color-text-secondary);white-space:nowrap;margin-left:var(--spacing-md)}.goals-see-more{text-align:center;color:var(--color-text-muted);font-size:.85rem;padding:var(--spacing-sm) 0;font-style:italic}.empty-simple{text-align:center;color:var(--color-text-muted);font-style:italic;padding:var(--spacing-md)}@media(max-width:768px){.goal-main-row{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.goal-info{text-align:center}.goal-drag-handle{display:none}.config-grid{grid-template-columns:1fr}}.waterfall-chart{animation:fadeIn .5s ease-out .2s backwards;width:100%}.waterfall-chart h2{margin-bottom:var(--spacing-xs);color:var(--color-text-primary);font-size:1.1rem;font-weight:600;letter-spacing:-.02em}.waterfall-description{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);font-size:.85rem}.waterfall-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);position:relative;overflow:hidden}.wf-row{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:12px}.wf-row:last-child{margin-bottom:0}.wf-label{width:180px;flex-shrink:0;display:flex;flex-direction:column;gap:1px}.wf-label-text{font-weight:500;font-size:.85rem;color:var(--color-text-secondary);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:4px}.wf-priority-badge{color:var(--color-accent-primary);flex-shrink:0}.wf-label-amount{font-size:.95rem;font-weight:600;color:var(--color-text-primary);letter-spacing:-.02em}.wf-target{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.wf-bar-track{flex:1;height:36px;background:var(--color-bg-tertiary);border-radius:var(--radius-md);position:relative;overflow:hidden}.wf-bar{height:100%;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:flex-end;padding-right:12px;transition:width .6s cubic-bezier(.4,0,.2,1);min-width:4px}.wf-bar-text{color:#fff;font-size:.8rem;font-weight:600;white-space:nowrap;letter-spacing:-.02em;opacity:0;animation:fadeIn .3s ease-out .6s forwards}.wf-bar-text.dark{color:var(--color-text-secondary)}.wf-row:hover .wf-bar{filter:brightness(1.05)}.wf-row:hover .wf-label-text{color:var(--color-text-primary)}@media(max-width:768px){.wf-row{flex-direction:column;gap:var(--spacing-xs);align-items:stretch}.wf-label{width:100%;flex-direction:row;justify-content:space-between;align-items:center}.wf-bar-track{height:28px}}.emergency-fund-widget{background:var(--color-bg-secondary);border:1px solid var(--color-border);transition:var(--transition-default)}.widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.widget-header h3{margin:0;font-size:1.1rem;color:var(--color-text-primary)}.target-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.target-input-group{display:flex;align-items:center;gap:var(--spacing-xs)}.target-label-text{font-size:.8rem;color:var(--color-text-muted)}.target-label{font-size:.8rem;color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:4px 10px;border-radius:var(--radius-full);display:flex;align-items:center;gap:var(--spacing-xs)}.auto-tag{font-size:.7rem;color:var(--color-accent-light);margin-left:var(--spacing-xs)}.btn-toggle-mode{width:28px;height:28px;border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);font-size:.9rem;cursor:pointer;transition:var(--transition-default);display:flex;align-items:center;justify-content:center}.btn-toggle-mode:hover{background:var(--color-accent-subtle);border-color:var(--color-accent-primary);transform:scale(1.05)}.input-affix.compact{padding:2px 8px;min-width:100px}.input-affix.compact input{padding:2px 4px;font-size:.8rem}.months-slider-container{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.months-slider-container label{display:block;font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.months-slider-container label strong{color:var(--color-accent-light);font-weight:700}.slider-wrapper{display:flex;align-items:center;gap:var(--spacing-md)}.slider-label{font-size:.75rem;color:var(--color-text-muted);font-weight:600;min-width:20px}.months-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:var(--radius-full);background:var(--color-bg-primary);outline:none;transition:var(--transition-default)}.months-slider:hover{background:var(--color-border-hover)}.months-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-accent-primary);cursor:pointer;box-shadow:0 2px 4px #0003;transition:var(--transition-default)}.months-slider::-webkit-slider-thumb:hover{background:var(--color-accent-hover);transform:scale(1.1);box-shadow:0 0 0 4px var(--color-accent-subtle)}.months-slider::-moz-range-thumb{width:20px;height:20px;border:none;border-radius:var(--radius-full);background:var(--color-accent-primary);cursor:pointer;box-shadow:0 2px 4px #0003;transition:var(--transition-default)}.months-slider::-moz-range-thumb:hover{background:var(--color-accent-hover);transform:scale(1.1);box-shadow:0 0 0 4px var(--color-accent-subtle)}.widget-content{display:flex;align-items:center;gap:var(--spacing-xl)}.radial-progress-container{position:relative;width:100px;height:100px}.radial-progress{transform:rotate(-90deg)}.progress-bg{fill:none;stroke:var(--color-bg-tertiary);stroke-width:8}.progress-bar{fill:none;stroke:var(--color-accent-primary);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.funded .progress-bar{stroke:var(--color-accent-primary)}.progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.percentage{display:block;font-size:1.25rem;font-weight:700;font-family:var(--font-mono)}.fund-controls{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md)}.control-group label{display:block;font-size:.75rem;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:4px;letter-spacing:.05em}.input-affix{display:flex;align-items:center;background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:0 var(--spacing-md);border:1px solid transparent;transition:var(--transition-default)}.input-affix:focus-within{background:var(--color-bg-primary);border-color:var(--color-accent-primary);box-shadow:0 0 0 2px var(--color-accent-subtle)}.input-affix span{color:var(--color-text-muted)}.input-affix input{background:transparent;border:none;width:100%;padding:var(--spacing-sm);box-shadow:none!important}.balance-source-label{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--color-accent-primary);font-weight:600}.pod-balance-display{display:flex;align-items:center;gap:var(--spacing-sm)}.pod-balance-amount{font-size:1.3rem;font-weight:700;font-family:var(--font-code);color:var(--color-text-primary)}.btn-refresh-balance{background:none;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;padding:3px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color var(--transition-fast),border-color var(--transition-fast)}.btn-refresh-balance:hover{color:var(--color-accent-primary);border-color:var(--color-accent-primary)}.pod-balance-breakdown{display:flex;flex-direction:column;gap:2px;margin-top:4px}.pod-balance-item{font-size:.75rem;color:var(--color-text-muted)}.pod-link-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:4px}.pod-link-hint .link{color:var(--color-accent-primary);text-decoration:underline}.allocation-info{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.85rem;color:var(--color-success);background:var(--color-success-bg);padding:6px 10px;border-radius:var(--radius-md)}@media(max-width:480px){.widget-content{flex-direction:column;text-align:center}.allocation-info{justify-content:center}}.monthly-budget-selector{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-md)}.current-view{display:flex;align-items:center;gap:var(--spacing-sm)}.view-label{color:var(--color-text-muted);font-size:.875rem}.view-value{font-weight:600;font-size:1rem;padding:4px 12px;border-radius:var(--radius-md)}.view-value.baseline-view{background:var(--color-accent-subtle);color:var(--color-accent-primary)}.view-value.month-view{background:var(--color-success-bg);color:var(--color-success)}.btn-baseline{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:4px 12px;border-radius:var(--radius-md);font-size:.75rem;cursor:pointer;transition:all .2s}.btn-baseline:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.year-selector{display:flex;align-items:center;gap:var(--spacing-sm)}.year-selector label{color:var(--color-text-muted);font-size:.875rem}.year-selector select{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);padding:6px 12px;border-radius:var(--radius-md);cursor:pointer}.months-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.month-btn{position:relative;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;transition:all .2s;text-align:center}.month-btn:hover{background:var(--color-bg-primary);border-color:var(--color-accent-primary);color:var(--color-text-primary)}.month-btn.selected{background:var(--color-accent-primary);border-color:transparent;color:#fff}.month-btn.customized{border-color:var(--color-success)}.month-btn.customized .month-name{color:var(--color-success)}.month-btn.selected.customized .month-name{color:#fff}.month-btn.past{opacity:.5}.month-name{font-weight:500;font-size:.875rem}.customized-badge{position:absolute;top:-4px;right:-4px;font-size:.625rem;background:var(--color-bg-secondary);border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-success)}.customized-badge:hover{background:var(--color-error);border-color:var(--color-error)}.month-info{padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--color-success-bg);border:1px solid rgba(45,138,78,.2)}.month-info.baseline{background:var(--color-accent-subtle);border-color:var(--color-border)}.info-text{margin:0;font-size:.875rem;color:var(--color-text-secondary);line-height:1.5}.info-text strong{color:var(--color-text-primary)}@media(max-width:768px){.months-grid{grid-template-columns:repeat(4,1fr)}.selector-header{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.months-grid{grid-template-columns:repeat(3,1fr)}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease-out}.confirm-dialog{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:90%;box-shadow:var(--shadow-lg)}.confirm-title{margin:0 0 var(--spacing-sm);color:var(--color-text-primary);font-size:1.1rem}.confirm-message{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg);font-size:.9rem;line-height:1.5}.confirm-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end}.btn-cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem}.btn-cancel:hover{background:var(--color-bg-primary)}.btn-confirm{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:.85rem}.btn-confirm.btn-danger{background:var(--color-danger);color:#fff}.btn-confirm.btn-danger:hover{opacity:.9}.btn-confirm.btn-warning{background:var(--color-warning);color:var(--color-bg-primary)}.btn-confirm.btn-info{background:var(--color-accent-primary);color:#fff}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeInOpacity .2s ease-out}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;animation:slideIn .25s cubic-bezier(.4,0,.2,1)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:1.25rem;color:var(--color-text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.05em}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group .form-select{width:100%;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:1rem;transition:all .2s}.form-group input:focus,.form-group .form-select:focus{outline:none;border-color:var(--color-accent-primary);background:var(--color-bg-primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.when-picker-wrapper{display:flex;gap:var(--spacing-sm)}.when-picker-wrapper .form-select{flex:1}.btn-recommend{background:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;white-space:nowrap;font-weight:600;transition:all .2s}.btn-recommend:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.btn-recommend:disabled{opacity:.4;cursor:not-allowed}.recommendations-section{margin-top:var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)}.rec-header{margin:0 0 var(--spacing-sm) 0;font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.recommendations-section .rec-list{padding:0}.recommendations-section .rec-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;margin-bottom:var(--spacing-xs);text-align:left}.recommendations-section .rec-item:last-child{margin-bottom:0}.recommendations-section .rec-item:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent-primary)}.recommendations-section .rec-item.status-comfortable{border-left:3px solid var(--color-success)}.recommendations-section .rec-item.status-manageable{border-left:3px solid var(--color-warning)}.recommendations-section .rec-item.status-tight{border-left:3px solid #d97706}.recommendations-section .rec-item.status-negative{border-left:3px solid var(--color-danger)}.rec-icon{font-size:1.25rem}.rec-month{flex:1;font-weight:500;color:var(--color-text-primary)}.rec-status{font-size:.75rem;color:var(--color-text-muted)}.rec-warning{padding:0}.rec-warning p{margin:0 0 var(--spacing-sm) 0;font-size:.875rem;color:var(--color-text-secondary)}.spread-plan{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-sm)}.spread-plan p{font-weight:600;margin-bottom:var(--spacing-xs)}.spread-item{font-size:.75rem;color:var(--color-text-muted);padding:2px 0}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.form-select.status-comfortable{border-color:var(--color-success);background:var(--color-success-bg)}.form-select.status-manageable{border-color:var(--color-warning);background:var(--color-warning-bg)}.form-select.status-tight{border-color:#d97706;background:#d9770614}.form-select.status-negative{border-color:var(--color-danger);background:var(--color-danger-bg)}.strategy-toggle{display:flex;background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:4px}.status-circle{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-right:4px}.strategy-btn{flex:1;background:transparent;border:none;padding:var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;color:var(--color-text-muted);transition:all .2s}.strategy-btn.active{background:var(--color-accent-primary);color:#fff}.strategy-btn:hover:not(.active):not(:disabled){background:var(--color-bg-primary);color:var(--color-text-primary)}.strategy-btn.disabled,.strategy-btn:disabled{opacity:.5;cursor:not-allowed;font-size:.8rem}.strategy-btn-wrapper{flex:1;position:relative;display:flex}.strategy-btn-wrapper .strategy-btn{width:100%}.strategy-badge{position:absolute;top:-4px;right:-2px;background:var(--color-text-muted);color:var(--color-bg-primary);font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;pointer-events:none}.even-spread-schedule{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)}.even-spread-schedule label{display:block;font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.even-spread-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.even-spread-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:var(--color-bg-primary)}.even-spread-item:nth-child(2n){background:var(--color-bg-secondary)}.even-spread-month{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.even-spread-amount{font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.even-spread-cycle{margin-bottom:var(--spacing-sm)}.even-spread-cycle:last-child{margin-bottom:0}.even-spread-cycle-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:2px;border-bottom:1px solid var(--color-border)}.even-spread-cycle-header .cycle-label{font-size:.75rem;font-weight:700;color:var(--color-accent-primary);text-transform:uppercase;letter-spacing:.05em}.even-spread-cycle-header .cycle-due{font-size:.75rem;color:var(--color-text-muted);font-style:italic}.even-spread-cycle-total{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);margin-top:2px;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);border-top:1px dashed var(--color-border)}.spread-schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.spread-schedule-header label{margin-bottom:0}.btn-regenerate{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.even-spread-amount-edit{display:flex;align-items:center;gap:0}.even-spread-amount-edit .currency-prefix{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-right:2px}.schedule-amount-input{width:80px;background:var(--color-bg-secondary);border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;color:var(--color-text-primary);font-size:.875rem;font-weight:600;text-align:right;transition:border-color .2s,background .2s}.schedule-amount-input:hover{border-color:var(--color-border);background:var(--color-bg-primary)}.schedule-amount-input:focus{outline:none;border-color:var(--color-accent-primary);background:var(--color-bg-primary)}.schedule-amount-input::-webkit-inner-spin-button,.schedule-amount-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.schedule-amount-input[type=number]{-moz-appearance:textfield}.spread-running-total{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;margin-bottom:var(--spacing-sm)}.spread-running-total.status-match{background:#48bb781f;color:var(--color-success)}.spread-running-total.status-close{background:#ecc94b1f;color:var(--color-warning)}.spread-running-total.status-off{background:#f565651f;color:var(--color-danger)}.total-indicator{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.month-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.month-btn{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;transition:all .15s ease}.month-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.month-btn:hover:not(.active){border-color:var(--color-primary);color:var(--color-text-primary)}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);max-height:250px;overflow-y:auto;padding:var(--spacing-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.month-picker-item{display:flex;flex-direction:column;gap:4px}.month-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.month-checkbox:hover{border-color:var(--color-accent-primary)}.month-checkbox.selected{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff}.month-checkbox input[type=checkbox]{margin:0;cursor:pointer}.month-label{font-size:.75rem;font-weight:600;white-space:nowrap}.spread-amount-input{width:100%;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 8px;color:var(--color-text-primary);font-size:.875rem}.spread-summary{margin-left:var(--spacing-sm);font-size:.75rem;color:var(--color-text-muted);font-weight:400}.btn-recommend-large{width:100%;background:var(--color-accent-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--spacing-md);cursor:pointer;font-weight:600;font-size:1rem;transition:all .2s}.btn-recommend-large:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.btn-recommend-large:disabled{opacity:.4;cursor:not-allowed}.rec-content{padding:0}.rec-warning-text{margin:0 0 var(--spacing-md) 0;padding:var(--spacing-sm);background:var(--color-warning-bg);border-left:3px solid var(--color-warning);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text-secondary)}.spread-recommendation{margin-top:var(--spacing-md)}.spread-preview{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.spread-preview-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.875rem}.spread-preview-item span{color:var(--color-text-muted)}.spread-preview-item strong{color:var(--color-text-primary);font-weight:600}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.875rem}.spread-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.spread-actions-row .btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;white-space:nowrap}.spread-actions-row .btn:disabled{opacity:.4;cursor:not-allowed;background:var(--color-bg-tertiary);color:var(--color-text-muted);border-color:var(--color-border)}.highlight-pulse{animation:recommendation-pulse 2s infinite;box-shadow:0 0 #1f1f1f4d}@keyframes recommendation-pulse{0%{transform:scale(1);box-shadow:0 0 #1f1f1f4d}70%{transform:scale(1.02);box-shadow:0 0 0 10px #1f1f1f00}to{transform:scale(1);box-shadow:0 0 #1f1f1f00}}@media(max-width:768px){.form-row{grid-template-columns:1fr}.modal-content{width:95%;max-height:95vh}.month-picker-grid{grid-template-columns:repeat(2,1fr)}}.monthly-plan{display:flex;flex-direction:column;gap:var(--spacing-lg, 1.5rem)}.monthly-plan h2{margin:0 0 var(--spacing-sm, .5rem) 0}.monthly-plan-section{background:var(--card-bg, #fff);border-radius:var(--radius-md, 12px);padding:var(--spacing-lg, 1.5rem)}.monthly-plan-section h3{margin:0 0 var(--spacing-md, 1rem) 0;font-size:1.1rem;font-weight:600}.monthly-plan-section .placeholder-text{color:var(--text-muted, #888);font-style:italic;padding:var(--spacing-md, 1rem) 0}.monthly-plan-month-selector{background:transparent;padding:0}.income-fields{display:flex;flex-direction:column;gap:var(--spacing-md, 1rem)}.income-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 1rem)}.income-row label{font-size:.95rem;font-weight:500;color:var(--color-text-secondary, #666);min-width:120px}.income-input-wrapper{display:flex;align-items:center;gap:var(--spacing-xs, .25rem)}.income-currency-prefix{font-size:1.1rem;font-weight:600;color:var(--color-accent-primary, #4a90d9)}.income-input{font-size:1.1rem;font-weight:600;color:var(--color-text-primary, #222);background:transparent;border:none;border-bottom:1px solid var(--color-border, #ddd);padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);width:140px;text-align:right;outline:none;-moz-appearance:textfield}.income-input::-webkit-outer-spin-button,.income-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.income-input:focus{border-bottom-color:var(--color-accent-primary, #4a90d9)}.income-default-badge{font-size:.8rem;color:var(--color-text-muted, #888);font-style:italic;margin-left:var(--spacing-xs, .25rem)}.income-total-row{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-md, 1rem);padding-top:var(--spacing-md, 1rem);border-top:1px solid var(--color-border, #e0e0e0)}.income-total-label{font-size:1rem;font-weight:600;color:var(--color-text-primary, #222)}.income-total-value{font-size:1.25rem;font-weight:700;color:var(--color-accent-primary, #4a90d9);font-family:var(--font-mono, monospace)}.income-reset-btn{margin-top:var(--spacing-sm, .5rem);padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);font-size:.85rem;color:var(--color-text-muted, #888);background:transparent;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s ease}.income-reset-btn:hover{color:var(--color-text-primary, #222);border-color:var(--color-text-secondary, #666)}.monthly-plan-expenses{background:transparent;padding:0}.monthly-plan-expenses h3{padding:0 var(--spacing-md, 1rem)}.non-monthly-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md, 1rem)}.non-monthly-header h3{margin:0}.non-monthly-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm, .5rem);padding:var(--spacing-lg, 1.5rem) 0;color:var(--color-text-muted, #888)}.non-monthly-empty span{font-size:.95rem}.non-monthly-rows{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.non-monthly-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm, .5rem) var(--spacing-xs, .25rem);border-bottom:1px solid var(--color-border-light, #f0f0f0)}.non-monthly-row:last-child{border-bottom:none}.non-monthly-row-info{display:flex;flex-direction:column;gap:2px}.non-monthly-row-name{font-size:.95rem;font-weight:500;color:var(--color-text-primary, #222)}.non-monthly-row-meta{display:flex;align-items:center;gap:var(--spacing-sm, .5rem);font-size:.8rem;color:var(--color-text-muted, #888)}.non-monthly-row-meta .recurrence-badge{background:var(--color-bg-subtle, #f5f5f5);padding:1px 6px;border-radius:var(--radius-sm, 4px);font-size:.75rem;font-weight:500;color:var(--color-text-secondary, #666)}.non-monthly-row-meta .due-date-text{font-size:.8rem}.legacy-spread-link{display:inline-flex;align-items:center;gap:3px;font-size:.75rem;color:var(--color-accent-primary, #4a90d9);background:none;border:none;padding:0;cursor:pointer;font-weight:500;text-decoration:none}.legacy-spread-link:hover{text-decoration:underline;color:var(--color-accent-hover, #3a7bc8)}.non-monthly-row-amount{font-size:1rem;font-weight:600;color:var(--color-text-primary, #222);font-family:var(--font-mono, monospace);white-space:nowrap}.non-monthly-total{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-sm, .5rem);padding-top:var(--spacing-sm, .5rem);border-top:1px solid var(--color-border, #e0e0e0);font-size:.95rem;font-weight:600;color:var(--color-text-primary, #222)}.non-monthly-total span:last-child{font-family:var(--font-mono, monospace)}.monthly-plan-summary{background:var(--color-bg-secondary, #fafafa);border:1px solid var(--color-border, #e0e0e0)}.allocation-summary-rows{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.allocation-summary-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm, .5rem) 0}.allocation-summary-label{font-size:.95rem;color:var(--color-text-secondary, #666)}.allocation-summary-value{font-size:1rem;font-weight:600;color:var(--color-text-primary, #222);font-family:var(--font-mono, monospace)}.allocation-summary-deduction .allocation-summary-value{color:var(--color-danger, #c53030)}.allocation-summary-total{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-md, 1rem);padding-top:var(--spacing-md, 1rem);border-top:2px solid var(--color-border, #e0e0e0)}.allocation-summary-total-label{font-size:1.1rem;font-weight:700;color:var(--color-text-primary, #222)}.allocation-summary-total-value{font-size:1.4rem;font-weight:700;color:var(--color-accent-primary, #4a90d9);font-family:var(--font-mono, monospace)}.premium-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-height:200px}.premium-gate-icon{color:var(--color-primary);margin-bottom:var(--spacing-md)}.premium-gate-title{margin:0 0 var(--spacing-sm) 0;font-size:1.25rem;color:var(--color-text)}.premium-gate-description{margin:0 0 var(--spacing-lg) 0;color:var(--color-text-secondary);max-width:400px;line-height:1.5}.premium-gate-btn{padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s ease}.premium-gate-btn:hover{background:var(--color-primary-hover, #1d4ed8)}.premium-gate-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.premium-gate-price{margin:var(--spacing-sm) 0 0 0;font-size:.85rem;color:var(--color-text-secondary)}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:var(--spacing-md) var(--spacing-xl);animation:slideUp .3s ease-out}.cookie-consent-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-lg)}.cookie-consent-content p{margin:0;font-size:.85rem;color:var(--color-text-secondary);line-height:1.5}.cookie-consent-content a{color:var(--color-accent-primary);text-decoration:underline}.cookie-consent-content .btn{white-space:nowrap;flex-shrink:0}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.cookie-consent-content{flex-direction:column;text-align:center;gap:var(--spacing-md)}}.dashboard-grid{display:flex;flex-direction:column;gap:var(--spacing-xl)}.charts-row{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}.lists-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xl)}.list-col{display:flex;flex-direction:column;gap:var(--spacing-md)}.list-col h3{font-size:1.1rem;color:var(--color-text-secondary);margin:0;padding-left:var(--spacing-xs)}@media(max-width:1200px){.lists-row{grid-template-columns:1fr}}
