:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f6f4f0;--page-accent:#ece9fb;--surface-1:#fff;--surface-2:#fff;--surface-sunken:#f4f2ee;--border:#e7e3dc;--grid:#efece6;--axis:#cbc8c0;--text-primary:#16151a;--text-secondary:#55534f;--text-muted:#79766f;--primary:#5446d0;--primary-strong:#3f33ad;--primary-tint:#efedfc;--on-primary:#fff;--cat-ahv:#e87ba4;--cat-pk:#2a78d6;--cat-3a:#eb6834;--cat-free:#1baf7a;--cat-estate:#eda100;--cat-income:#4a3aa7;--expense:#9b978d;--good:#0f7b3a;--good-bg:#e4f5ea;--warning:#9a5b00;--warning-mark:#e08a00;--warning-bg:#fff3d9;--critical:#c62828;--critical-bg:#fdecea;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #1e193c0d, 0 6px 20px #1e193c0f;--shadow-pop:0 10px 30px #1e193c29;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#121116;--page-accent:#1d1a33;--surface-1:#1c1b22;--surface-2:#25242c;--surface-sunken:#17161c;--border:#34323d;--grid:#2b2a32;--axis:#4b4955;--text-primary:#fff;--text-secondary:#c6c3d0;--text-muted:#9b98a6;--primary:#8f86f2;--primary-strong:#b0a9ff;--primary-tint:#26223f;--on-primary:#15121f;--cat-ahv:#d55181;--cat-pk:#3987e5;--cat-3a:#d95926;--cat-free:#199e70;--cat-estate:#c98500;--cat-income:#9085e9;--expense:#77746b;--good:#5cc983;--good-bg:#15301f;--warning:#f0b24a;--warning-mark:#e0a030;--warning-bg:#3a2d12;--critical:#ff7a72;--critical-bg:#3a1a18;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--shadow-pop:0 10px 30px #00000080}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#121116;--page-accent:#1d1a33;--surface-1:#1c1b22;--surface-2:#25242c;--surface-sunken:#17161c;--border:#34323d;--grid:#2b2a32;--axis:#4b4955;--text-primary:#fff;--text-secondary:#c6c3d0;--text-muted:#9b98a6;--primary:#8f86f2;--primary-strong:#b0a9ff;--primary-tint:#26223f;--on-primary:#15121f;--cat-ahv:#d55181;--cat-pk:#3987e5;--cat-3a:#d95926;--cat-free:#199e70;--cat-estate:#c98500;--cat-income:#9085e9;--expense:#77746b;--good:#5cc983;--good-bg:#15301f;--warning:#f0b24a;--warning-mark:#e0a030;--warning-bg:#3a2d12;--critical:#ff7a72;--critical-bg:#3a1a18;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--shadow-pop:0 10px 30px #00000080}*{box-sizing:border-box}body{background:linear-gradient(180deg, var(--page-accent) 0, var(--page) 320px) no-repeat, var(--page);color:var(--text-primary);margin:0}.app{padding:20px clamp(16px,2vw,32px) 48px}.muted{color:var(--text-secondary)}.small{font-size:.8rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.layout{grid-template-columns:min(var(--input-width,clamp(384px, 22vw, 440px)), 60%) auto minmax(0, 1fr);align-items:start;gap:24px 6px;margin-top:20px;display:grid}@media (width<=960px){.layout{grid-template-columns:minmax(0,1fr)}}.column-resizer{cursor:col-resize;touch-action:none;border-radius:6px;place-items:center;width:12px;height:calc(100vh - 32px);display:grid;position:sticky;top:16px}.column-resizer-bar{background:var(--border);border-radius:999px;width:4px;height:48px;transition:background .12s,height .12s}.column-resizer:hover .column-resizer-bar,.column-resizer:focus-visible .column-resizer-bar,body.resizing .column-resizer-bar{background:var(--primary);height:96px}.column-resizer:focus-visible{outline:none}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}@media (width<=960px){.column-resizer{display:none}}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:20px}.panel h2,.chart figcaption{margin:0 0 10px;font-size:1.05rem;font-weight:650}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{display:grid}.brand h1{letter-spacing:-.02em;color:var(--primary-strong);margin:0;font-size:1.6rem}.brand-tagline{color:var(--text-secondary);margin:0;font-size:.9rem}.profile-bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;max-width:100%;display:flex}.profile-select select{font:inherit;border:1px solid var(--border);background:var(--surface-1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;max-width:min(320px,70vw);color:var(--text-primary);box-shadow:var(--shadow);appearance:none;cursor:pointer;border-radius:999px;padding:8px 36px 8px 16px;font-weight:600}.menu{position:relative}.menu-toggle{border:1px solid var(--border);background:var(--surface-1);width:40px;height:40px;color:var(--text-secondary);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;place-items:center;display:grid}.menu-toggle:hover,.menu-toggle[aria-expanded=true]{color:var(--primary);border-color:var(--primary)}.menu-popover{z-index:20;border:1px solid var(--border);background:var(--surface-2);min-width:200px;box-shadow:var(--shadow-pop);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-popover button{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-size:.92rem;display:block}.menu-popover button:hover:not(:disabled),.menu-popover button:focus-visible{background:var(--primary-tint);outline:none}.menu-popover button.danger{color:var(--critical)}.menu-popover button:disabled{opacity:.45;cursor:not-allowed}.menu-popover hr{border:none;border-top:1px solid var(--border);margin:4px 6px}.profile-message{text-align:right;color:var(--text-secondary);flex-basis:100%;margin:0;font-size:.85rem}button.secondary{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:.9rem}button.secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}button.secondary:disabled{opacity:.45;cursor:not-allowed}button.secondary.danger:not(:disabled){color:var(--critical)}button.reset{align-self:flex-start;margin-top:4px}.inline-confirm{background:var(--critical-bg);border-radius:12px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;margin:4px 0 8px;padding:10px 12px;font-size:.9rem;display:flex}.inline-confirm button{padding:4px 12px;font-size:.85rem}.link-button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:.9rem;font-weight:600}.icon-button{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;font-size:1.1rem;line-height:1}.icon-button:hover{border-color:var(--border);color:var(--critical)}.inputs{scrollbar-gutter:stable;flex-direction:column;gap:10px;max-height:calc(100vh - 32px);padding:2px 6px 8px 2px;display:flex;position:sticky;top:16px;overflow-y:auto}@media (width<=960px){.inputs{max-height:none;position:static;overflow:visible}}.section{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.section-heading{margin:0;font-size:1rem}.section-toggle{border-radius:var(--radius);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot title chevron"".summary chevron";align-items:center;column-gap:10px;padding:14px 16px;display:grid}.section-toggle:hover{background:var(--surface-sunken)}.section.open .section-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.section-dot{border-radius:50%;grid-area:dot;width:10px;height:10px}.section-title{grid-area:title;font-weight:650}.section-summary{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;grid-area:summary;font-size:.82rem;font-weight:400;overflow:hidden}.section-chevron{color:var(--text-muted);grid-area:chevron;transition:transform .15s}.section.open .section-chevron{transform:rotate(180deg)}.section-body{padding:4px 16px 16px}fieldset{border:none;min-width:0;margin:0 0 16px;padding:0}fieldset:last-child{margin-bottom:0}legend{letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:8px;padding:0;font-size:.78rem;font-weight:700;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px}.field{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:.9rem;display:flex}.field-label{color:var(--text-secondary);align-items:center;gap:4px;min-width:0;display:flex}.field-hint{background:var(--primary-tint);width:16px;height:16px;color:var(--primary);cursor:help;border-radius:50%;flex:none;place-items:center;font-size:.7rem;font-weight:700;display:inline-grid}.field-input{flex:none;align-items:center;gap:6px;display:flex}.field input,.text-input,.name-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-primary);font:inherit;padding:6px 10px;transition:border-color .12s,background .12s}.field input:hover,.text-input:hover,.name-input:hover{border-color:var(--axis)}.field input:focus,.text-input:focus,.name-input:focus{border-color:var(--primary);background:var(--surface-2);outline:2px solid var(--primary-tint);outline-offset:0}.field input{text-align:right;font-variant-numeric:tabular-nums;width:116px}.field input.text-input{text-align:left;width:180px}.field-suffix{width:40px;color:var(--text-muted);font-size:.8rem}.field.compact{margin:0}.field.compact input{width:96px}.field.compact .field-suffix{display:none}.zip-city{gap:4px;width:180px;display:flex}.zip-city .text-input{flex:1;width:auto;min-width:0}.zip-city .text-input.zip{flex:0 0 60px}.check{cursor:pointer;align-items:center;gap:8px;margin:8px 0 10px;font-size:.9rem;display:flex}.check input{width:16px;height:16px;accent-color:var(--primary)}.field-note{color:var(--text-secondary);margin:4px 0 10px;font-size:.8rem}.field-note.critical-text{color:var(--critical)}.asset-list,.property-list{margin-bottom:12px}.asset-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.name-input{flex:1;min-width:0;font-size:.9rem}.asset-list-footer{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;font-size:.85rem;display:flex}.asset-total{color:var(--text-secondary);font-variant-numeric:tabular-nums}.property-card{border:1px solid var(--border);background:var(--surface-sunken);border-radius:12px;margin-bottom:10px;padding:10px 12px 6px}.budget-editor table{font-size:.82rem}.budget-editor th,.budget-editor td{white-space:normal;padding:4px 2px}.budget-editor tbody td:first-child{color:var(--text-secondary)}.budget-editor .field.compact input{width:78px;padding:4px 8px}.results{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0;display:grid}.summary-title{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:12px;display:flex}.summary-title h2{letter-spacing:-.01em;margin:0;font-size:1.35rem}.hero{border-radius:var(--radius);box-shadow:var(--shadow);background:var(--surface-1);border:1px solid var(--border);border-left:6px solid var(--good);align-items:flex-start;gap:16px;padding:20px;display:flex}.hero.critical{border-left-color:var(--critical);background:var(--critical-bg)}.hero-icon{background:var(--good);width:44px;height:44px;color:var(--surface-1);border-radius:50%;flex:none;place-items:center;font-size:1.4rem;font-weight:800;display:grid}.hero.critical .hero-icon{background:var(--critical)}.hero-body{flex:1;min-width:0}.hero-headline{font-size:1.3rem;line-height:1.25;display:block}.hero-text{color:var(--text-secondary);margin:6px 0 12px}.hero-text b{color:var(--text-primary)}.meter-track{background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.meter-fill{background:var(--good);border-radius:999px;height:100%;display:block}.meter.warning .meter-fill{background:var(--warning-mark)}.meter.critical .meter-fill{background:var(--critical)}.meter-caption{color:var(--text-secondary);margin-top:4px;font-size:.8rem;display:block}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}@media (width<=1200px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.tiles{grid-template-columns:minmax(0,1fr)}}.tile{border-radius:var(--radius);border:1px solid var(--border);background:color-mix(in srgb, var(--tone) 9%, var(--surface-1));box-shadow:var(--shadow);flex-direction:column;padding:16px 16px 14px 20px;display:flex;position:relative;overflow:hidden}.tile:before{content:"";background:var(--tone);width:5px;position:absolute;inset:0 auto 0 0}.tile-label,.tile-sub{color:var(--text-secondary);font-size:.8rem}.tile-label{font-weight:600}.tile-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:4px 0 2px;font-size:1.65rem;font-weight:750}.result-tablist{background:var(--surface-1);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;flex-wrap:wrap;gap:4px;margin-bottom:14px;padding:4px;display:inline-flex}.result-tab{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 18px;font-weight:600}.result-tab:hover{color:var(--primary)}.result-tab.active{background:var(--primary);color:var(--on-primary)}.result-tabs{min-width:0}.result-panel{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=1700px){.result-panel.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}}.stackbar{margin:0 0 12px}.stackbar-track{background:var(--surface-sunken);border-radius:999px;gap:2px;height:14px;display:flex;overflow:hidden}.stackbar-segment{min-width:3px;height:100%;display:block}.stackbar-segment:first-child{border-radius:999px 0 0 999px}.stackbar-segment:last-child{border-radius:0 999px 999px 0}.stackbar-segment:only-child{border-radius:999px}.legend{color:var(--text-secondary);flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-item b{color:var(--text-primary);font-variant-numeric:tabular-nums}.legend-swatch{border-radius:3px;width:10px;height:10px}.budget-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:6px 0 14px;display:grid}.budget-card{background:var(--surface-sunken);border:1px solid var(--border);border-radius:14px;padding:16px}.budget-card h3{margin:0 0 12px;font-size:.95rem}.budget-line{color:var(--text-secondary);justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.9rem;display:flex}.budget-line b{color:var(--text-primary);font-variant-numeric:tabular-nums}.asset-bars{gap:8px;margin:6px 0 14px;display:grid}.pill{font-variant-numeric:tabular-nums;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:650;display:inline-block}.pill.good{background:var(--good-bg);color:var(--good)}.pill.critical{background:var(--critical-bg);color:var(--critical)}.details-block>summary,.disclaimer>summary{cursor:pointer;color:var(--primary);padding:4px 0;font-weight:600}.details-block[open]>summary{margin-bottom:8px}.disclaimer{color:var(--text-secondary);font-size:.82rem}.disclaimer>summary{font-size:.9rem}.disclaimer p{margin:8px 0 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}th,td{text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap;padding:9px 8px}th:first-child,td:first-child{text-align:left}th{color:var(--text-secondary);font-size:.82rem;font-weight:600}tbody tr{cursor:pointer}tbody tr:hover{background:var(--primary-tint)}table.static tbody tr{cursor:default}table.static tbody tr:hover{background:0 0}tr.selected{background:var(--primary-tint);box-shadow:inset 4px 0 0 var(--primary)}tr.group td{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;padding-top:16px;font-size:.75rem;font-weight:700}tr.subtotal td{font-weight:650}tfoot td{border-bottom:none;border-top:2px solid var(--border);font-weight:700}.cell-note{color:var(--text-secondary);font-size:.75rem;font-weight:400;display:block}details summary{cursor:pointer}.item-list{color:var(--text-secondary);white-space:normal;margin:4px 0 0;padding-left:18px;font-size:.8rem}.good-text{color:var(--good)}.critical-text{color:var(--critical)}.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.panel-heading h2{margin:0}.tabs{background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;gap:2px;padding:3px;display:flex}.tab{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;padding:4px 12px;font-size:.85rem}.tab.active{background:var(--primary);color:var(--on-primary);font-weight:600}.chart .recharts-legend-item-text{color:var(--text-secondary)!important}.suggestion{background:var(--good-bg);border:1px solid color-mix(in srgb, var(--good) 30%, transparent);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin:8px 0 16px;padding:14px 16px;display:flex}.suggestion p{margin:2px 0 6px}button.primary{font:inherit;background:var(--primary);color:var(--on-primary);cursor:pointer;border:none;border-radius:999px;padding:8px 18px;font-weight:650}button.primary:hover{background:var(--primary-strong)}td.wrap{white-space:normal;text-align:left;min-width:220px}.cell-line{display:block}.asset-sub{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;width:100%;padding-left:4px;display:flex}.asset-row{flex-wrap:wrap}.asset-sub .field{flex:1;margin:0 34px 4px 0;font-size:.82rem}.asset-sub .field input{width:70px}.small-check{margin:0;font-size:.82rem}.step-card{border:1px solid var(--border);background:var(--surface-sunken);border-radius:12px;margin-bottom:8px;padding:8px 10px 2px}.step-head{justify-content:space-between;align-items:center;margin-bottom:4px;font-size:.85rem;display:flex}.tax-fieldset{margin-top:12px}.budget-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.budget-grid th:not(:first-child),.budget-grid td:not(:first-child){text-align:right}.budget-grid th{text-overflow:ellipsis;max-width:72px;font-size:.75rem;overflow:hidden}.budget-label{align-items:center;gap:4px;display:inline-flex}.budget-editor .budget-grid.couple .field.compact input{padding:4px 6px}.budget-editor .budget-grid .field.compact,.budget-editor .budget-grid .field.compact .field-input{width:100%}.budget-editor .budget-grid .field.compact input{width:100%;min-width:62px;max-width:140px;margin-left:auto}.budget-household-total{color:var(--text-secondary);justify-content:space-between;margin:8px 0 4px;font-size:.88rem;display:flex}.budget-household-total b{color:var(--text-primary);font-variant-numeric:tabular-nums}.budget-grid tr.custom-line td:first-child{box-shadow:inset 3px 0 0 var(--primary-tint)}.budget-name{width:100%;min-width:0;padding:4px 6px;font-size:.82rem}.budget-grid tr.custom-line .budget-label{width:100%;display:flex}.budget-grid tr.custom-line .icon-button{width:22px;height:22px}@media (width<=420px){.budget-editor .budget-grid.couple .field.compact input{width:54px;min-width:54px;padding:4px}.budget-editor .budget-grid td:first-child{font-size:.76rem}.section-body{padding:4px 10px 14px}.budget-editor th,.budget-editor td{padding:3px 1px}}.sort-list{margin:0 0 8px;padding:0;list-style:none}.sort-item{border:1px solid var(--border);background:var(--surface-2);cursor:grab;border-radius:10px;align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px;font-size:.88rem;display:flex}.sort-item.dragging{opacity:.4}.sort-item.drop-before{box-shadow:0 -3px 0 var(--primary)}.sort-item.drop-after{box-shadow:0 3px 0 var(--primary)}.sort-handle{color:var(--text-muted);letter-spacing:-2px}.sort-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sort-item .icon-button{font-size:.75rem}.sort-item .icon-button:hover:not(:disabled){color:var(--primary)}.sort-item .icon-button:disabled{opacity:.3;cursor:default}.onetime-list select.text-input{width:180px}
