:root{--bg:#070908;--bg-soft:#0b0e0c;--surface:#101413;--surface-2:#161b18;--surface-3:#1d2320;--border:#b4ff5021;--border-strong:#b4ff5052;--accent:#b4ff39;--accent-rgb:180,255,57;--accent-fg:#b4ff39;--accent-soft:#b4ff3924;--accent-tint:#efffc2;--accent-ink:#0a1204;--income:#b4ff39;--income-rgb:180,255,57;--income-soft:#b4ff3924;--income-ink:#0a1204;--text:#f2f6ec;--text-dim:#9aa69a;--text-faint:#5c6660;--danger:#ff6b57;--danger-soft:#ff6b5724;--warning:#ffd43b;--warning-soft:#ffd43b29;--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:9px;--font-display:"Inter","Helvetica Neue",Helvetica,Arial,"Segoe UI",sans-serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"SFMono-Regular",Consolas,"Liberation Mono","Cascadia Mono",monospace;--font-story:Georgia,"Iowan Old Style","Palatino Linotype","Book Antiqua",Cambria,serif;--shadow-card:0 1px 0 #ffffff08 inset, 0 20px 40px -24px #000000b3;--dur-fast:.15s;--dur-med:.26s;--ease:cubic-bezier(.2,.8,.2,1);--cat-1:#b4ff39;--cat-2:#7cffb2;--cat-3:#ffb648;--cat-4:#ff6b57;--cat-5:#5ec8ff;--cat-6:#c08cff;--cat-7:#ff8cd9;--cat-1-soft:#b4ff3924;--cat-2-soft:#7cffb224;--cat-3-soft:#ffb64824;--cat-4-soft:#ff6b5724;--cat-5-soft:#5ec8ff24;--cat-6-soft:#c08cff24;--cat-7-soft:#ff8cd924}:root[data-theme=light]{--bg:#f5f5f7;--bg-soft:#efeff2;--surface:#fff;--surface-2:#f2f2f5;--surface-3:#ececef;--border:#3c3c431f;--border-strong:#3c3c433d;--accent:#0071e3;--accent-rgb:0,113,227;--accent-fg:#0058b0;--accent-soft:#0071e31f;--accent-tint:#cfe7ff;--accent-ink:#fff;--income:#34c759;--income-rgb:52,199,89;--income-soft:#34c7591f;--income-ink:#04170a;--text:#1d1d1f;--text-dim:#6e6e73;--text-faint:#8e8e93;--danger:#ff3b30;--danger-soft:#ff3b301f;--warning:#a9720a;--warning-soft:#a9720a24;--shadow-card:0 1px 0 #fffc inset, 0 16px 32px -20px #0000001f;--cat-1:var(--accent);--cat-2:var(--income);--cat-3:#c97a12;--cat-4:#d8402a;--cat-5:#1c7fb0;--cat-6:#7a4fd1;--cat-7:#c94f9e;--cat-1-soft:var(--accent-soft);--cat-2-soft:var(--income-soft);--cat-3-soft:#c97a1224;--cat-4-soft:#d8402a24;--cat-5-soft:#1c7fb024;--cat-6-soft:#7a4fd124;--cat-7-soft:#c94f9e24}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}body{background:radial-gradient(1100px 560px at 82% -8%, #b4ff391a, transparent 60%), radial-gradient(700px 420px at -10% 15%, #b4ff390d, transparent 55%), var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16px;line-height:1.6}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit}button{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.wrap{max-width:1200px;margin:0 auto;padding:32px 48px 80px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:48px;display:flex}.brandmark{align-items:center;gap:16px;display:flex}.brandmark .mark{object-fit:contain;flex:none;width:auto;height:36px;display:block}.mark.logo-for-light,.auth-logo.logo-for-light,:root[data-theme=light] .mark.logo-for-dark,:root[data-theme=light] .auth-logo.logo-for-dark{display:none}:root[data-theme=light] .mark.logo-for-light,:root[data-theme=light] .auth-logo.logo-for-light{display:block}.brandmark .word{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;font-size:15px;font-weight:900;line-height:1}.brandmark .word span{color:var(--accent-fg)}.logo-mark{flex:none;align-items:center;display:flex;position:relative}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topbar-right{align-items:center;gap:8px;display:flex}.topbar-date{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);text-transform:capitalize;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.topbar-date svg{width:15px;height:15px;color:var(--accent-fg)}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-dim);cursor:pointer;transition:all var(--dur-fast) var(--ease);border-radius:999px;flex:none;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text)}.theme-toggle svg{width:18px;height:18px}.theme-toggle .icon-moon,:root[data-theme=light] .theme-toggle .icon-sun{display:none}:root[data-theme=light] .theme-toggle .icon-moon{display:block}.lang-switch{position:relative}.lang-trigger{border:1px solid var(--border);background:var(--surface);min-width:40px;height:40px;color:var(--text-dim);font-family:var(--font-display);letter-spacing:.03em;cursor:pointer;transition:all var(--dur-fast) var(--ease);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 14px;font-size:12px;font-weight:700;display:flex}.lang-trigger:hover{border-color:var(--border-strong);color:var(--text)}.lang-menu{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);z-index:60;flex-direction:column;gap:2px;min-width:150px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 40px -20px #00000080}.lang-menu[hidden]{display:none}.lang-menu button{color:var(--text-dim);font-size:13px;font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:9px 12px;display:flex}.lang-menu button:hover{background:var(--surface-3);color:var(--text)}.lang-menu button.active{color:var(--accent-fg);font-weight:700}.balance-top{margin-bottom:0}.stock-ticker{border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);background:#0a0a0a;width:100vw;margin:48px calc(50% - 50vw);overflow:hidden}.ticker-track{will-change:transform;width:max-content;animation:14s linear infinite ticker-scroll;display:flex}.stock-ticker:hover .ticker-track{animation-play-state:paused}.ticker-item{white-space:nowrap;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:#fff;border-right:1px solid #ffffff29;flex:none;align-items:center;gap:10px;padding:14px 28px;font-size:clamp(14px,1.6vw,17px);font-weight:700;display:flex}.ticker-item:nth-child(2n){background:#b4ff3914}.ticker-dot{color:var(--accent);font-size:11px}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.quicknav{border-radius:var(--radius-lg);border:1px solid var(--border-strong);box-shadow:var(--shadow-card);margin:0 0 32px;display:flex;overflow:hidden}.quicknav button{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:16px 24px;font-size:15px;font-weight:900;display:flex}.quicknav button svg{width:17px;height:17px}.quicknav .qn-income{background:var(--accent-soft);color:var(--accent-fg)}.quicknav .qn-income:hover{background:var(--accent);color:var(--accent-ink)}.quicknav .qn-expense{background:var(--danger-soft);color:var(--danger);border-left:1px solid var(--border-strong)}.quicknav .qn-expense:hover{background:var(--danger);color:#2a0805}.btn{letter-spacing:.01em;cursor:pointer;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast), border-color var(--dur-fast), opacity var(--dur-fast);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:16px 24px;font-size:14px;font-weight:700;display:inline-flex}.btn svg{width:16px;height:16px}.btn:active{transform:scale(.96)}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover{filter:brightness(1.08)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-ghost:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn-warn{background:var(--warning-soft);color:var(--warning);border-color:#0000}.btn-warn:hover{background:var(--warning);color:var(--accent-ink)}.debt-group{flex-direction:column;gap:24px;display:flex}.debt-add-row{justify-content:center;display:flex}.stack{flex-direction:column;gap:24px;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px}.panel-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.panel-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-size:18px;font-weight:900;line-height:1.15}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.panel-head.panel-head-center{flex-direction:column;justify-content:flex-start;align-items:center;gap:16px}.panel-head.panel-head-center .chip-row{justify-content:center}.chart-panel{background:linear-gradient(155deg, var(--surface-2), var(--surface) 65%);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:32px 32px 16px;position:relative;overflow:hidden}.chart-panel:before{content:"";pointer-events:none;background:radial-gradient(circle,#b4ff3921,#0000 70%);width:280px;height:280px;position:absolute;top:-45%;right:-15%}#balanceChartPanel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0 0 24px;overflow:visible}#balanceChartPanel:before{content:none}#balanceChartPanel .chart-figure{margin-left:0;margin-right:0}.chart-head{z-index:1;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.chart-label-row{align-items:center;gap:8px;display:flex}.chart-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-fg);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.chart-icon svg{width:16px;height:16px}.chart-icon.danger{background:var(--danger-soft);color:var(--danger)}.chart-label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim);font-size:12px;font-weight:700;line-height:1.15}.chart-label.chart-label-lg{font-family:var(--font-display);letter-spacing:.01em;color:var(--text);font-size:16px;font-weight:900}.chart-add-btn{background:var(--income-soft);width:26px;height:26px;color:var(--income);cursor:pointer;transition:all var(--dur-fast) var(--ease);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-left:4px;display:flex}.chart-add-btn svg{width:13px;height:13px}.chart-add-btn:hover{filter:brightness(1.12)}.chart-add-btn.expense{background:var(--danger-soft);color:var(--danger)}.chart-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:8px;font-size:clamp(30px,4vw,44px);font-weight:700}.chart-value.neg{color:var(--danger)}.chart-delta{border-radius:999px;align-items:center;gap:8px;margin-top:8px;padding:8px 16px;font-size:13px;font-weight:700;display:inline-flex}.chart-delta svg{width:11px;height:11px}.chart-delta.up{background:var(--accent-soft);color:var(--accent-fg)}.chart-delta.down{background:var(--danger-soft);color:var(--danger)}.chart-delta .ctx{color:var(--text-faint);margin-left:8px;font-weight:600}.chart-hint{text-align:right;color:var(--text-faint);max-width:150px;font-size:11.5px}.chart-figure{z-index:1;margin:32px -8px 0;position:relative}.chart-figure svg{width:100%;height:auto;display:block;overflow:visible}.chart-spark{align-items:flex-end;gap:8px;height:150px;margin-top:32px;display:flex}.chart-spark .spark-bar{border-radius:5px 5px 2px 2px}.chart-empty{text-align:center;color:var(--text-faint);padding:32px 16px 16px;font-size:13px}.chart-overlay{cursor:crosshair}.hover-dot{transition:opacity var(--dur-fast)}.chart-tooltip{background:var(--surface-3);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:8px;padding:8px 16px;font-size:11.5px;font-weight:600;position:absolute;top:0;box-shadow:0 8px 20px -8px #000000b3}.tf-tabs{border-top:1px solid var(--border);z-index:1;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:24px;padding:8px 0 16px;display:flex;position:relative;overflow-x:auto}.tf-tabs::-webkit-scrollbar{display:none}.tf-tabs button{white-space:nowrap;color:var(--text-faint);letter-spacing:.02em;cursor:pointer;transition:all var(--dur-fast) var(--ease);background:0 0;border:none;border-radius:999px;flex:none;padding:8px 16px;font-size:12.5px;font-weight:700}.tf-tabs button:hover{color:var(--text)}.tf-tabs button.active{background:var(--accent-soft);color:var(--accent-fg)}.cat-quickadd{z-index:1;flex-wrap:wrap;gap:8px;margin-top:20px;display:flex;position:relative}.cat-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;transition:all var(--dur-fast) var(--ease);border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.cat-chip:hover{border-color:var(--border-strong);background:var(--surface-3)}.cat-chip-icon{background:var(--accent-soft);width:22px;height:22px;color:var(--accent-fg);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.cat-chip-icon svg{width:12px;height:12px}.cat-chip-plus{color:var(--text-faint);font-size:14px;font-weight:700;line-height:1}.hbox{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:24px}.hbox-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.hbox-id{align-items:center;gap:16px;display:flex}.hbox-icon{border-radius:11px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.hbox-icon svg{width:18px;height:18px}.hbox-icon.danger{background:var(--danger-soft);color:var(--danger)}.hbox-icon.warn{background:var(--warning-soft);color:var(--warning)}.hbox-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;font-size:16px;font-weight:900;line-height:1.15}.hbox-sub{color:var(--text-faint);margin-top:8px;font-size:12px}.hbox-body{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.hbox-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:clamp(26px,3vw,34px);font-weight:700}.hbox-value.neg{color:var(--danger)}.hbox-compare{color:var(--text-faint);margin-top:8px;font-size:12.5px}.hbox-compare .up{color:var(--danger);font-weight:700}.hbox-compare .down{color:var(--accent-fg);font-weight:700}.spark{flex:1;align-items:flex-end;gap:8px;min-width:160px;max-width:360px;height:56px;display:flex}.spark-bar{background:var(--surface-3);min-width:3px;transition:height .4s var(--ease);border-radius:3px 3px 1px 1px;flex:1}.spark-bar.filled{background:linear-gradient(180deg, var(--danger), #ff6b5759)}.spark-bar.today{background:linear-gradient(180deg, var(--accent), rgba(var(--accent-rgb),.4))}.spark-bar.income-filled{background:linear-gradient(180deg, var(--accent), rgba(var(--accent-rgb),.3))}.spark-bar.income-current{background:linear-gradient(180deg, var(--accent-tint), var(--accent))}.deuda-metrics{grid-template-columns:repeat(3,auto);gap:24px;display:grid}.deuda-metric .k{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px;font-size:11px;font-weight:700}.deuda-metric .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.deuda-ring{border-radius:50%;flex:none;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:relative}.deuda-ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:7px}.deuda-ring span{z-index:1;font-family:var(--font-mono);font-size:11px;font-weight:700;position:relative}.chip{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;transition:all var(--dur-fast) var(--ease);background:0 0;border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:600}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.active[data-filter=all]{background:var(--surface-3);color:var(--text);border-color:var(--border-strong)}.chip.active[data-filter=income]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip.active[data-filter=expense]{background:var(--danger);color:#2a0805;border-color:var(--danger)}.tx-list{flex-direction:column;gap:8px;display:flex}.tx-row{border-radius:var(--radius-md);background:var(--surface-2);animation:rise var(--dur-med) var(--ease) both;transition:border-color var(--dur-fast), transform var(--dur-fast);border:1px solid #0000;align-items:center;gap:16px;padding:16px;display:flex}.tx-row:hover{border-color:var(--border);transform:translateY(-1px)}.tx-icon{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.tx-icon svg{width:17px;height:17px}.tx-icon.income{background:var(--accent-soft);color:var(--accent-fg)}.tx-icon.expense{background:var(--danger-soft);color:var(--danger)}.tx-mid{flex:1;min-width:0}.tx-desc{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.tx-meta{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:12.5px;overflow:hidden}.tx-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex:none;font-size:14.5px;font-weight:700}.tx-amt.income{color:var(--accent-fg)}.tx-amt.expense{color:var(--danger)}.tx-del{width:30px;height:30px;color:var(--text-faint);cursor:pointer;transition:all var(--dur-fast);background:0 0;border:1px solid #0000;border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.tx-del svg{width:14px;height:14px}.tx-del:hover{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.empty{text-align:center;color:var(--text-faint);padding:32px 16px;font-size:13.5px}.debt-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.debt-card{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);padding:16px}.debt-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.debt-name{font-size:14.5px;font-weight:700}.debt-sub{color:var(--text-faint);margin-top:8px;font-size:12px}.debt-top-actions{flex:none;align-items:center;gap:8px;display:flex}.debt-del{width:26px;height:26px;color:var(--text-faint);cursor:pointer;transition:all var(--dur-fast);background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.debt-del svg{width:13px;height:13px}.debt-del:hover{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.debt-badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:8px 16px;font-size:10.5px;font-weight:700}.debt-badge.ok{background:var(--accent-soft);color:var(--accent-fg)}.debt-badge.due{background:var(--warning-soft);color:var(--warning)}.debt-amounts{font-family:var(--font-mono);font-variant-numeric:tabular-nums;justify-content:space-between;margin-bottom:8px;font-size:13px;display:flex}.debt-amounts .paid{color:var(--text);font-weight:700}.debt-amounts .total{color:var(--text-faint)}.progress{background:var(--surface-3);border-radius:999px;height:8px;margin-bottom:16px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, rgba(var(--accent-rgb),.55), var(--accent));height:100%;transition:width .5s var(--ease);border-radius:999px}.debt-pay{gap:8px;display:flex}.debt-pay input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text);font-size:13px;font-family:var(--font-mono);flex:1;padding:8px 16px}.debt-pay input:focus-visible{outline-offset:0}.debt-pay button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);cursor:pointer;transition:all var(--dur-fast);flex:none;padding:8px 16px;font-size:12.5px;font-weight:700}.debt-pay button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.debt-apr{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.debt-apr-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.debt-apr-value{color:var(--text);font-size:12.5px;font-weight:700}.debt-apr-remaining{color:var(--text-faint);font-size:11.5px}.debt-apr-edit{gap:8px;display:flex}.debt-apr-edit input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;color:var(--text);font-size:13px;font-family:var(--font-mono);flex:1;padding:8px 16px}.debt-apr-edit input:focus-visible{outline-offset:0}.debt-apr-edit button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-3);color:var(--text);cursor:pointer;transition:all var(--dur-fast);flex:none;padding:8px 16px;font-size:12.5px;font-weight:700}.debt-apr-edit button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.donut-wrap{flex-direction:column;align-items:center;gap:24px;display:flex}.donut{border-radius:50%;flex:none;justify-content:center;align-items:center;width:128px;height:128px;display:flex;position:relative}.donut:after{content:"";background:var(--surface);border:1px solid var(--border);border-radius:50%;position:absolute;inset:16px}.donut-center{z-index:1;text-align:center;position:relative}.donut-center .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;display:block}.donut-center .l{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:9.5px}.legend{flex-direction:column;gap:8px;width:100%;min-width:0;max-width:340px;display:flex}.legend-row{align-items:center;gap:8px;font-size:12.5px;display:flex}.legend-icon{border-radius:8px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.legend-icon svg{width:14px;height:14px}:root[data-theme=light] .legend-icon{background:var(--accent-soft)!important;color:var(--accent-fg)!important}.legend-cat{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.legend-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#040604b8;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.overlay.open{display:flex}.modal{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:100%;max-width:440px;animation:pop var(--dur-med) var(--ease) both;padding:24px;box-shadow:0 30px 80px -20px #000c}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-title{font-family:var(--font-display);text-transform:uppercase;font-size:19px;font-weight:900;line-height:1.15}.modal-close{border:1px solid var(--border);width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:9px;justify-content:center;align-items:center;display:flex}.modal-close svg{width:15px;height:15px}.modal-close:hover{border-color:var(--border-strong);color:var(--text)}.type-tabs{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:8px;margin-bottom:16px;padding:8px;display:flex}.type-tabs button{color:var(--text-dim);cursor:pointer;transition:all var(--dur-fast);background:0 0;border:none;border-radius:999px;flex:1;padding:8px 16px;font-size:12.5px;font-weight:700}.type-tabs button.active{background:var(--accent);color:var(--accent-ink)}.modal.type-income .type-tabs button.active{background:var(--income);color:var(--income-ink)}.modal.type-expense .type-tabs button.active{background:var(--danger);color:#fff}.field{margin-bottom:16px}.field label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px;font-size:12px;font-weight:700;display:block}.field input,.field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--text);font-size:14.5px;font-family:var(--font-body);padding:16px}.field input[type=number]{font-family:var(--font-mono)}.field input:focus,.field select:focus{border-color:var(--accent)}.modal.type-income .field input:focus,.modal.type-income .field select:focus{border-color:var(--income)}.modal.type-expense .field input:focus,.modal.type-expense .field select:focus{border-color:var(--danger)}.modal.type-income :focus-visible{outline-color:var(--income)}.modal.type-expense :focus-visible{outline-color:var(--danger)}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.field-row>.field{min-width:0}.field-help{color:var(--text-faint);margin-top:8px;font-size:11.5px}.modal-submit{justify-content:center;width:100%;margin-top:8px;padding:16px;font-size:14.5px}.modal.type-income .modal-submit{background:var(--income);color:var(--income-ink)}.modal.type-expense .modal-submit{background:var(--danger);color:#fff}.toast-stack{z-index:60;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);animation:toastin var(--dur-med) var(--ease) both;border-radius:999px;align-items:center;gap:8px;padding:16px 24px;font-size:13px;font-weight:600;display:flex;box-shadow:0 12px 30px -10px #0009}.toast svg{width:14px;height:14px;color:var(--accent-fg);flex:none}@keyframes toastin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}footer.note{text-align:center;color:var(--text-faint);margin-top:40px;font-size:12px}@media (width<=1024px){.topbar{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.brandmark{justify-self:center}.topbar-right{justify-self:end}.topbar-date{color:var(--text-faint);font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;background:0 0;border:none;justify-self:start;gap:9px;padding:0;font-size:11.5px;font-weight:700}.topbar-date:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px}.topbar-date svg{display:none}}@media (width<=920px){.wrap{padding:24px 32px 64px}.deuda-metrics{grid-template-columns:1fr 1fr;gap:16px}}@media (width<=640px){.wrap{padding:24px 20px 64px}.topbar{grid-template-columns:1fr;row-gap:14px}.brandmark{order:1}.topbar-date{order:2;justify-self:center}.topbar-right{order:3;justify-self:center}.hero{align-items:flex-start}.chart-head{flex-direction:column}.chart-hint{text-align:left;max-width:none}.hbox-body{flex-direction:column;align-items:flex-start}.spark{width:100%;max-width:none}.deuda-metrics{grid-template-columns:1fr;gap:8px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ticker-track{animation:none!important;transform:translate(0)!important}}.auth-loading{z-index:80;background:var(--bg);color:var(--text-dim);font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;font-size:12.5px;display:flex;position:fixed;inset:0}.auth-loading[hidden]{display:none}.auth-modal{text-align:center;width:100%;max-width:380px;padding:36px 28px}.auth-brand{flex-direction:column;align-items:center;gap:10px;margin-bottom:24px;display:flex}.auth-logo{width:52px;height:auto}.auth-brand .word{font-family:var(--font-display);letter-spacing:.02em;font-size:14px;font-weight:900}.auth-brand .word span{color:var(--accent)}.auth-title{font-family:var(--font-display);text-wrap:balance;margin:0 0 8px;font-size:19px;font-weight:800}.auth-sub{color:var(--text-dim);margin:0 0 22px;font-size:13.5px}.btn-google{color:#1f1f1f;background:#fff;border:1px solid #0000001f;justify-content:center;width:100%}.btn-google:hover{background:#f6f6f6}.btn-google:disabled{opacity:.6;cursor:default}.btn-google svg{width:18px;height:18px}.auth-note{color:var(--danger);margin-top:14px;font-size:12.5px}.user-chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 6px;display:flex}.user-avatar{object-fit:cover;background:var(--surface-3);border-radius:50%;flex:none;width:26px;height:26px}.user-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:12.5px;overflow:hidden}.logout-btn{width:26px;height:26px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.logout-btn:hover{color:var(--danger)}.logout-btn svg{width:14px;height:14px}
