:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1012;--surface:#10191c;--surface-2:#17252a;--border:#dcf6eb14;--border-strong:#dcf6eb29;--text:#eef5f1;--text-secondary:#a2b6ae;--text-muted:#6d8078;--brass:#34c88d;--brass-hover:#55dfa5;--brass-glow:#7df5c2;--teal:#2ab5aa;--teal-glow:#6fe6d9;--green-dark:#43c390;--red:#e5b95e;--danger:#e5484d;--danger-hover:#f0666b;--on-accent:#04150d;--glass:#ebfbf40a;--glass-strong:#ebfbf414;--glass-border:#ebfbf41a;--glass-bg:#080e0fad;--blur:18px;--glow-a:#7df5c21a;--glow-b:#6fe6d916;--glow-c:#8b87f014;--card-highlight:inset 0 1px 0 0 #f0fff80f;--shadow-soft:0 14px 36px #01060666;--shadow-pop:0 28px 70px #0106068c;--radius-s:10px;--radius-m:14px;--radius-l:20px;--measure:110ch;--ease-glide:cubic-bezier(.22, 1, .36, 1);--speed-quick:.18s;--speed-move:.3s;--focus-ring:0 0 0 3px color-mix(in oklab, var(--brass) 30%, transparent);--pointer-shift-x:0px;--pointer-shift-y:0px;--sheen:#d2ffec29}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef4f1;--surface:#fff;--surface-2:#edf4f0;--border:#122a221a;--border-strong:#122a2233;--text:#14231e;--text-secondary:#4e635a;--text-muted:#7d918a;--brass:#0c7f57;--brass-hover:#0a7049;--brass-glow:#087a51;--teal:#0d857b;--teal-glow:#0a746b;--green-dark:#0c8556;--red:#96700f;--danger:#cf3a3a;--danger-hover:#b93030;--on-accent:#fff;--glass:#ffffffa8;--glass-strong:#ffffffe0;--glass-border:#122a221a;--glass-bg:#fffc;--glow-a:#17b27a21;--glow-b:#14a3981c;--glow-c:#7a76eb1a;--card-highlight:inset 0 1px 0 0 #fffffff2;--shadow-soft:0 14px 36px #1830281a;--shadow-pop:0 28px 70px #18302829;--focus-ring:0 0 0 3px color-mix(in oklab, var(--brass) 24%, transparent);--sheen:#ffffff80}:root[data-pointer-light-off]{--sheen:transparent}:root[data-overbudget]{--glow-a:#e5b95e1c;--glow-b:#e0925c16;--glow-c:#c6708013}[data-theme=light][data-overbudget]{--glow-a:#c68e1826;--glow-b:#c4742c1f;--glow-c:#ba606e1a}[data-theme=light] .app-nav-logo span,[data-theme=light] .app-navlink.active,[data-theme=light] .welcome-copy h1 em,[data-theme=light] .balance-hero .value,[data-theme=light] .home-hero .value,[data-theme=light] .home-leftover .value,[data-theme=light] .savingplan-hero-tile .value{text-shadow:none}*{box-sizing:border-box}a{color:inherit;text-decoration:none}html{background:var(--bg)}body{color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0;font-family:Inter,sans-serif;font-size:15px;line-height:1.5;overflow-x:clip}body:before,body:after{content:"";z-index:-1;pointer-events:none;transition:translate 1.4s var(--ease-glide);position:fixed;inset:-30%}body:before{background:radial-gradient(38% 32% at 22% 16%, var(--glow-a), transparent 70%), radial-gradient(30% 28% at 78% 8%, var(--glow-b), transparent 70%);animation:aurora-a 70s var(--ease-glide) infinite alternate;translate:var(--pointer-shift-x) var(--pointer-shift-y)}body:after{background:radial-gradient(34% 30% at 84% 68%, var(--glow-c), transparent 72%), radial-gradient(26% 24% at 10% 84%, var(--glow-b), transparent 70%);animation:aurora-b 100s var(--ease-glide) infinite alternate;translate:calc(var(--pointer-shift-x) * -.55) calc(var(--pointer-shift-y) * -.55)}@keyframes aurora-a{0%{transform:translate(-2%,-2%)scale(1)rotate(-1deg)}50%{transform:translate(2%,3%)scale(1.1)rotate(1deg)}to{transform:translate(-1%,4%)scale(1.04)rotate(.5deg)}}@keyframes aurora-b{0%{transform:translate(2%,2%)scale(1.06)}to{transform:translate(-3%,-3%)scale(1)}}#root{min-height:100dvh;position:relative}::selection{background:color-mix(in oklab, var(--brass) 35%, transparent);color:var(--text)}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--text-muted) 45%, transparent);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab, var(--text-muted) 70%, transparent);background-clip:padding-box;border:2px solid #0000}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace}.serif{font-family:Fraunces,serif}.hidden{display:none!important}.text-right{text-align:right}.balance-hero,.stat-card,.panel,.faq-item,.home-tile,.savingplan-hero-tile,.goal-card,.welcome-visual,.welcome-step-card,.welcome-feature-card,.welcome-security{--sheen-layer:radial-gradient(170px circle at var(--sheen-x,50%) var(--sheen-y,-20%), var(--sheen), transparent 72%);background:var(--sheen-layer), var(--glass);-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);box-shadow:var(--card-highlight);transition:border-color var(--speed-move) var(--ease-glide), box-shadow var(--speed-move) var(--ease-glide), transform var(--speed-move) var(--ease-glide)}.skeleton{border-radius:var(--radius-l);background:linear-gradient(100deg, var(--glass) 38%, var(--sheen) 50%, var(--glass) 62%) var(--glass);border:1px solid var(--glass-border);min-height:220px;box-shadow:var(--card-highlight);background-size:300% 100%;animation:1.6s linear infinite skeleton-sweep}@keyframes skeleton-sweep{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 color-mix(in oklab, currentcolor 45%, transparent)}50%{box-shadow:0 0 0 5px #0000}}::view-transition-group(*){animation-duration:.34s;animation-timing-function:var(--ease-glide)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (hover:none){.button:hover,.account-button:hover,.goal-card:hover,.star-button:hover,.welcome-step-card:hover,.welcome-feature-card:hover{transform:none}}:is(.panel:has(:focus-visible),.goal-card:has(:focus-visible),.faq-item:has(:focus-visible)){border-color:color-mix(in oklab, var(--brass) 45%, var(--glass-border))}@media print{body:before,body:after{display:none}body{color:#000;background:#fff}.app-nav-bar,.app-nav-backdrop,.app-footer,.workbench-aside,.entry-form,.finance-tabs,.settings-rail,.pager,.row-actions,.toast-stack,.preview-banner{display:none!important}.app-inner{max-width:none;padding:0}.panel,.balance-hero,.stat-card,.home-tile{break-inside:avoid;border:1px solid #ccc;-webkit-backdrop-filter:none!important;box-shadow:none!important;background:0 0!important}.workbench{display:block}.table-scroll{overflow:visible}thead{display:table-header-group}tr{break-inside:avoid}}.app-inner{max-width:1680px;margin:0 auto;padding:clamp(24px,3vw,40px) clamp(20px,3.5vw,52px) 72px}.account-button{background:var(--glass-strong);width:40px;height:40px;-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease, transform var(--speed-quick) var(--ease-glide);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.account-button.active{color:var(--brass-glow);border-color:color-mix(in oklab, var(--brass-glow) 55%, transparent);box-shadow:0 0 16px color-mix(in oklab, var(--brass) 30%, transparent);cursor:default;pointer-events:none}.account-button:hover{color:var(--brass-glow);border-color:color-mix(in oklab, var(--brass-glow) 45%, transparent);transform:translateY(-1px)}.account-button svg{width:20px;height:20px}.nav-item{text-align:left;border-radius:var(--radius-s);width:100%;color:var(--text-secondary);cursor:pointer;transition:color var(--speed-quick) ease, background var(--speed-quick) ease, box-shadow var(--speed-quick) ease;background:0 0;border:none;align-items:center;gap:10px;margin-bottom:4px;padding:11px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;display:flex}.nav-item:hover{background:var(--glass-strong);color:var(--text)}.nav-item.active{background:var(--glass-strong);color:var(--brass-glow);box-shadow:inset 2px 0 0 0 var(--brass);cursor:default;pointer-events:none}.settings{flex-wrap:wrap;align-items:stretch;gap:clamp(28px,4vw,56px);display:flex}.settings-rail{flex-direction:column;flex-shrink:0;gap:2px;width:200px;display:flex}.finance{flex-direction:column;gap:22px;display:flex}.finance-tabs{background:var(--glass);border:1px solid var(--glass-border);max-width:100%;box-shadow:var(--card-highlight);scrollbar-width:none;border-radius:999px;align-self:flex-start;gap:4px;padding:6px;display:flex;overflow-x:auto}.finance-tabs::-webkit-scrollbar{display:none}.finance-tab{color:var(--text-secondary);white-space:nowrap;transition:background var(--speed-quick) ease, color var(--speed-quick) ease;border-radius:999px;flex-shrink:0;align-items:center;gap:9px;padding:9px 18px;font-size:14px;font-weight:500;display:flex}.finance-tab:hover{color:var(--text);background:var(--glass-strong)}.finance-tab.active{color:var(--brass-glow);background:var(--glass-strong);text-shadow:0 0 14px color-mix(in oklab, var(--brass-glow) 30%, transparent);cursor:default;pointer-events:none}.finance-tab-icon{opacity:.65;display:flex}.finance-tab.active .finance-tab-icon{opacity:1;filter:drop-shadow(0 0 8px color-mix(in oklab, var(--brass) 45%, transparent))}.finance-tab-icon svg{width:17px;height:17px}.settings-rail{position:static}.settings-nav{flex-direction:column;gap:2px;display:flex}.settings-logout{margin-top:10px}.settings-logout:hover{color:var(--danger);background:color-mix(in oklab, var(--danger) 10%, transparent)}.settings-content{flex:1;min-width:280px}.finance-content{width:100%;min-width:0}#root>div:has(.finance){flex-direction:column;min-height:100dvh;display:flex}.finance,.finance-content,.finance-content>.fade-transition{flex-direction:column;flex:1;display:flex}#root>div:has(.finance)>.app-inner{flex-direction:column;flex:1;display:flex}.app-inner:has(.finance)>.fade-transition{flex-direction:column;flex:1;display:flex}#root>div:has(.finance)>.app-inner{align-self:stretch;width:100%}.finance-content .panel,.settings-content .panel{box-shadow:var(--card-highlight), var(--shadow-soft)}.workbench{flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;gap:18px;display:grid}.workbench>.panel{margin-bottom:0}.workbench-aside-inner{position:sticky;top:96px}.workbench-aside h2{margin-bottom:16px}.workbench-aside .entry-form{border-bottom:none;margin-bottom:0;padding-bottom:0}.workbench-aside .row-inline{flex-direction:column;align-items:stretch}.workbench-aside .row-inline .field{min-width:0}.workbench-aside .entry-form-actions{flex-direction:column;align-items:stretch;gap:12px}.workbench-aside .entry-form-actions .button{width:100%;padding:12px}@media (width<=1280px){.workbench{grid-template-columns:minmax(0,1fr)}.workbench-aside-inner{position:static}}.fade-transition{animation:.22s both fade-in}.fade-transition .panel,.savingplan-grid-head,.home-grid>*,.grid>*,.savingplan-hero>*,.savingplan-grid>*,.welcome-steps>*,.welcome-features>*{animation:rise-in .55s var(--ease-glide) both}.fade-transition .panel:nth-child(2),.home-grid>:nth-child(2),.grid>:nth-child(2),.savingplan-hero>:nth-child(2),.savingplan-grid>:nth-child(2),.welcome-steps>:nth-child(2),.welcome-features>:nth-child(2){animation-delay:60ms}.fade-transition .panel:nth-child(3),.home-grid>:nth-child(3),.grid>:nth-child(3),.savingplan-grid>:nth-child(3),.welcome-steps>:nth-child(3),.welcome-features>:nth-child(3){animation-delay:.12s}.fade-transition .panel:nth-child(4),.home-grid>:nth-child(4),.grid>:nth-child(4),.savingplan-grid>:nth-child(4),.welcome-features>:nth-child(4){animation-delay:.18s}.fade-transition .panel:nth-child(5),.home-grid>:nth-child(5),.grid>:nth-child(5),.savingplan-grid>:nth-child(5){animation-delay:.24s}.fade-transition .panel:nth-child(n+6),.home-grid>:nth-child(n+6),.grid>:nth-child(n+6),.savingplan-grid>:nth-child(n+6){animation-delay:.3s}@media (width<=760px){.settings-rail,.settings-nav{flex-direction:row;width:100%;padding-bottom:4px;position:static;overflow-x:auto}.settings-nav{width:auto;padding-bottom:0;overflow-x:visible}.settings-logout{margin-top:0}.settings-rail .nav-item{white-space:nowrap;width:auto;margin-bottom:0}.nav-item.active{box-shadow:inset 0 -2px 0 0 var(--brass)}}#root>div:has(>.app-footer){flex-direction:column;min-height:100dvh;display:flex}:is(#root>div:has(>.app-footer)>.app-inner,#root>div:has(>.app-footer)>.welcome-inner){width:100%}.app-footer{border-top:1px solid var(--glass-border);background:var(--glass);margin-top:auto}.app-footer-inner{max-width:1680px;color:var(--text-muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin:0 auto;padding:20px clamp(20px,3.5vw,52px);font-size:13px;display:grid}.app-footer-brand{color:var(--text-secondary);font-family:Fraunces,serif;font-size:15px;font-weight:560}.app-footer-brand span{color:var(--brass-glow)}.app-footer-links{justify-content:center;gap:22px;display:flex}.app-footer-copy{text-align:right}.app-footer-links a{color:var(--text-secondary);transition:color var(--speed-quick) ease;text-decoration:none}.app-footer-links a:hover{color:var(--brass-glow)}.legal-section{max-width:var(--measure);margin-top:26px}.legal-section h2{margin:0 0 8px;font-family:Fraunces,serif;font-size:17px;font-weight:560}.legal-section p{color:var(--text-secondary);white-space:pre-line;margin:0;font-size:14px;line-height:1.65}@media (width<=700px){.app-footer-inner{gap:10px;padding:12px 16px;font-size:12px}}.field{margin-bottom:16px}.field label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);margin-bottom:7px;font-size:11px;font-weight:600;display:block}.field input,.field select{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-s);width:100%;color:var(--text);transition:border-color var(--speed-quick) ease, box-shadow var(--speed-quick) ease;padding:11px 14px;font-family:Inter,sans-serif;font-size:15px}.field input::placeholder{color:var(--text-muted)}.field select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field input:focus,.field select:focus{border-color:var(--brass);box-shadow:var(--focus-ring);outline:none}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.checkbox-row{color:var(--text-secondary);align-items:center;gap:8px;margin:0 0 18px;font-size:13px;display:flex}.checkbox-row label{cursor:pointer}.checkbox-row input[type=checkbox]{appearance:none;border:1px solid var(--border-strong);background-color:var(--surface-2);cursor:pointer;width:18px;height:18px;transition:background-color var(--speed-quick) ease, border-color var(--speed-quick) ease, box-shadow var(--speed-quick) ease;border-radius:5px;flex-shrink:0;margin:0}.checkbox-row input[type=checkbox]:hover{border-color:var(--brass)}.checkbox-row input[type=checkbox]:checked{background-color:var(--brass);border-color:var(--brass);box-shadow:0 0 12px color-mix(in oklab, var(--brass) 35%, transparent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2304150d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:12px 12px}[data-theme=light] .checkbox-row input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E")}.checkbox-row input[type=checkbox]:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.message-error{color:var(--danger);margin:0 0 14px;font-size:13px}.message-success{color:var(--green-dark);margin:0 0 14px;font-size:13px}.message-success.inline,.message-error.inline{margin-top:8px}.button{text-align:center;border-radius:var(--radius-s);background:var(--brass);width:100%;color:var(--on-accent);cursor:pointer;box-shadow:0 8px 22px color-mix(in oklab, var(--brass) 25%, transparent);transition:background var(--speed-quick) ease, box-shadow var(--speed-move) var(--ease-glide), transform var(--speed-quick) var(--ease-glide);border:none;margin-top:6px;padding:12px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;display:inline-block}.button:hover{background:var(--brass-hover);box-shadow:0 10px 28px color-mix(in oklab, var(--brass) 40%, transparent);transform:translateY(-1px)}.button:active{transform:translateY(0)scale(.98)}.button-ghost{background:var(--glass);-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);color:var(--text);box-shadow:none;font-weight:500}.button-ghost:hover{background:var(--glass-strong);box-shadow:none}.button-ghost.active{background:var(--glass-strong);border-color:color-mix(in oklab, var(--brass-glow) 55%, transparent);color:var(--brass-glow);box-shadow:0 0 14px color-mix(in oklab, var(--brass) 22%, transparent)}.button-small{width:auto;margin-top:0;padding:8px 14px;font-size:13px}.button-danger{background:var(--danger);color:#fff5f4;box-shadow:0 8px 22px color-mix(in oklab, var(--danger) 25%, transparent)}.button-danger:hover{background:var(--danger-hover);box-shadow:0 10px 28px color-mix(in oklab, var(--danger) 38%, transparent)}.button:disabled{opacity:.35;cursor:default;box-shadow:none;transform:none}.entry-form{border-bottom:1px solid var(--border);margin-bottom:22px;padding-bottom:22px}.entry-form .row-inline{gap:16px;margin-bottom:18px}.entry-form .row-inline:last-child{margin-bottom:0}.entry-form .row-inline .field{min-width:200px}.entry-form-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.entry-form-actions .button{width:auto;padding:11px 22px}.row-inline{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.row-inline .field{flex:1;min-width:140px;margin-bottom:0}.personal-grid{grid-template-columns:repeat(12,1fr);gap:0 16px;max-width:860px;display:grid}.personal-grid .field-firstName,.personal-grid .field-lastName{grid-column:span 6}.personal-grid .field-street{grid-column:span 12}.personal-grid .field-postalCode{grid-column:span 3}.personal-grid .field-city{grid-column:span 5}.personal-grid .field-country{grid-column:span 4}.personal-grid-static{grid-template-columns:repeat(3,max-content);justify-content:start;gap:12px 32px;max-width:none}.personal-grid-static .field-firstName,.personal-grid-static .field-postalCode{grid-column:1}.personal-grid-static .field-lastName,.personal-grid-static .field-city{grid-column:2}.personal-grid-static .field-country{grid-column:3}.personal-grid-static .field-street{grid-column:1/-1}@media (width<=760px){.personal-grid,.personal-grid-static{grid-template-columns:1fr}.personal-grid>*,.personal-grid-static>.info-row{grid-column:auto}}@media (pointer:coarse){.field input,.field select{font-size:16px}}.history-month-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.history-detail-row td{padding-top:0}.history-detail{color:var(--text-secondary);flex-wrap:wrap;gap:6px 18px;padding:4px 0 10px 22px;font-size:12px;display:flex}.history-detail>span{gap:8px;display:inline-flex}.history-detail .name{color:var(--text-muted)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);padding:0 12px 9px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--border);transition:background var(--speed-quick) ease;padding:12px}tbody tr:hover td{background-color:color-mix(in oklab, var(--glass-strong) 60%, transparent)}tr:last-child td{border-bottom:none}.amount-cell{font-variant-numeric:tabular-nums;text-align:right;font-family:JetBrains Mono,monospace}.amount-cell.has-share{--share-tint:color-mix(in oklab, var(--brass) 55%, transparent);background-image:linear-gradient(var(--share-tint), var(--share-tint));background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;background-clip:content-box;background-size:calc(var(--share,0) * 100%) 2px}.amount-cell.has-share.is-expense{--share-tint:color-mix(in oklab, var(--red) 60%, transparent)}.category-cell{align-items:center;gap:6px;display:inline-flex}.category-icon{color:var(--text-secondary);flex-shrink:0}.delete-button{color:var(--text-muted);cursor:pointer;min-width:32px;min-height:32px;transition:color var(--speed-quick) ease;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:2px 6px;font-size:16px;display:inline-flex}.delete-button:hover{color:var(--danger)}.icon-button{color:var(--text-muted);cursor:pointer;min-width:32px;min-height:32px;transition:color var(--speed-quick) ease;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:2px 6px;display:inline-flex}.icon-button:hover{color:var(--brass-glow)}.row-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.table-group-row th,.table-group-row td{border-bottom:1px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;padding:18px 12px 7px;font-size:11px;font-weight:600}.table-group-row:hover td,.table-group-row:hover th{background-color:#0000}.empty-row td{padding:24px 20px}.empty-row:hover td{background:0 0}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.empty-state-icon{color:var(--text-muted);opacity:.8}.table-input{background:var(--surface-2);border:1px solid var(--border-strong);width:100%;color:var(--text);transition:border-color var(--speed-quick) ease, box-shadow var(--speed-quick) ease;border-radius:7px;padding:6px 9px;font-family:Inter,sans-serif;font-size:14px}.table-input.mono{font-variant-numeric:tabular-nums;text-align:right;font-family:JetBrains Mono,monospace}.table-input:focus{border-color:var(--brass);box-shadow:var(--focus-ring);outline:none}tr.row-muted td{color:var(--text-muted)}.pager{justify-content:center;align-items:center;gap:14px;padding:12px 0 4px;display:flex}.pager .description{font-variant-numeric:tabular-nums}.table-scroll{overscroll-behavior-x:contain;overflow-x:auto}@media (width<=760px){.table-scroll th,.table-scroll td{white-space:nowrap}}@media (pointer:coarse){.table-input{font-size:16px}.delete-button,.icon-button{min-width:44px;min-height:44px}.row-actions{gap:0}}.alert-banner{background:color-mix(in oklab, var(--red) 13%, transparent);border:1px solid color-mix(in oklab, var(--red) 35%, transparent);color:var(--red);border-radius:var(--radius-m);align-items:center;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:14px;font-weight:500;display:flex}.alert-banner .dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2.2s ease-in-out infinite pulse-dot}.balance-hero{text-align:center;border-radius:var(--radius-l);margin-bottom:14px;padding:26px 20px;position:relative;overflow:hidden}.balance-hero:before{content:"";background:radial-gradient(60% 90% at 50% 0%, var(--glow-a), transparent 70%);pointer-events:none;position:absolute;inset:0}.balance-hero .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600}.balance-hero .value{font-variant-numeric:tabular-nums;color:var(--brass-glow);text-shadow:0 0 30px color-mix(in oklab, currentcolor 35%, transparent);font-family:JetBrains Mono,monospace;font-size:clamp(34px,4.5vw,44px);font-weight:500}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{border-radius:var(--radius-m);padding:18px 20px}.stat-card:hover{border-color:var(--border-strong)}.stat-card .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600}.stat-card .value{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace;font-size:26px;font-weight:500}.stat-card.positive .value{color:var(--green-dark)}.stat-card.negative .value{color:var(--red)}.stat-card .value.brass{color:var(--brass-glow)}.panel{border-radius:var(--radius-l);margin-bottom:20px;padding:clamp(20px,2.5vw,28px)}.panel :is(h1,h2){letter-spacing:-.01em;margin:0 0 4px;font-family:Fraunces,serif;font-size:19px;font-weight:550}.panel .description{color:var(--text-secondary);max-width:var(--measure);margin:0 0 18px;font-size:14px}.panel-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.panel-head .description{margin-bottom:18px}.panel-head-total{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.panel-head-total .label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);font-size:11px;font-weight:600}.panel-head-total .value{color:var(--brass-glow);font-size:19px}.info-list{flex-direction:column;gap:12px;display:flex}.info-row{flex-direction:column;gap:2px;display:flex}.info-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:600}.info-value{color:var(--text);font-size:14px}.panel-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:color var(--speed-quick) ease;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:0;display:flex}.panel-toggle:hover{color:var(--brass-glow)}.panel-chevron{color:var(--text-muted);transition:transform var(--speed-move) var(--ease-glide), color var(--speed-quick) ease;flex-shrink:0;display:flex}.panel-chevron svg{width:16px;height:16px}.panel-chevron.open{color:var(--brass-glow);transform:rotate(180deg)}.panel-collapse-wrap{transition:grid-template-rows var(--speed-move) var(--ease-glide);display:grid}.panel-collapse-inner{overflow:hidden}.panel-total{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:18px;padding-top:16px;display:flex}.panel-total .label{font-weight:500}.panel-total .value{font-variant-numeric:tabular-nums;color:var(--brass-glow);font-family:JetBrains Mono,monospace;font-size:19px}.legend{color:var(--text-secondary);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:9px;height:9px;display:inline-block}.category-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 18px;padding-bottom:16px;display:flex}.category-toolbar .row-inline,.category-toolbar .checkbox-row{flex:none;margin:0}.category-tree{flex-direction:column;gap:2px;display:flex}.category-group.is-hidden{opacity:.55}.category-group-head{border-radius:var(--radius-s);transition:background var(--speed-quick) ease;align-items:center;gap:8px;padding:4px 8px 4px 2px;display:flex}.category-group-head:hover{background:color-mix(in oklab, var(--glass-strong) 60%, transparent)}.category-group-toggle{min-width:0;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:9px 6px;display:flex}.category-group-toggle .panel-chevron svg{width:15px;height:15px}.category-group-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.category-count{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:600}.category-group-toggle:hover .category-count{color:var(--text-secondary)}.category-children{border-left:1px solid var(--border);flex-direction:column;margin-left:12px;padding:2px 0 10px 20px;display:flex}.category-budget-input{text-align:right;flex:none;width:96px}.category-row{border-radius:var(--radius-s);transition:background var(--speed-quick) ease;align-items:center;gap:8px;padding:9px 8px 9px 12px;font-size:14px;display:flex}.category-row:hover{background:color-mix(in oklab, var(--glass-strong) 60%, transparent)}.category-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.category-row.is-hidden .category-row-name{color:var(--text-muted)}.category-chip{text-transform:uppercase;letter-spacing:.07em;color:var(--brass-glow);background:color-mix(in oklab, var(--brass) 14%, transparent);border:1px solid color-mix(in oklab, var(--brass) 30%, transparent);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:600}.category-chip-off{color:var(--text-muted);background:var(--glass-strong);border-color:var(--border-strong)}.category-row-actions{opacity:0;transition:opacity var(--speed-quick) ease;flex-shrink:0}.category-row:hover .category-row-actions,.category-group-head:hover .category-row-actions,.category-row:focus-within .category-row-actions,.category-group-head:focus-within .category-row-actions{opacity:1}.category-empty{color:var(--text-muted);padding:10px 12px;font-size:13px}@media (hover:none){.category-row-actions{opacity:1}}.notfound-panel{text-align:center;flex-direction:column;min-height:clamp(360px,58vh,640px);display:flex}.notfound-panel :is(h1,h2){margin-bottom:18px;font-size:clamp(26px,3vw,34px)}.notfound-panel .empty-state{flex:1;justify-content:center}.notfound-panel .row-inline{justify-content:center;margin-bottom:0}.login-mark{background:linear-gradient(135deg, var(--brass-glow), var(--teal));width:42px;height:42px;color:var(--on-accent);box-shadow:0 0 24px color-mix(in oklab, var(--brass) 35%, transparent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:20px;font-family:Fraunces,serif;font-size:19px;font-style:italic;font-weight:600;display:flex}.password-wrap{position:relative}.password-wrap input{padding-right:42px}.password-wrap input[type=password]{letter-spacing:1px;font-size:13px}.password-toggle{cursor:pointer;color:var(--text-muted);transition:color var(--speed-quick) ease, background var(--speed-quick) ease;background:0 0;border:none;border-radius:6px;align-items:center;padding:6px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text);background:var(--glass-strong)}.password-toggle svg{width:18px;height:18px}.password-requirements{color:var(--text-muted);margin:-6px 0 16px;padding:0;font-size:12px;list-style:none}.password-requirements li{transition:color var(--speed-quick) ease;padding:2px 0}.password-requirements li.met{color:var(--green-dark)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.25s ease-out modal-overlay-in;display:flex;position:fixed;inset:0}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px)saturate(150%);border:1px solid var(--glass-border);border-radius:var(--radius-l);width:100%;max-width:380px;box-shadow:var(--card-highlight), var(--shadow-pop);animation:modal-card-in .35s var(--ease-glide);padding:28px 26px}@keyframes modal-card-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-card h2{letter-spacing:-.01em;margin:0 0 8px;font-family:Fraunces,serif;font-size:21px;font-weight:550}.modal-card p.subtitle{color:var(--text-secondary);margin:0 0 20px;font-size:14px}.auth-modal-card{max-height:90vh;overflow-y:auto}.auth-switch{text-align:center;color:var(--text-secondary);margin-top:18px;font-size:13px}.auth-switch a,.auth-switch button{font:inherit;color:var(--brass-glow);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.auth-switch a:hover,.auth-switch button:hover{color:var(--brass-hover)}.auth-submit{height:52px;transition:width var(--speed-move) var(--ease-glide), border-radius var(--speed-move) var(--ease-glide), background var(--speed-move) ease, box-shadow var(--speed-move) var(--ease-glide);justify-content:center;align-items:center;margin:6px auto 0;padding:0;display:flex;position:relative;overflow:hidden}.auth-submit.pending,.auth-submit.done{cursor:default;border-radius:50%;width:52px}.auth-submit.pending:disabled,.auth-submit.done:disabled{opacity:1}.auth-submit.done{background:var(--surface-2);box-shadow:0 0 0 2px var(--brass), 0 0 26px color-mix(in oklab, var(--brass-glow) 55%, transparent), 0 10px 30px color-mix(in oklab, var(--brass) 35%, transparent);animation:auth-submit-pop .42s var(--ease-glide)}.auth-submit-label{white-space:nowrap;transition:opacity .12s}.auth-submit.pending .auth-submit-label,.auth-submit.done .auth-submit-label{opacity:0}.auth-submit-ring{border:3px solid color-mix(in oklab, var(--on-accent) 26%, transparent);border-top-color:var(--on-accent);opacity:0;width:26px;height:26px;transition:opacity .16s ease, transform .22s var(--ease-glide);border-radius:50%;position:absolute}.auth-submit.pending .auth-submit-ring{opacity:1;animation:.68s linear infinite auth-submit-spin}.auth-submit.done .auth-submit-ring{opacity:0;transform:scale(1.4)}.auth-submit-check{fill:none;width:28px;height:28px;stroke:var(--brass-glow);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26;stroke-dashoffset:26px;opacity:0;filter:drop-shadow(0 0 8px color-mix(in oklab, var(--brass-glow) 60%, transparent));position:absolute}.auth-submit.done .auth-submit-check{opacity:1;animation:auth-submit-draw .4s var(--ease-glide) .12s forwards}@keyframes auth-submit-spin{to{transform:rotate(360deg)}}@keyframes auth-submit-draw{to{stroke-dashoffset:0}}@keyframes auth-submit-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}.app-nav-bar{z-index:20;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur)) saturate(150%);position:sticky;top:0}.app-nav-backdrop{z-index:15;-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--speed-quick) ease, visibility 0s linear var(--speed-quick);background:#00000073;position:fixed;inset:0}.app-nav-backdrop.open{opacity:1;visibility:visible;transition:opacity var(--speed-quick) ease}.app-nav-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1680px;margin:0 auto;padding:16px clamp(20px,3.5vw,52px);display:flex}.app-nav-logo{letter-spacing:-.01em;color:var(--text);flex-shrink:0;font-family:Fraunces,serif;font-size:21px;font-weight:500}.app-nav-logo span{color:var(--brass-glow);text-shadow:0 0 18px color-mix(in oklab, var(--brass-glow) 35%, transparent);font-style:italic}.app-nav-links{background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--card-highlight);border-radius:999px;align-items:center;gap:28px;padding:7px 22px;display:flex}.app-navlink{cursor:pointer;color:var(--text-secondary);transition:background var(--speed-quick) ease, color var(--speed-quick) ease;background:0 0;border:none;border-radius:999px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;display:block}.app-navlink:hover{color:var(--text)}.app-navlink.active{color:var(--brass-glow);background:var(--glass-strong);text-shadow:0 0 14px color-mix(in oklab, var(--brass-glow) 30%, transparent)}.app-nav-right{align-items:center;gap:20px;display:flex}.app-nav-signin{font:inherit;cursor:pointer;color:var(--text-secondary);transition:color var(--speed-quick) ease;background:0 0;border:none;padding:0;font-size:14px}.app-nav-signin:hover{color:var(--text)}.app-nav-cta.button{width:auto;margin-top:0;padding:11px 22px}.app-nav-mobile-toggle{background:var(--glass-strong);border:1px solid var(--glass-border);cursor:pointer;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;padding:0;display:none}.app-nav-mobile-toggle span{background:var(--text-secondary);width:16px;height:2px;transition:background var(--speed-quick) ease;border-radius:1px;display:block}.app-nav-mobile-toggle:hover span{background:var(--text)}.app-nav-mobile-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur)) saturate(150%);border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-pop);z-index:25;flex-direction:column;gap:2px;padding:12px;display:none;position:absolute;top:100%;left:0;right:0}.app-nav-mobile-link{border-radius:var(--radius-s);color:var(--text);transition:background var(--speed-quick) ease, color var(--speed-quick) ease;padding:11px 14px;font-size:14px;font-weight:500}.app-nav-mobile-link:hover{background:var(--glass-strong)}.app-nav-mobile-link.active{color:var(--brass-glow);background:var(--glass-strong)}.app-nav-mobile-sublink{border-radius:var(--radius-s);color:var(--text-secondary);transition:background var(--speed-quick) ease, color var(--speed-quick) ease;padding:8px 14px 8px 30px;font-size:13px}.app-nav-mobile-sublink:hover{background:var(--glass-strong);color:var(--text)}.app-nav-mobile-sublink.active{color:var(--brass-glow)}.app-nav-mobile-divider{background:var(--glass-border);height:1px;margin:6px 4px}@media (width<=900px){.app-nav-links{display:none}.app-nav-mobile-toggle,.app-nav-mobile-panel.open{display:flex}}.app-nav-mobile-signin{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit}@media (width<=760px){.app-nav-right{gap:12px}}@media (width<=560px){.app-nav-signin{display:none}.app-nav-inner{gap:12px}}.welcome-page{min-height:100dvh}.welcome-inner{max-width:1680px;margin:0 auto;padding:0 clamp(20px,3.5vw,52px)}.welcome-dashboard{padding:clamp(24px,3vw,40px) 0 72px}.welcome-hero{grid-template-columns:minmax(280px,480px) minmax(480px,800px);justify-content:space-between;align-items:center;gap:48px;padding:clamp(48px,7vh,88px) 0;display:grid}.welcome-copy{animation:rise-in .7s var(--ease-glide) both}.welcome-copy h1{letter-spacing:-.02em;margin:0 0 22px;font-family:Fraunces,serif;font-size:clamp(40px,5vw,68px);font-weight:560;line-height:1.04}.welcome-copy h1 em{color:var(--brass-glow);text-shadow:0 0 40px color-mix(in oklab, var(--brass-glow) 40%, transparent);font-style:italic;font-weight:500}.welcome-copy p{color:var(--text-secondary);max-width:42ch;margin:0 0 28px;font-size:17px;line-height:1.6}.welcome-visual{aspect-ratio:4/3;animation:rise-in .7s var(--ease-glide) .12s both;border-radius:24px;align-items:center;display:flex;position:relative;overflow:hidden}.welcome-chart-frame{aspect-ratio:10/7;width:100%;position:relative}.welcome-visual:after{content:"";background:radial-gradient(46% 42% at 72% 18%, var(--glow-a), transparent 70%), radial-gradient(48% 46% at 18% 82%, var(--glow-c), transparent 70%);pointer-events:none;position:absolute;inset:0}.welcome-chart{z-index:1;position:absolute;inset:0}.welcome-chart-grid{stroke:var(--glass-border);stroke-width:1px}.welcome-chart-area{fill:url(#welcomeAreaFill)}#welcomeAreaFill stop{stop-color:var(--teal-glow)}.welcome-chart-line{fill:none;stroke:var(--teal-glow);stroke-width:3.5px;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 10px color-mix(in oklab, var(--teal-glow) 55%, transparent))}.welcome-chart-marker{fill:var(--bg);stroke:var(--teal-glow);stroke-width:2.5px}.welcome-badge{z-index:3;background:var(--glass-strong);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);letter-spacing:.03em;color:var(--text);white-space:nowrap;box-shadow:var(--shadow-soft);border-radius:999px;align-items:center;gap:7px;padding:7px 12px 7px 8px;font-size:11px;font-weight:600;animation:6s ease-in-out infinite alternate badge-float;display:flex;position:absolute}.welcome-badge.brass{animation-delay:1.6s}.welcome-badge.flip{animation-delay:3.1s}@keyframes badge-float{0%{translate:0}to{translate:0 -6px}}.welcome-badge-dot{background:var(--teal-glow);width:8px;height:8px;box-shadow:0 0 8px var(--teal-glow);border-radius:50%;flex:none}.welcome-badge.brass .welcome-badge-dot{background:var(--brass-glow);box-shadow:0 0 8px var(--brass-glow)}.welcome-badge.flip{flex-direction:row-reverse;padding:7px 8px 7px 12px;transform:translate(-100%)}.welcome-stem{background:linear-gradient(to bottom, transparent, var(--teal-glow));width:2px;box-shadow:0 0 6px color-mix(in oklab, var(--teal-glow) 50%, transparent);z-index:2;position:absolute}.welcome-stem.brass{background:linear-gradient(to bottom, transparent, var(--brass-glow));box-shadow:0 0 6px color-mix(in oklab, var(--brass-glow) 50%, transparent)}.welcome-connector{border-top:1px solid var(--glass-border);color:var(--text-secondary);align-items:center;gap:8px;max-width:34ch;margin-top:28px;padding-top:18px;font-size:13px;display:flex}.welcome-connector-dot{background:var(--teal-glow);width:7px;height:7px;box-shadow:0 0 8px var(--teal-glow);color:var(--teal-glow);border-radius:50%;flex:none;animation:2.4s ease-in-out infinite pulse-dot}.welcome-section{border-top:1px solid var(--glass-border);padding:clamp(44px,6vh,64px) 0}.welcome-section-heading{letter-spacing:-.015em;margin:0 0 32px;font-family:Fraunces,serif;font-size:clamp(26px,3vw,34px);font-weight:560}.welcome-steps{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.welcome-step{text-align:center;flex-direction:column;align-items:center;display:flex}.welcome-step-marker{justify-content:center;align-items:center;width:100%;height:30px;margin-bottom:16px;display:flex;position:relative}.welcome-step-marker:before{content:"";background:linear-gradient(90deg, var(--brass), var(--teal));opacity:.35;width:100%;height:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.welcome-step:first-child .welcome-step-marker:before{width:50%;left:50%}.welcome-step:last-child .welcome-step-marker:before{width:50%}.welcome-step-dot{z-index:1;background:var(--surface-2);border:1px solid color-mix(in oklab, var(--brass) 45%, transparent);width:32px;height:32px;color:var(--brass-glow);box-shadow:0 0 14px color-mix(in oklab, var(--brass) 35%, transparent);border-radius:50%;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:14px;font-weight:600;display:flex;position:relative}.welcome-step-card{border-radius:var(--radius-l);width:100%;padding:22px}.welcome-step-card:hover{border-color:var(--border-strong);transform:translateY(-3px)}.welcome-step h3{margin:0 0 8px;font-family:Fraunces,serif;font-size:17px;font-weight:560}.welcome-step p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.55}.welcome-features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.welcome-feature-card{border-radius:var(--radius-l);padding:26px}.welcome-feature-card:hover{border-color:var(--border-strong);box-shadow:var(--card-highlight), var(--shadow-soft);transform:translateY(-3px)}.welcome-feature-icon{border-radius:var(--radius-s);background:var(--glass-strong);border:1px solid var(--glass-border);width:42px;height:42px;color:var(--brass-glow);transition:box-shadow var(--speed-move) ease, border-color var(--speed-move) ease;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.welcome-feature-card:hover .welcome-feature-icon{border-color:color-mix(in oklab, var(--brass-glow) 45%, transparent);box-shadow:0 0 16px color-mix(in oklab, var(--brass) 30%, transparent)}.welcome-feature-icon svg{width:20px;height:20px}.welcome-feature-card h3{margin:0 0 6px;font-family:Fraunces,serif;font-size:17px;font-weight:560}.welcome-feature-card p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.55}.welcome-security{border-radius:var(--radius-l);align-items:center;gap:24px;padding:30px 34px;display:flex}.welcome-security-icon{border-radius:var(--radius-m);background:var(--glass-strong);border:1px solid color-mix(in oklab, var(--brass) 40%, transparent);width:54px;height:54px;color:var(--brass-glow);box-shadow:0 0 18px color-mix(in oklab, var(--brass) 25%, transparent);flex:none;justify-content:center;align-items:center;display:flex}.welcome-security-icon svg{width:26px;height:26px}.welcome-security .welcome-section-heading{margin:0 0 6px;font-size:21px}.welcome-security p{color:var(--text-secondary);max-width:var(--measure);max-width:60ch;margin:0;font-size:15px;line-height:1.6}@media (width<=760px){.welcome-hero{grid-template-columns:1fr}.welcome-copy h1{font-size:clamp(34px,9vw,40px)}.welcome-steps{grid-template-columns:1fr;gap:32px}.welcome-step:first-child .welcome-step-marker:before,.welcome-step:last-child .welcome-step-marker:before{display:none}.welcome-step-marker{width:32px;margin:0 auto 16px}.welcome-features{grid-template-columns:1fr}.welcome-security{text-align:center;flex-direction:column}}.home-grid{grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px;display:grid}.home-tile{border-radius:var(--radius-l)}.home-tile:hover{border-color:var(--border-strong)}.home-hero{flex-direction:column;grid-column:span 4;justify-content:center;padding:26px 24px;display:flex;position:relative;overflow:hidden}.home-hero:before{content:"";background:radial-gradient(52% 110% at 18% 0%, var(--glow-a), transparent 68%), radial-gradient(40% 90% at 88% 100%, var(--glow-b), transparent 70%);pointer-events:none;position:absolute;inset:0}.home-hero .label{text-transform:uppercase;letter-spacing:.09em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600;position:relative}.home-hero .value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-shadow:0 0 34px color-mix(in oklab, currentcolor 38%, transparent);font-family:JetBrains Mono,monospace;font-size:clamp(32px,4vw,46px);font-weight:500;position:relative}.home-leftover{background:var(--sheen-layer), radial-gradient(90% 130% at 85% 10%, var(--glow-b), transparent 72%), var(--glass);flex-direction:column;grid-column:span 2;justify-content:center;padding:18px;display:flex}.home-leftover .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:600}.home-leftover .value{font-variant-numeric:tabular-nums;text-shadow:0 0 22px color-mix(in oklab, currentcolor 30%, transparent);font-family:JetBrains Mono,monospace;font-size:22px;font-weight:500}.home-leftover-sub{color:var(--text-secondary);margin-top:6px;font-size:12px}.home-stat{grid-column:span 3;padding:16px 18px;position:relative;overflow:hidden}.home-stat .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600}.home-stat .value{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:500}.home-stat.positive .value{color:var(--green-dark)}.home-stat.negative .value{color:var(--red)}.home-spark{opacity:.5;height:22px;transition:opacity var(--speed-move) ease;align-items:flex-end;gap:3px;margin-top:12px;display:flex}.home-stat:hover .home-spark{opacity:.85}.home-spark i{border-radius:2px 2px 0 0;flex:1;min-height:2px;display:block}.home-stat.positive .home-spark i{background:linear-gradient(180deg, var(--brass-glow), var(--green-dark))}.home-stat.negative .home-spark i{background:linear-gradient(180deg, color-mix(in oklab, var(--red) 70%, white 30%), var(--red))}.home-forecast{grid-column:span 6;padding:22px 22px 18px}.home-forecast h2{letter-spacing:-.01em;margin:0 0 4px;font-family:Fraunces,serif;font-size:19px;font-weight:550}.home-forecast .description{color:var(--text-secondary);max-width:var(--measure);margin:0 0 14px;font-size:14px}.home-categories-head{grid-column:span 6;margin:4px 2px 0}.home-categories-head h2{letter-spacing:-.01em;margin:0 0 4px;font-family:Fraunces,serif;font-size:19px;font-weight:550}.home-categories-head .description{color:var(--text-secondary);max-width:var(--measure);margin:0;font-size:14px}.home-donut{grid-column:span 2;justify-content:center;align-items:center;padding:16px;display:flex}.home-donut-wrap{width:100%;height:170px;position:relative}.home-donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.home-donut-center .value{color:var(--text);font-size:16px;font-weight:500}.home-donut-center .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:10px;font-weight:600}.home-ranked{grid-column:span 4;padding:18px 20px}.rank-row{grid-template-columns:88px 1fr auto;align-items:center;gap:12px;margin-bottom:11px;font-size:13px;display:grid}.rank-row:last-child{margin-bottom:0}.rank-row .name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rank-track{background:var(--glass-strong);border-radius:3px;height:6px;display:block;overflow:hidden}.rank-fill{border-radius:3px;height:100%;display:block}.rank-row .amount{font-variant-numeric:tabular-nums;color:var(--text-secondary);text-align:right;font-family:JetBrains Mono,monospace;font-size:13px}.rank-limit{color:var(--text-secondary);opacity:.7}.rank-toggle{width:100%;margin-top:6px}@media (width<=760px){.home-hero,.home-leftover,.home-stat,.home-donut,.home-ranked{grid-column:span 6}}.chart-draw{animation:chart-draw 2s var(--ease-glide) .3s both}@keyframes chart-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@property --sweep{syntax:"<angle>";inherits:false;initial-value:0deg}.donut-draw{animation:donut-draw 2s var(--ease-glide) .3s both;-webkit-mask-image:conic-gradient(#000 var(--sweep), transparent 0);-webkit-mask-image:conic-gradient(#000 var(--sweep), transparent 0);mask-image:conic-gradient(#000 var(--sweep), transparent 0)}@keyframes donut-draw{0%{--sweep:0deg}to{--sweep:360deg}}.savingplan-hero{grid-template-columns:2fr 1fr;gap:14px;margin-bottom:20px;display:grid}.savingplan-hero-tile{border-radius:var(--radius-l);padding:22px 24px;position:relative;overflow:hidden}.savingplan-hero-tile:hover{border-color:var(--border-strong)}.savingplan-hero-tile:before{content:"";background:radial-gradient(55% 100% at 15% 0%, var(--glow-a), transparent 70%);pointer-events:none;position:absolute;inset:0}.savingplan-hero-tile.accent:before{background:radial-gradient(80% 130% at 85% 10%, var(--glow-b), transparent 72%)}.savingplan-hero-tile.accent{flex-direction:column;justify-content:center;display:flex}.savingplan-hero-tile .label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:8px;font-size:11px;font-weight:600;position:relative}.savingplan-hero-tile .value{font-variant-numeric:tabular-nums;color:var(--brass-glow);text-shadow:0 0 28px color-mix(in oklab, currentcolor 35%, transparent);font-family:JetBrains Mono,monospace;font-size:clamp(28px,3vw,36px);font-weight:500;position:relative}.savingplan-hero-tile.accent .value{color:var(--teal-glow);font-size:24px}.savingplan-hero-meta{color:var(--text-muted);margin-top:8px;font-size:12px;position:relative}.savingplan-grid-head{justify-content:space-between;align-items:baseline;gap:12px;margin:0 2px 12px;display:flex}.savingplan-grid-head h2{letter-spacing:-.01em;margin:0;font-family:Fraunces,serif;font-size:19px;font-weight:550}.savingplan-grid-head span{color:var(--text-muted);font-size:13px}.savingplan-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:20px;display:grid}@media (width<=760px){.savingplan-hero,.savingplan-grid{grid-template-columns:1fr}}.runway-wrap{height:64px;margin:6px 0 8px;position:relative}.runway-track{background:var(--surface-2);border-radius:3px;height:6px;position:absolute;top:28px;left:0;right:0;overflow:hidden}.runway-fill{height:100%;transition:width .5s var(--ease-glide);border-radius:3px}.goal-card{border-radius:var(--radius-l);padding:20px 22px}.goal-card:hover{border-color:var(--border-strong);box-shadow:var(--card-highlight), var(--shadow-soft);transform:translateY(-2px)}.goal-card-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.goal-card-name-row{align-items:center;gap:10px;min-width:0;display:flex}.goal-priority{background:var(--surface-2);border:1px solid var(--border-strong);width:22px;height:22px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.goal-card-name{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-family:Fraunces,serif;font-size:16px;font-weight:550;overflow:hidden}.goal-reached-row{align-items:center;gap:8px;display:flex}.goal-reached-check{background:var(--green-dark);width:16px;height:16px;color:var(--on-accent);box-shadow:0 0 10px color-mix(in oklab, var(--green-dark) 45%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}.goal-card-subtitle{color:var(--text-secondary);margin-top:3px;font-size:12px}.goal-card-actions{flex-shrink:0;gap:4px;display:flex}.goal-account-select{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;max-width:120px;height:26px;transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease;border-radius:7px;padding:0 4px;font-family:Inter,sans-serif;font-size:12px}.goal-account-select:hover,.goal-account-select:focus{color:var(--brass-glow);border-color:var(--brass);outline:none}.reorder-button{border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;width:26px;height:26px;transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease;background:0 0;border-radius:7px}.reorder-button:hover{color:var(--brass-glow);border-color:var(--brass)}.reorder-button:disabled{opacity:.35;cursor:default}.star-button{color:var(--text-muted);cursor:pointer;transition:color var(--speed-quick) ease, transform var(--speed-quick) var(--ease-glide);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.star-button svg{width:18px;height:18px}.star-button:hover{color:var(--brass-glow);transform:scale(1.15)}.star-button.active{color:var(--brass-glow);filter:drop-shadow(0 0 6px color-mix(in oklab, var(--brass-glow) 55%, transparent))}.goal-card-status{margin:8px 0 10px;font-size:13px}.goal-slider-row{margin-top:4px}.goal-slider{appearance:none;background:var(--surface-2);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}.goal-slider::-webkit-slider-thumb{appearance:none;background:var(--brass-glow);border:2px solid var(--bg);width:16px;height:16px;box-shadow:0 0 10px color-mix(in oklab, var(--brass) 45%, transparent);cursor:pointer;border-radius:50%}.goal-slider::-moz-range-thumb{background:var(--brass-glow);border:2px solid var(--bg);width:16px;height:16px;box-shadow:0 0 10px color-mix(in oklab, var(--brass) 45%, transparent);cursor:pointer;border-radius:50%}.goal-slider-info{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.goal-slider-reset{border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease;background:0 0;border-radius:7px;flex-shrink:0;padding:2px 8px;font-size:11px}.goal-slider-reset:hover{color:var(--brass-glow);border-color:var(--brass)}.faq-list{flex-direction:column;gap:8px;display:flex}.faq-item{border-radius:var(--radius-m);overflow:hidden}.faq-item:hover{border-color:var(--border-strong)}.faq-question{width:100%;color:var(--text);text-align:left;cursor:pointer;transition:color var(--speed-quick) ease;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;display:flex}.faq-question:hover{color:var(--brass-glow)}.faq-chevron{color:var(--text-muted);transition:transform var(--speed-move) var(--ease-glide), color var(--speed-quick) ease;flex-shrink:0;display:flex}.faq-chevron svg{width:16px;height:16px}.faq-chevron.open{color:var(--brass-glow);transform:rotate(180deg)}.faq-answer-wrap{transition:grid-template-rows var(--speed-move) var(--ease-glide);display:grid}.faq-answer-inner{overflow:hidden}.faq-answer{color:var(--text-secondary);max-width:var(--measure);margin:0;padding:0 18px 16px;font-size:14px;line-height:1.55}.faq-answer-action{padding:0 18px 16px}.faq-contact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.faq-contact-badge{background:color-mix(in oklab, var(--teal) 16%, transparent);border:1px solid color-mix(in oklab, var(--teal) 35%, transparent);color:var(--teal-glow);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600}.field textarea{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-s);width:100%;color:var(--text);resize:vertical;transition:border-color var(--speed-quick) ease, box-shadow var(--speed-quick) ease;padding:11px 14px;font-family:Inter,sans-serif;font-size:15px}.field textarea:focus{border-color:var(--brass);box-shadow:var(--focus-ring);outline:none}.page-header-row{align-items:flex-start;gap:14px;display:flex}.page-header-row .page-content{flex:1;min-width:0}.page-back-button{background:var(--glass-strong);border:1px solid var(--glass-border);width:36px;height:36px;color:var(--text-secondary);transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease, transform var(--speed-quick) var(--ease-glide);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:24px;display:flex}.page-back-button:hover{color:var(--brass-glow);border-color:color-mix(in oklab, var(--brass-glow) 45%, transparent);transform:translate(-2px)}.page-back-button svg{width:18px;height:18px}.ticket-status-badge{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.ticket-status-open{background:color-mix(in oklab, var(--teal) 15%, transparent);border-color:color-mix(in oklab, var(--teal) 35%, transparent);color:var(--teal-glow)}.ticket-status-in_progress{background:color-mix(in oklab, var(--red) 14%, transparent);border-color:color-mix(in oklab, var(--red) 35%, transparent);color:var(--red)}.ticket-status-resolved{background:color-mix(in oklab, var(--brass) 15%, transparent);border-color:color-mix(in oklab, var(--brass) 35%, transparent);color:var(--brass-glow)}.ticket-row-link{color:var(--text);transition:color var(--speed-quick) ease;align-items:center;gap:8px;display:inline-flex}.ticket-row-link:hover{color:var(--brass-glow)}.ticket-unread-dot{background:var(--teal);width:7px;height:7px;box-shadow:0 0 8px color-mix(in oklab, var(--teal) 60%, transparent);border-radius:50%;flex-shrink:0;display:inline-block}.ticket-thread{flex-direction:column;gap:14px;display:flex}.ticket-message{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-m);max-width:80%;padding:11px 15px}.ticket-message.own{background:color-mix(in oklab, var(--brass) 16%, transparent);border-color:color-mix(in oklab, var(--brass) 30%, transparent);align-self:flex-end}.ticket-message-meta{color:var(--text-secondary);gap:10px;margin-bottom:4px;font-size:11px;display:flex}.admin-tag{letter-spacing:.04em;text-transform:uppercase;background:color-mix(in oklab, var(--teal) 18%, transparent);border:1px solid color-mix(in oklab, var(--teal) 35%, transparent);color:var(--teal-glow);border-radius:999px;align-items:center;padding:2px 6px;font-size:9px;font-weight:700;display:inline-flex}.ticket-message-body{white-space:pre-wrap;font-size:14px;line-height:1.5}.notification-bell{position:relative}.notification-bell-button{background:var(--glass-strong);width:40px;height:40px;-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--glass-border);color:var(--text-secondary);cursor:default;transition:color var(--speed-quick) ease, border-color var(--speed-quick) ease;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.notification-bell-button:hover{color:var(--brass-glow);border-color:color-mix(in oklab, var(--brass-glow) 45%, transparent)}.notification-bell-button svg{width:19px;height:19px}.notification-badge{background:var(--danger);color:#fff;text-align:center;min-width:16px;height:16px;box-shadow:0 0 10px color-mix(in oklab, var(--danger) 50%, transparent);border-radius:999px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-3px;right:-3px}.notification-panel{background:var(--glass-bg);width:300px;max-width:calc(100vw - 40px);max-height:360px;-webkit-backdrop-filter:blur(var(--blur)) saturate(150%);border:1px solid var(--glass-border);border-radius:var(--radius-m);box-shadow:var(--card-highlight), var(--shadow-pop);opacity:0;visibility:hidden;transition:opacity var(--speed-quick) ease, transform var(--speed-move) var(--ease-glide), visibility 0s linear var(--speed-quick);padding:14px;position:absolute;top:calc(100% + 12px);left:50%;overflow-y:auto;transform:translate(-50%)translateY(-6px)scale(.98)}.notification-panel.open{opacity:1;visibility:visible;transition:opacity var(--speed-quick) ease, transform var(--speed-move) var(--ease-glide);transform:translate(-50%)translateY(0)scale(1)}.notification-panel h3{margin:0 0 10px;font-family:Fraunces,serif;font-size:15px;font-weight:550}.notification-tabs{background:var(--glass-strong);border-radius:var(--radius-s);gap:4px;margin-bottom:10px;padding:3px;display:flex}.notification-tab{color:var(--text-secondary);cursor:pointer;transition:background var(--speed-quick) ease, color var(--speed-quick) ease;background:0 0;border:none;border-radius:7px;flex:1;padding:5px 8px;font-size:12px;font-weight:600}.notification-tab.active{background:var(--surface);color:var(--text)}.notification-empty{color:var(--text-muted);margin:0;font-size:13px;font-style:italic}.notification-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.notification-item{text-align:left;border-radius:var(--radius-s);cursor:pointer;width:100%;transition:background var(--speed-quick) ease;background:0 0;border:none;flex-direction:column;gap:2px;padding:8px 10px;display:flex}button.notification-item:hover{background:var(--glass-strong)}.notification-item-subject{color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.notification-item-icon{color:var(--text-secondary);flex-shrink:0}.notification-item-meta{color:var(--text-secondary);font-size:11px}.notification-group+.notification-group{margin-top:12px}.notification-group-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px;font-size:11px;font-weight:600}.notification-item-static{cursor:default}.ticket-message-receipt{color:var(--text-muted);margin-top:4px;font-size:11px}.toast-stack{z-index:1000;pointer-events:none;flex-direction:column-reverse;align-items:flex-start;gap:8px;display:flex;position:fixed;bottom:20px;left:20px}.toast{pointer-events:auto;background:var(--glass-bg);max-width:90vw;-webkit-backdrop-filter:blur(var(--blur)) saturate(150%);border:1px solid var(--glass-border);border-left:3px solid var(--brass);border-radius:var(--radius-m);color:var(--text);box-shadow:var(--card-highlight), var(--shadow-soft);animation:toast-in .3s var(--ease-glide), toast-out .2s ease 2.8s forwards;padding:11px 16px;font-size:14px}.toast-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(10px)}}.preview-banner{background:var(--glass-strong);border-bottom:1px solid var(--glass-border);color:var(--text-secondary);padding:10px clamp(20px,3.5vw,52px);font-size:14px}.preview-banner-inner{text-align:center;flex-flow:wrap;justify-content:center;align-items:center;gap:8px 14px;max-width:1680px;margin:0 auto;display:flex}.preview-banner-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.preview-banner .button-small{width:auto;padding:6px 14px}.preview-banner-dismiss{color:var(--text-secondary);cursor:pointer;transition:color var(--speed-quick) ease;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.preview-banner-dismiss:hover{color:var(--text)}.maintenance-banner{background:color-mix(in oklab, var(--danger) 12%, transparent);border-bottom:1px solid color-mix(in oklab, var(--danger) 40%, transparent);color:var(--danger);padding:10px clamp(20px,3.5vw,52px);font-size:14px;font-weight:500}.maintenance-banner-inner{text-align:center;max-width:1680px;margin:0 auto}
