:root{--color-bg: #05050A;--color-surface: rgba(20, 20, 25, .6);--color-surface-highlight: rgba(30, 30, 40, .6);--color-surface-solid: #14141A;--color-border: rgba(255, 255, 255, .08);--color-border-glass: rgba(255, 255, 255, .12);--color-accent: #6366F1;--color-accent-glow: rgba(99, 102, 241, .25);--color-accent-dim: rgba(99, 102, 241, .12);--color-accent-rgb: 99, 102, 241;--color-success: #10B981;--color-success-dim: rgba(16, 185, 129, .15);--color-danger: #F43F5E;--color-danger-dim: rgba(244, 63, 94, .15);--color-warning: #F59E0B;--color-warning-dim: rgba(245, 158, 11, .15);--color-info: #38BDF8;--color-text: #F8FAFC;--color-text-muted: #94A3B8;--color-text-dim: #64748B;--color-overlay-xs: rgba(255, 255, 255, .02);--color-overlay-sm: rgba(255, 255, 255, .04);--color-overlay-md: rgba(255, 255, 255, .08);--color-overlay-lg: rgba(255, 255, 255, .12);--color-header-bg: rgba(10, 10, 15, .7);--glass-blur: blur(16px) saturate(180%);--glass-blur-strong: blur(24px) saturate(200%);--glass-border: 1px solid var(--color-border-glass);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-2xl: 24px;--radius-pill: 999px;--font-heading: "DM Serif Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--shadow-glass: 0 8px 32px rgba(0, 0, 0, .4);--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-glow: 0 0 24px var(--color-accent-glow);--shadow-modal: 0 24px 64px rgba(0, 0, 0, .6);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--input-height: 48px;--input-height-sm: 40px}[data-theme=light]{--color-bg: #F0F4F8;--color-surface: rgba(255, 255, 255, .65);--color-surface-highlight: rgba(255, 255, 255, .85);--color-surface-solid: #FFFFFF;--color-border: rgba(0, 0, 0, .08);--color-border-glass: rgba(255, 255, 255, .5);--color-accent: #2563EB;--color-accent-glow: rgba(37, 99, 235, .25);--color-accent-dim: rgba(37, 99, 235, .1);--color-accent-rgb: 37, 99, 235;--color-success: #059669;--color-success-dim: rgba(5, 150, 105, .12);--color-danger: #E11D48;--color-danger-dim: rgba(225, 29, 72, .12);--color-warning: #D97706;--color-warning-dim: rgba(217, 119, 6, .12);--color-info: #0284C7;--color-text: #0F172A;--color-text-muted: #475569;--color-text-dim: #94A3B8;--color-overlay-xs: rgba(0, 0, 0, .02);--color-overlay-sm: rgba(0, 0, 0, .04);--color-overlay-md: rgba(0, 0, 0, .06);--color-overlay-lg: rgba(0, 0, 0, .1);--color-header-bg: rgba(255, 255, 255, .7);--shadow-glass: 0 8px 32px rgba(31, 38, 135, .12);--shadow-card: 0 4px 24px rgba(0, 0, 0, .06);--shadow-glow: 0 0 24px var(--color-accent-glow);--shadow-modal: 0 24px 64px rgba(0, 0, 0, .15)}*,*:before,*:after{box-sizing:border-box}html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-body);font-weight:400;font-size:15px;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);background-image:radial-gradient(ellipse 100% 80% at 20% -20%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(ellipse 80% 60% at 80% 120%,rgba(16,185,129,.08) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 50% 50%,rgba(99,102,241,.05) 0%,transparent 60%);background-attachment:fixed}[data-theme=light] body{background-image:radial-gradient(ellipse 100% 80% at 20% -20%,rgba(37,99,235,.1) 0%,transparent 50%),radial-gradient(ellipse 80% 60% at 80% 120%,rgba(16,185,129,.06) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 50% 50%,rgba(37,99,235,.04) 0%,transparent 60%)}h1,h2,h3{font-family:var(--font-heading);line-height:1.2;color:var(--color-text);margin:0 0 var(--sp-4) 0}h1{font-size:2.5rem;letter-spacing:-.02em}h2{font-size:1.75rem;letter-spacing:-.01em}h3{font-size:1.25rem}h4{font-size:1rem;font-family:var(--font-body);font-weight:600}p{margin:0 0 var(--sp-4) 0}input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=tel],input[type=url],input[type=search],select,textarea{font-family:var(--font-body);font-size:.95rem;color:var(--color-text);background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);min-height:var(--input-height);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,input[type=date]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=search]:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim);background:var(--color-overlay-md)}input::placeholder,textarea::placeholder{color:var(--color-text-dim)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394A3B8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-4) center;padding-right:var(--sp-10)}select option{background:var(--color-surface-solid);color:var(--color-text);padding:var(--sp-2)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:1;height:32px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent);cursor:pointer;border-radius:var(--radius-sm)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rowFadeIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes glowPulse{0%,to{box-shadow:0 0 16px var(--color-accent-glow)}50%{box-shadow:0 0 32px rgba(var(--color-accent-rgb),.4)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(max-width:768px){:root{--input-height: 44px;--input-height-sm: 38px}body{font-size:14px}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.1rem}}@media(max-width:480px){h1{font-size:1.5rem}h2{font-size:1.25rem}}.glass{background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border)}.glass-strong{background:var(--color-surface-highlight);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:var(--glass-border)}.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}:root{--logo-height: 44px}.app{max-width:1400px;margin:0 auto;padding:var(--sp-4) var(--sp-6) var(--sp-8);min-height:100vh}header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-6);margin:0 calc(-1 * var(--sp-6)) var(--sp-6);background:var(--color-header-bg);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border-bottom:1px solid var(--color-border);box-shadow:0 4px 24px #0003}header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);opacity:.4}.app-logo-wrapper{display:flex;align-items:center;gap:var(--sp-3)}.app-logo{height:var(--logo-height);display:block}.logo-badge{display:inline-flex;align-items:center;padding:3px var(--sp-3);background:var(--color-accent-dim);border:1px solid var(--color-accent);border-radius:var(--radius-pill);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);animation:glowPulse 4s ease-in-out infinite}.login-logo{display:block;height:56px;margin:0 auto var(--sp-4)}.header-user{display:flex;align-items:center;gap:var(--sp-3);font-size:.85rem;min-width:0;flex-shrink:1}.header-user-email{color:var(--color-text-muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:180px}.header-signout-btn,.header-report-btn,.header-settings-btn{background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-4);font-size:.8rem;font-family:var(--font-body);font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);min-height:36px;display:inline-flex;align-items:center;justify-content:center}.header-signout-btn:hover,.header-report-btn:hover,.header-settings-btn:hover{border-color:var(--color-accent);color:var(--color-text);background:var(--color-accent-dim);transform:translateY(-1px)}.header-report-btn{color:var(--color-accent);border-color:var(--color-accent)}.header-settings-btn{padding:var(--sp-2);width:36px}.settings-wrapper{position:relative}.settings-dropdown{position:absolute;top:calc(100% + var(--sp-2));right:0;background:var(--color-surface-solid);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-4);min-width:180px;box-shadow:var(--shadow-modal);z-index:200;animation:fadeSlideUp .15s ease}.settings-dropdown-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--sp-3)}.settings-theme-option{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);font-size:.9rem}.settings-theme-option:hover{background:var(--color-overlay-md)}.settings-theme-option input[type=radio]{accent-color:var(--color-accent)}.settings-theme-swatch{width:20px;height:20px;border-radius:var(--radius-sm);border:2px solid var(--color-border)}.settings-theme-swatch--dark{background:linear-gradient(135deg,#0a0a0f 50%,#1e1e2e 50%)}.settings-theme-swatch--light{background:linear-gradient(135deg,#f1f5f9 50%,#fff 50%)}.error{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid rgba(244,63,94,.3);padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-lg);margin-bottom:var(--sp-4);display:flex;justify-content:space-between;align-items:center;animation:fadeSlideUp .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.error button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;padding:var(--sp-1);opacity:.7;transition:opacity var(--transition-fast)}.error button:hover{opacity:1}.success-banner{background:var(--color-success-dim);color:var(--color-success);border:1px solid rgba(16,185,129,.3);padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-lg);margin-bottom:var(--sp-4);display:flex;justify-content:space-between;align-items:center;animation:fadeSlideUp .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.success-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;padding:var(--sp-1);opacity:.7;transition:opacity var(--transition-fast)}.success-banner button:hover{opacity:1}.tabs{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-6);padding:var(--sp-2);background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{padding:var(--sp-3) var(--sp-5);border:none;background:transparent;cursor:pointer;font-size:.9rem;font-family:var(--font-body);font-weight:500;border-radius:var(--radius-md);color:var(--color-text-muted);transition:all var(--transition-fast);white-space:nowrap;min-height:44px}.tabs button:hover{color:var(--color-text);background:var(--color-overlay-sm)}.tabs button.active{background:var(--color-accent);color:#fff;box-shadow:0 4px 12px var(--color-accent-glow)}section{animation:fadeSlideUp .35s ease}section h2{margin-bottom:var(--sp-6);font-size:1.6rem;font-family:var(--font-heading);font-weight:600}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-6);margin-bottom:var(--sp-6)}.chart-card{background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-6);min-height:340px;display:flex;flex-direction:column;box-shadow:var(--shadow-glass);animation:fadeSlideUp .4s ease;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.chart-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-glass),var(--shadow-glow)}.chart-card h4{margin:0 0 var(--sp-5) 0;color:var(--color-text);font-size:.9rem;font-weight:600;font-family:var(--font-body);letter-spacing:.02em;text-transform:uppercase}.chart-card-body{flex:1;position:relative;min-height:300px}.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);margin:var(--sp-6) 0;opacity:.3}.summary-bar{display:flex;justify-content:center;gap:var(--sp-8);font-size:1.05rem;font-weight:600;padding:var(--sp-4);background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.income{color:var(--color-success)}.expense{color:var(--color-danger)}.positive{color:var(--color-success)}.negative{color:var(--color-danger)}.form{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6);background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-6);box-shadow:var(--shadow-glass);animation:fadeSlideUp .35s ease;transition:box-shadow var(--transition-normal)}.form:focus-within{box-shadow:var(--shadow-glass),0 0 0 2px var(--color-accent-dim),var(--shadow-glow)}.form-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:flex-end;width:100%}.form-row input,.form-row select{flex:1;min-width:140px}.form-row .input-description{flex:2;min-width:200px}.form-row input[type=checkbox]{flex:none;min-width:unset;width:20px;height:20px;padding:0}.checkbox-label{display:flex;flex-direction:row;gap:var(--sp-2);align-items:center;white-space:nowrap;font-size:.9rem;padding:var(--sp-2) var(--sp-1);cursor:pointer;color:var(--color-text-muted);min-height:var(--input-height)}.date-label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:.85rem;color:var(--color-text-muted)}.amount-wrapper{position:relative;flex:1;min-width:140px;display:flex;align-items:center}.amount-prefix{position:absolute;left:var(--sp-4);font-size:1.1rem;font-weight:600;color:var(--color-accent);pointer-events:none;line-height:1}.amount-wrapper .amount-input-styled{padding-left:calc(var(--sp-4) + 1.2rem + var(--sp-2))}.form button{align-self:flex-start;padding:var(--sp-3) var(--sp-6);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-family:var(--font-body);font-weight:600;min-height:var(--input-height);transition:all var(--transition-fast)}.form button:hover{background:color-mix(in srgb,var(--color-accent) 85%,black);box-shadow:0 4px 16px var(--color-accent-glow);transform:translateY(-2px)}.form button:active{transform:translateY(0) scale(.98)}.table-wrapper{background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-glass)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-border)}th{font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;background:var(--color-overlay-sm);position:sticky;top:0;z-index:10}tbody tr{animation:rowFadeIn .3s ease both;transition:background var(--transition-fast)}tbody tr:nth-child(2n){background:var(--color-overlay-xs)}tbody tr:hover{background:var(--color-accent-dim)}tbody tr:nth-child(1){animation-delay:0ms}tbody tr:nth-child(2){animation-delay:25ms}tbody tr:nth-child(3){animation-delay:50ms}tbody tr:nth-child(4){animation-delay:75ms}tbody tr:nth-child(5){animation-delay:.1s}tbody tr:nth-child(6){animation-delay:125ms}tbody tr:nth-child(7){animation-delay:.15s}tbody tr:nth-child(8){animation-delay:175ms}tbody tr:nth-child(9){animation-delay:.2s}tbody tr:nth-child(10){animation-delay:225ms}td.amount-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}td.amount-expense{color:var(--color-danger)}td.amount-income{color:var(--color-success)}.cat-dot,.category-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:var(--sp-2);vertical-align:middle;flex-shrink:0;box-shadow:0 0 6px currentColor}.delete-btn{background:var(--color-danger-dim);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-danger);cursor:pointer;font-size:.9rem;padding:var(--sp-1) var(--sp-2);min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.delete-btn:hover{background:var(--color-danger);color:#fff;transform:scale(1.05)}.edit-btn{background:var(--color-accent-dim);border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;font-size:.78rem;font-family:var(--font-body);font-weight:500;padding:var(--sp-1) var(--sp-3);border-radius:var(--radius-sm);margin-right:var(--sp-2);min-height:32px;transition:all var(--transition-fast)}.edit-btn:hover{background:var(--color-accent);color:#fff;transform:scale(1.02)}.expand-btn{background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font-size:1rem;line-height:1;padding:var(--sp-1) var(--sp-2);margin-right:var(--sp-2);min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.expand-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.tx-detail-row td{background:var(--color-overlay-sm);border-top:none;padding:var(--sp-3) var(--sp-4)}.tx-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-3) var(--sp-5);font-size:.85rem;color:var(--color-text-muted)}.tx-detail-grid strong{color:var(--color-text);margin-right:var(--sp-1)}.desc-cell{white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3)!important}.modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--sp-4);animation:fadeIn .15s ease}.modal{background:var(--color-surface-solid);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--sp-6);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-modal);animation:fadeSlideUp .2s ease}.modal h3{margin:0 0 var(--sp-5) 0;color:var(--color-text);font-family:var(--font-heading)}.cancel-btn,.secondary-btn{padding:var(--sp-3) var(--sp-6);background:var(--color-overlay-sm);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-family:var(--font-body);min-height:var(--input-height);transition:all var(--transition-fast)}.cancel-btn:hover,.secondary-btn:hover{background:var(--color-overlay-md);color:var(--color-text);border-color:var(--color-text-dim)}.delete-btn-modal{padding:var(--sp-3) var(--sp-6);background:var(--color-danger-dim);color:var(--color-danger);border:1px solid rgba(244,63,94,.3);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-family:var(--font-body);min-height:var(--input-height);transition:all var(--transition-fast)}.delete-btn-modal:hover{background:var(--color-danger);color:#fff}.snapshot-form fieldset{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-5);background:var(--color-overlay-xs)}.snapshot-form legend{font-weight:600;color:var(--color-accent);padding:0 var(--sp-2);font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.field-group{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-4)}.field-group label,.snapshot-form fieldset>label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:.85rem;color:var(--color-text-muted);flex:1;min-width:140px}.field-help{display:block;color:var(--color-text-dim);font-size:.78rem;margin-bottom:var(--sp-1)}.field-error{color:var(--color-danger);font-size:.78rem;margin-top:var(--sp-1)}.snapshot-result{background:var(--color-success-dim);border:1px solid rgba(16,185,129,.3);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5);font-size:.9rem;color:var(--color-success)}.submit-btn,.btn-secondary{padding:var(--sp-3) var(--sp-6);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.95rem;font-family:var(--font-body);font-weight:600;min-height:var(--input-height);transition:all var(--transition-fast)}.submit-btn:hover:not(:disabled),.btn-secondary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.submit-btn:active,.btn-secondary:active{transform:translateY(0) scale(.98)}.submit-btn:disabled,.btn-secondary:disabled{background:var(--color-border);color:var(--color-text-dim);cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:var(--color-overlay-sm);border:1px solid var(--color-border);color:var(--color-text)}.ai-status{background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-5)}.ai-status h3{margin:0 0 var(--sp-3) 0;color:var(--color-text);font-size:1rem;font-family:var(--font-body);font-weight:600}.ai-status-badge{display:inline-block;padding:4px var(--sp-3);border-radius:var(--radius-pill);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.ai-status-queued{background:var(--color-warning-dim);color:var(--color-warning);border:1px solid rgba(245,158,11,.3)}.ai-status-in_progress{background:var(--color-accent-dim);color:var(--color-accent);border:1px solid rgba(var(--color-accent-rgb),.3)}.ai-status-succeeded{background:var(--color-success-dim);color:var(--color-success);border:1px solid rgba(16,185,129,.3)}.ai-status-failed{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid rgba(244,63,94,.3)}.ai-polling-indicator{font-size:.85rem;color:var(--color-text-muted)}.ai-error{color:var(--color-danger);font-size:.9rem}.ai-results{margin-top:var(--sp-4)}.ai-section{margin-bottom:var(--sp-5);padding-bottom:var(--sp-4);border-bottom:1px solid var(--color-border)}.ai-section:last-child{border-bottom:none}.ai-section h4{margin:0 0 var(--sp-3) 0;color:var(--color-text-muted);font-size:.8rem;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.07em}.ideal-budget-controls{display:flex;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;background:var(--color-surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-glass)}.ideal-budget-controls label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:.82rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.ideal-budget-controls input[type=number],.ideal-budget-controls input[type=text]{width:140px}.ideal-budget-controls button{padding:var(--sp-3) var(--sp-5);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.88rem;font-family:var(--font-body);font-weight:600;min-height:var(--input-height);transition:all var(--transition-fast)}.ideal-budget-controls button:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.ideal-budget-controls button:active{transform:translateY(0) scale(.98)}.bucket-cards{display:flex;gap:var(--sp-5);margin-bottom:var(--sp-6);flex-wrap:wrap}.bucket-card{flex:1;min-width:200px;padding:var(--sp-6);border-radius:var(--radius-xl);color:#fff;text-align:center;border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.bucket-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glass),0 8px 24px #0000004d}.bucket-card h3{margin:0 0 var(--sp-2);font-size:.85rem;font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.9}.bucket-amount{font-size:1.8rem;font-weight:700;margin:0;font-family:var(--font-body)}.bucket-pct{font-size:.9rem;opacity:.75;margin:var(--sp-2) 0 0}.bucket-needs{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.bucket-wants{background:linear-gradient(135deg,#d97706,#b45309)}.bucket-savings{background:linear-gradient(135deg,#059669,#047857)}.bucket-actual{font-size:.95rem;font-weight:600;margin:var(--sp-2) 0 0}.bucket-over{color:#fca5a5}.bucket-ok{color:#6ee7b7}.bucket-ai{font-size:.82rem;opacity:.8;margin:var(--sp-1) 0 0;font-weight:500}.bucket-amount-label{font-size:.72rem;opacity:.6;font-weight:400}.bucket-pct-controls{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;padding:var(--sp-4);background:var(--color-overlay-sm);border-radius:var(--radius-lg)}.bucket-pct-controls label{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:.85rem;color:var(--color-text-muted)}.bucket-pct-controls input[type=number]{width:80px}.pct-warning{color:var(--color-danger);font-size:.85rem;margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--color-danger-dim);border-radius:var(--radius-md)}.mortgage-warning{font-size:.85rem;margin:var(--sp-2) 0 var(--sp-3);padding:var(--sp-3);border-radius:var(--radius-md);line-height:1.5}.mortgage-warning--error{color:var(--color-danger);background:var(--color-danger-dim);border:1px solid rgba(239,68,68,.3)}.mortgage-warning--warning{color:var(--color-warning);background:var(--color-warning-dim);border:1px solid rgba(245,158,11,.3)}.ideal-budget-table{width:100%;border-collapse:collapse;margin-top:var(--sp-3);background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);overflow:hidden}.ideal-budget-table th,.ideal-budget-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-border);text-align:left}.ideal-budget-table th{background:var(--color-overlay-sm);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.bucket-row-needs .bucket-label{color:#60a5fa;font-weight:600}.bucket-row-wants .bucket-label{color:#fbbf24;font-weight:600}.bucket-row-savings .bucket-label{color:#34d399;font-weight:600}.category-amount-input{width:110px}.reset-btn{background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-dim);cursor:pointer;font-size:.72rem;font-family:var(--font-body);padding:var(--sp-1) var(--sp-2);margin-left:var(--sp-2);transition:all var(--transition-fast)}.reset-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.reset-all-btn{padding:var(--sp-3) var(--sp-5);background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;font-family:var(--font-body);color:var(--color-text-muted);min-height:var(--input-height);transition:all var(--transition-fast)}.reset-all-btn:hover{background:var(--color-overlay-md);color:var(--color-text)}.ai-distribute-btn{padding:var(--sp-3) var(--sp-5);background:linear-gradient(135deg,#7c3aed,var(--color-accent));border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.88rem;font-family:var(--font-body);font-weight:600;color:#fff;min-height:var(--input-height);transition:all var(--transition-fast)}.ai-distribute-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #7c3aed66}.ai-distribute-btn:disabled{opacity:.4;cursor:not-allowed}.ai-ideal-status{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.25);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-5);display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3);font-size:.88rem;color:var(--color-text-muted)}.ai-ideal-status code{font-size:.72rem;background:rgba(var(--color-accent-rgb),.15);padding:2px var(--sp-2);border-radius:var(--radius-sm);color:var(--color-accent)}.ai-success-note{color:var(--color-success)}.refresh-btn{padding:var(--sp-2) var(--sp-4);background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.3);border-radius:var(--radius-sm);cursor:pointer;font-size:.82rem;font-family:var(--font-body);color:var(--color-accent);transition:all var(--transition-fast)}.refresh-btn:hover{background:rgba(var(--color-accent-rgb),.2)}.ai-dist-cell{color:#a78bfa;font-weight:500;font-size:.88rem}.savings-derived{color:var(--color-success);font-weight:600;font-size:.88rem;cursor:help}.pct-of-actual{color:var(--color-warning);font-weight:700;cursor:help}.pct-footnote{font-size:.78rem;color:var(--color-text-dim);margin-top:var(--sp-3);font-style:italic;padding:var(--sp-3);background:var(--color-overlay-xs);border-radius:var(--radius-md)}.ideal-budget-info{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.2);border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-6);font-size:.9rem;color:var(--color-text-muted);line-height:1.7}.ideal-budget-info p{margin:0 0 var(--sp-3)}.ideal-budget-info ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5)}.ideal-budget-info ul li{margin-bottom:var(--sp-2)}.ideal-budget-info-tip{margin:0!important;padding-top:var(--sp-3);border-top:1px solid rgba(var(--color-accent-rgb),.15);font-size:.85rem}.recent-ai-runs{margin-bottom:var(--sp-5)}.recent-ai-runs h4{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin:0 0 var(--sp-3)}.recent-ai-runs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.recent-ai-run-item{display:flex;align-items:center;gap:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);font-size:.85rem;flex-wrap:wrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.recent-run-date{color:var(--color-text-muted);font-size:.8rem}.recent-run-income,.recent-run-city{color:var(--color-text);font-weight:500}.load-run-btn{margin-left:auto;padding:var(--sp-2) var(--sp-4);background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.3);border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-family:var(--font-body);color:var(--color-accent);transition:all var(--transition-fast)}.load-run-btn:hover{background:rgba(var(--color-accent-rgb),.25)}.dependant-ages-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;width:100%}.dependant-ages-row label{min-width:auto}.dependant-ages-row input{width:70px}.auth-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);height:100vh;font-size:1rem;color:var(--color-text-muted)}.auth-loading-spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-5)}.login-card{background:var(--color-surface);backdrop-filter:var(--glass-blur-strong);-webkit-backdrop-filter:var(--glass-blur-strong);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-modal),var(--shadow-glow);padding:var(--sp-8);width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--sp-4);animation:fadeSlideUp .4s ease}.login-title{text-align:center;font-size:1.8rem;margin:0 0 var(--sp-1);font-family:var(--font-heading)}.login-subtitle{text-align:center;font-size:1rem;color:var(--color-text-muted);font-weight:400;margin:0 0 var(--sp-4);font-family:var(--font-body)}.login-hint{font-size:.875rem;color:var(--color-text-muted);text-align:center;margin:0 0 var(--sp-2)}.login-form{display:flex;flex-direction:column;gap:var(--sp-3)}.login-input{width:100%}.login-error{color:var(--color-danger);background:var(--color-danger-dim);border:1px solid rgba(244,63,94,.25);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);font-size:.875rem;margin:0}.login-btn-primary{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:.95rem;font-family:var(--font-body);font-weight:700;cursor:pointer;min-height:var(--input-height);transition:all var(--transition-fast)}.login-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 20px var(--color-accent-glow)}.login-btn-primary:active{transform:translateY(0) scale(.98)}.login-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.login-btn-link{background:none;border:none;color:var(--color-accent);font-size:.85rem;font-family:var(--font-body);cursor:pointer;padding:var(--sp-2) 0;text-align:center;text-decoration:underline;text-decoration-color:transparent;transition:all var(--transition-fast)}.login-btn-link:hover{text-decoration-color:currentColor}.login-divider{display:flex;align-items:center;gap:var(--sp-3);color:var(--color-text-dim);font-size:.82rem;margin:var(--sp-2) 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--color-overlay-sm);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.95rem;font-family:var(--font-body);font-weight:500;cursor:pointer;min-height:var(--input-height);transition:all var(--transition-fast)}.login-btn-google:hover{background:var(--color-overlay-md);border-color:var(--color-text-dim)}.login-google-icon{width:1.2rem;height:1.2rem;flex-shrink:0}.sub-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-5);padding:var(--sp-2);background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none}.sub-tabs::-webkit-scrollbar{display:none}.sub-tabs button{padding:var(--sp-2) var(--sp-4);border:none;background:transparent;cursor:pointer;font-size:.88rem;font-family:var(--font-body);font-weight:500;border-radius:var(--radius-md);color:var(--color-text-muted);transition:all var(--transition-fast);white-space:nowrap}.sub-tabs button:hover{color:var(--color-text);background:var(--color-overlay-sm)}.sub-tabs button.active{background:var(--color-accent);color:#fff}.report-controls{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--sp-5);padding:var(--sp-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.report-controls label{display:flex;flex-direction:column;gap:var(--sp-2);font-size:.82rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.report-summary{font-size:1rem;margin-bottom:var(--sp-5);color:var(--color-text-muted)}.report-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-6)}.report-tile{padding:var(--sp-5);border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:var(--sp-2);box-shadow:var(--shadow-glass);border:1px solid rgba(255,255,255,.08);animation:fadeSlideUp .4s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--transition-fast)}.report-tile:hover{transform:translateY(-2px)}.report-tile-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.report-tile-amount{font-size:1.6rem;font-weight:700;line-height:1.1;font-family:var(--font-body)}.report-tile-badge{font-size:.78rem;font-weight:600;opacity:.85}.report-tile-income{background:linear-gradient(135deg,#065f46,#059669);color:#fff}.report-tile-expense{background:linear-gradient(135deg,#7f1d1d,#dc2626);color:#fff}.report-tile-positive{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff}.report-tile-negative{background:linear-gradient(135deg,#78350f,#d97706);color:#fff}.report-lists{display:flex;flex-direction:column;gap:var(--sp-6)}.report-list-section{width:100%}.report-list-section h3{margin-bottom:var(--sp-4);font-size:.82rem;font-weight:700;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.07em}.report-list-section h3.income-header{color:var(--color-success)}.report-list-section h3.expense-header{color:var(--color-danger)}.collapsible-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);transition:background var(--transition-fast)}.collapsible-header:hover{background:var(--color-overlay-sm)}.collapse-chevron{font-size:.7rem;opacity:.7}.setup-tabs{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-6);padding:var(--sp-2);background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none}.setup-tabs::-webkit-scrollbar{display:none}.setup-tabs button{background:transparent;border:none;color:var(--color-text-muted);padding:var(--sp-2) var(--sp-4);cursor:pointer;font-size:.9rem;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}.setup-tabs button:hover{background:var(--color-overlay-sm);color:var(--color-text)}.setup-tabs button.active{color:#fff;background:var(--color-accent);font-weight:600}.setup-section{margin-top:var(--sp-4)}.setup-section h3{margin-bottom:var(--sp-2)}.setup-section-description{color:var(--color-text-muted);font-size:.85rem;margin-bottom:var(--sp-4)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.tag-chip{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-pill);background:var(--color-overlay-md);color:var(--color-text-muted);font-size:.8rem;border:1px solid var(--color-border)}.tag-chip-custom{background:var(--color-accent-dim);color:var(--color-accent);border-color:rgba(var(--color-accent-rgb),.3)}.tag-chip-delete{background:none;border:none;cursor:pointer;color:inherit;font-size:.75rem;padding:0;opacity:.7;transition:opacity var(--transition-fast)}.tag-chip-delete:hover{opacity:1}.tags-dropdown{display:flex;flex-direction:column;gap:var(--sp-2);min-width:200px}.tags-dropdown-label{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.tags-options{display:flex;flex-wrap:wrap;gap:var(--sp-2);max-height:140px;overflow-y:auto;padding:var(--sp-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.tag-option{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:.82rem;cursor:pointer;white-space:nowrap;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.tag-option:hover{background:var(--color-overlay-sm)}.tags-empty{font-size:.8rem;color:var(--color-text-dim);font-style:italic}.selected-tags{font-size:.8rem;color:var(--color-accent);font-style:italic}.calendar-tab{animation:fadeSlideUp .35s ease}.calendar-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-5)}.calendar-header h2{margin:0;font-size:1.55rem;font-weight:600}.calendar-controls{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-left:auto}.cal-nav-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:1.2rem;cursor:pointer;padding:var(--sp-2) var(--sp-3);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cal-nav-btn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.cal-month-label{font-weight:600;font-size:1rem;min-width:140px;text-align:center}.cal-balance-label{display:flex;align-items:center;gap:var(--sp-2);font-size:.85rem;color:var(--color-text-muted)}.cal-balance-input{width:100px}.cal-generate-btn{padding:var(--sp-3) var(--sp-5);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;min-height:var(--input-height);transition:all var(--transition-fast)}.cal-generate-btn:disabled{opacity:.5;cursor:not-allowed}.cal-generate-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.cal-status-badge{display:inline-block;padding:4px var(--sp-3);border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--sp-4)}.cal-status-queued{background:var(--color-warning-dim);color:var(--color-warning)}.cal-status-in_progress{background:var(--color-accent-dim);color:var(--color-accent)}.cal-status-succeeded{background:var(--color-success-dim);color:var(--color-success)}.cal-status-failed{background:var(--color-danger-dim);color:var(--color-danger)}.cal-chain-banner{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.3);border-radius:var(--radius-lg);color:var(--color-accent);font-size:.85rem;padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-day-header{text-align:center;font-size:.78rem;font-weight:600;color:var(--color-text-muted);padding:var(--sp-2) 0;text-transform:uppercase;letter-spacing:.06em}.cal-cell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:90px;padding:var(--sp-2);display:flex;flex-direction:column;gap:2px;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cal-cell-blank{background:transparent;border-color:transparent}.cal-cell-today{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-dim)}.cal-cell-clickable{cursor:pointer}.cal-cell-clickable:hover{border-color:var(--color-accent);background:var(--color-accent-dim);transform:scale(1.02)}.cal-day-num{font-size:.82rem;font-weight:600;color:var(--color-text-muted)}.cal-day-summary{display:flex;flex-direction:column;gap:1px;margin-top:var(--sp-1)}.cal-income{font-size:.72rem;color:var(--color-success);font-weight:600}.cal-expense{font-size:.72rem;color:var(--color-danger);font-weight:600}.cal-balance{font-size:.7rem;color:var(--color-text-muted);margin-top:2px}.cal-balance-pos{color:var(--color-info)}.cal-balance-neg{color:var(--color-warning)}.cal-modal-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--sp-4);animation:fadeIn .15s ease}.cal-modal{background:var(--color-surface-solid);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--sp-6);min-width:340px;max-width:680px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-modal);animation:fadeSlideUp .2s ease}.cal-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.cal-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.cal-modal-close{background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:1rem;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cal-modal-close:hover{color:var(--color-text);background:var(--color-overlay-md)}.cal-modal-loading,.cal-modal-empty{color:var(--color-text-muted);font-size:.9rem;text-align:center;padding:var(--sp-6) 0}.cal-modal-table{width:100%;border-collapse:collapse;font-size:.88rem}.cal-modal-table th{text-align:left;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.cal-modal-table td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--color-border);color:var(--color-text)}.cal-modal-table tr:last-child td{border-bottom:none}.cal-txn-type{display:inline-block;padding:2px 10px;border-radius:var(--radius-pill);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.cal-txn-income{background:var(--color-success-dim);color:var(--color-success)}.cal-txn-expense{background:var(--color-danger-dim);color:var(--color-danger)}.cal-monthly-summary{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.cal-summary-tile{flex:1;min-width:120px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:2px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cal-summary-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.cal-summary-amount{font-size:1.1rem;font-weight:700}.cal-summary-income{background:var(--color-success-dim)}.cal-summary-income .cal-summary-label,.cal-summary-income .cal-summary-amount{color:var(--color-success)}.cal-summary-expense{background:var(--color-danger-dim)}.cal-summary-expense .cal-summary-label,.cal-summary-expense .cal-summary-amount{color:var(--color-danger)}.cal-summary-opening{background:var(--color-overlay-md)}.cal-summary-opening .cal-summary-label,.cal-summary-opening .cal-summary-amount{color:var(--color-text-muted)}.cal-summary-net-pos{background:var(--color-accent-dim)}.cal-summary-net-pos .cal-summary-label,.cal-summary-net-pos .cal-summary-amount{color:var(--color-accent)}.cal-summary-net-neg{background:var(--color-warning-dim)}.cal-summary-net-neg .cal-summary-label,.cal-summary-net-neg .cal-summary-amount{color:var(--color-warning)}.cal-legend{display:flex;gap:var(--sp-5);flex-wrap:wrap;font-size:.8rem;color:var(--color-text-muted);margin-bottom:var(--sp-3)}.cal-legend-item{display:flex;align-items:center;gap:var(--sp-1)}.tracker-filter-row{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}.tracker-add-btn{padding:var(--sp-3) var(--sp-6);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;min-height:var(--input-height);transition:all var(--transition-fast)}.tracker-add-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.tracker-totals-grid{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-6)}.tracker-total-tile{background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-4) var(--sp-6);min-width:150px;text-align:center;transition:all var(--transition-fast)}.tracker-total-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.tracker-tile-name{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--sp-2);font-weight:500}.tracker-tile-amount{font-size:1.5rem;font-weight:700;color:var(--color-accent)}.fb-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:fadeIn .15s ease}.fb-modal{background:var(--color-surface-solid);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-modal);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;animation:fadeSlideUp .2s ease;overflow:hidden}.fb-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.fb-modal-title{font-size:1.1rem;font-family:var(--font-body);font-weight:700;color:var(--color-text);margin:0}.fb-close-btn{background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:1rem;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.fb-close-btn:hover{color:var(--color-text);background:var(--color-overlay-md)}.fb-tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);flex-shrink:0}.fb-tab{flex:1;background:none;border:none;padding:var(--sp-3) var(--sp-4);font-size:.85rem;font-family:var(--font-body);font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);border-bottom:2px solid transparent}.fb-tab:hover{color:var(--color-text);background:var(--color-overlay-xs)}.fb-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.fb-content{padding:var(--sp-5) var(--sp-6);overflow-y:auto;flex:1}.fb-form{display:flex;flex-direction:column;gap:var(--sp-4)}.fb-label{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--sp-1);font-weight:500}.fb-textarea{min-height:120px;resize:vertical}.fb-submit-btn{align-self:flex-end;padding:var(--sp-3) var(--sp-6);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-family:var(--font-body);font-weight:600;cursor:pointer;min-height:44px;transition:all var(--transition-fast)}.fb-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.fb-submit-btn:disabled{opacity:.5;cursor:not-allowed}.fb-success{color:var(--color-success);text-align:center;padding:var(--sp-8);font-size:1rem}.input-method-selector{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap}.input-method-btn{padding:var(--sp-2) var(--sp-4);background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.88rem;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.input-method-btn:hover{background:var(--color-overlay-sm);color:var(--color-text)}.input-method-btn--active{background:var(--color-accent);color:#fff}.ai-input-panel{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-glass)}.ai-input-header{margin-bottom:var(--sp-3)}.ai-input-label{font-weight:600;color:var(--color-accent);font-size:.9rem}.ai-input-hint{display:block;font-size:.85rem;color:var(--color-text-muted);margin-top:var(--sp-1)}.ai-input-row{display:flex;gap:var(--sp-3);align-items:flex-start;flex-wrap:wrap}.ai-input-textarea{flex:1;min-width:250px;min-height:80px;resize:vertical}.ai-input-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.ai-mic-btn{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-overlay-sm);color:var(--color-text);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.ai-mic-btn:hover{background:var(--color-accent-dim);border-color:var(--color-accent)}.ai-mic-btn--active{background:var(--color-danger);border-color:var(--color-danger);color:#fff;animation:glowPulse 1s ease-in-out infinite}.ai-parse-btn{padding:var(--sp-3) var(--sp-5);background:linear-gradient(135deg,#7c3aed,var(--color-accent));color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;min-height:48px;transition:all var(--transition-fast)}.ai-parse-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #7c3aed66}.ai-parse-btn:disabled{opacity:.5;cursor:not-allowed}.ai-listening-indicator{color:var(--color-danger);font-size:.85rem;margin-top:var(--sp-2);animation:glowPulse 1s ease-in-out infinite}.ai-input-error{color:var(--color-danger);font-size:.85rem;margin-top:var(--sp-2)}.file-upload-panel{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-glass)}.file-upload-header{margin-bottom:var(--sp-3)}.file-upload-label{font-weight:600;color:var(--color-accent);font-size:.9rem}.file-upload-hint{display:block;font-size:.85rem;color:var(--color-text-muted);margin-top:var(--sp-1)}.file-upload-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}.file-upload-input-label{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:var(--color-overlay-sm);border:2px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);min-height:48px}.file-upload-input-label:hover{border-color:var(--color-accent);background:var(--color-accent-dim);color:var(--color-accent)}.file-upload-input{display:none}.file-upload-error{color:var(--color-danger);font-size:.85rem;margin-top:var(--sp-2)}.file-parse-status{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);margin-top:var(--sp-3);flex-wrap:wrap}.file-parse-status--queued,.file-parse-status--in_progress{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.3);color:var(--color-accent)}.file-parse-status--succeeded{background:var(--color-success-dim);border:1px solid rgba(16,185,129,.3);color:var(--color-success)}.file-parse-status-text{font-size:.88rem;font-weight:500}.file-parse-load-btn{padding:var(--sp-2) var(--sp-4);background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.file-parse-load-btn:hover{transform:scale(1.02)}.pending-list-panel{background:var(--color-surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-glass)}.pending-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.pending-list-info{font-weight:600;color:var(--color-text);font-size:.9rem}.pending-list-toolbar-right{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.pending-sort-label,.pending-perpage-label{font-size:.8rem;color:var(--color-text-muted)}.pending-sort-btn,.pending-perpage-btn{padding:var(--sp-1) var(--sp-3);background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.pending-sort-btn:hover,.pending-perpage-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.pending-sort-btn--active,.pending-perpage-btn--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.pending-skip-selected-btn{padding:var(--sp-2) var(--sp-4);background:var(--color-warning-dim);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--color-warning);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pending-skip-selected-btn:hover:not(:disabled){background:var(--color-warning);color:#fff}.pending-skip-selected-btn:disabled{opacity:.5;cursor:not-allowed}.pending-clear-btn{padding:var(--sp-2) var(--sp-4);background:var(--color-danger-dim);border:1px solid rgba(244,63,94,.3);border-radius:var(--radius-md);color:var(--color-danger);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pending-clear-btn:hover{background:var(--color-danger);color:#fff}.pending-list-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.pending-list-table{width:100%;border-collapse:collapse;min-width:500px}.pending-list-table th,.pending-list-table td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--color-border);font-size:.85rem}.pending-list-table th{background:var(--color-overlay-sm);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap}.sort-btn{background:none;border:none;padding:0;margin:0;font:inherit;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.sort-btn:hover{color:var(--color-text)}.sort-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.pending-row--selected{background:var(--color-accent-dim)}.pending-col-check{width:40px;text-align:center}.pending-col-date{white-space:nowrap}.pending-col-desc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-col-amount{text-align:right;font-weight:600;white-space:nowrap}.pending-col-actions{text-align:right}.pending-add-btn{padding:var(--sp-1) var(--sp-3);background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.pending-add-btn:hover{transform:scale(1.05)}.pending-pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);margin-top:var(--sp-4)}.pending-page-btn{padding:var(--sp-2) var(--sp-4);background:var(--color-overlay-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.pending-page-btn:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent-dim)}.pending-page-btn:disabled{opacity:.5;cursor:not-allowed}.pending-page-info{font-size:.85rem;color:var(--color-text-muted)}.csv-add-duplicate-warning{background:var(--color-warning-dim);border:1px solid rgba(245,158,11,.3);color:var(--color-warning);padding:var(--sp-3);border-radius:var(--radius-md);font-size:.85rem;margin-bottom:var(--sp-3)}.admin-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:900px){.chart-grid{grid-template-columns:1fr}.bucket-cards{flex-direction:column}.bucket-card{min-width:unset}}@media(max-width:768px){.app{padding:0 var(--sp-4) var(--sp-6)}header{padding:var(--sp-3) var(--sp-4);margin:0 calc(-1 * var(--sp-4)) var(--sp-4);flex-wrap:wrap;gap:var(--sp-2)}.header-user-email{display:none}.header-user{gap:var(--sp-2)}.header-report-btn,.header-signout-btn{padding:var(--sp-2) var(--sp-3);font-size:.75rem;min-height:36px}.tabs{border-radius:var(--radius-lg);padding:var(--sp-1)}.tabs button{padding:var(--sp-2) var(--sp-4);font-size:.85rem}.summary-bar{flex-wrap:wrap;gap:var(--sp-4);justify-content:center;font-size:.95rem;padding:var(--sp-3)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg)}table{min-width:500px}th,td{padding:var(--sp-2) var(--sp-3);font-size:.82rem}.desc-cell{max-width:120px}.form{padding:var(--sp-4);border-radius:var(--radius-lg)}.form-row{flex-direction:column;align-items:stretch}.form-row input,.form-row select{min-width:unset;width:100%}.form-row .input-description{min-width:unset}.form button{width:100%;align-self:stretch}.ideal-budget-controls{flex-direction:column;align-items:stretch;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--radius-lg)}.ideal-budget-controls input[type=number],.ideal-budget-controls input[type=text],.ideal-budget-controls button{width:100%}.dependant-ages-row{flex-direction:column}.dependant-ages-row input{width:100%}.bucket-pct-controls{flex-direction:column;align-items:stretch}.bucket-pct-controls label{justify-content:space-between;width:100%}.bucket-pct-controls input[type=number]{width:100px}.modal{margin:var(--sp-4);padding:var(--sp-5);max-width:calc(100vw - var(--sp-8));border-radius:var(--radius-xl)}.cal-cell{min-height:70px;padding:var(--sp-1);border-radius:var(--radius-md)}.cal-income,.cal-expense,.cal-balance{font-size:.65rem}.cal-day-num{font-size:.75rem}.cal-modal{min-width:unset;margin:var(--sp-4);max-height:calc(100vh - var(--sp-8));border-radius:var(--radius-xl)}.cal-monthly-summary{gap:var(--sp-2)}.cal-summary-tile{min-width:100px;padding:var(--sp-2) var(--sp-3)}.calendar-header{flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.calendar-controls{margin-left:0;width:100%;flex-wrap:wrap}.report-tiles{grid-template-columns:repeat(2,1fr)}.report-tile{padding:var(--sp-4)}.report-tile-amount{font-size:1.3rem}.report-controls{gap:var(--sp-3);padding:var(--sp-3)}.report-controls label{flex:1 1 calc(50% - var(--sp-3))}.setup-tabs,.sub-tabs{flex-wrap:nowrap}.ai-input-row{flex-direction:column}.ai-input-textarea{min-width:unset}.ai-input-actions{width:100%;justify-content:flex-end}.input-method-selector{flex-wrap:wrap}.input-method-btn{flex:1;min-width:calc(50% - var(--sp-2));text-align:center;justify-content:center}.tracker-totals-grid{gap:var(--sp-3)}.tracker-total-tile{min-width:calc(50% - var(--sp-3));flex:1}section h2{font-size:1.3rem}.pending-list-toolbar{flex-direction:column;align-items:flex-start}.pending-list-toolbar-right{width:100%;justify-content:flex-start}.col-recurring,.col-frequency{display:none}}@media(max-width:480px){.app{padding:0 var(--sp-3) var(--sp-5)}header{padding:var(--sp-2) var(--sp-3);margin:0 calc(-1 * var(--sp-3)) var(--sp-3)}.app-logo{height:32px}.logo-badge{display:none}.tabs button{padding:var(--sp-2) var(--sp-3);font-size:.8rem}section h2{font-size:1.2rem;margin-bottom:var(--sp-4)}.chart-card{min-height:260px;padding:var(--sp-4);border-radius:var(--radius-lg)}.chart-card-body{min-height:220px}.form{padding:var(--sp-3);gap:var(--sp-3);border-radius:var(--radius-lg)}table{min-width:unset}th,td{padding:var(--sp-2);font-size:.78rem}.report-tiles{grid-template-columns:1fr 1fr;gap:var(--sp-3)}.report-tile{padding:var(--sp-3)}.report-tile-amount{font-size:1.1rem}.cal-cell{min-height:55px;padding:2px}.cal-day-num{font-size:.7rem}.cal-income,.cal-expense{display:none}.cal-day-header{font-size:.65rem;padding:var(--sp-1) 0}.modal{margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;position:fixed;bottom:0;left:0;right:0;max-height:90vh;overflow-y:auto}.modal-overlay,.cal-modal-overlay{align-items:flex-end;padding:0}.cal-modal{margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:85vh}.fb-overlay{align-items:flex-end;padding:0}.fb-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:100%;max-height:90vh}.bucket-card{min-width:unset;width:100%;padding:var(--sp-4)}.bucket-amount{font-size:1.5rem}.tracker-total-tile{min-width:calc(50% - var(--sp-2));flex:1;padding:var(--sp-3) var(--sp-4)}.tracker-tile-amount{font-size:1.2rem}.ideal-budget-controls{padding:var(--sp-3)}.summary-bar{font-size:.85rem;gap:var(--sp-3);padding:var(--sp-2)}.input-method-btn{min-width:100%;padding:var(--sp-2) var(--sp-3);font-size:.82rem}h2{font-size:1.3rem}h3{font-size:1rem}.settings-dropdown{right:auto;left:50%;transform:translate(-50%)}}.expense-field{margin-bottom:var(--sp-4)}.expense-field label{display:block;font-weight:500;color:var(--color-text-muted);margin-bottom:var(--sp-2);font-size:.85rem}.expense-field input{width:100%}.risk-low{color:var(--color-success);font-weight:600}.risk-medium{color:var(--color-warning);font-weight:600}.risk-high{color:var(--color-danger);font-weight:600}.recommendation-card{background:var(--color-accent-dim);border:1px solid rgba(var(--color-accent-rgb),.2);border-radius:var(--radius-lg);padding:var(--sp-4);margin-bottom:var(--sp-3)}.difficulty-easy{color:var(--color-success)}.difficulty-medium{color:var(--color-warning)}.difficulty-hard{color:var(--color-danger)}.savings{color:var(--color-success);font-weight:500}.ai-disclaimer{font-style:italic;color:var(--color-text-dim);font-size:.82rem}.budget-5030-section{background:var(--color-accent-dim);border-left:3px solid var(--color-accent)}.budget-status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;letter-spacing:.02em}.budget-status-on-track{background:var(--color-success-dim);color:var(--color-success);border:1px solid rgba(16,185,129,.3)}.budget-status-needs-attention{background:var(--color-warning-dim);color:var(--color-warning);border:1px solid rgba(245,158,11,.3)}.budget-status-at-risk{background:var(--color-danger-dim);color:var(--color-danger);border:1px solid rgba(244,63,94,.3)}@media print{body{background:#fff;color:#000}header,.tabs,.form,.input-method-selector,.ai-input-panel,.file-upload-panel{display:none}.app{padding:0;max-width:none}.chart-card,.table-wrapper,.bucket-card{break-inside:avoid;box-shadow:none;border:1px solid #ddd}}
