@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-ext-wght-normal-Dh0aNLWd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/spline-sans-mono-latin-wght-normal-DlaB5ohX.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--page: #fbfaf7;--surface: #ffffff;--surface-muted: #fbfaf7;--surface-hover: #f1efe8;--border: #eae7dd;--text: #1f1d18;--text-muted: #6f6a5e;--positive: #0c7550;--alert: #b23c0b;--accent: #5b4bc4;--accent-strong: #463a9e;--accent-soft: #efecfa;--accent-line: #d6cff0;--accent-wash: #faf9fe;--accent-dash: #cfc8ec;--positive-soft: #e8f5ef;--alert-soft: #fceee7;--alert-border: #f3d9c8;--border-field: #e0dccf;--text-disabled: #8f897c;--radius: 14px;--shadow-pop: 0 2px 6px rgb(31 29 24 / 8%);--sans: "Instrument Sans Variable", "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "Spline Sans Mono Variable", "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text);font:400 14px/1.5 var(--sans)}.app{max-width:1240px;margin:0 auto;padding:clamp(12px,4vw,24px)}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;padding-bottom:16px}.app-identity{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{flex:none;width:34px;height:34px;border-radius:50%;display:block}.app-identity-text{min-width:0}.app-title{margin:0;font-size:15px;font-weight:600;line-height:1.3}.app-subtitle{margin:2px 0 0;font-size:12px;line-height:1.4;color:var(--text-muted)}.app-age{margin:0;font:500 11px/1 var(--mono);color:var(--text-muted)}.app-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}@media(max-width:1023px){.app-body{grid-template-columns:minmax(0,1fr)}}.app-main,.rail,.empty-state,.placeholder{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.app-main{padding:0;background:transparent;border:none;display:flex;flex-direction:column;gap:20px}.app-header-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.app-nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.nav-pill{display:inline-flex;align-items:center;padding:8px 16px;border:none;border-radius:20px;background:transparent;color:var(--text-muted);font:500 12.5px/1 var(--sans);text-decoration:none;white-space:nowrap}a.nav-pill:hover{background:var(--surface-hover);color:var(--accent-strong)}.nav-pill-current{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.nav-pill-unbuilt{color:var(--text-disabled);cursor:default}.app-footer{padding-top:20px;margin-top:20px;border-top:1px solid var(--border)}.app-deletion-promise{margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.deletion-action{margin:8px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.deletion-failed{font-size:12px;line-height:1.5;color:var(--alert)}.deletion-confirm{margin-top:12px;padding:10px 14px;border:1px solid var(--alert);border-radius:var(--radius);background:var(--surface-muted)}.deletion-confirm-question{margin:0;font-weight:600;font-size:13px;color:var(--text)}.deletion-confirm-detail{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}.deletion-confirm-actions{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px}.header-action{padding:4px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted);font:500 11px/1 var(--mono);cursor:pointer}.header-action:hover:enabled{background:var(--surface-muted);color:var(--text)}.header-action:disabled{cursor:default}.notice{margin:0 0 16px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--text-muted);font-size:12.5px}.notice-alert{border-color:var(--alert);color:var(--text)}.notice-alert p{margin:0 0 8px}.notice-info{color:var(--text)}.notice-info p{margin:0 0 8px}.notice-info .notice-action{border-color:var(--accent);color:var(--accent-strong)}.notice-title{font-weight:600}.notice-action{margin-top:4px;padding:7px 12px;border:1px solid var(--alert);border-radius:8px;background:var(--surface);color:var(--alert);font:600 12px/1 inherit;cursor:pointer}.notice-action:hover{background:var(--surface-muted)}.freshness-mark{margin:0 0 10px;font:500 11px/1.4 var(--mono);color:var(--text-muted)}.freshness-mark.freshness-outdated{color:var(--alert)}[data-freshness=outdated] .verdict-badge,[data-freshness=outdated] .verdict-headline,[data-freshness=outdated] .rail-note,[data-freshness=outdated] .sparkline,[data-freshness=outdated] .surplus-amount,[data-freshness=outdated] .surplus-none,[data-freshness=outdated] .money-moves-surplus,[data-freshness=outdated] .chart-legend,[data-freshness=outdated] .growth-chart,[data-freshness=outdated] .cashflow-chart,[data-freshness=outdated] .yearbyyear-table,[data-freshness=outdated] .income-strip,[data-freshness=outdated] .income-saved,[data-freshness=outdated] .income-saving-result,[data-freshness=outdated] .grant-projection,[data-freshness=outdated] .tax-strip,[data-freshness=outdated] .tax-chain,[data-freshness=outdated] .tax-sources,[data-freshness=outdated] .rail-stat[data-source=projection]{opacity:.45;filter:grayscale(100%)}.whatif-mark{margin:0 0 10px;font:500 11px/1.4 var(--mono);color:var(--accent)}[data-simulating=true] .verdict-badge,[data-simulating=true] .verdict-headline,[data-simulating=true] .rail-stat[data-source=projection] .rail-stat-value,[data-simulating=true] .yearbyyear-balance{text-decoration:underline dotted var(--accent);text-underline-offset:3px}[data-simulating=true] .growth-band.palette-idle{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.empty-state,.placeholder{padding:32px}.empty-state h2,.placeholder h2{margin:0 0 12px;font-size:16px}.empty-state p{margin:0 0 12px;max-width:62ch;color:var(--text-muted)}.empty-state-note{font-size:12.5px}.primary-action{margin-top:8px;padding:8px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted);color:var(--accent);font:500 12px var(--mono);cursor:pointer}.primary-action:hover{background:var(--accent-soft)}a.primary-action{display:inline-block;text-decoration:none}.app-rail{display:flex;flex-direction:column;gap:20px;min-width:0}@media(min-width:1024px){.app-rail{position:sticky;top:16px}}.rail{padding:20px}.verdict-badge{display:inline-block;margin:0 0 8px;padding:3px 8px;border-radius:9px;font:500 10px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.04em}.verdict-badge.tone-on-track{color:var(--positive);background:var(--positive-soft)}.verdict-badge.tone-at-risk{color:var(--alert);background:var(--alert-soft)}.verdict-headline{margin:0 0 16px;font-size:18px;font-weight:600}.sparkline{margin:0;max-width:360px}.sparkline svg{display:block;height:auto}.sparkline-line{fill:none;stroke-width:2}.sparkline-line.tone-on-track{stroke:var(--positive)}.sparkline-line.tone-at-risk{stroke:var(--alert)}.sparkline-fill.tone-on-track{fill:#0e8f621f}.sparkline-fill.tone-at-risk{fill:#c2410c1f}.sparkline-marker{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:3 3}.sparkline-dot.tone-on-track{fill:var(--positive)}.sparkline-dot.tone-at-risk{fill:var(--alert)}.sparkline-axis{display:flex;flex-direction:column;gap:1px;font:500 10px var(--mono);color:var(--text-muted)}.sparkline-axis-marker-row{position:relative;display:block;height:12px}.sparkline-axis-retirement{position:absolute;top:0;white-space:nowrap;font-weight:600;color:var(--accent)}.sparkline-axis-retirement.anchor-middle{transform:translate(-50%)}.sparkline-axis-retirement.anchor-end{transform:translate(-100%)}.sparkline-axis-ends{display:flex;justify-content:space-between}.rail-note{margin:16px 0 0;font-size:12px;color:var(--text-muted)}.rail-sliders{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.slider{display:flex;flex-direction:column;gap:5px}.slider-head{display:flex;align-items:baseline;gap:10px;font-size:12.5px}.slider-label{color:var(--text);font-weight:500;min-width:0}.slider-value{margin-left:auto;flex:0 0 auto;white-space:nowrap;font:600 13px var(--mono);color:var(--accent)}.slider-value-alert{color:var(--alert)}.slider-input{width:100%;margin:0;accent-color:var(--accent);touch-action:pan-y}.slider-input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rail-stats{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:9px}.rail-stat{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px}.rail-stat dt{color:var(--text-muted);min-width:0}.rail-stat dd{margin:0;flex:0 0 auto;white-space:nowrap;font:600 12.5px var(--mono);color:var(--text)}.rail-stat-value.tone-alert{color:var(--alert)}.placeholder-hint{font-size:12.5px;color:var(--text-muted)}code{font-family:var(--mono)}.accounts-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;overflow-x:auto}.accounts-header h2{margin:0 0 2px;font-size:14px}.accounts-note,.accounts-legend{margin:0;font-size:12px;color:var(--text-muted)}.accounts{width:100%;margin-top:16px;border-collapse:collapse;table-layout:fixed}.accounts th{padding:0 8px 6px;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);text-align:left}.accounts th.cell-numeric{text-align:right}.accounts th:first-child{width:auto}.accounts th:nth-child(2){width:100px}.accounts th:nth-child(3){width:76px}.accounts th:nth-child(4),.accounts th:nth-child(5){width:74px}.cell-until{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:3px}.cell-until-label{font-size:10px;color:var(--text-muted);white-space:nowrap}.cell-until .inline-field{width:30px;font-size:11px;padding-left:4px;padding-right:4px}.accounts th:nth-child(6),.accounts td.cell-surplus{width:64px;padding-left:4px;padding-right:4px}.accounts th:last-child{width:48px}.accounts td{padding:3px 8px;vertical-align:top;position:relative}.cell-delete{text-align:right}.cell-name{display:flex;align-items:center;gap:8px}.account-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--series-color)}.palette-0{--series-color: #5b4bc4}.palette-1{--series-color: #0e8f62}.palette-2{--series-color: #d9a13b}.palette-3{--series-color: #c2410c}.palette-4{--series-color: #8f7ff0}.palette-5{--series-color: #1f6f8b}.palette-idle{--series-color: #a09a8c}.inline-field{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--border-field);border-radius:8px;background:var(--surface-muted);color:var(--text);font:500 12px inherit;font-family:inherit}.cell-name .inline-field{flex:1}.inline-field.align-right{text-align:right;font-family:var(--mono)}.inline-field:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field-hint{position:absolute;top:calc(100% - 2px);left:8px;z-index:2;display:block;width:max-content;max-width:264px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);box-shadow:var(--shadow-pop);color:var(--alert);font-size:11px;line-height:1.35;text-align:left;pointer-events:none}.cell-numeric .field-hint{left:auto;right:8px}.field-hint:empty{padding:0;border-width:0;box-shadow:none}.delete-row,.delete-confirm button{border:1px solid transparent;border-radius:8px;background:none;color:var(--text-muted);cursor:pointer;font:500 12px var(--mono)}.delete-row{padding:4px 6px;font-size:15px;line-height:1}.delete-row:hover{color:var(--alert)}.delete-confirm{position:absolute;top:3px;right:8px;z-index:2;display:inline-flex;gap:4px;padding:2px;border-radius:8px;background:var(--surface);white-space:nowrap}.delete-confirm-yes{padding:4px 8px;border-color:var(--border)!important;color:var(--alert)!important}.delete-confirm-no{padding:4px 8px;border-color:var(--border)!important}.delete-confirm-wide{flex-wrap:wrap;justify-content:flex-end;width:max-content;max-width:min(360px,calc(100vw - 32px));padding:8px;border:1px solid var(--border);box-shadow:var(--shadow-pop);white-space:normal;text-align:left}.delete-confirm-savings{flex-basis:100%;margin-bottom:4px;color:var(--text);font-size:12px;line-height:1.4}.delete-row:focus-visible,.delete-confirm button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.reorder-handle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:grab;touch-action:none}.reorder-handle:hover{background:var(--surface-hover);color:var(--accent)}.reorder-handle:active{cursor:grabbing}.reorder-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.reorder-handle.is-disabled{opacity:.4;cursor:default}.reorder-handle.is-disabled:hover{background:transparent;color:var(--text-muted)}.accounts-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.accounts-footer .primary-action{margin-top:0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 1px 3px #1f1d181a;background:var(--border);font-size:11px;font-weight:600;line-height:1;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.avatar-action{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;cursor:pointer;line-height:0}.avatar-action:hover:enabled .profile-avatar{background:var(--alert-soft);color:var(--alert)}.avatar-action:disabled{cursor:default}.surplus-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:14px}.surplus-header h2{margin:0 0 2px;font-size:14px}.surplus-amount,.surplus-none,.surplus-note{margin:0;font-size:12.5px;color:var(--text-muted)}.surplus-amount{color:var(--text)}.surplus-routing{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.surplus-routing legend{padding:0;margin-bottom:8px;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.surplus-option{display:flex;align-items:center;gap:6px;font-size:12.5px;cursor:pointer}.surplus-option input{accent-color:var(--accent);cursor:pointer}.surplus-chip{font:500 10px var(--mono);padding:3px 6px;width:100%;border:1px solid var(--border);border-radius:9px;background:var(--surface-muted);color:var(--text-muted);cursor:pointer}.surplus-chip:hover{color:var(--text)}.surplus-chip:focus-visible,.surplus-option input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.surplus-chip-on,.surplus-chip-on:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}.growth-card,.allocation-card,.cashflow-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px}.growth-header,.cashflow-chart-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px}.growth-header h2,.allocation-header h2,.cashflow-chart-header h2{margin:0;font-size:14px}.growth-header h2,.cashflow-chart-header h2{margin-right:auto}.chart-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;padding:0;list-style:none;font-size:11.5px;color:var(--text-muted)}.chart-legend li{display:flex;align-items:center;gap:6px}.chart-swatch{width:8px;height:8px;border-radius:2px;flex:none;background:var(--series-color)}.chart-swatch.swatch-round{border-radius:50%}.chart-rule{width:14px;height:0;flex:none;border-top:2.5px solid var(--series-color)}.growth-chart{margin:0;display:flex;flex-direction:column;gap:4px}.growth-chart svg{display:block;width:100%;height:190px}.growth-baseline{stroke:var(--border);stroke-width:1}.growth-band{fill:var(--series-color);opacity:.72}.growth-marker{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.75}.growth-axis{margin:0;display:flex;flex-direction:column;gap:1px;font:500 10px var(--mono);color:var(--text-muted)}.growth-axis-marker-row{position:relative;display:block;height:13px}.growth-axis-retirement{position:absolute;top:0;white-space:nowrap;font-weight:600;color:var(--accent)}.growth-axis-retirement.anchor-middle{transform:translate(-50%)}.growth-axis-retirement.anchor-end{transform:translate(-100%)}.growth-axis-ends{display:flex;justify-content:space-between}.cashflow-chart{margin:0;display:flex;flex-direction:column;gap:4px}.cashflow-chart svg{display:block;width:100%;height:170px}.cashflow-baseline{stroke:var(--border);stroke-width:1}.cashflow-line{fill:none;stroke:var(--series-color);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.cashflow-line-income,.chart-rule.cashflow-line-income{--series-color: var(--positive)}.cashflow-line-expenses,.chart-rule.cashflow-line-expenses{--series-color: var(--alert)}.cashflow-marker{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.75}.cashflow-axis{margin:0;display:flex;flex-direction:column;gap:1px;font:500 10px var(--mono);color:var(--text-muted)}.cashflow-axis-marker-row{position:relative;display:block;height:13px}.cashflow-axis-retirement{position:absolute;top:0;white-space:nowrap;font-weight:600;color:var(--accent)}.cashflow-axis-retirement.anchor-middle{transform:translate(-50%)}.cashflow-axis-retirement.anchor-end{transform:translate(-100%)}.cashflow-axis-ends{display:flex;justify-content:space-between}.yearbyyear-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;overflow-x:auto}.yearbyyear-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px}.yearbyyear-toggle{display:flex;align-items:baseline;gap:8px;padding:0;border:0;background:none;cursor:pointer;color:inherit;font:inherit}.yearbyyear-toggle h2{margin:0;font-size:14px}.yearbyyear-chevron{color:var(--accent);font-size:11px}.yearbyyear-note{margin-right:auto;font-size:12px;color:var(--text-muted)}.yearbyyear-density{padding:0;border:0;background:none;cursor:pointer;font:600 12.5px var(--sans);color:var(--accent-strong)}.yearbyyear-rows{margin-top:10px}.yearbyyear-table{width:100%;border-collapse:collapse}.yearbyyear-table th,.yearbyyear-table td{padding:7px 8px;border-bottom:1px solid var(--surface-hover);font-size:12.5px;text-align:left}.yearbyyear-table thead th{padding-bottom:6px;border-bottom:1px solid var(--border);font:600 9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.yearbyyear-table thead th.yearbyyear-numeric,.yearbyyear-table td.yearbyyear-numeric{text-align:right}.yearbyyear-age{font:500 12px var(--mono);color:var(--text-muted)}.yearbyyear-income,.yearbyyear-costs,.yearbyyear-balance{font:500 12px var(--mono)}.yearbyyear-income{color:var(--positive)}.yearbyyear-costs{color:var(--alert)}.yearbyyear-balance{font-weight:600;color:var(--text)}.idle-box{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:14px 20px;background:var(--surface-muted);border:1px dashed var(--border-field);border-radius:var(--radius)}.idle-box-line{flex:1;min-width:260px;margin:0;font-size:12.5px;line-height:1.55;color:var(--text-muted)}.idle-box-amount{font:600 12.5px var(--mono);color:var(--positive)}.idle-box-amount-short{color:var(--alert)}.idle-box-link{font-size:12.5px;font-weight:600;color:var(--accent-strong);white-space:nowrap}.idle-box[data-state=simulating]{background:var(--accent-soft);border-style:solid;border-color:var(--accent)}.idle-box[data-state=simulating] .idle-box-line{color:var(--text)}.idle-box-whatif{display:inline-flex;align-items:center;margin-right:7px;padding:2px 7px;border:1px solid var(--accent);border-radius:7px;background:var(--surface);font:600 9.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-strong)}.allocation-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--border)}.allocation-segment{flex-basis:0;min-width:0;background:var(--series-color)}.allocation-percent{font:500 11.5px var(--mono);color:var(--text)}.allocation-note{margin:0;font-size:12px;color:var(--text-muted)}.money-moves{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.money-moves h2{margin:0 0 12px;font-size:13.5px;font-weight:600}.money-moves-regimes{margin:0;display:flex;flex-direction:column;gap:10px}.money-moves-regime{display:flex;align-items:baseline;gap:10px;font-size:12.5px;color:var(--text-muted)}.money-moves-regime dd{margin:0;flex:1;min-width:0;text-wrap:pretty}.money-moves-span{flex:0 0 auto;padding:3px 8px;border-radius:10px;font:500 11px var(--mono);white-space:nowrap}.money-moves-span.tone-before{color:var(--positive);background:var(--positive-soft)}.money-moves-span.tone-after{color:var(--accent);background:var(--accent-soft)}.money-moves-surplus{font:600 12.5px var(--mono);color:var(--text)}.nudge{padding:16px 18px;border:1px solid #d6cff0;border-radius:var(--radius);background:var(--accent-soft);display:flex;flex-direction:column;gap:6px}.nudge-title{margin:0;font-size:13px;font-weight:600;color:var(--accent-strong)}.nudge-line,.nudge-figure{margin:0;font-size:12.5px;line-height:1.55;color:#4a4470;text-wrap:pretty}.nudge-figure{padding-top:6px;border-top:1px solid #d6cff0}.nudge-caveat{margin:0;font-size:11.5px;line-height:1.5;color:#565078}[data-freshness=outdated].nudge{opacity:.45;filter:grayscale(100%)}@media(max-width:767px){.accounts-card{overflow-x:visible}.accounts,.accounts tbody,.accounts tr,.accounts td{display:block;width:auto}.accounts thead{display:none}.accounts{margin-top:12px}.accounts tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}.accounts td{padding:0;border:none}.cell-name{grid-row:1;grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:2px;padding-right:34px}.cell-label-name{flex-basis:100%}.cell-delete{grid-row:1;grid-column:1 / -1;justify-self:end;align-self:center;z-index:1}.cell-numeric{display:flex;flex-direction:column;gap:4px;position:relative}.cell-numeric[data-field=balance]{grid-column:1 / -1}.cell-numeric[data-field=monthlyContribution]{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}.cell-field{display:flex;flex-direction:column;gap:4px;min-width:0}.cell-label{display:block;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.accounts .inline-field{width:100%;min-height:44px;padding:10px 12px;font-size:13.5px;text-align:right}.cell-name .inline-field{text-align:left;font-weight:600}.cell-until{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-top:0;position:relative}.cell-until-label{display:none}.cell-until .inline-field{width:100%;font-size:13.5px;padding-left:12px;padding-right:12px}.cell-until-note{font-size:11px;line-height:1.35;color:var(--text-muted)}.accounts td.cell-surplus{grid-column:1 / -1;width:auto}.accounts td.cell-delete{width:auto}.accounts td.cell-delete:has(.delete-confirm-wide){grid-row:2;justify-self:stretch}.delete-confirm-wide{position:static;display:flex;width:auto;max-width:none}.accounts .surplus-chip{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px}.header-action,.primary-action,.notice-action,.nav-pill{display:inline-flex;align-items:center;justify-content:center;min-height:44px}.avatar-action{min-width:44px;min-height:44px}.notice-action+.notice-action{margin-left:8px}}@media(min-width:768px){.cell-label,.cell-until-note{display:none}.cell-field{display:contents}}.onboarding{display:flex;flex-direction:column;gap:16px;max-width:640px}.onboarding-intro h2{margin:0 0 6px;font-size:22px;letter-spacing:-.01em;text-wrap:pretty}.onboarding-lede{margin:0;color:var(--text-muted);line-height:1.5}.onboarding-form{display:flex;flex-direction:column;gap:18px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-pop)}.onboarding-field{display:flex;flex-direction:column;gap:6px}.onboarding-field label{font-size:12.5px;font-weight:600}.onboarding-hint{font-weight:400;color:var(--text-muted)}.onboarding-field input,.onboarding-money input{padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted);color:var(--text);font:500 13.5px var(--mono)}.onboarding-money{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.onboarding-money input{width:min(160px,100%);text-align:right}.onboarding-unit{font:500 12.5px var(--mono);color:var(--text-muted);white-space:nowrap}.onboarding-consent{display:flex;gap:10px;align-items:flex-start;padding-top:14px;border-top:1px solid var(--border)}.onboarding-consent label{font-size:12.5px;color:var(--text-muted);line-height:1.5}.onboarding-document{font-style:normal;font-weight:600;color:var(--text)}.onboarding .field-hint{position:static;width:auto;max-width:none;margin:0}.onboarding-submit{margin-top:4px;padding:12px;text-align:center}.onboarding-submit:disabled{cursor:progress;opacity:.7}.onboarding-footnote{margin:0;font-size:11.5px;color:var(--text-muted);text-align:center;line-height:1.5}@media(max-width:767px){.onboarding-field input,.onboarding-money input{min-height:44px}.onboarding-consent input{width:24px;height:24px}}.toast{position:fixed;bottom:24px;left:50%;z-index:50;display:flex;align-items:center;gap:12px;max-width:min(92vw,520px);padding:12px 16px;border-radius:12px;transform:translate(-50%);box-shadow:0 8px 24px #1f1d182e;font-size:13px;color:#fff}.toast-failure{background:var(--alert)}.toast-success{background:var(--positive)}.toast-message{flex:1;min-width:0}.toast-retry,.toast-dismiss{flex:none;padding:2px 4px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.toast-retry{font-weight:700;text-decoration:underline}.toast-dismiss:hover{text-decoration:underline}.profile{display:flex;flex-direction:column;gap:12px}.profile-card{display:flex;flex-direction:column;gap:14px;padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.profile-card-warning{border-color:var(--alert-border)}.profile-card-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.profile-card-tile{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;font:600 12px var(--mono)}.profile-card-tile-neutral{background:var(--surface-hover);color:var(--text-muted)}.profile-card-tile-accent{background:var(--accent-soft);color:var(--accent-strong)}.profile-card-tile-tax,.profile-card-tile-warning{background:var(--alert-soft);color:var(--alert)}.profile-card-tile-positive{background:var(--positive-soft);color:var(--positive)}.profile-card-tile-warning{font-family:var(--sans);font-size:16px}.profile-card-headings{flex:1;min-width:200px}.profile-card-head h3{margin:0 0 2px;font-size:13.5px;letter-spacing:-.01em}.profile-card-lede{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5;text-wrap:pretty}.profile-card-body{display:flex;flex-direction:column;gap:14px;padding-left:52px}.profile-card-note{margin:0;padding-top:12px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12.5px;line-height:1.5;text-wrap:pretty}.profile-card-caveat{display:flex;gap:8px}.profile-card-caveat:before{content:"!";display:flex;flex:none;align-items:center;justify-content:center;width:15px;height:15px;margin-top:2px;border:1px solid var(--text-muted);border-radius:50%;font:700 10px var(--mono)}.profile-card-head .deletion-action{margin:0}.profile-card-head .deletion-confirm{flex:1 0 100%;margin-top:0}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.profile-field{display:flex;flex-direction:column;gap:5px;min-width:0}.profile-field label,.profile-label,.assumption-label{color:var(--text-muted);font-size:11.5px;font-weight:500}.profile-hint{font-weight:400;color:var(--text-muted)}.profile-input,.profile .inline-field{width:100%;padding:8px 12px;border:1px solid var(--border-field);border-radius:8px;background:var(--surface-muted);color:var(--text);font-family:inherit;font-size:13px;font-weight:500}.profile-field .field-hint,.assumption-field .field-hint,.tax-profile-field .field-hint{position:static;width:auto;max-width:none;margin:0}.profile-readonly-field{margin:0}.profile-readonly{display:flex;align-items:center;gap:8px;margin:0;min-width:0;padding:8px 12px;border:1px dashed var(--border-field);border-radius:8px;background:var(--surface-muted);font-size:13px;font-weight:500}.profile-readonly-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-readonly-icon{flex:none;color:var(--text-muted)}.profile-readonly-note{margin-left:auto;flex:none;color:var(--text-muted);font-size:10.5px;font-weight:500}.profile-email{color:var(--text-muted)}.profile-email-pending{font-style:italic}.profile-about-note{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5;text-wrap:pretty}.profile-readout{white-space:nowrap;color:var(--text);font-weight:600}.onboarding-readout{min-height:1.2em;margin:0;color:var(--text-muted);font-size:12.5px}.market-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.market-preset{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted);color:inherit;font:inherit;text-align:left;cursor:pointer}.market-preset-on{border-color:var(--accent);background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}.market-preset-name{font-size:11px;font-weight:600}.market-preset-pair{font-family:var(--mono);font-size:15px;font-weight:600}.market-preset-on .market-preset-pair{color:var(--accent)}.market-preset-note{color:var(--text-muted);font-size:10.5px;line-height:1.35}.assumption-sliders{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.assumption-sliders-ruled{padding-top:14px;border-top:1px solid var(--border)}.assumption-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.assumption-tiles .assumption-field{padding:12px 14px;border-radius:12px;background:var(--surface-muted)}.assumption-field{display:flex;flex-direction:column;gap:4px}.assumption-input{display:flex;align-items:center;gap:4px}.assumption-input .inline-field{width:72px;padding:5px 8px;background:var(--surface);font-size:15px;font-weight:600}.assumption-unit{color:var(--text-muted);font-family:var(--mono);font-size:13px;font-weight:600}.assumption-note{color:var(--text-muted);font-size:10.5px;line-height:1.4;text-wrap:pretty}.statutory-tile{border:1px dashed var(--border-field)}.statutory-value{color:var(--text);font:600 15px var(--mono)}.statutory-source{color:var(--text-muted);font:500 9.5px var(--mono);letter-spacing:.03em}.tax-year-badge{margin-left:auto;align-self:flex-start;flex:none;padding:4px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface-muted);color:var(--text-muted);font:500 11px var(--mono);white-space:nowrap}.tax-profile-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:10px;padding-top:12px;border-top:1px solid var(--border)}.tax-profile-field{display:flex;flex-direction:column;gap:5px}.tax-profile-reveal{margin-left:-2px;padding-left:10px;border-left:2px solid var(--accent)}.tax-reveal-why{margin-bottom:3px;color:var(--accent-strong);font-size:10.5px;font-weight:600}.tax-allowance{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;align-items:center;padding-top:12px;border-top:1px solid var(--border)}.tax-allowance-note{margin:0;color:var(--text-muted);font-size:11.5px;line-height:1.55;text-wrap:pretty}.tax-select{padding:8px 12px;border:1px solid var(--border-field);border-radius:8px;background:var(--surface-muted);color:var(--text);font-family:inherit;font-size:13px;font-weight:600}.tax-number{display:flex;flex-direction:column}.tax-number .inline-field{width:72px;text-align:right}.tax-toggle{display:flex;gap:4px;padding:3px;border-radius:10px;background:var(--surface-hover)}.tax-toggle-option{flex:1;padding:6px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.tax-toggle-on{border-color:var(--border);background:var(--surface);color:var(--text)}.contributions-badge{display:flex;align-items:center;gap:6px;flex:none;padding:5px 11px;border-radius:14px;background:var(--positive-soft);color:var(--positive);font:500 11px var(--mono)}.contributions-badge-edited{background:var(--surface-hover);color:var(--text-muted)}.contributions-scroll{overflow-x:auto;min-width:0}.contributions{width:100%;border-collapse:collapse;font-size:12.5px}.contributions th,.contributions td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:left;font-weight:400}.contributions td{position:relative}.contributions thead th{color:var(--text-muted);font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.contributions tbody th{color:var(--text-muted);font-weight:500}.contributions{table-layout:fixed}.contributions th:nth-child(1),.contributions td:nth-child(1){width:34%}.contributions th:nth-child(2),.contributions td:nth-child(2){width:92px}.contributions th:nth-child(3),.contributions td:nth-child(3){width:118px}.contribution-source{color:var(--text-muted);font-size:10.5px;line-height:1.4;text-wrap:pretty}.contribution-statute{display:inline-block;padding:2px 6px;border-radius:6px;background:var(--surface-hover);font:500 9.5px var(--mono);letter-spacing:.05em;white-space:nowrap}.contribution-qualifier{color:var(--text-muted);font-size:11px}.contribution-mine td,.contribution-mine th{border-bottom:none;background:var(--accent-soft)}.contribution-mine th:first-child{border-radius:10px 0 0 10px}.contribution-mine td:last-child{border-radius:0 10px 10px 0}.contribution-mine th{color:var(--text);font-weight:600}.contribution-mine-tag{display:inline-block;margin-left:7px;padding:2px 6px;border:1px solid var(--accent);border-radius:6px;background:var(--surface);color:var(--accent-strong);font:600 9px var(--mono);letter-spacing:.05em;text-transform:uppercase}.contribution-shares{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:12px;border-top:1px solid var(--border)}.contribution-shares p{margin:0;color:var(--text-muted);font-size:11.5px;line-height:1.55;text-wrap:pretty}.contribution-shares b{display:block;margin-bottom:2px;color:var(--text);font-size:12px}.contributions .cell-numeric{font-family:var(--mono);font-weight:600;text-align:right}.contributions .inline-field{width:100%;padding:5px 8px;border-color:var(--accent);font-size:12px;text-align:right}.contribution-mine .inline-field{width:58px}.income-card,.expense-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;overflow-x:auto}.income-header h2,.expense-header h2{margin:0 0 2px;font-size:14px}.expense-header-with-action{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.expense-header-text{flex:1 1 220px;min-width:0}.import-open{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1.5px solid var(--accent-line);border-radius:20px;background:var(--surface);color:var(--accent-strong);font:600 12.5px var(--sans);white-space:nowrap;cursor:pointer}.empty-state .import-open{margin-left:10px;margin-top:8px}.import-open:hover,.import-close:hover{background:var(--accent-soft)}.import-open:focus-visible,.import-close:focus-visible,.import-primary:focus-visible,.import-secondary:focus-visible,.import-panel h3:focus-visible,.import-consent-agree input:focus-visible,.import-drop:focus-within{outline:2px solid var(--accent);outline-offset:2px}.import-panel{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding:16px 18px;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--accent-wash);text-align:left}.import-panel-head{display:flex;align-items:flex-start;gap:12px}.import-panel-title{flex:1;min-width:0}.import-panel h3{margin:0 0 3px;font-size:13.5px;font-weight:600;color:var(--text)}.import-explanation,.import-consent-parts dd,.import-consent-sensitive,.import-consent-agree label{margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.import-close{flex:none;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer}.import-draft-notice{margin:0;font:600 11.5px var(--mono);color:var(--alert)}.import-consent,.import-upload{display:flex;flex-direction:column;gap:12px}.import-consent-parts{display:flex;flex-direction:column;gap:8px;margin:0}.import-consent-parts dt{font-size:12px;font-weight:600;color:var(--text)}.import-consent-agree{display:flex;gap:10px;align-items:flex-start;padding-top:12px;border-top:1px solid var(--accent-line)}.import-consent-agree label{color:var(--text)}.import-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.import-primary,.import-secondary{padding:9px 16px;border-radius:10px;font:600 12.5px var(--sans);cursor:pointer}.import-primary{border:1px solid var(--accent-strong);background:var(--accent-strong);color:var(--surface)}.import-primary:disabled{border-color:var(--border);background:var(--surface-hover);color:var(--text-muted);cursor:not-allowed}.import-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text-muted)}.import-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;border:1.5px dashed var(--accent-dash);border-radius:12px;background:var(--surface);text-align:center;cursor:pointer}.import-drop-icon{color:var(--accent)}.import-actions-footer{padding-top:12px;border-top:1px solid var(--accent-soft)}.import-drop-over{border-color:var(--accent);background:var(--accent-soft)}.import-drop-main{font-size:13px;color:var(--text)}.import-drop-choose{color:var(--accent-strong);font-weight:600;text-decoration:underline}.import-drop-file{font:600 12.5px var(--mono);color:var(--text);overflow-wrap:anywhere}.import-drop-hint{font-size:11.5px;color:var(--text-muted)}.import-file-input{position:absolute;width:1px;height:1px;opacity:0}.import-refusal{margin:0;font-size:12px;color:var(--alert)}.import-refusal p{margin:0 0 8px}.import-notice p,.import-reading-line,.import-review-head p{margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.import-notice,.import-field{display:flex;flex-direction:column;gap:4px}.import-field label{font-size:12px;font-weight:600;color:var(--text)}.import-field input{box-sizing:border-box;width:100%;min-height:36px;padding:6px 10px;font:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border-field);border-radius:8px}.import-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.import-field-hint{margin:0;font-size:12px;line-height:1.5;color:var(--text-muted)}.import-reading,.import-review,.import-reading-status{display:flex;flex-direction:column;gap:10px}.import-reading-title,.import-review-head h4{margin:0;font-size:13px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.import-review-head h4{font-size:13.5px}.import-review-head{display:flex;flex-direction:column;gap:3px;overflow-wrap:anywhere}.import-reading-bar{height:6px;border-radius:3px;background:var(--accent-soft);overflow:hidden}.import-reading-bar div{width:40%;height:100%;border-radius:3px;background:var(--accent);animation:import-bar 1.1s ease-in-out infinite}@keyframes import-bar{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.import-reading-bar div{animation:none}}.import-left-out{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px 12px;font-size:12px;color:var(--text-muted)}.import-left-out summary{font-weight:600;color:var(--text);cursor:pointer}.import-left-out summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.import-left-out ul{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none}.import-left-out li{display:flex;flex-wrap:wrap;gap:4px 12px}.import-left-out-account{font:600 12px var(--mono);color:var(--text)}.import-review-lines{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}.import-review-lines ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.import-line-header{display:none}.import-line{display:flex;flex-direction:column;gap:10px;padding:12px;border-top:1px solid var(--border)}.import-line:first-child{border-top:0}.import-line-field{display:flex;flex-direction:column;gap:4px;min-width:0}.import-line-label{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.import-line-payee{font-size:12.5px;font-weight:600;color:var(--text);overflow-wrap:anywhere}.import-line-raw{font:400 10.5px var(--mono);color:var(--text-muted);overflow-wrap:anywhere}.import-line-seen,.import-line-status{font-size:11.5px;line-height:1.4;color:var(--text-muted)}.import-line-status{color:var(--positive)}.import-line-status.is-left-out,.import-line-status.is-same{color:var(--text-muted)}.import-line-status.is-update{color:var(--accent-strong)}.import-line-status.is-unsure{font-weight:600;color:var(--alert)}.import-line-update{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:12px;color:var(--text);cursor:pointer}.import-line-update input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.import-line-foreign{font:600 12px var(--mono);color:var(--text)}.import-summary{margin:0;font-size:12px;color:var(--text-muted);text-align:right}.import-line-range{font:400 10.5px var(--mono);color:var(--text-muted)}.import-line-select{width:100%;min-height:44px}@media(min-width:768px){.import-line-header,.import-line{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.15fr) minmax(0,.75fr) minmax(0,1.25fr) minmax(0,1fr);gap:10px;align-items:start}.import-line-header{padding:9px 12px;border-bottom:1px solid var(--border);font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.import-line-header-amount,.import-line-amount{text-align:right}.import-line-label{display:none}.import-line-select,.import-line-update{min-height:0}}.income-note,.income-legend,.expense-note{margin:0;font-size:12px;color:var(--text-muted)}.income{width:100%;margin-top:16px;border-collapse:collapse;table-layout:fixed}.income th,.expense-items th{padding:0 8px 6px;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);text-align:left}.income th.cell-numeric,.expense-items th.cell-numeric{text-align:right}.income th:first-child{width:32px}.income td.cell-handle{padding-right:0}.income th:nth-child(2){width:136px}.income th:nth-child(3){width:auto}.income th:nth-child(4){width:148px}.income-amount,.expense-amount{display:flex;align-items:center;gap:6px}.income-amount .inline-field,.expense-amount .inline-field{flex:1 1 auto;min-width:0}.income-unit,.expense-unit{flex:none;min-width:42px;font:500 10.5px var(--mono);color:var(--text-muted);white-space:nowrap}.income th:last-child{width:36px}.income-record[data-dragging=true]{opacity:.4}.income-record[data-drop=before]>tr:first-child>td{box-shadow:inset 0 2px 0 var(--accent)}.income-record[data-drop=after]>tr:nth-last-child(1 of:not(.income-explain-row))>td{box-shadow:inset 0 -2px 0 var(--accent)}.expense-record[data-dragging=true]{opacity:.4}.expense-record[data-drop=before]>tr:first-child>td{box-shadow:inset 0 2px 0 var(--accent)}.expense-record[data-drop=after]>tr:last-child>td{box-shadow:inset 0 -2px 0 var(--accent)}.income td,.expense-items td{padding:5px 8px;vertical-align:middle;font-size:12px}.income td,.expense-items td.cell-numeric,.expense-items .expense-step-add-row td{position:relative}.expense-items td.cell-numeric[data-field=amount] .field-hint{right:auto;left:8px}.income .inline-field{font-size:12px}.income-dates-row td{padding-top:0;padding-bottom:8px}.income-dates{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.income-date{position:relative;display:inline-flex;align-items:center;gap:6px}.income-date-word,.expense-paid-word{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.income-date .inline-field{width:92px;font-family:var(--mono)}.income-age-hint{font:500 11.5px var(--sans);color:var(--text-muted)}.row-frequency{padding:4px 6px;font-family:inherit;font-size:11.5px;font-weight:500;color:var(--text);background:var(--surface-muted);border:1px solid var(--border-field);border-radius:7px}.row-frequency:hover:not(:disabled){background:var(--surface);border-color:var(--accent)}.row-frequency:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row-frequency:disabled{border-style:dashed;color:var(--text-disabled)}.income-link{display:inline-flex;align-items:center;gap:6px;min-width:0}.income-link-word{font:500 11.5px var(--sans);color:var(--text-muted)}.income-dates .income-toggles{margin-left:auto}.income-toggles{display:flex;flex-wrap:wrap;gap:4px}.income-chip{padding:3px 7px;border:1px solid var(--border-field);border-radius:9px;background:var(--surface-muted);color:var(--text-muted);font:500 10px var(--mono);cursor:pointer}.income-chip:hover{border-color:var(--accent)}.income-chip-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.income-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.income-chip-disabled{border-style:dashed;color:var(--text-disabled);cursor:default}.income-type-unanswered{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.income-silence-row td{padding-top:0;padding-bottom:8px;border-bottom:1px solid var(--border)}.income-strip-row td{padding-top:0;padding-bottom:8px}.income-strip-row .income-strip{padding-left:24px;font:500 11.5px var(--mono);line-height:1.5;color:var(--text-muted)}.income-strip:before{content:"↳";margin-left:-16px;padding-right:4px;color:var(--text-disabled)}.income-strip-gross{color:var(--text)}.income-strip-deduction{color:var(--alert)}.income-strip-net{color:var(--positive);font-weight:600}.income-strip-op{color:var(--text-disabled);white-space:pre}.income-strip-note{font:500 11px var(--sans);color:var(--text-disabled)}.income-strip-idle{font:500 11.5px var(--sans)}.income-silence,.income-draft-note{font-size:11.5px;line-height:1.5;color:var(--text-muted)}.income-draft-note{color:var(--accent-strong)}.income-saving-row td{padding-top:0;padding-bottom:8px}.income-saving-add{margin-left:24px;padding:2px 0;border:0;background:transparent;color:var(--accent);font:600 11px var(--sans);cursor:pointer}.income-saving-add:hover{color:var(--accent-strong)}.income-saving{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-left:24px;padding:6px 6px 6px 10px;border-radius:9px;background:var(--accent-soft);color:var(--text-muted);font:500 11.5px var(--sans)}.income-saving-icon{flex:none;color:var(--accent-strong)}.income-saving-word{font-weight:600;color:var(--text)}.income-saving-amount{position:relative;display:inline-flex}.income-saving-amount .inline-field{width:72px}.income-saving-link{color:var(--accent-strong);font-weight:600}.income-saving-result{font:600 11.5px var(--mono);color:var(--accent-strong)}.income-saving-result[data-tone=warning]{color:var(--alert)}.income-saving-result[data-tone=muted]{font-family:var(--sans);font-weight:500;color:var(--text-muted)}.income-saving-remove{margin-left:auto;padding:5px 8px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font:600 11px var(--sans);cursor:pointer}.income-saving-remove:hover{background:var(--surface-muted);color:var(--alert)}.income-saving-add:focus-visible,.income-saving-remove:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.income-saving-warning:not(:empty),.income-saving-lost{flex-basis:100%;min-width:0;overflow-wrap:anywhere}.income-saving-warning{color:var(--alert);font-weight:600}.income-saving-lost{color:var(--text-muted)}.income-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.income-footer .primary-action{margin-top:0}.income-saved{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);font-size:12px}.income-saved-label{font-weight:600}.income-saved-total{font:600 12.5px var(--mono);color:var(--accent-strong)}.income-saved-split{color:var(--text-muted)}.income-saved-chips{display:contents;list-style:none}.income-saved-chip{display:flex;align-items:center;gap:5px;min-width:0;padding:3px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:11.5px;overflow-wrap:anywhere}.income-saved-chip .account-dot{width:7px;height:7px}.income-saved-chip-amount{font:600 11px var(--mono)}.income-saved-link{margin-left:auto;white-space:nowrap;font-weight:600}.empty-state .primary-action{margin-top:0}.income-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-type{width:100%;padding:5px 8px;font-family:inherit;font-size:12px;color:var(--text);background:var(--surface-muted);border:1px solid var(--border-field);border-radius:8px}.income-type:hover{background:var(--surface);border-color:var(--accent)}.inline-field::placeholder{color:var(--text-disabled);opacity:1}.expense-groups{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.expense-group{border:1px solid var(--border);border-radius:10px}.expense-group>:first-child{border-top-left-radius:9px;border-top-right-radius:9px}.expense-group>:last-child{border-bottom-left-radius:9px;border-bottom-right-radius:9px}.expense-group[data-dragging=true]{opacity:.4}.expense-group[data-drop=before],.expense-group[data-drop=after]{position:relative}.expense-group[data-drop=before]:after,.expense-group[data-drop=after]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9px;pointer-events:none}.expense-group[data-drop=before]:after{box-shadow:inset 0 2px 0 var(--accent)}.expense-group[data-drop=after]:after{box-shadow:inset 0 -2px 0 var(--accent)}.expense-group[data-drop=into]{background:var(--accent-soft);outline:1.5px dashed var(--accent);outline-offset:-1px}.expense-group-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:12.5px;color:var(--text);text-align:left;background:var(--surface-muted)}.expense-group-toggle{display:flex;align-items:center;gap:10px;flex:none;padding:4px 2px;font:inherit;color:inherit;text-align:left;background:none;border:0;border-radius:6px;cursor:pointer}.expense-group-toggle:focus-visible,.expense-bulk-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.expense-group-label{min-width:66px;font-size:11.5px;font-weight:600;color:var(--accent);text-align:right}.expense-group-toggle:hover .expense-group-label{text-decoration:underline}.expense-group-toggle:hover .expense-chevron{border-color:var(--accent)}.expense-chevron{display:flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:50%;transition:transform .15s}.expense-group-toggle[aria-expanded=true] .expense-chevron{transform:rotate(90deg)}@media(prefers-reduced-motion:reduce){.expense-chevron{transition:none}}.expense-swatch{width:10px;height:10px;border-radius:3px;flex:none;background:var(--series-color)}.expense-group-name{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px}.expense-group-name .inline-field{width:100%;font-weight:600}.expense-group-count{font-size:11.5px;color:var(--text-muted)}.expense-group-total{font:600 12.5px var(--mono);white-space:nowrap}.expense-items{width:100%;border-collapse:collapse;table-layout:fixed;padding:0 12px}.expense-items td:first-child{padding-left:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-items th:first-child{width:24px;padding:0}.expense-items td.cell-handle{padding:0;overflow:visible}.expense-items td.expense-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-items th:nth-child(3){width:144px}.expense-items th:nth-child(4),.expense-items th:nth-child(5){width:88px}.expense-items td.cell-numeric[data-field=from] .inline-field,.expense-items td.cell-numeric[data-field=to] .inline-field{font-family:var(--mono)}.expense-age-hint,.expense-step-hint{font:500 11.5px var(--sans);color:var(--text-muted)}.expense-items th:nth-child(6){width:80px}.expense-items th:last-child{width:36px}.expense-inflation-toggle{font:500 10px var(--mono);padding:3px 7px;border-radius:9px;color:var(--text-muted);background:var(--surface-muted);border:1px solid var(--border-field);cursor:pointer}.expense-inflation-toggle[aria-pressed=true]{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent)}.expense-inflation-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.expense-group-body{padding-bottom:10px}.expense-step-row td,.expense-step-add-row td{padding-top:0;padding-bottom:4px}.expense-items .expense-step-add-row td{overflow:visible}.expense-items .expense-step-add-row .field-hint{white-space:normal}.expense-step{display:flex;align-items:center;gap:8px;padding-left:26px;font-size:11.5px;color:var(--text-muted)}.expense-step-arrow{color:var(--text-disabled)}.expense-step-input{width:78px}.expense-step-from{width:92px;font-family:var(--mono)}.expense-step-add{margin-left:26px;padding:2px 0;font:600 11px inherit;color:var(--accent-strong);background:none;border:0;cursor:pointer}.expense-step-add:hover{text-decoration:underline}.expense-step-save,.expense-step-cancel{font:600 11px inherit;padding:3px 9px;border-radius:8px;cursor:pointer}.expense-step-save{color:var(--surface);background:var(--accent-strong);border:1px solid var(--accent-strong)}.expense-step-cancel{color:var(--text-muted);background:var(--surface);border:1px solid var(--border-field)}.expense-items .expense-paid-row td{padding-top:0;padding-bottom:4px;overflow:visible;white-space:normal}.expense-paid{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-left:26px;font-size:11.5px;color:var(--text-muted)}.expense-monthly-equivalent{font:500 11.5px var(--mono);white-space:nowrap}.expense-needs-month{font:500 11.5px var(--sans);color:var(--text-muted)}.expense-group-note{margin:0;padding:0 12px 8px;font-size:12px;color:var(--text-muted);text-align:right;background:var(--surface-muted)}.expense-bulk{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:2px;padding:0 0 6px;font-size:11.5px;color:var(--text-muted)}.expense-hint{margin:0 auto 0 0;padding:6px 0}.expense-bulk-toggle{padding:6px;font:inherit;font-weight:600;color:var(--accent);background:none;border:0;border-radius:6px;cursor:pointer}.expense-bulk-toggle:hover{text-decoration:underline}.expense-total{display:flex;align-items:center;gap:10px;padding:0 12px;font-size:12.5px}.expense-total-label{font-weight:600;color:var(--text)}.expense-total-figure{margin-left:auto;font:600 13px var(--mono);color:var(--alert);white-space:nowrap}.expense-footer{display:flex;flex-direction:column;gap:8px;margin-top:14px}.expense-legend{margin:0;font-size:12px;color:var(--text-muted)}.expense-add-item{margin:6px 0 0 12px;padding:2px 0;font:600 12px inherit;color:var(--accent-strong);background:none;border:0;cursor:pointer}.expense-add-item:hover{text-decoration:underline}.expense-empty-group{color:var(--text-muted);font-style:italic}@media(max-width:767px){.profile-grid,.market-presets,.assumption-sliders,.assumption-tiles,.tax-profile-fields,.contribution-shares,.tax-allowance{grid-template-columns:1fr}.profile-card-body{padding-left:0}.tax-toggle-option,.tax-select,.profile-input,.profile .inline-field{min-height:44px}.assumption-input .inline-field,.tax-select{width:100%}.contributions{table-layout:auto;width:auto}.contributions th:nth-child(1),.contributions td:nth-child(1),.contributions th:nth-child(2),.contributions td:nth-child(2),.contributions th:nth-child(3),.contributions td:nth-child(3){width:auto}.profile-readonly-value{overflow:visible;white-space:normal;overflow-wrap:anywhere}}.tax-summary-card{background:var(--surface);border:1px solid #d6cff0;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.tax-summary-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.tax-summary-mark{width:38px;height:38px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font:600 12px var(--mono)}.tax-summary-titles{flex:1 1 260px}.tax-summary-titles h2{margin:0;font-size:13.5px}.tax-summary-subtitle{margin:0;font-size:12px;color:var(--text-muted)}.tax-summary-year{font:500 11px var(--mono);color:var(--text-muted);background:var(--surface-muted);border:1px solid var(--border);border-radius:9px;padding:4px 9px;white-space:nowrap}.tax-summary-toggle{display:flex;align-items:center;gap:6px;padding:0;border:0;background:none;cursor:pointer;font:600 12.5px var(--sans);color:var(--accent-strong);white-space:nowrap}.tax-summary-chevron{font-size:11px}.tax-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.tax-strip-box{position:relative;background:var(--surface-muted);border-radius:12px;padding:11px 13px;display:flex;flex-direction:column;gap:3px}.tax-strip-box+.tax-strip-box:before{content:"→";position:absolute;left:-9px;top:50%;transform:translateY(-50%);color:var(--text-disabled);font-size:13px}.tax-strip-label{font-size:11px;color:var(--text-muted)}.tax-strip-value{font:600 16px var(--mono);color:var(--text)}.tax-strip-box-cost .tax-strip-value{color:var(--alert)}.tax-strip-box-net{background:var(--accent-soft)}.tax-strip-box-net .tax-strip-value{color:var(--accent-strong)}@media(max-width:860px){.tax-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tax-strip-box+.tax-strip-box:before{content:none}}.tax-summary-detail{display:flex;flex-direction:column;gap:14px;padding-top:12px;border-top:1px solid var(--border)}.tax-summary-lede{margin:0;font-size:12px;line-height:1.55;color:var(--text-muted)}.tax-summary-lede strong{color:var(--text)}.tax-chain{display:flex;flex-direction:column;gap:8px}.tax-chain-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:12.5px}.tax-chain-label{display:flex;flex-direction:column;gap:2px;color:var(--text)}.tax-chain-note{font:500 11px var(--sans);color:var(--text-muted)}.tax-chain-value{font:500 12.5px var(--mono);color:var(--text);white-space:nowrap}.tax-chain-row-total{padding-top:8px;border-top:1px solid var(--border);font-weight:600}.tax-chain-row-total .tax-chain-value{font-weight:600}.tax-chain-row-omitted .tax-chain-value{color:var(--text-disabled)}.tax-sources-scroll{overflow-x:auto}.tax-sources{width:100%;min-width:460px;border-collapse:collapse;font-size:12px}.tax-sources th,.tax-sources td{padding:7px 8px;text-align:left;border-bottom:1px solid var(--border)}.tax-sources thead th{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.tax-sources tbody th{font-weight:500;color:var(--text)}.tax-sources-numeric{text-align:right;font:500 12px var(--mono);white-space:nowrap}.tax-sources-note{display:block;font:500 11px var(--sans);color:var(--text-muted)}.tax-sources-mark{margin-left:2px;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.tax-sources-cost{color:var(--alert)}.tax-sources-quiet th,.tax-sources-quiet td{color:var(--text-muted)}.tax-sources tfoot th,.tax-sources tfoot td{border-bottom:0;border-top:1px solid var(--border);font-weight:600}.tax-sources tfoot th{text-align:left}.tax-summary-honesty{padding-top:12px;border-top:1px solid var(--border);font-size:11.5px;line-height:1.55;color:var(--text-muted)}.tax-summary-honesty p{margin:0 0 8px}.tax-summary-honesty ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}@media(max-width:767px){.income-card,.expense-card{overflow-x:visible;padding:14px}.income,.income tbody,.income tr,.income td,.expense-items,.expense-items tbody,.expense-items tr,.expense-items td{display:block;width:auto}.income thead,.expense-items thead{display:none}.income{margin-top:12px}.expense-items{padding:0}.income-record,.expense-record{margin-bottom:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}.expense-record{margin-right:10px;margin-left:10px}.income .income-row,.expense-items .expense-item-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.income td,.expense-items td{padding:0;border:none}.expense-items td.cell-numeric[data-field=from] .field-hint,.expense-items td.cell-numeric[data-field=to] .field-hint{width:auto;max-width:none}.expense-items td.cell-numeric[data-field=from] .field-hint{right:calc(-100% - 8px);left:0}.expense-items td.cell-numeric[data-field=to] .field-hint{right:0;left:calc(-100% - 8px)}.expense-items td.cell-numeric[data-field=amount] .field-hint,.expense-items .expense-step-add-row .field-hint{right:0;left:0;width:auto;max-width:none}.income td.cell-numeric,.income td.cell-type,.income td.income-title,.expense-items td.cell-numeric,.expense-items td.expense-item-name,.expense-items td.cell-inflation{display:flex;flex-direction:column;gap:4px}.income td.cell-type{grid-row:1;grid-column:1}.income .income-row:has(.reorder-handle){position:relative;padding-top:44px}.income-record[data-drop=before]>tr:first-child>td{box-shadow:none}.income-record[data-drop=after]>tr:nth-last-child(1 of:not(.income-explain-row))>td{box-shadow:none}.income-record[data-drop=before]{box-shadow:inset 0 2px 0 var(--accent)}.income-record[data-drop=after]{box-shadow:inset 0 -2px 0 var(--accent)}.expense-items .expense-item-row{position:relative;padding-top:44px}.expense-record[data-drop=before]>tr:first-child>td,.expense-record[data-drop=after]>tr:last-child>td{box-shadow:none}.expense-record[data-drop=before]{box-shadow:inset 0 2px 0 var(--accent)}.expense-record[data-drop=after]{box-shadow:inset 0 -2px 0 var(--accent)}.expense-items td.cell-handle,.income td.cell-handle{position:absolute;top:0;left:0;display:flex;width:44px;min-height:44px}.income td.cell-handle:empty{display:none}.income td.income-title{grid-row:1;grid-column:2;padding-right:34px;overflow:visible;white-space:normal}.expense-items td.expense-item-name{grid-row:1;grid-column:1 / -1;padding-right:34px}.expense-items td.expense-item-name,.expense-items .expense-step-row td,.expense-items .expense-step-add-row td,.expense-items .expense-paid-row td,.expense-items td.expense-empty-group{overflow:visible;text-overflow:clip;white-space:normal}.income td.cell-delete,.expense-items td.cell-delete{grid-row:1;grid-column:1 / -1;justify-self:end;align-self:center;width:auto;z-index:1}.income td.cell-numeric[data-field=amount],.expense-items td.cell-numeric[data-field=amount],.expense-items td.cell-inflation{grid-column:1 / -1}.expense-items .expense-age-hint,.expense-items .expense-step-hint{font-size:12px}.income .inline-field,.expense-items .inline-field{--card-field-pad-x: 12px;width:100%;min-height:44px;padding:10px var(--card-field-pad-x);font-size:13.5px;text-align:right}.income .income-title .inline-field,.expense-items .expense-item-name .inline-field{text-align:left;font-weight:600}.income .income-type{min-height:44px;padding:10px 6px;font-size:13.5px}.income-card .delete-row,.expense-card .delete-row{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.income-card .delete-confirm button,.expense-card .delete-confirm button{min-height:44px}.income .reorder-handle,.expense-items .reorder-handle,.expense-group-header .reorder-handle,.grants .reorder-handle{min-width:44px;min-height:44px}.income .income-chip,.expense-items .expense-inflation-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px}.expense-items .expense-inflation-toggle{width:100%}.income .income-toggles{gap:8px}.income .income-dates{flex-wrap:wrap;gap:8px}.income .income-date{flex:1 1 calc(50% - 4px);min-width:min-content}.income .income-date-word{white-space:nowrap}.income .income-date[data-field=frequency]{flex-basis:100%}.income .income-date .inline-field{width:100%;padding-left:6px;min-width:calc(7ch + var(--card-field-pad-x) + 6px + 2px)}.income .income-date{position:static}.income .income-date .field-hint{top:auto;right:0;left:0;align-self:flex-end;width:auto;max-width:none;transform:translateY(calc(100% - 2px))}.income .row-frequency{width:100%;min-width:0;min-height:44px;padding:10px 6px;font-size:13.5px}.income .income-link{flex:1 1 100%;flex-wrap:wrap}.income .income-link .row-frequency{flex:1 1 160px}.income .income-dates .income-toggles{margin-left:0}.income .income-dates-row td,.income .income-strip-row td,.income .income-silence-row td,.income .income-explain-row td,.income .income-saving-row td,.expense-items .expense-step-row td,.expense-items .expense-step-add-row td,.expense-items .expense-paid-row td{padding:8px 0 0}.income .income-silence-row td{border-bottom:none}.income .income-saving{margin-left:0;gap:8px}.income .income-saving-add,.income .income-saving-remove{min-height:44px}.income .income-saving-add{margin-left:0}.income .income-saving-amount{display:contents}.income .income-saving .field-hint:not(:empty){position:static;order:1;flex-basis:100%;width:auto;max-width:none;min-width:0;overflow-wrap:anywhere}.income-card .income-saved-link{min-height:44px;display:inline-flex;align-items:center}.income .income-strip-term{display:block}.income .income-strip:before{display:none}.income .income-strip-row .income-strip{padding-left:10px;border-left:2px solid var(--border-field);line-height:1.7}.income .income-strip-jump{display:inline-flex;align-items:center;min-height:44px;font:600 12.5px var(--sans);color:var(--accent-strong)}.expense-items .expense-step{flex-wrap:wrap;gap:6px;padding-left:10px;border-left:2px solid var(--border-field);font-size:12px}.expense-items .expense-step:not(.expense-step-draft){flex-wrap:nowrap}.expense-items .expense-step-text{flex:1 1 auto;min-width:0}.expense-items .expense-paid{gap:6px;padding-left:10px;border-left:2px solid var(--border-field);font-size:12px}.expense-items .row-frequency{flex:1 1 140px;min-width:0;min-height:44px;padding:10px 6px;font-size:13.5px}.expense-group-note{text-align:left}.expense-group-header .expense-group-toggle{flex:1 1 auto;gap:6px}.expense-group-total{margin-left:auto}.expense-items .expense-step-add{display:inline-flex;align-items:center;min-height:44px;margin-left:10px}.expense-items .expense-step-input{width:96px;min-height:44px;padding:8px 10px;font-size:13.5px}.expense-items .expense-step-from{width:108px}.expense-items .expense-step-save,.expense-items .expense-step-cancel{display:inline-flex;align-items:center;min-height:44px;padding:0 14px}.expense-group-header{flex-wrap:wrap;row-gap:6px}.expense-group-name{flex:1 1 120px}.expense-group-toggle{min-width:44px;min-height:44px}.expense-bulk-toggle,.expense-group-header .inline-field{min-height:44px}.expense-add-item,.yearbyyear-toggle,.yearbyyear-density{display:inline-flex;align-items:center;min-height:44px}.tax-chain-row{flex-wrap:wrap;gap:2px 12px}.tax-chain-value{margin-left:auto}}@media(min-width:768px){.income-explain-row{display:none}.income-strip-term{display:contents}.expense-items th:nth-child(n+3),.expense-items td.cell-numeric,.expense-items td.cell-inflation,.expense-items td.cell-delete{padding-right:6px;padding-left:6px}}.grants-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.grants-header h2{margin:0 0 2px;font-size:14px}.grants-note,.grants-legend{margin:0;font-size:12px;color:var(--text-muted)}.grants{width:100%;margin-top:16px;border-collapse:collapse;table-layout:fixed}.grants>thead th{padding:0 8px 6px;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);text-align:left}.grants>thead th.cell-numeric{text-align:right}.grants>thead th:nth-child(1){width:32px}.grants>thead th:nth-child(2){width:136px}.grants>thead th:nth-child(4){width:140px}.grants>thead th:nth-child(5){width:112px}.grants>thead th:nth-child(6){width:96px}.grants>thead th:nth-child(7){width:40px}.grants td.cell-handle{padding-right:0}.grant-record[data-dragging=true]{opacity:.4}.grant-record[data-drop=before]>tr:first-child>td{box-shadow:inset 0 2px 0 var(--accent)}.grant-record[data-drop=after]>tr:last-child>td{box-shadow:inset 0 -2px 0 var(--accent)}.grants>tbody>tr>td{position:relative;padding:5px 8px;vertical-align:middle;font-size:12px}.grant-record+.grant-record>tr:first-child>td{border-top:1px solid var(--border)}.grants .inline-field{font-size:12px}.grant-kind{max-width:100%;padding:5px 20px 5px 6px;font-family:inherit;font-size:12px;font-weight:500;color:var(--text);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--surface);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 8px) 55%;background-size:4px 4px;background-repeat:no-repeat;border:1px solid var(--border-field);border-radius:8px;cursor:pointer}.grant-kind:hover{border-color:var(--accent)}.grant-kind:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grant-amount{display:flex;align-items:center;gap:6px}.grant-amount .inline-field{flex:1 1 auto;min-width:0}.grant-unit{flex:none;font:500 10.5px var(--mono);color:var(--text-muted)}.grants td.grant-value .field-hint,.grants td.grant-net .field-hint{left:auto;right:8px}.grant-net{text-align:right}.grant-net-figure{font:600 12px var(--mono);color:var(--text);white-space:nowrap}.grant-toggle{padding:4px 8px;border:1px solid transparent;border-radius:8px;background:none;color:var(--accent);font:500 11.5px var(--mono);white-space:nowrap;cursor:pointer}.grant-toggle:hover{background:var(--accent-soft)}.grant-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grant-summary-row>td{padding-top:0;padding-bottom:8px}.grant-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.grant-summary-text,.grant-end-note{font:500 11.5px var(--sans);color:var(--text-muted)}.grant-end-note{font-family:var(--mono);white-space:nowrap}.grant-timeline{position:relative;flex:1 1 120px;min-width:80px;height:14px;margin:0 7px}.grant-timeline-line{position:absolute;top:50%;right:0;left:0;height:1px;background:var(--border-field)}.grant-dot{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%)}.grant-dot-large{width:12px;height:12px}.grant-dot-lapsed{border:2px solid var(--alert);background:var(--surface)}.grant-lost-row>td{padding-top:0;padding-bottom:8px}.grant-lapse{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding-top:12px;border-top:1px solid var(--border)}.grant-lapse .row-frequency{max-width:100%}.grant-lapse-word{font:500 12px var(--sans);color:var(--text)}.grant-lapse-note{font:500 11.5px var(--mono);color:var(--text-muted)}.grant-schedule .grant-saving{align-self:flex-start;max-width:100%;margin-left:0;font-size:12px}.grant-saving-share .inline-field{width:56px}.grant-schedule .grant-saving-add{align-self:flex-start;margin-left:0;font-size:11.5px}.grant-saving-note{margin:4px 0 0;font:500 11px var(--sans);color:var(--accent-strong)}.grant-parts td.grant-parts-saved{color:var(--accent-strong)}.grant-schedule-row>td{padding-top:4px;padding-bottom:14px}.grant-schedule{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.grant-schedule-fields{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.grant-field{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.grant-field-word{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.grant-field-tail{font:500 11.5px var(--sans);color:var(--text-muted)}.grant-field[data-field=date] .inline-field{width:92px;font-family:var(--mono)}.grant-change .inline-field{width:64px}.grant-picker{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.grant-chips{display:flex;flex-wrap:wrap;gap:6px}.grant-parts{width:100%;border-collapse:collapse}.grant-parts th,.grant-parts td{padding:4px 8px;border-bottom:1px solid var(--border);font:500 11.5px var(--mono);text-align:left}.grant-parts thead th{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.grant-parts .grant-parts-figure{text-align:right;white-space:nowrap}.grant-parts tbody tr[data-projected=false] td{color:var(--text-muted)}.grant-part-mark{font:500 11.5px var(--sans);color:var(--text-muted)}.grant-part-lapses{font:600 9.5px var(--mono);text-transform:uppercase;color:var(--alert)}.grant-parts tfoot th,.grant-parts tfoot td{border-bottom:none;font-weight:600}.grant-note{margin:0;font-size:12px;color:var(--text-muted)}.grant-custom .grant-custom-date .inline-field{width:92px}.grant-custom-pct{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;gap:3px}.grant-custom-pct .inline-field{width:64px}.grant-custom .grant-custom-date{position:relative}.grant-custom-pct .field-hint{left:auto;right:0;white-space:normal}.grant-custom-remove-cell{width:32px;text-align:right}.grant-custom-remove{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer}.grant-custom-remove:hover{background:var(--alert-soft);color:var(--alert)}.grant-custom-remove:focus-visible,.grant-custom-add:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grant-custom .grant-custom-total-whole{color:var(--positive)}.grant-custom .grant-custom-total-off{color:var(--alert)}.grant-custom-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.grant-custom-add{padding:4px 0;border:0;background:transparent;color:var(--accent-strong);font-size:12px;font-weight:600;cursor:pointer}.grant-custom-add:disabled{color:var(--text-disabled);cursor:default}.grant-chips .income-chip:disabled{border-style:dashed;color:var(--text-disabled);cursor:not-allowed}.grants-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.grants-footer .primary-action{margin-top:0}@media(max-width:767px){.grants-card{padding:14px}.grants,.grants>tbody,.grants>tbody>tr,.grants>tbody>tr>td{display:block;width:auto}.grants>thead{display:none}.grants{margin-top:12px}.grant-record{margin-bottom:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}.grant-record+.grant-record>tr:first-child>td{border-top:none}.grants>tbody>tr>td{padding:0}.grants>tbody>tr.grant-row{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grants>tbody>tr.grant-row{padding-top:44px}.grants td.cell-handle{position:absolute;top:0;left:0;display:flex;width:44px;min-height:44px}.grant-record[data-drop=before]>tr:first-child>td,.grant-record[data-drop=after]>tr:last-child>td{box-shadow:none}.grant-record[data-drop=before]{box-shadow:inset 0 2px 0 var(--accent)}.grant-record[data-drop=after]{box-shadow:inset 0 -2px 0 var(--accent)}.grants td.grant-type,.grants td.grant-title,.grants td.grant-value,.grants td.grant-net{display:flex;flex-direction:column;gap:4px}.grants td.grant-type{grid-row:1;grid-column:1;justify-content:center}.grants td.grant-toggle-cell{grid-row:1;grid-column:2;justify-self:end;padding-right:48px}.grants td.cell-delete{position:absolute;top:0;right:0}.grants td.grant-title{grid-column:1 / -1}.grants td.grant-net{text-align:left;justify-content:flex-start}.grants .grant-amount{flex-wrap:wrap}.grants td.grant-title .field-hint:not(:empty),.grants td.grant-value .field-hint:not(:empty),.grants .grant-saving .field-hint:not(:empty),.grant-custom .grant-custom-date .field-hint:not(:empty),.grant-custom-pct .field-hint:not(:empty),.grant-field .field-hint:not(:empty){position:static;order:1;flex-basis:100%;width:auto;max-width:none;min-width:0;overflow-wrap:anywhere}.grants td.grant-title .field-hint:not(:empty){flex-basis:auto}.grants>tbody>tr.grant-summary-row>td{padding-top:10px}.grants>tbody>tr.grant-schedule-row>td{padding-top:10px}.grants .grant-lapse .row-frequency{min-height:44px}.grants .grant-saving{gap:8px}.grants .grant-saving .row-frequency,.grants .grant-saving-add,.grants .grant-saving .income-saving-remove{min-height:44px}.grants .grant-saving-share{display:contents}.grant-schedule{padding:8px}.grants .inline-field{min-height:44px;font-size:13.5px}.grants-card .delete-row{min-width:44px;min-height:44px}.grants-card .delete-confirm button,.grants .grant-toggle{min-height:44px}.grants .grant-kind{align-self:flex-start;min-width:136px;min-height:44px}.grants .income-chip{min-height:44px;padding:6px 10px}.grants-card .primary-action{min-height:44px}.grants .grant-change .inline-field{width:80px}.grant-net-figure{font-size:13.5px}.grant-parts th,.grant-parts td{padding:4px 3px}.grant-part-mark{display:block}.grant-parts:not(.grant-custom),.grant-parts:not(.grant-custom) thead,.grant-parts:not(.grant-custom) tbody,.grant-parts:not(.grant-custom) tfoot{display:block}.grant-parts:not(.grant-custom) tr{display:grid;grid-template-columns:58px 46px minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--border)}.grant-parts:not(.grant-custom) tfoot tr{border-bottom:none}.grant-parts:not(.grant-custom) th,.grant-parts:not(.grant-custom) td{border-bottom:none}.grant-parts:not(.grant-custom) thead th.grant-parts-saved{display:none}.grant-parts:not(.grant-custom) td.grant-parts-saved{grid-column:1 / -1;display:flex;justify-content:flex-end;align-items:baseline;gap:8px}.grant-parts .grant-parts-figure:last-child,.grant-parts thead th{white-space:normal}.grant-custom thead{display:none}.grant-custom,.grant-custom tbody,.grant-custom tfoot{display:block}.grant-custom tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:4px 8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.grant-custom tfoot tr{border-bottom:none}.grant-custom th,.grant-custom td{padding:0;border-bottom:none}.grant-custom td.grant-custom-gross{grid-column:1}.grant-custom td.grant-custom-net{grid-column:2}.grant-custom td.grant-custom-saved{grid-column:1}.grant-custom td.grant-custom-gross,.grant-custom td.grant-custom-net,.grant-custom td.grant-custom-saved{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.grant-custom td.grant-custom-remove-cell{grid-row:1;grid-column:3;width:auto}.grant-custom .grant-custom-date .inline-field,.grant-custom-pct .inline-field{width:100%}.grant-custom-pct{flex-wrap:wrap;width:100%}.grant-custom-pct .inline-field{flex:1 1 0}.grant-custom td.grant-custom-date{display:flex;flex-wrap:wrap}.grants-card .grant-custom-remove{width:44px;min-height:44px}.grants-card .grant-custom-add{min-height:44px}}@media(max-width:359px){.grants td.grant-toggle-cell{grid-row:4;grid-column:1 / -1;justify-self:start;padding-right:0}.grants td.grant-type{grid-column:1 / -1;padding-right:48px}}.import-done{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px;border:1px solid var(--positive);border-radius:12px;background:var(--positive-soft);font-size:12px;color:var(--text)}.import-done-icon{flex:none;color:var(--positive)}.import-done-text{flex:1 1 200px;min-width:0}.import-undo{padding:6px 4px;border:0;background:transparent;font:600 12px var(--sans);color:var(--accent-strong);cursor:pointer}.import-undo:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.import-mark{display:inline-block;margin-left:6px;padding:3px 6px;border-radius:6px;background:var(--accent-soft);font:600 9.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-strong);white-space:nowrap;vertical-align:middle}.import-left-out-convert{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;flex-basis:100%;min-width:0}.import-left-out-convert select{width:auto;flex:0 1 auto;max-width:100%}.expense-items .expense-item-name-marked{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0}.expense-items .expense-item-name-marked .inline-field{flex:1 1 120px}.expense-items .expense-item-name-marked .import-mark{flex:none;margin-left:0}
