.contribution{flex-direction:column;flex:1;min-height:0;display:flex}.class-picker{border:0;min-width:0;margin:0;padding:0}.class-picker legend{color:var(--ink-2);margin-bottom:8px;padding:0;font-size:.78rem;font-weight:500}.class-options{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.class-option{border:1px solid var(--line-strong);background:var(--surface-2);min-height:42px;color:var(--ink-2);text-align:center;cursor:pointer;border-radius:10px;flex-direction:row;justify-content:center;align-items:center;padding:8px 12px;font-size:.86rem;font-weight:600;transition:border-color .15s,background-color .15s,color .15s;position:relative}.class-option:hover{border-color:var(--field-line);color:var(--ink)}.class-option input{opacity:0;pointer-events:none;position:absolute}.class-option[data-checked]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent)}.class-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.ticker-input{border:1px solid var(--field-line);border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:10px;padding:0 4px 0 10px;transition:border-color .15s,box-shadow .15s;display:flex}.ticker-input:hover{border-color:var(--muted)}.ticker-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ticker-input:has(input[aria-invalid=true]){border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.ticker-input input{box-shadow:none;min-height:46px;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:0;flex:1;padding-left:0;font-size:1.05rem;font-weight:600}.ticker-input input::placeholder{text-transform:none;letter-spacing:0;font-weight:400}.ticker-input input:focus-visible,.ticker-input input[aria-invalid=true]{box-shadow:none}.ticker-info{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:.76rem;display:flex}.ticker-info b{color:var(--ink-2);font-weight:600}.stepper{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;display:grid}.stepper button{padding:0;font-size:1.1rem;font-weight:500}.stepper input{text-align:center}.quick-dates{gap:6px;display:flex}.quick-dates button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.contribution .total{flex-direction:column;gap:2px;min-width:0;display:flex}.contribution .total b{color:var(--ink);font-size:1.35rem;font-weight:600;line-height:1.2}.contribution .modal-foot button[type=submit]{min-width:150px;min-height:44px}.saved{text-align:center;align-items:center;gap:8px;padding:32px 24px 24px}.saved-mark{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 7%, transparent);border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.saved h3{font-size:1.1rem}.saved p{color:var(--ink-2)}.saved-total{font-size:1.6rem;font-weight:600;color:var(--ink)!important}.saved-actions{gap:10px;margin-top:14px;display:flex}.saved-actions button{min-width:140px}@media (prefers-reduced-motion:no-preference){.saved-mark{animation:.32s cubic-bezier(.2,.9,.3,1.3) pop}}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.mk-pane{flex-direction:column;gap:16px;padding-top:4px;display:flex}.mk-badge{background:var(--surface-3);color:var(--muted);font-family:var(--mono);border-radius:99px;margin-left:6px;padding:0 6px;font-size:.68rem;font-weight:600;line-height:1.5}.mk-badge.live{background:var(--accent-soft);color:var(--accent);font-family:var(--body)}.mk-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.mk-stat{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.mk-stat b{font-family:var(--display);overflow-wrap:anywhere;font-size:1.05rem;font-weight:700}.mk-stat[data-tone=ok] b{color:var(--accent)}.mk-stat[data-tone=off] b{color:var(--ink-2)}.mk-stat-sub{color:var(--muted);font-size:.78rem}.mk-run{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.mk-run-text{color:var(--ink-2);font-size:.84rem}.mk-run>button{flex:none}.mk-progress{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.mk-progress-head{color:var(--ink-2);justify-content:space-between;font-size:.84rem;display:flex}.mk-failed{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;font-size:.82rem;display:flex}@media (width<=640px){.mk-run{flex-direction:column;align-items:stretch}}.mk-intro{color:var(--ink-2);font-size:.84rem}.mk-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mk-search{flex:180px;width:auto;max-width:260px}.mk-filters .seg button{min-height:32px;padding:5px 10px;font-size:.8rem}.mk-filters .seg .num{color:var(--muted);margin-left:4px;font-size:.72rem}.mk-filters .seg button[aria-pressed=true] .num{color:inherit}@media (width<=640px){.mk-search{flex-basis:100%;max-width:none}}.mk-tags{scrollbar-width:thin;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;max-height:340px;padding:2px;display:grid;overflow-y:auto}.mk-tag{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:7px;align-items:stretch;min-width:0;transition:border-color .15s;display:flex;overflow:hidden}.mk-tag:hover{border-color:var(--field-line)}.mk-tag.off{background:0 0;border-style:dashed}.mk-tag-main{min-width:0;min-height:32px;color:var(--ink);font-family:var(--mono);background:0 0;border:0;border-radius:0;flex:1;justify-content:flex-start;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:500;display:flex}.mk-tag.off .mk-tag-main{color:var(--muted);text-decoration:line-through}button.mk-tag-main:hover:not(:disabled){background:var(--surface-3);border-color:#0000}.mk-tag-x{border:0;border-left:1px solid var(--line-strong);width:28px;min-height:32px;color:var(--muted);background:0 0;border-radius:0;flex:none;padding:0;font-size:.95rem;font-weight:500}.mk-tag-x:hover:not(:disabled){background:var(--bad-soft);border-color:var(--line-strong);color:var(--bad)}.mk-add{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding-top:16px;display:grid}@media (width<=760px){.mk-add{grid-template-columns:minmax(0,1fr)}}.mk-add-form{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) auto;align-items:end;gap:8px;display:grid}.mk-discover{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.mk-drop{border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);min-height:180px;color:var(--muted);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;font-size:.84rem;transition:border-color .15s,background-color .15s;display:flex;position:relative}.mk-drop b{font-family:var(--display);color:var(--ink);font-size:1rem}.mk-drop .icon{color:var(--accent);margin-bottom:4px}.mk-drop:hover,.mk-drop[data-over]{border-color:var(--accent);background:var(--accent-soft)}.mk-drop:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.mk-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.plan-hero{background:linear-gradient(135deg, var(--accent-soft), transparent 70%), var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.plan-hero h3{margin-top:2px;font-size:1.15rem}.plan-steps{flex:none;gap:4px;display:flex}.plan-steps i{background:var(--surface-3);border-radius:99px;width:22px;height:6px}.plan-steps i[data-status=done]{background:var(--accent)}.plan-steps i[data-status=current]{background:linear-gradient(to right, var(--accent) 50%, var(--accent-track) 50%)}.plan-track{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plan-phase{grid-template-columns:30px minmax(0,1fr);gap:14px;padding-bottom:18px;display:grid;position:relative}.plan-phase:not(:last-child):before{content:"";background:var(--line-strong);border-radius:2px;width:2px;position:absolute;top:32px;bottom:0;left:14px}.plan-phase[data-status=done]:not(:last-child):before{background:var(--accent)}.plan-node{z-index:1;border:2px solid var(--line-strong);background:var(--surface);width:30px;height:30px;color:var(--muted);border-radius:50%;place-items:center;font-size:.8rem;font-weight:600;display:grid;position:relative}.plan-phase[data-status=done] .plan-node{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.plan-phase[data-status=current] .plan-node{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.plan-body{flex-direction:column;gap:8px;min-width:0;padding-top:4px;display:flex}.plan-phase[data-status=current] .plan-body{background:var(--surface-2);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:var(--radius);margin-top:-4px;padding:14px 16px 16px}.plan-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.plan-head h3{font-size:.98rem}.plan-phase[data-status=upcoming] .plan-head h3,.plan-phase[data-status=done] .plan-head h3{color:var(--ink-2)}.plan-desc{color:var(--ink-2);max-width:64ch;font-size:.86rem}.plan-phase[data-status=upcoming] .plan-desc{color:var(--muted)}.plan-phase[data-status=done] .plan-desc{display:none}.plan-progress{flex-direction:column;gap:6px;margin-top:2px;display:flex}.plan-numbers{color:var(--muted);justify-content:space-between;gap:12px;font-size:.78rem;display:flex}.plan-numbers b{color:var(--ink);font-weight:600}.prefs{flex-direction:column;gap:16px;width:100%;max-width:1040px;padding-bottom:72px;display:flex}.prefs-head{flex-direction:column;gap:4px;padding:2px 2px 4px;display:flex}.prefs-head h2{font-size:1.2rem}.panel.pref-group{grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:20px 32px;padding:22px 24px;display:grid}@media (width<=760px){.panel.pref-group{grid-template-columns:minmax(0,1fr);padding:18px 16px}}.pref-group-head{align-items:flex-start;gap:12px;display:flex}.pref-group-head h2{margin-bottom:4px}.pref-group-icon{background:var(--surface-2);border:1px solid var(--line);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;display:grid}.pref-group-body{flex-direction:column;gap:18px;min-width:0;display:flex}.pref-field{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:8px 20px;padding-bottom:18px;display:grid}.pref-field:last-child{border-bottom:0;padding-bottom:0}@media (width<=980px){.pref-field{grid-template-columns:minmax(0,1fr)}}.pref-label{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;padding-top:8px;display:flex}.pref-label .field-hint{flex-basis:100%}.pref-name{color:var(--ink);overflow-wrap:anywhere;font-size:.88rem;font-weight:600;display:inline}.pref-advanced .pref-name{font-family:var(--mono);font-size:.8rem;font-weight:500}.pref-control{flex-direction:column;gap:6px;min-width:0;display:flex}.pref-toggles{flex-wrap:wrap;gap:6px;display:flex}.pref-toggle{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink-2);gap:8px;padding:7px 12px 7px 9px;font-weight:500}.pref-toggle:hover:not(:disabled){background:var(--surface-3);border-color:var(--field-line);color:var(--ink)}.pref-toggle[aria-pressed=true],.pref-toggle[aria-pressed=true]:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.pref-check{border:1.5px solid var(--field-line);border-radius:4px;place-items:center;width:16px;height:16px;display:grid}.pref-toggle[aria-pressed=true] .pref-check{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.pref-order{color:var(--muted);font-size:.7rem}.goal-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.goal-edit{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:38px minmax(0,1.2fr) minmax(0,1fr) 56px auto;align-items:center;gap:8px;padding:8px;display:grid}.goal-edit.gold{border-color:color-mix(in oklch, var(--gold) 40%, transparent);background:var(--gold-soft)}.goal-edit.is-new{border-style:dashed;border-color:var(--accent)}.goal-edit input{background:var(--surface)}.goal-star{width:38px;color:var(--muted);background:0 0;border-color:#0000;padding:0}.goal-star:hover:not(:disabled){background:var(--surface-3);color:var(--gold);border-color:#0000}.goal-star[aria-pressed=true],.goal-star[aria-pressed=true]:hover:not(:disabled){color:var(--gold)}.goal-progress{color:var(--muted);text-align:right;font-size:.78rem}.goal-actions{justify-content:flex-end;gap:6px;min-width:38px;display:flex}.goal-remove{border-color:#0000;width:30px;min-width:30px;min-height:30px}.goal-remove:hover:not(:disabled){color:var(--bad)}.goal-error{grid-column:1/-1}.pref-add{align-self:flex-start}@media (width<=640px){.goal-edit{grid-template-columns:38px minmax(0,1fr) auto}.goal-edit .affix{grid-column:2/3}.goal-progress{display:none}}.panel.pref-advanced{padding:0;display:block}.pref-advanced>summary{cursor:pointer;border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;list-style:none;display:flex}.pref-advanced>summary::-webkit-details-marker{display:none}.pref-advanced>summary:hover{background:var(--surface-2)}.pref-advanced>summary .icon{color:var(--muted);transition:transform .2s}.pref-advanced[open]>summary{border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}.pref-advanced[open]>summary .icon{transform:rotate(180deg)}.pref-advanced>.pref-group-body{padding:20px 24px 22px}.pref-savebar{z-index:15;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:12px 14px 12px 18px;font-size:.88rem;display:flex;position:sticky;bottom:16px;box-shadow:0 18px 40px -16px #0009}.pref-savebar-actions{gap:8px;display:flex}@media (prefers-reduced-motion:no-preference){.pref-savebar{animation:.2s ease-out savebar-in}}@keyframes savebar-in{0%{opacity:0;transform:translateY(8px)}}.pref-saved{align-items:center;gap:6px;display:inline-flex}.modal .handoff-text{width:100%;min-height:320px;font-family:var(--mono);white-space:pre;resize:vertical;font-size:.74rem;line-height:1.45}.simulator{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=880px){.simulator{grid-template-columns:minmax(0,1fr)}}.sim-controls{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:18px;padding:16px;display:flex}.sim-control{flex-direction:column;gap:8px;display:flex}.sim-control>label{font-size:.78rem;display:block}.sim-value input{background:var(--surface);min-height:44px;font-size:1.15rem;font-weight:600}.sim-value>span{font-size:.9rem}.presets{flex-wrap:wrap;gap:6px;display:flex}.presets button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.sim-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:14px;display:flex}.sim-result{flex-direction:column;gap:14px;min-width:0;transition:opacity .2s;display:flex}.sim-start{color:var(--ink-2);font-size:.86rem}.sim-start b{color:var(--ink);font-weight:600}.sim-goals{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sim-goals li{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:14px minmax(0,1fr) auto;grid-template-areas:"dot name when""dot name date";align-items:center;gap:2px 12px;padding:12px 14px;display:grid}.sim-goals li.gold{background:var(--gold-soft);border-color:color-mix(in srgb, var(--gold) 40%, transparent)}.sim-dot{background:var(--accent);width:14px;height:14px;color:var(--on-accent);border-radius:50%;grid-area:dot;place-items:center;display:grid}.sim-goals li.gold .sim-dot{background:var(--gold)}.sim-name{font-family:var(--display);grid-area:name;align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.sim-when{grid-area:when;justify-self:end;font-size:1rem;font-weight:600}.sim-goals li.gold .sim-when{color:var(--gold)}.sim-date{color:var(--muted);grid-area:date;justify-self:end;font-size:.76rem}.timeline{padding:34px 8px 26px}.timeline-track{background:linear-gradient(to right, var(--accent-track), var(--surface-3));border-radius:99px;height:4px;position:relative}.timeline-tick{color:var(--muted);white-space:nowrap;font-size:.68rem;position:absolute;top:12px;transform:translate(-50%)}.timeline-tick.start{transform:none}.timeline-tick:before{content:"";background:var(--axis);width:1px;height:8px;position:absolute;top:-12px;left:50%}.timeline-tick.start:before{left:0}.timeline-mark{flex-direction:column-reverse;align-items:center;display:flex;position:absolute;top:-5px;transform:translate(-50%)}.timeline-mark i{background:var(--accent);border:3px solid var(--surface);width:14px;height:14px;box-shadow:0 0 0 1px var(--accent);border-radius:50%}.timeline-mark.gold i{background:var(--gold);box-shadow:0 0 0 1px var(--gold)}.timeline-mark b{color:var(--ink-2);white-space:nowrap;font-size:.7rem;font-weight:600;position:absolute;bottom:18px}.timeline-mark.gold b{color:var(--gold)}.sim-value:not(.suffix)>input{padding-left:42px}.sim-label{color:var(--ink-2);font-size:.78rem;font-weight:500;display:block}.compound-source{flex-wrap:wrap}.compound-rate-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.compound-rate-head>label{font-size:.78rem}.compound-holding{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:10px 12px;font-size:.84rem;display:flex}.compound-holding b{color:var(--ink);font-weight:600}.compound-kpis{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:10px;margin:0;display:grid}.compound-kpis>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex}.compound-kpis dt{color:var(--muted);font-size:.72rem}.compound-kpis dd{color:var(--ink);white-space:nowrap;margin:0;font-size:.98rem;font-weight:600}.compound-kpis .lead{grid-column:1/-1}.compound-kpis .lead dd{font-size:1.35rem}.chart .col.interest{fill:var(--accent-strong)}.chart .col.interest.on{fill:var(--accent-hover)}.chart-keys .sw.interest,.compound-tip .sw.interest{background:var(--accent-strong)}.compound-tip .compound-tip-rows{flex-direction:column;align-items:flex-start;gap:2px;margin-top:4px;display:flex}.compound-tip .compound-tip-rows span{align-items:center;gap:6px;display:inline-flex}:root{--display:"Sora", system-ui, sans-serif;--body:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--radius:12px;--radius-sm:8px;--sidebar-w:240px;--topbar-h:64px;--gutter:24px}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(14.1% .005 285.823);--surface:oklch(21% .006 285.885);--surface-2:oklch(27.4% .006 286.033);--surface-3:oklch(32% .007 286);--line:oklch(100% 0 0/.1);--line-strong:oklch(100% 0 0/.15);--field-line:oklch(56% .014 286);--ink:oklch(98.5% 0 0);--ink-2:oklch(87% .005 286);--muted:oklch(70.5% .015 286.067);--accent:oklch(68% .17 257);--accent-strong:oklch(54.6% .245 262.881);--accent-hover:oklch(60% .23 261);--on-accent:oklch(98.5% 0 0);--accent-soft:oklch(62.3% .214 259.815/.16);--accent-track:oklch(62.3% .214 259.815/.2);--pos:oklch(73% .16 162);--pos-soft:oklch(73% .16 162/.14);--gold:oklch(79% .16 75);--gold-soft:oklch(79% .16 75/.14);--gold-track:oklch(79% .16 75/.2);--bad:oklch(70.4% .191 22.216);--bad-soft:oklch(70.4% .191 22.216/.13);--on-bad:oklch(14.1% .005 285.823);--chart-dim:oklch(53% .013 286);--chart-dim-hover:oklch(62% .014 286);--grid:oklch(100% 0 0/.06);--axis:oklch(100% 0 0/.15);--shadow:0 1px 0 oklch(100% 0 0/.03) inset, 0 12px 32px -18px #000000b3;--overlay:oklch(14.1% .005 285.823/.72)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(98.5% 0 0);--surface:oklch(100% 0 0);--surface-2:oklch(96.7% .001 286.375);--surface-3:oklch(94% .003 286);--line:oklch(92% .004 286.32);--line-strong:oklch(87% .006 286);--field-line:oklch(64% .014 286);--ink:oklch(14.1% .005 285.823);--ink-2:oklch(37% .013 285.805);--muted:oklch(52% .016 285.938);--accent:oklch(54.6% .245 262.881);--accent-strong:oklch(54.6% .245 262.881);--accent-hover:oklch(48.8% .243 264.376);--on-accent:oklch(98.5% .014 254.604);--accent-soft:oklch(62.3% .214 259.815/.12);--accent-track:oklch(62.3% .214 259.815/.16);--pos:oklch(52% .12 160);--pos-soft:oklch(52% .12 160/.1);--gold:oklch(54% .12 65);--gold-soft:oklch(76.9% .188 70.08/.16);--gold-track:oklch(76.9% .188 70.08/.24);--bad:oklch(55% .22 27.325);--bad-soft:oklch(57.7% .245 27.325/.09);--on-bad:oklch(98.5% 0 0);--chart-dim:oklch(66% .012 286);--chart-dim-hover:oklch(56% .014 286);--grid:oklch(94% .003 286);--axis:oklch(87% .006 286);--shadow:0 1px 2px oklch(14.1% .005 285.823/.05), 0 8px 24px -16px oklch(14.1% .005 285.823/.18);--overlay:oklch(14.1% .005 285.823/.4)}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scrollbar-color:var(--line-strong) var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:-.01em;margin:0}h1{letter-spacing:-.02em;font-size:1.3rem;font-weight:700}h2{font-size:1rem;font-weight:700}h3{font-size:.92rem;font-weight:700}p{margin:0}code{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:.85em}::selection{background:var(--accent-soft);color:var(--ink)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--field-line);border-radius:var(--radius-sm);width:100%;min-width:0;min-height:38px;padding:8px 10px;font-size:.9rem;transition:border-color .15s,background-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--muted)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b9c97' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}:root[data-theme=light] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23566661' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}select option{background:var(--surface-2);color:var(--ink)}textarea{font-family:var(--mono);resize:vertical;font-size:.8rem}input[type=checkbox]{width:16px;height:16px;min-height:0;accent-color:var(--accent);cursor:pointer;padding:0}input[type=range]{appearance:none;height:22px;min-height:0;box-shadow:none;cursor:pointer;background:0 0;border:0;padding:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill,0%), var(--surface-3) var(--fill,0%));border-radius:99px;height:6px}input[type=range]::-moz-range-track{background:var(--surface-3);border-radius:99px;height:6px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:99px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border:3px solid var(--accent);border-radius:50%;width:18px;height:18px;margin-top:-6px;box-shadow:0 2px 8px #0006}input[type=range]::-moz-range-thumb{background:var(--ink);border:3px solid var(--accent);border-radius:50%;width:12px;height:12px}input[type=range]:hover:not(:disabled),input[type=range]:focus-visible{box-shadow:none;border:0}input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}input[type=file]{cursor:pointer;padding:6px}input[type=file]::file-selector-button{font:inherit;color:var(--ink);background:var(--surface-3);border:1px solid var(--line-strong);cursor:pointer;border-radius:6px;margin-right:10px;padding:5px 12px;font-size:.82rem;font-weight:600}label{color:var(--ink-2);flex-direction:column;gap:5px;font-size:.76rem;font-weight:500;display:flex}label.inline{flex-direction:row;align-items:center;gap:8px;min-height:38px}label.inline input{width:16px}button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--accent-strong);background:var(--accent-strong);min-height:38px;color:var(--on-accent);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:.86rem;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button[aria-busy=true]{cursor:progress}button.ghost{color:var(--ink-2);border-color:var(--line-strong);background:0 0}button.ghost:hover:not(:disabled){background:var(--surface-3);border-color:var(--field-line);color:var(--ink)}button.danger{background:var(--bad);border-color:var(--bad);color:var(--on-bad)}button.danger:hover:not(:disabled){background:var(--bad);border-color:var(--ink-2)}button.small,button.ghost.small,.row-actions button{min-height:30px;padding:5px 10px;font-size:.78rem}button.icon-btn{color:var(--ink-2);border-color:var(--line-strong);background:0 0;width:38px;min-width:38px;padding:0}button.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--ink);border-color:var(--field-line)}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(svg[tabindex]):focus-visible{outline-offset:4px;border-radius:4px}@media (pointer:coarse){input,select,button{min-height:44px}button.small,button.ghost.small,.row-actions button{min-height:36px}button.icon-btn{width:44px;min-width:44px}}.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}.skip-link{z-index:100;background:var(--accent-strong);color:var(--on-accent);border-radius:var(--radius-sm);padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100dvh;display:grid}.sidebar{z-index:30;background:var(--surface);border-right:1px solid var(--line);scrollbar-width:thin;flex-direction:column;gap:8px;height:100dvh;padding:14px 12px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:2px 4px 14px;display:flex}.brand{min-width:0;color:var(--ink);font-family:var(--display);letter-spacing:-.01em;border-radius:var(--radius-sm);align-items:center;gap:10px;font-size:.95rem;font-weight:700;text-decoration:none;display:flex}.brand span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-mark{flex:none}.sidebar-nav ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-link{border-radius:var(--radius-sm);min-height:38px;color:var(--ink-2);align-items:center;gap:10px;padding:8px 10px;font-size:.88rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex;position:relative}.nav-link .icon{color:var(--muted);flex:none;transition:color .15s}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link:hover .icon{color:var(--ink-2)}.nav-link[aria-current]{background:var(--accent-soft);color:var(--ink);font-weight:600}.nav-link[aria-current] .icon{color:var(--accent)}.nav-link[aria-current]:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.sidebar-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:12px 6px 0;font-size:.72rem}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;min-height:var(--topbar-h);padding:10px var(--gutter);background:var(--bg);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar-title{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.topbar-title .eyebrow,.topbar-title h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar-actions{flex:none;align-items:center;gap:10px;display:flex}.menu-btn{display:none}.topbar-cta{box-shadow:0 6px 18px -10px var(--accent);padding:8px 14px 8px 11px}.topbar-cta .icon{flex:none}.user-menu{position:relative}.user-btn{border-color:var(--line-strong);color:var(--ink-2);background:0 0;gap:8px;padding:4px 10px 4px 4px;font-weight:500}.user-btn:hover:not(:disabled),.user-btn[aria-expanded=true]{background:var(--surface-3);border-color:var(--field-line);color:var(--ink)}.user-btn .icon{color:var(--muted);transition:transform .15s}.user-btn[aria-expanded=true] .icon{transform:rotate(180deg)}.avatar{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);font-family:var(--display);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.avatar.lg{width:38px;height:38px;font-size:.86rem}.user-first{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.user-pop{z-index:40;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);flex-direction:column;gap:10px;width:260px;padding:14px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 48px -16px #0009}@media (prefers-reduced-motion:no-preference){.user-pop{animation:.14s ease-out page-in}}.user-pop-head{align-items:center;gap:10px;min-width:0;display:flex}.user-pop-id{flex-direction:column;min-width:0;display:flex}.user-pop-id b{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.user-pop-id span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.user-role{align-self:flex-start}.user-pop-items{border-top:1px solid var(--line);flex-direction:column;gap:2px;padding-top:8px;display:flex}.user-item{width:100%;color:var(--ink-2);background:0 0;border-color:#0000;justify-content:flex-start;gap:10px;padding:8px 10px;font-weight:500}.user-item:hover:not(:disabled){background:var(--surface-2);color:var(--ink);border-color:#0000}.user-item.out:hover:not(:disabled){color:var(--bad)}.status{min-height:32px;color:var(--ink-2);white-space:nowrap;background:var(--surface);border:1px solid var(--line-strong);border-radius:99px;align-items:center;gap:8px;padding:5px 12px;font-size:.78rem;display:inline-flex}.status .dot{background:var(--pos);width:8px;height:8px;box-shadow:0 0 0 3px var(--pos-soft);border-radius:50%}.status[data-state=busy] .dot{background:var(--ink-2);box-shadow:0 0 0 3px var(--surface-3)}@media (prefers-reduced-motion:no-preference){.status[data-state=busy] .dot{animation:1s ease-in-out infinite alternate pulse}}@keyframes pulse{0%{opacity:1}to{opacity:.35}}.content{padding:var(--gutter);outline:none;flex-direction:column;gap:20px;display:flex}.page{width:100%;max-width:var(--page-max,1280px);flex-wrap:wrap;align-items:stretch;gap:16px;min-width:0;display:flex}.page[data-width=narrow]{--page-max:880px}.page-section{flex-direction:column;flex:100%;min-width:0;display:flex}.page-section[data-size=side]{flex:5 340px}.page-section[data-size=main]{flex:7 480px}.page-section>.panel{flex:1}@media (prefers-reduced-motion:no-preference){.page{animation:.18s ease-out page-in}}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}.backdrop{z-index:25;background:var(--overlay);position:fixed;inset:0}@media (prefers-reduced-motion:no-preference){.backdrop{animation:.2s fade-in}}@keyframes fade-in{0%{opacity:0}}@media (width<=1023.98px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{visibility:hidden;width:min(300px,86vw);transition:transform .2s cubic-bezier(.4,0,1,1),visibility 0s linear .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar[data-open=true]{visibility:visible;transition:transform .28s cubic-bezier(0,0,.2,1);transform:none;box-shadow:0 0 60px #00000080}:root:has(.app[data-nav=open]){overflow:hidden}.menu-btn{display:inline-flex}.nav-link{min-height:44px}}@media (width<=640px){:root{--gutter:16px;--topbar-h:58px}.topbar{gap:10px}.topbar-title h1{font-size:1.08rem}.topbar-title .eyebrow{font-size:.62rem}.content{gap:16px}.topbar-cta{width:38px;min-width:38px;padding:0}.user-first,.user-btn .icon{display:none}.user-btn{padding:4px}.topbar-cta .cta-text{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=640px) and (pointer:coarse){.topbar-cta{width:44px;min-width:44px}}@media (width<=420px){.status{padding:5px 9px}.status .status-text{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.boot{place-content:center;justify-items:center;gap:16px;min-height:100dvh;padding:24px 16px;display:grid}.boot-card{width:min(440px,100%)}.boot-card button{align-self:flex-start}.boot-loading{color:var(--ink-2);align-items:center;gap:10px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px}@media (prefers-reduced-motion:no-preference){.spinner{animation:.8s linear infinite spin}}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:600}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.note{color:var(--muted);font-size:.78rem}.up{color:var(--pos);font-weight:600}.down{color:var(--bad);font-weight:600}.flat{color:var(--ink-2)}.msg{color:var(--bad);background:var(--bad-soft);border:1px solid color-mix(in srgb, var(--bad) 40%, transparent);border-radius:var(--radius-sm);padding:8px 12px;font-size:.84rem}.ok-msg{color:var(--pos);font-size:.84rem}.callout{border-radius:var(--radius-sm);color:var(--ink);background:var(--surface-2);border:1px solid var(--line-strong);align-items:flex-start;gap:10px;padding:10px 12px;font-size:.84rem;display:flex}.callout .icon{flex:none;margin-top:1px}.callout p{overflow-wrap:anywhere;margin:0}.callout.bad{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 40%, transparent)}.callout.bad .icon{color:var(--bad)}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--muted);text-align:center;padding:22px 16px;font-size:.86rem}.loading{flex-direction:column;gap:10px;padding:4px 0;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);background-size:200% 100%;border-radius:6px;height:12px;display:block}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite shimmer}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.is-stale{opacity:.6;transition:opacity .2s}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:18px 20px;display:flex}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-height:30px;display:flex}.panel-aside{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.toolbar input{flex:160px;width:auto}.summary{flex-direction:column;gap:12px;display:flex;container-type:inline-size}.kpis{grid-template-columns:repeat(var(--kpi-cols,4), minmax(0, 1fr));gap:16px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:16px 18px;display:flex;container-type:inline-size}.kpi-label{align-items:center;gap:8px;min-width:0;display:flex}.kpi-label .eyebrow{line-height:1.35}.kpi-icon{background:var(--surface-3);width:26px;height:26px;color:var(--ink-2);border-radius:7px;flex:none;place-items:center;display:inline-grid}.kpi:first-child .kpi-icon{background:var(--accent-soft);color:var(--accent)}.kpi-value{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-height:2rem;display:flex}.kpi .v{font-family:var(--mono);letter-spacing:-.02em;white-space:nowrap;color:var(--ink);font-size:clamp(1.05rem,9cqi,1.7rem);font-weight:500;line-height:1.15}.kpi .v.up{color:var(--pos)}.kpi .v.down{color:var(--bad)}.kpi .v.flat{color:var(--ink)}.kpi .s{color:var(--muted);font-size:.76rem}.kpi .bar{margin-top:2px}.kpi .callout{margin-top:4px}.kpi-skeleton{width:72%;height:28px;margin:2px 0}.delta{font-family:var(--mono);white-space:nowrap;border-radius:99px;align-items:center;gap:2px;padding:1px 8px 1px 4px;font-size:.76rem;font-weight:500;display:inline-flex}.delta.up{color:var(--pos);background:var(--pos-soft)}.delta.down{color:var(--bad);background:var(--bad-soft)}.delta.flat{color:var(--ink-2);background:var(--surface-3)}.kpi-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.kpi-strip>div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 12px;min-width:0;padding:12px 18px;display:grid}.kpi-strip>div+div{border-left:1px solid var(--line)}.kpi-strip dt{color:var(--ink-2);font-size:.78rem;font-weight:500}.kpi-strip dd{margin:0}.kpi-strip .mini-v{color:var(--ink);text-align:right;white-space:nowrap;font-size:.95rem;font-weight:500}.kpi-strip .s{color:var(--muted);grid-column:1/-1;font-size:.74rem}.kpi-strip>.skeleton{width:60%;margin:20px 18px}@container (width<=900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi:last-child:nth-child(odd){grid-column:1/-1}}@container (width<=760px){.kpi-strip{grid-template-columns:minmax(0,1fr)}.kpi-strip>div+div{border-left:0;border-top:1px solid var(--line)}}@container (width<=340px){.kpis{grid-template-columns:minmax(0,1fr)}}.goals{flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.goal{flex-direction:column;gap:8px;display:flex}.goal-head{align-items:center;gap:8px;min-width:0;display:flex}.goal .name{font-family:var(--display);font-size:.95rem;font-weight:700}.goal-pct{color:var(--ink);margin-left:auto;font-size:.9rem}.goal-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 8px;font-size:.76rem;display:flex}.bar{background:var(--accent-track);border-radius:99px;height:8px;position:relative;overflow:hidden}.bar.sm{height:6px}.bar>i{border-radius:inherit;background:var(--accent);position:absolute;inset:0;transform:translate(-100%)}.bar.gold{background:var(--gold-track)}.bar.gold>i{background:var(--gold)}@media (prefers-reduced-motion:no-preference){.bar>i{transition:transform .7s cubic-bezier(.2,.8,.2,1)}}.chip{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:99px;align-items:center;padding:1px 8px;font-size:.7rem;font-weight:600;line-height:1.5;display:inline-flex}.chip.gold{background:var(--gold-soft);color:var(--gold)}.chip.dim{background:var(--surface-3);color:var(--ink-2)}.tablewrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow-x:auto}.tablewrap.scroll{max-height:520px;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.84rem}th{z-index:1;background:var(--surface-2);text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:8px 12px;font-size:.68rem;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;padding:7px 12px}td.r,th.r{text-align:right}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}tr.current td{color:var(--ink);font-weight:600}.asset{align-items:center;gap:8px;display:inline-flex}.asset b{letter-spacing:.01em;font-weight:600}.asset-logo{object-fit:contain;background:#f4f4f5;border-radius:6px;flex:none}.asset-logo.initials{background:var(--surface-3);color:var(--ink-2);font-family:var(--mono);letter-spacing:-.02em;place-items:center;font-weight:600;display:inline-grid}.pay,.stacked{flex-direction:column;align-items:flex-end;line-height:1.25;display:inline-flex}.pay small,.stacked small{font-size:.72rem}.pay small{color:var(--muted)}.stacked.up{color:var(--pos)}.stacked.down{color:var(--bad)}.stacked.flat{color:var(--ink-2)}.mine-tag{color:var(--ink-2);margin-left:2px;font-size:.72rem;font-weight:500}.rkpos{width:1%;color:var(--muted);font-family:var(--mono);font-size:.78rem}.score{vertical-align:middle;gap:3px;display:inline-flex}.score i{background:var(--line-strong);border-radius:2px;width:8px;height:8px}.score i.on{background:var(--accent)}.composition{flex-direction:column;gap:10px;display:flex}.composition h3{font-family:var(--body);color:var(--ink-2);font-size:.8rem;font-weight:600}.composition ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.composition li{grid-template-columns:minmax(120px,260px) minmax(80px,1fr) 48px 96px;align-items:center;gap:12px;font-size:.82rem;display:grid}.comp-label{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);overflow:hidden}.comp-bar{background:var(--accent-track);border-radius:99px;height:8px;overflow:hidden}.comp-bar>i{background:var(--accent);border-radius:99px;height:100%;display:block}.comp-v{text-align:right;color:var(--ink)}.comp-money{text-align:right;color:var(--muted)}.chart{min-width:0;position:relative}.chart-plot{position:relative}.chart svg{touch-action:pan-y;max-width:100%;display:block;overflow:visible}.chart .tick,.chart .cap{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px}.chart .tick{fill:var(--muted)}.chart .cap{fill:var(--ink-2)}.chart .month{fill:var(--muted);font-size:11px}.chart .month.current{fill:var(--ink);font-weight:600}.chart .col{fill:var(--chart-dim);transition:fill .15s}.chart .col.on{fill:var(--chart-dim-hover)}.chart .col.current{fill:var(--accent)}.chart .col.current.on{fill:var(--accent-hover)}.chart .hover-band{fill:var(--surface-2)}.chart-tip{z-index:2;pointer-events:none;white-space:nowrap;background:var(--surface-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);flex-direction:column;align-items:center;padding:6px 10px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 10px 24px -10px #0009}.chart-tip[hidden]{display:none}.chart-tip strong{font-family:var(--mono);color:var(--ink);font-size:.9rem;font-weight:600}.chart-tip span{color:var(--ink-2);font-size:.72rem}.chart-keys{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:.74rem;display:flex}.key{align-items:center;gap:6px;display:inline-flex}.sw{background:var(--chart-dim);border-radius:3px;width:10px;height:10px;display:inline-block}.sw.current{background:var(--accent)}.seg,.tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;gap:2px;max-width:100%;padding:3px;display:inline-flex}.tabs{flex-wrap:wrap;align-self:flex-start}.seg button,.tabs button{color:var(--ink-2);background:0 0;border:0;border-radius:7px;font-weight:500}.seg button{min-height:28px;padding:4px 10px;font-size:.76rem}.tabs button{min-height:32px;padding:6px 14px;font-size:.82rem}.seg button:hover:not(:disabled),.tabs button:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.seg button[aria-pressed=true],.tabs button[aria-selected=true],.seg button[aria-pressed=true]:hover:not(:disabled),.tabs button[aria-selected=true]:hover:not(:disabled){background:var(--accent-soft);color:var(--accent);font-weight:600}.form-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));align-items:end;gap:12px;display:grid}.form-actions{align-items:flex-end;display:flex}.form-actions button{width:100%}.ctrls{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.row-actions{gap:6px;display:inline-flex}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:6px}@media (width<=640px){.panel{padding:16px}.kpi{padding:14px}.kpi-strip>div{padding:10px 14px}.composition li{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.comp-bar{grid-area:2/1/auto/-1}.comp-money{display:none}}.modal{border:1px solid var(--line-strong);background:var(--surface);width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:16px;margin:auto;padding:0;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 30px 80px -20px #000000bf}.modal[open]{display:flex}.modal::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@media (prefers-reduced-motion:no-preference){.modal[open]{animation:.2s cubic-bezier(0,0,.2,1) modal-in}.modal[open]::backdrop{animation:.2s fade-in}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-card{flex-direction:column;flex:1;min-height:0;display:flex}.modal-head{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:18px 18px 16px 20px;display:flex}.modal-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.modal-title{flex-direction:column;flex:1;gap:2px;min-width:0;padding-top:1px;display:flex}.modal-title h2{font-size:1.08rem}.modal-body{flex-direction:column;flex:1;gap:18px;min-height:0;padding:20px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:var(--surface-2);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}@media (width<=640px){.modal{border-bottom:0;border-radius:18px 18px 0 0;width:100%;max-width:100%;max-height:calc(100dvh - 24px);margin:auto 0 0}.modal-body{padding:16px}.modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{font-size:.78rem;display:block}.field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-pair.single{grid-template-columns:minmax(0,1fr)}@media (width<=420px){.field-pair{grid-template-columns:minmax(0,1fr)}}.field-hint{color:var(--muted);font-size:.76rem}.field-hint b{color:var(--ink-2);font-weight:600}.field-error{color:var(--bad);font-size:.76rem}.affix{align-items:center;display:flex;position:relative}.affix>span{color:var(--muted);pointer-events:none;font-size:.84rem;position:absolute;left:11px}.affix>input{padding-left:36px}.affix.suffix>span{left:auto;right:11px}.affix.suffix>input{padding-left:10px;padding-right:52px}button.link{min-height:0;color:var(--accent);font-size:inherit;text-underline-offset:2px;background:0 0;border:0;margin-left:6px;padding:0 2px;font-weight:600;text-decoration:underline;display:inline}button.link:hover:not(:disabled){color:var(--accent-hover);background:0 0}.auth-screen{background:var(--bg);place-items:center;min-height:100dvh;padding:32px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);flex-direction:column;gap:20px;padding:28px 24px;display:flex}.auth-brand{font-family:var(--display);color:var(--ink);align-items:center;gap:10px;font-weight:700;display:flex}.auth-card h1{font-family:var(--display);font-size:1.35rem;line-height:1.25}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-form button[type=submit]{width:100%;margin-top:4px}.auth-foot{color:var(--muted);border-top:1px solid var(--line);padding-top:14px;font-size:.8rem}.account{flex-direction:column;gap:28px;display:flex}.account section{flex-direction:column;gap:12px;display:flex}.account .form-grid{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}.copy-field{align-items:stretch;gap:8px;display:flex}.copy-field input{font-family:var(--mono);font-size:.78rem}.copy-field button{flex:none}.session-device{flex-direction:column;gap:2px;display:flex}.session-device small{color:var(--muted);font-size:.74rem}
