@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-panel-line: #e6e1f7;--accent-label: #6a5bd6;--accent-dash: #cfc8ec;--accent-tint: #f4f2fc;--group-open: #f7f5ef;--group-hover: #f5f3ec;--positive-soft: #e8f5ef;--alert-soft: #fceee7;--alert-border: #f3d9c8;--alert-strong: #7c2d12;--amber: #8a520a;--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)}@property --app-header-fold{syntax: "<length>"; inherits: false; initial-value: 0px;}@media(min-width:768px){html{scroll-padding-top:var(--app-header-height, 60px)}.app-header-sticky{position:sticky;top:0;z-index:30;--app-header-fold-rounded: round(var(--app-header-fold), .015625px);margin-top:-11px;margin-bottom:calc(5px + 2 * var(--app-header-fold-rounded));padding:calc(12px - var(--app-header-fold-rounded)) 0;background:var(--page);box-shadow:0 0 0 100vmax var(--page);clip-path:inset(0 -100vmax 0 -100vmax);transition:--app-header-fold .2s ease}.app-header-sticky .app-identity{min-height:36px}.app-header-sticky .app-identity-text:has(.app-subtitle){align-self:stretch}.app-header-sticky .app-subtitle{max-height:16px;margin:0;overflow:hidden;line-height:16px;transition:max-height .2s ease}.app-header-slim{--app-header-fold: 6px}@media(min-width:1280px){.app-header-sticky{flex-wrap:nowrap}.app-header-sticky .app-identity{flex:1 1 auto}.app-header-sticky .app-header-status{flex:none}.app-header-sticky .app-subtitle{white-space:nowrap;text-overflow:ellipsis}}@media(max-width:1279px){.app-header-sticky .app-header-status{flex-basis:100%}}.app-header-slim .app-subtitle{max-height:0}}@media(prefers-reduced-motion:reduce){.app-header-sticky,.app-header-sticky .app-subtitle{transition:none}}.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-body-single{grid-template-columns:minmax(0,1fr)}.income-page,.expenses-page,.accounts-data-page{display:flex;flex-direction:column;gap:20px;min-width:0}.app-main,.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;gap:6px}.nav-pill-with-icon{padding-left:14px;padding-right:14px}.nav-pill-icon{flex:none;width:14px;height:14px}.nav-divider{flex:none;width:1px;height:20px;margin:0 4px;background:var(--border-field)}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] .growth-verdict,[data-freshness=outdated] .surplus-amount,[data-freshness=outdated] .surplus-none,[data-freshness=outdated] .money-moves-surplus,[data-freshness=outdated] .growth-header .chart-legend,[data-freshness=outdated] .growth-chart,[data-freshness=outdated] .income-net,[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-phone-strip,[data-freshness=outdated] .tax-chain,[data-freshness=outdated] .tax-sources,[data-freshness=outdated] .over-time-summary,[data-freshness=outdated] .over-time-chart,[data-freshness=outdated] .over-time-strip-plot,[data-freshness=outdated] .where-period,[data-freshness=outdated] .where-ring,[data-freshness=outdated] .where-legend{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] .growth-verdict,.overview-stat[data-simulating=true] .overview-stat-value,.this-month-value[data-simulating=true],.overview-chart[data-simulating=true] .overview-chart-end-note{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}.overview-chart[data-simulating=true] .overview-chart-line{stroke-dasharray:6 6}.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}.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:.07em}.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}.app-title-wordmark{font-weight:700;letter-spacing:-.02em}.overview-verdict{padding:26px 30px;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.overview-verdict .verdict-badge{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:0;background:none;font:600 10.5px/1.4 var(--mono);letter-spacing:.09em}.overview-verdict .verdict-badge:before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:currentcolor}.overview-verdict .verdict-headline{margin:0;font-size:24px;font-weight:700;line-height:1.25;letter-spacing:-.01em;text-wrap:pretty}.overview-verdict-row{display:flex;align-items:flex-start;gap:30px}.overview-verdict-text{flex:1;min-width:0}.overview-explanation{margin:8px 0 0;max-width:520px;font-size:13.5px;line-height:1.55;color:var(--text-muted);text-wrap:pretty}.overview-stats{flex:none;min-width:250px;margin:0;display:flex;flex-direction:column;gap:8px}.overview-stat{display:flex;align-items:baseline;justify-content:space-between;gap:20px;font-size:12.5px}.overview-stat dt{min-width:0;white-space:nowrap;color:var(--text-muted)}.overview-stat dd{margin:0;flex:0 0 auto;white-space:nowrap;font:600 12.5px var(--mono);color:var(--text)}.overview-stat-value.tone-alert{color:var(--alert)}.overview-stat-value.tone-positive{color:var(--positive)}.overview-stat-value.tone-accent{color:var(--accent-strong)}@media(max-width:767px){.overview-verdict-row{flex-direction:column;gap:18px}.overview-stats{width:100%;min-width:0}}@media(max-width:599px){.overview-verdict{padding:18px 16px}.overview-verdict .verdict-headline{font-size:20px}}.overview-chart{margin:18px 0 0;display:flex;flex-direction:column;gap:8px}.overview-chart-plot{position:relative;border-radius:6px;outline:none}.overview-chart-plot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.overview-chart svg{display:block;width:100%;height:190px}.overview-chart-baseline{stroke:var(--border);stroke-width:1}.overview-chart-retired{fill:var(--surface-hover);opacity:.5}.overview-chart-fill-top{stop-color:var(--accent);stop-opacity:.3}.overview-chart-fill-bottom{stop-color:var(--accent);stop-opacity:.02}.overview-chart-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.overview-chart-marker{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 4;opacity:.5}.overview-chart-cursor{stroke:var(--text-muted);stroke-width:1;opacity:.5}.overview-chart-ring,.overview-chart-dot{position:absolute;box-sizing:border-box;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.overview-chart-ring{width:14px;height:14px;border:3.5px solid var(--accent);background:var(--surface)}.overview-chart-dot{width:10px;height:10px;border:2px solid var(--surface);background:var(--accent-strong)}.overview-chart-readout{position:absolute;top:0;margin:0;white-space:nowrap;font:500 10px var(--mono);color:var(--text);pointer-events:none}.overview-chart-readout[data-active=true]{padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.overview-chart-readout.anchor-middle{transform:translate(-50%)}.overview-chart-readout.anchor-end{transform:translate(-100%)}.overview-chart-axis{margin:0;display:flex;flex-direction:column;gap:1px;font:500 10px var(--mono);color:var(--text-muted)}.overview-chart-axis-marker-row{position:relative;display:block;height:13px}.overview-chart-axis-retirement{position:absolute;top:0;white-space:nowrap;font-weight:600;color:var(--accent-strong)}.overview-chart-axis-retirement.anchor-middle{transform:translate(-50%)}.overview-chart-axis-retirement.anchor-end{transform:translate(-100%)}.overview-chart-axis-ends{display:flex;justify-content:space-between;gap:12px}.overview-chart-end-note{font-weight:600;white-space:nowrap}.overview-chart-end-note.tone-positive{color:var(--positive)}.overview-chart-end-note.tone-alert{color:var(--alert)}.overview-page{display:flex;flex-direction:column;gap:14px}.overview-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.overview-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.overview-card-title{margin:0;font-size:13px;font-weight:600}.overview-card-waiting{background:var(--surface-muted);border-style:dashed;border-color:var(--border-field)}.overview-card-waiting .overview-card-title,.overview-card-waiting-line{color:var(--text-muted)}.overview-card-waiting-line{margin:0;font-size:12.5px;line-height:1.55}.overview-retry{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:13px;color:var(--text-muted)}.overview-retry button{min-height:32px;padding:4px 14px;border:1px solid var(--border-field);border-radius:999px;background:var(--surface);color:var(--accent-strong);font:inherit;font-weight:600;cursor:pointer}.overview-retry button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.overview-card-link{align-self:flex-start;font-size:12px;font-weight:600;color:var(--accent-strong)}.this-month-rows{display:flex;flex-direction:column;gap:10px;margin:0}.this-month-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:12.5px}.this-month-row dt{color:var(--text-muted)}.this-month-row dd{margin:0}.this-month-value{font:600 12.5px var(--mono);white-space:nowrap}.this-month-value.tone-costs{color:var(--alert)}.this-month-row.this-month-free{padding-top:10px;border-top:1px solid var(--surface-hover)}.this-month-row.this-month-free dt{font-weight:600;color:var(--text)}.this-month-free .this-month-value{font-size:13px}.this-month-value.tone-positive{color:var(--positive)}.this-month-value.tone-alert{color:var(--alert)}.cost-bars{display:grid;grid-template-columns:minmax(0,7em) minmax(32px,1fr) auto;row-gap:8px;column-gap:7px;margin:0;padding:0;list-style:none;font-size:11.5px}.cost-bar{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:center}.cost-bar-name{overflow-wrap:anywhere;color:var(--text-muted)}.cost-bar-track{height:7px;border-radius:4px;overflow:hidden;background:var(--surface-hover)}.cost-bar-fill{display:block;height:100%;border-radius:4px;background:var(--series-color)}.cost-bar-amount{font:500 11px var(--mono);white-space:nowrap;text-align:right}.costs-empty{margin:0;font-size:12.5px;color:var(--text-muted)}@media(max-width:767px){.overview-cards{grid-template-columns:minmax(0,1fr)}}@media(max-width:599px){.overview-card{padding:16px}}.growth-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;margin-top:8px;padding-top:14px;border-top:1px solid var(--border)}@media(max-width:599px){.growth-sliders{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.growth-sliders .slider-input{min-height:44px}}.growth-verdict{grid-column:1 / -1;margin:0;font-size:12px}.growth-verdict.tone-on-track{color:var(--positive)}.growth-verdict.tone-at-risk{color:var(--alert)}.plan-controls-card{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.plan-controls-card .growth-sliders{margin-top:0;padding-top:0;border-top:0}.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}.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;flex-wrap:wrap;align-items:center;gap:8px}.account-to-complete{flex-basis:100%;min-width:0;font-size:11px;line-height:1.35;color:var(--text-muted);overflow-wrap:anywhere}.to-complete-badge{display:inline-block;padding:1px 7px;border:1px solid var(--accent-line);border-radius:999px;background:var(--accent-soft);font:600 10px var(--mono);color:var(--accent-strong)}.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: #b37b14}.palette-3{--series-color: #c2410c}.palette-4{--series-color: #8f7ff0}.palette-5{--series-color: #1f6f8b}.income-type-employment{--series-color: #5b4bc4}.income-type-selfEmployed{--series-color: #0891b2}.income-type-statutoryPension{--series-color: #0e8f62}.income-type-investment{--series-color: #b37b14}.income-type-other{--series-color: #6f6a5e}.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{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px}.growth-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px}.growth-header h2,.allocation-header h3{margin:0;font-size:14px}.growth-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}.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-section{display:flex;flex-direction:column;gap:12px;margin-top:8px;padding-top:14px;border-top:1px solid var(--border)}.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,.expense-tile,.income-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,.expense-tile{background:var(--alert-soft);color:var(--alert)}.profile-card-tile-positive,.income-tile{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}.income-header,.expense-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.income-header{margin-bottom:8px}.expense-header h2{margin:0;font-size:13.5px;font-weight:600}.expense-header-text{flex:1 1 180px;min-width:0}.import-open{display:inline-flex;text-decoration:none;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,.upload-tile-choose:focus-visible,.import-see-expenses: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{display:flex;align-items:center;min-height:44px;color:var(--text);cursor:pointer}.import-consent-agree input{align-self:center}.import-consent .import-primary,.import-consent .import-secondary{min-height:44px}.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-reading-elapsed{margin:0;font:400 11.5px var(--mono);font-variant-numeric:tabular-nums;color:var(--text-muted)}.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-head-line,.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.cell-date,.expense-items th.cell-date{text-align:center}.income th:first-child{width:32px}.income td.cell-handle{padding-right:0}.income th:nth-child(2){width:auto}.income th:nth-child(3){width:124px}.income th:nth-child(4){width:100px}.income th:nth-child(5),.income th:nth-child(6){width:92px}.income th:nth-child(7){width:112px}.income th:nth-child(8){width:104px}.income th:last-child{width:36px}.income th{position:relative}.income-head-word{cursor:help}.income-head-tip{letter-spacing:0;text-transform:none}.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:last-child>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{position:relative}.expense-items td.cell-numeric[data-field=amount] .field-hint{right:auto;left:8px}.income .inline-field{font-size:12px}.income-date{position:relative;display:inline-flex;align-items:center;gap:6px}.income-date-word{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.income-date .inline-field{width:76px;font-family:var(--mono)}.income-on-word{font-size:11.5px;color:var(--text-muted)}.income-age-hint{font:500 11.5px var(--sans);color:var(--text-muted)}.income td.cell-paid .row-frequency{width:100%;min-width:0}.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 td.cell-flags .income-toggles{justify-content:flex-end}.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-silence-row td{padding-top:0;padding-bottom:8px;border-bottom:1px solid var(--border)}.income td.cell-net{text-align:right;font:600 12px var(--mono);line-height:1.5;color:var(--positive)}.income-net[data-state=failed]{opacity:.45;filter:grayscale(100%)}.income-head-tip,.income-net-detail{display:none;position:absolute;top:100%;right:0;z-index:2;width:max-content;max-width:280px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font:500 11.5px var(--sans);color:var(--text);text-align:left}.income-head-tip[data-open=true],.income-net-detail[data-open=true]{display:block}.income-silence{font-size:11.5px;line-height:1.5;color:var(--text-muted)}.income-note-row td{padding-top:0;padding-bottom:4px}.income-note{display:block;margin-left:24px;font-size:11px;color:var(--text-muted)}.income-note-warn{color:var(--amber)}.income-age-hint:empty{display:none}.income-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-left:24px}.income-saving-row td{padding-top:0;padding-bottom:8px}.income-saving-add,.income-step-add{padding:2px 0;border:0;background:transparent;color:var(--accent);font:600 11px var(--sans);cursor:pointer}.income-saving-add:hover,.income-step-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-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-step-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-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}.inline-field::placeholder{color:var(--text-disabled);opacity:1}.expense-groups{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.expense-group{padding:3px 0;border-bottom:1px solid var(--surface-hover)}.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;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:4px;font-size:12.5px;color:var(--text);text-align:left}.expense-group-toggle{display:flex;padding:0;font:inherit;color:inherit;text-align:left;background:none;border:0;border-radius:10px;cursor:pointer}.expense-group-toggle:focus-visible,.expense-bulk-toggle:focus-visible,.expense-edit-toggle:focus-visible,.expense-add-group:focus-visible,.expense-group-delete button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.expense-group-row{display:flex;flex:1 1 0;align-items:center;gap:10px;min-width:0;padding:9px 10px;border-radius:10px}.expense-group[data-open=true] .expense-group-row{background:var(--group-open)}button.expense-group-row:hover{background:var(--group-hover)}.expense-group-label{min-width:66px;font-size:11.5px;font-weight:600;color:var(--accent-strong);text-align:right}.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-strong);background:var(--surface);border:1px solid var(--border-field);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:8px;height:8px;border-radius:50%;flex:none;background:var(--series-color)}.expense-group-name{overflow:hidden;min-width:0;font-size:12.5px;font-weight:600;color:var(--text);text-overflow:ellipsis;white-space:nowrap}div.expense-group-row .expense-group-name{flex:0 1 240px;max-width:40%;overflow:visible}.expense-group-name .inline-field{width:100%;padding:5px 9px;border:1px solid var(--accent-dash);border-radius:8px;background:var(--surface);font-weight:600}.expense-group-count{flex:none;font-size:11px;color:var(--text-muted)}.expense-group-total{flex:none;margin-left:auto;font:500 12px var(--mono);white-space:nowrap}.income-group-gross{flex:none;margin-left:auto;font:500 11px var(--mono);color:var(--text-muted);white-space:nowrap}.income-group-row .income-net{flex:none;min-width:96px;font:600 12px var(--mono);color:var(--positive);text-align:right;white-space:nowrap}.income-head-line .income-net{font:inherit;color:inherit}.expense-group-delete{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 8px 28px;padding:9px 12px;border:1px solid var(--alert-border);border-radius:10px;background:var(--alert-soft);font-size:12px;color:var(--alert-strong)}.expense-group-delete-question{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}.expense-group-delete button{padding:6px 12px;border-radius:8px;font:600 12px var(--sans);cursor:pointer}.expense-group-delete-cancel{border:1px solid var(--border-field);background:var(--surface);color:var(--text-muted)}.expense-group-delete-yes{border:0;background:var(--alert);color:var(--surface)}.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:110px}.expense-items th:nth-child(4){width:84px}.expense-items th:nth-child(5),.expense-items th:nth-child(6){width:80px}.expense-items td.cell-numeric[data-field=from] .inline-field,.expense-items td.cell-numeric[data-field=to] .inline-field{font-family:var(--mono);text-align:center}.expense-items .row-frequency{width:100%;min-width:0;padding:5px 3px}.expense-items .expense-on{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted)}.expense-items .expense-on .inline-field{flex:none;width:84px}.expense-age-hint{font:500 11.5px var(--sans);color:var(--text-muted)}.expense-items th:nth-child(7){width:72px}.expense-items th:last-child{width:32px}.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-add-row td{padding-top:0;padding-bottom:4px}.expense-items .expense-step-add-row td{overflow:visible}.expense-step-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding-left:20px}.expense-age-hint:empty{display:none}.expense-step-add{padding:2px 0;font-family:inherit;font-size:11px;font-weight:600;color:var(--accent-strong);background:none;border:0;cursor:pointer}.expense-step-add:hover{text-decoration:underline}.expense-items .expense-periods-row td,.income .income-periods-row td{padding-top:0;padding-bottom:4px;overflow:visible;white-space:normal}.expense-periods,.income-periods{--period-dates: 190px;display:flex;flex-direction:column;gap:4px;margin:2px 28px 4px 20px;padding:8px 10px 6px;border:1px solid var(--accent-panel-line);border-radius:10px;background:var(--accent-wash)}.income-periods{margin:2px 32px 4px 24px}.income-saving.income-saving-panel{margin:2px 32px 4px 24px;padding:7px 10px;border:1px solid var(--accent-panel-line);border-radius:10px;background:var(--accent-wash)}.expense-periods-head,.income-periods-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.expense-periods-title,.income-periods-title,.income-saving-title{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--accent-label)}.expense-periods-hint,.income-periods-hint{font-size:11px;color:var(--text-muted)}.expense-period-heads,.income-period-heads,.expense-period,.income-period{display:grid;grid-template-columns:var(--period-dates) 92px minmax(0,1fr) 28px;gap:8px}.expense-period-heads,.income-period-heads{padding-top:2px;font:600 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.expense-period-heads-amount,.income-period-heads-amount{text-align:right}.expense-period,.income-period{position:relative;align-items:center;min-height:28px;font-size:11.5px;color:var(--text-muted)}.expense-period-dates,.income-period-dates{display:flex;align-items:center;gap:6px}.expense-period-draft .field-hint,.income-period-draft .field-hint{position:static;margin-top:2px}.expense-period-draft .field-hint[data-for=amount],.income-period-draft .field-hint[data-for=amount]{margin-left:calc(var(--period-dates) + 8px)}.expense-period-draft .field-hint:empty,.income-period-draft .field-hint:empty{margin:0}.expense-period-field,.income-period-field{position:relative;flex:none;width:80px}.expense-period-field.expense-period-amount,.income-period-field.income-period-amount{width:auto;min-width:0}.expense-period-dash,.income-period-dash{color:var(--text-muted)}.expense-period .inline-field,.income-period .inline-field{padding:4px 7px;border-radius:7px;background:var(--surface);font-size:12px}.expense-period-dates .inline-field,.income-period-dates .inline-field{font-family:var(--mono);font-size:11.5px;text-align:center}.expense-period-dates .inline-field:disabled,.income-period-dates .inline-field:disabled{background:transparent}.expense-period-field[data-open-stop=true] .inline-field,.income-period-field[data-open-stop=true] .inline-field{border-style:dashed}.expense-period-no-month,.income-period-no-month{display:block;text-align:center}.expense-period-note,.income-period-note{min-width:0;font-size:11px;color:var(--text-muted)}.expense-period-note[data-stops=true],.income-period-note[data-stops=true]{font-weight:600;color:var(--positive)}.expense-period-note[data-pending=true],.income-period-note[data-pending=true]{color:var(--alert)}.expense-periods-add,.income-periods-add{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}.expense-periods-add button,.income-periods-add button{padding:3px 2px;font-family:inherit;font-size:11px;font-weight:600;color:var(--accent-strong);background:transparent;border:0;cursor:pointer}.expense-periods-add button:hover,.income-periods-add button:hover{text-decoration:underline}.expense-items .expense-note-row td{padding-top:0;padding-bottom:4px;overflow:visible;white-space:normal}.expense-item-note{display:block;padding-left:20px;font-size:11px;color:var(--text-muted)}.expense-item-note-warn{color:var(--amber)}.expense-bulk{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;margin-top:12px;padding:0 0 6px;border-radius:10px;font-size:11.5px;color:var(--text-muted)}.expense-bulk[data-editing=true]{margin-bottom:6px;padding:6px 8px;background:var(--accent-tint)}.expense-hint{flex:1 1 260px;margin:0;color:var(--accent-strong);line-height:1.45}.expense-hint svg{vertical-align:-1px}.expense-bulk-toggle{padding:6px;font:inherit;font-weight:600;color:var(--accent-strong);background:none;border:0;border-radius:6px;cursor:pointer}.expense-bulk-toggle:hover{text-decoration:underline}.expense-edit-toggle{margin-left:6px;padding:5px 14px;border:1px solid var(--accent-line);border-radius:16px;background:var(--surface);font:600 11.5px var(--sans);color:var(--accent-strong);cursor:pointer}.expense-edit-toggle[data-editing=true]{border-color:var(--accent);background:var(--accent);color:var(--surface)}.expense-add-group,.income-add-type{display:block;margin:8px 0 0 28px;padding:7px 14px;border:1.5px dashed var(--accent-dash);border-radius:10px;background:transparent;font:600 12px var(--sans);color:var(--accent-strong);cursor:pointer}.expense-add-group:hover,.income-add-type:hover{border-color:var(--accent);background:var(--accent-soft)}.expense-footer{padding:10px 0 2px 28px}.expense-total{display:flex;align-items:center;gap:10px;font-size:12.5px}.expense-total-label{font-weight:600;color:var(--text)}.income-total-gross{margin-left:auto;font:500 12px var(--mono);color:var(--text-muted);white-space:nowrap}.expense-total .income-net{font:600 13px var(--mono);color:var(--positive);white-space:nowrap}.expense-total-figure{margin-left:auto;font:600 13px var(--mono);color:var(--alert);white-space:nowrap}.expense-total-note{margin:0;font-size:11px;color:var(--text-muted);text-align:right}.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}.income-card .expense-add-item{margin-left:32px;font:600 12px var(--sans)}.income-add-type{padding:7px 10px}.empty-state .income-add-type{margin-left:0}.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(min-width:768px){.tax-phone-only{display:none}}@media(max-width:767px){.tax-wide-only{display:none}.tax-summary-card{padding:16px;gap:8px}.tax-summary-header{display:contents}.tax-summary-mark{display:none}.tax-summary-titles{flex:none}.tax-summary-year{align-self:flex-start}.tax-summary-toggle{order:1;align-self:flex-start;min-height:44px;font-size:13px}.tax-summary-detail{order:2}.tax-phone-strip{display:flex;flex-direction:column;gap:8px}.tax-phone-net{margin:0;display:flex;align-items:baseline;gap:6px}.tax-phone-net-value{font:600 26px var(--mono);letter-spacing:-.02em;color:var(--accent-strong)}.tax-phone-net-word{font-size:12.5px;color:var(--text-muted)}.tax-phone-rows{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--border)}.tax-phone-row{display:flex;justify-content:space-between;gap:12px;font-size:13px}.tax-phone-label{color:var(--text-muted)}.tax-phone-value{font:600 13px var(--mono);color:var(--text);white-space:nowrap}.tax-phone-cost{color:var(--alert)}}@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}.expense-items,.expense-items tbody,.expense-items tr,.expense-items td{display:block;width:auto}.expense-items thead{display:none}.expense-items{padding:0}.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}.expense-items .expense-item-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.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{right:0;left:0;width:auto;max-width:none}.expense-items .expense-period-draft .field-hint{width:auto;max-width:none;margin-left:0}.expense-items td.cell-numeric,.expense-items td.expense-item-name,.expense-items td.cell-paid,.expense-items td.cell-inflation{display:flex;flex-direction:column;gap:4px}.expense-items .expense-item-row{position:relative}.expense-items .expense-item-row:has(.reorder-handle){padding-top:44px}.expense-items td.cell-handle:empty{display:none}.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{position:absolute;top:0;left:0;display:flex;width:44px;min-height:44px}.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-periods-row td,.expense-items .expense-step-add-row td,.expense-items .expense-note-row td,.expense-items td.expense-empty-group{overflow:visible;text-overflow:clip;white-space:normal}.expense-items td.cell-delete{grid-row:1;grid-column:1 / -1;justify-self:end;align-self:center;width:auto;z-index:1}.expense-items td.cell-paid,.expense-items td.cell-numeric[data-field=amount],.expense-items td.expense-on-cell,.expense-items td.cell-inflation{grid-column:1 / -1}.expense-items td.cell-numeric.expense-on-cell[data-field=from] .field-hint{right:0;left:0}.expense-items .expense-on{flex-direction:column;align-items:stretch;gap:4px}.expense-items .expense-on .inline-field{width:100%}.expense-items .expense-on-word{display:none}.expense-items .expense-age-hint{font-size:12px}.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}.expense-items .expense-item-name .inline-field{text-align:left;font-weight:600}.expense-card .delete-row{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.expense-items .reorder-handle,.expense-group-header .reorder-handle,.grants .reorder-handle{min-width:44px;min-height:44px}.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%}.expense-items .expense-periods-row td,.expense-items .expense-step-add-row td,.expense-items .expense-note-row td{padding:8px 0 0}.income-card .income-saved-link{min-height:44px;display:inline-flex;align-items:center}.expense-items .expense-item-note,.expense-items .expense-step-line{padding-left:10px;border-left:2px solid var(--border-field);font-size:12px}.expense-items .row-frequency{min-height:44px;padding:10px 6px;font-size:13.5px}.expense-items .expense-step-add{display:inline-flex;align-items:center;min-height:44px}.expense-periods,.income-periods{--period-remove: 44px;--period-gap: 6px;margin:0;padding:10px;gap:8px}.expense-period-heads,.income-period-heads{display:flex;justify-content:space-between;gap:4px;padding-right:calc(var(--period-remove) + var(--period-gap));white-space:nowrap}.expense-period,.income-period{grid-template-columns:minmax(0,1fr) var(--period-remove);grid-template-areas:"dates dates" "amount remove" "note note";gap:var(--period-gap);font-size:12px}.expense-period-dates,.income-period-dates{grid-area:dates;min-width:0}.expense-period-dates .expense-period-field,.income-period-dates .income-period-field{flex:1;width:auto;min-width:0}.expense-period-amount,.income-period-amount{grid-area:amount}.expense-period-note,.income-period-note{grid-area:note;font-size:12px}.expense-period-remove,.income-period-remove{grid-area:remove}.expense-items .expense-period .inline-field{min-height:44px;padding:8px 6px;font-size:13.5px}.expense-items .expense-periods-add button{display:inline-flex;align-items:center;min-height:44px;font-size:12px}.expense-group-row{flex-wrap:wrap;gap:4px 8px}.expense-group-row .expense-group-name{flex:1 1 calc(100% - 60px)}div.expense-group-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:4px 6px;padding:4px}div.expense-group-row .expense-group-name{grid-column:3 / -1;max-width:none}div.expense-group-row .expense-group-count{grid-column:1 / span 3}.expense-group-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}button.expense-group-row{justify-content:flex-start}.income-group-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto}.income-group-row .expense-group-label{min-width:0}.income-group-row .expense-group-count,.income-group-row .income-group-gross{grid-row:2;grid-column:1 / -1}.income-group-row .income-group-gross{justify-self:end}.income-group-row .income-net{grid-row:3;grid-column:1 / -1;justify-self:end;min-width:0}.income-card .expense-total{flex-wrap:wrap}.income-card .expense-total .income-net{margin-left:auto}.expense-bulk-toggle,.expense-edit-toggle,.expense-add-group,.income-add-type,.expense-group-delete button{min-height:44px}.expense-add-group,.income-add-type,.expense-group-delete{margin-left:0}.expense-add-group{padding-left:14px}.expense-footer{padding-left:0}.expense-group-header .inline-field{min-height:44px}.expense-add-item{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(max-width:767px){.income-phone-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 10px;margin:4px 0 10px}.income-phone-edit-toggle{min-width:44px;min-height:44px;padding:0 14px;font:600 13.5px var(--sans);color:var(--accent-strong);background:transparent;border:1px solid var(--accent-line);border-radius:999px;cursor:pointer}.income-phone-edit-toggle[aria-pressed=true]{color:var(--surface);background:var(--accent);border-color:var(--accent)}.income-phone-hint{flex:1 1 100%;order:2;margin:0;font-size:12px;line-height:1.45;color:var(--text-muted)}.income-phone-groups,.income-phone-rows{margin:0;padding:0;list-style:none}.income-phone-group{margin-bottom:10px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:16px}.income-phone-group-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:6px 14px;font:inherit;color:var(--text);text-align:left;background:transparent;border:0;cursor:pointer}.income-phone-group-text,.income-phone-row-text{display:flex;flex:1;flex-direction:column;min-width:0}.income-phone-group-name,.income-phone-title{font-size:14px;font-weight:600;overflow-wrap:break-word}.income-phone-title{font-size:13.5px}.income-phone-group-count{font-size:11.5px;color:var(--text-muted)}.income-phone-group-figures{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.income-phone-group-figures .income-net,.income-phone-net{font:600 13px var(--mono);color:var(--positive);white-space:nowrap}.income-phone-group-gross,.income-phone-gross{font:500 11.5px var(--mono);color:var(--text-muted);white-space:nowrap}.income-phone-item{border-top:1px solid var(--border)}.income-phone-row{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:60px;padding:8px 14px 8px 34px;font:inherit;color:var(--text);text-align:left;background:transparent;border:0;cursor:pointer}.income-phone-meta,.income-phone-saving{font-size:11.5px;line-height:1.4;color:var(--text-muted);overflow-wrap:anywhere}@media(max-width:359px){.income-phone-row{display:grid;grid-template-columns:minmax(0,1fr) fit-content(50%);column-gap:10px}.income-phone-row-text{display:contents}.income-phone-title{grid-row:1;grid-column:1}.income-phone-row>.income-phone-net{grid-row:1;grid-column:2;text-align:right;white-space:normal}.income-phone-gross,.income-phone-meta,.income-phone-saving{grid-column:1 / -1}.income-phone-group-text{flex:1 0 auto;max-width:55%}.income-phone-group-figures .income-net,.income-phone-group-gross{white-space:normal}}.income-phone-meta.income-note-warn{color:var(--amber)}.income-phone-saving{color:var(--accent-strong)}.income-phone-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0 14px 8px 34px}.income-phone-move,.income-phone-delete{min-width:44px;min-height:44px;font:600 16px var(--sans);color:var(--text);background:var(--surface-muted);border:1px solid var(--border-field);border-radius:12px;cursor:pointer}.income-phone-move:disabled{color:var(--text-disabled);cursor:default}.income-phone-delete{margin-left:auto;color:var(--alert)}.income-phone-confirm{margin-left:auto}.income-phone-confirm button{min-width:44px;min-height:44px}.income-phone-add{display:block;width:100%;min-height:48px;padding:0 14px 0 34px;font:600 13.5px var(--sans);color:var(--accent-strong);text-align:left;background:transparent;border:0;border-top:1px solid var(--border);cursor:pointer}.income-add-type{min-height:52px}}@media(min-width:768px)and (max-width:1023px){.income,.income tbody,.income tr,.income td{display:block;width:auto}.income thead{display:none}.income td{padding:0}.income .cell-label{display:block;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.income .cell-field{display:flex;flex-direction:column;gap:4px}.income .income-record{padding:8px 0;border-bottom:1px solid var(--border)}.income .income-note,.income .income-foot,.income .income-periods{margin-left:40px}.income .income-row{display:grid;grid-template-columns:32px minmax(0,1fr) 112px 100px 104px 36px;gap:8px;align-items:end;margin-bottom:4px}.income td.cell-handle{grid-row:1;grid-column:1}.income td.income-title{grid-row:1;grid-column:2}.income td.cell-paid{grid-row:1;grid-column:3}.income td.cell-numeric[data-field=amount]{grid-row:1;grid-column:4}.income td.cell-net{grid-row:1;grid-column:5}.income td.cell-delete{grid-row:1;grid-column:6}.income td.cell-date{grid-row:2}.income .income-date{display:flex;flex-direction:column;align-items:stretch;gap:4px}.income .income-date .inline-field{width:100%}.income td.cell-from{grid-column:2}.income td.cell-to{grid-column:3}.income td.cell-on{grid-column:2 / 4}.income td.cell-flags{grid-row:2;grid-column:4 / 7;justify-self:end}.income .income-on-word{display:none}}@media(min-width:768px){.income td.cell-date .inline-field{text-align:center}.income td.cell-paid .row-frequency{padding:5px 3px}.expense-items th:nth-child(n+3),.expense-items td.cell-paid,.expense-items td.cell-numeric,.expense-items td.cell-inflation,.expense-items td.cell-delete{padding-right:4px;padding-left:4px}.expense-items td.cell-numeric[data-field=from] .inline-field,.expense-items td.cell-numeric[data-field=to] .inline-field{padding-right:5px;padding-left:5px;font-size:11.5px}.expense-items td.cell-numeric[data-field=amount] .inline-field{padding-right:7px;padding-left:7px}}.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-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.grants-heading{min-width:0}.grants-header .expense-edit-toggle{flex:none;margin-left:0}.grants-hint{margin-top:12px;padding:6px 8px;border-radius:10px;background:var(--accent-tint);font-size:11.5px}.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(3){width:190px}.grants>thead th:nth-child(5){width:140px}.grants>thead th:nth-child(6){width:112px}.grants>thead th:nth-child(7){width:96px}.grants>thead th:nth-child(8){width:40px}.grants td.grant-job .row-frequency{width:100%;max-width:100%}.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{margin:0;padding-top:12px;border-top:1px solid var(--border);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}@media(min-width:768px)and (max-width:1023px){.grants,.grants>tbody,.grants>tbody>tr,.grants>tbody>tr>td{display:block;width:auto}.grants>thead{display:none}.grants>tbody>tr>td{padding:0}.grants .grant-row .cell-label{display:block;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.grant-record{padding:8px 0}.grant-record+.grant-record{border-top:1px solid var(--border)}.grant-record+.grant-record>tr:first-child>td{border-top:none}.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>tbody>tr.grant-row{display:grid;grid-template-columns:32px 136px 190px minmax(0,1fr) 96px 40px;gap:8px;align-items:end;margin-bottom:4px}.grants td.grant-type,.grants td.grant-job,.grants td.grant-title,.grants td.grant-value,.grants td.grant-net{display:flex;flex-direction:column;gap:4px;min-width:0}.grants td.cell-handle{grid-row:1;grid-column:1}.grants td.grant-type{grid-row:1;grid-column:2}.grants td.grant-job{grid-row:1;grid-column:3}.grants td.grant-title{grid-row:1;grid-column:4}.grants td.grant-toggle-cell{grid-row:1;grid-column:5}.grants td.cell-delete{grid-row:1;grid-column:6}.grants td.grant-value{grid-row:2;grid-column:4}.grants td.grant-net{grid-row:2;grid-column:5 / 7}.grants>tbody>tr.grant-summary-row,.grants>tbody>tr.grant-lost-row,.grants>tbody>tr.grant-schedule-row{margin-left:40px}.grants>tbody>tr.grant-schedule-row>td{padding-top:8px}}.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}.grant-phone{margin-top:12px}.grant-phone-rows{margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:16px 16px 0 0}.grant-phone-item+.grant-phone-item{border-top:1px solid var(--border)}.grant-phone-row{display:flex;flex-direction:column;gap:4px;width:100%;min-height:64px;padding:10px 14px;font:inherit;color:var(--text);text-align:left;background:transparent;border:0;cursor:pointer}.grant-phone-line,.grant-phone-meta{display:flex;align-items:baseline;gap:8px;width:100%;min-width:0}.grant-phone-name{flex:1;min-width:0;overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.grant-phone-net{flex:none;font:600 13px var(--mono);color:var(--positive)}.grant-phone-meta{font-size:11.5px;color:var(--text-muted)}.grant-phone-kind{flex:none;padding:2px 5px;font:600 9.5px var(--mono);color:var(--amber);text-transform:uppercase;background:color-mix(in srgb,var(--amber) 12%,var(--surface));border-radius:5px}.grant-phone-job{flex:1;min-width:0;overflow:hidden;font-weight:600;color:var(--accent-strong);text-overflow:ellipsis;white-space:nowrap}.grant-phone-value{flex:none;font:500 11.5px var(--mono)}.grant-phone-summary,.grant-phone-lapse{width:100%;overflow:hidden;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.grant-phone-summary{color:var(--text-muted)}.grant-phone-lapse{font-weight:600;color:var(--amber)}.grant-phone-controls{display:flex;gap:8px;padding:0 14px 10px}.grant-phone-move{min-width:44px;min-height:44px;font:600 16px var(--sans);color:var(--text);background:var(--surface-muted);border:1px solid var(--border-field);border-radius:12px;cursor:pointer}.grant-phone-move:disabled{color:var(--text-disabled);cursor:default}.grant-phone-adds{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:16px}.grant-phone-rows+.grant-phone-adds{border-radius:0 0 16px 16px}.grant-phone-add{flex:1;min-width:0;min-height:48px;padding:0 14px;font:600 13.5px var(--sans);color:var(--accent-strong);text-align:left;background:transparent;border:0;cursor:pointer}.grant-phone-add+.grant-phone-add{border-left:1px solid var(--border)}}.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-see-expenses{padding:6px 4px;border-radius:6px;font:600 12px var(--sans);color:var(--accent-strong)}.import-applied-link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;border-radius:6px;font:600 12px var(--sans);color:var(--accent-strong)}.import-applied-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.data-card{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:var(--surface);min-width:0}.data-card-head{display:flex;align-items:center;gap:14px;min-width:0}.data-card-icon{display:flex;flex:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:var(--surface-hover);color:var(--text-muted)}.data-card-text{flex:1 1 auto;min-width:0}.data-card-text h2{margin:0;font-size:13.5px;font-weight:600}.data-card-text p{margin:0;font-size:12px;color:var(--text-muted)}.coming-later{display:inline-block;margin-left:6px;padding:3px 6px;border-radius:6px;background:var(--surface-hover);font:600 9.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;vertical-align:middle}.data-card-unavailable{background:var(--surface-muted)}.data-card-unavailable .data-card-text h2,.upload-tile-unavailable h3{color:var(--text-muted)}.upload-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}.upload-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px;border:1.5px dashed var(--accent-dash);border-radius:12px;background:var(--accent-wash);text-align:center;min-width:0}.upload-tile h3{margin:0;font-size:13px;font-weight:600}.upload-tile p{margin:0;font-size:12px;color:var(--text-muted)}.upload-tile .upload-tile-format{font-size:11.5px}.upload-tile-unavailable{border-color:var(--border-field);background:var(--surface-muted)}.upload-tiles-note{margin:0;font-size:11.5px;color:var(--text-muted)}@media(max-width:767px){.upload-wide-only{display:none}}@media(min-width:768px){.upload-phone-only{display:none}}.upload-tile-choose{min-height:44px;padding:6px 4px;border:0;border-radius:6px;background:transparent;font:600 12.5px var(--sans);color:var(--accent-strong);text-decoration:underline;cursor:pointer}.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%}.review-card{display:flex;flex-direction:column;gap:14px;min-width:0}.review-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.review-card-heading{margin:0;font-size:15px;font-weight:700;color:var(--text)}.review-card-line{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}.review-card-line strong{color:var(--text)}.review-tabs{display:flex;flex-wrap:wrap;gap:4px}.review-tab{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font:600 12.5px var(--sans);color:var(--text);cursor:pointer}.review-tab.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}.review-tab-count{padding:1px 6px;border-radius:10px;background:var(--surface-muted);font:600 10.5px var(--mono);color:var(--text-muted)}.review-tab.is-selected .review-tab-count{background:#ffffff38;color:#fff}.review-panel{min-width:0}.review-empty-tab,.review-group-empty{margin:0;padding:12px;font-size:12px;color:var(--text-muted)}.review-groups{display:flex;flex-direction:column;gap:8px}.review-group{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}.import-panel-head.is-review{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.review-card .import-close{font-family:var(--sans)}.review-group-bar{display:flex;align-items:center;background:var(--surface-muted)}.review-group-head{display:grid;flex:1;grid-template:"dot name badge change chevron" auto "dot tallies tallies change chevron" auto / auto auto minmax(0,1fr) auto auto;align-items:center;gap:1px 10px;min-width:0;min-height:56px;padding:8px 14px;border:0;background:transparent;font:400 11.5px var(--sans);color:var(--text);text-align:left;cursor:pointer}.review-group-chevron{display:flex;flex:none;grid-area:chevron;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--accent-strong)}.review-group-chevron.is-open svg{transform:rotate(90deg)}.review-group-dot{flex:none;grid-area:dot;width:9px;height:9px;border-radius:50%;background:var(--series-color)}.review-group-name{grid-area:name;min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}.review-badge{justify-self:start;grid-area:badge;padding:3px 6px;border-radius:6px;background:var(--positive-soft);font:600 9.5px var(--mono);text-transform:uppercase;white-space:nowrap;color:var(--positive)}.review-group-tallies{grid-area:tallies;color:var(--text-muted)}.review-group-change{grid-area:change;font:600 12px var(--mono);white-space:nowrap}.review-group-remove{flex:none;min-height:44px;margin-right:8px;padding:6px 8px;border:0;border-radius:8px;background:transparent;font:600 11.5px var(--sans);color:var(--text-muted);cursor:pointer}.review-group-remove:hover{background:var(--alert-soft);color:var(--alert)}.review-lines{border-top:1px solid var(--border)}.review-lines ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.review-check{display:inline-flex;grid-area:check;align-items:center;min-width:44px;min-height:44px}.review-groups .review-line{display:grid;grid-template:"check payee amount" auto "check seen amount" auto ". outcome outcome" auto ". move move" auto / 44px minmax(0,1fr) auto;gap:2px 0;padding:8px 14px 12px 4px}.review-groups .import-line-payee{font-size:14px}.review-groups .review-line-name{grid-area:payee;align-self:end}.review-groups .import-line-seen{grid-area:seen;font-size:12px}.review-line-amount{display:flex;flex-direction:column;grid-area:amount;align-self:center;gap:4px;font:600 13px var(--mono);text-align:right}.review-line-outcome{display:flex;flex-direction:column;grid-area:outcome;gap:4px;min-width:0;margin-top:6px}.review-groups .import-line-status{font-size:12.5px}.review-groups .import-line-status.is-unsure{font-weight:400}.review-move{grid-area:move;width:100%;min-height:44px;margin-top:6px;padding:0 10px;border:1px solid var(--accent-line);border-radius:10px;background:var(--surface);font:600 15px var(--sans);color:var(--accent-strong);cursor:pointer}.review-new-group{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-top:1px dashed var(--accent-line);background:var(--accent-wash)}.review-new-group-title{font-size:11.5px;color:var(--text)}.review-new-group-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.review-group-field{flex:1 1 100%;min-width:0;min-height:44px;box-sizing:border-box;padding:7px 10px;border:1px solid var(--accent-dash);border-radius:8px;background:var(--surface);font:400 16px var(--sans);color:var(--text)}.review-group-field::placeholder{font-size:13.5px}.review-group-create{min-height:44px;padding:7px 12px;border:0;border-radius:8px;background:var(--accent);font:600 12px var(--sans);color:#fff;cursor:pointer}.review-group-create:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.review-group-cancel{min-height:44px;padding:7px 6px;border:0;background:transparent;font:600 12px var(--sans);color:var(--text-muted);cursor:pointer}.review-new-group-suggested{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}.review-group-suggestion{min-height:44px;padding:4px 10px;border:1px solid var(--accent-line);border-radius:14px;background:var(--surface);font:600 12px var(--sans);color:var(--accent-strong);cursor:pointer}.review-group-suggestion:hover,.review-add-group-open:hover{background:var(--accent-soft)}.review-add-group-open{min-height:44px;padding:10px 14px;border:1.5px dashed var(--accent-dash);border-radius:12px;background:transparent;font:600 12.5px var(--sans);color:var(--accent-strong);cursor:pointer}.review-add-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;border:1.5px solid var(--accent-dash);border-radius:12px;background:var(--surface)}.review-add-group-note,.review-groups-note{font-size:11.5px;color:var(--text-muted)}.review-groups-note{margin:0}.review-check input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.review-left-out{display:flex;flex-direction:column;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--surface);list-style:none}.review-left-out-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px;font-size:12px;color:var(--text-muted)}.review-left-out-line+.review-left-out-line{border-top:1px solid var(--border)}.review-left-out-reason{flex-basis:100%}.review-card .import-primary,.review-card .import-secondary{min-height:44px}.card-pick{display:flex;flex-direction:column;gap:8px;min-width:0}.card-pick-question{font-size:13px;font-weight:600;color:var(--text)}.card-pick-select{width:100%;min-width:0;min-height:44px;padding:0 10px;border:1px solid var(--accent-line);border-radius:10px;background:var(--surface);font:600 15px var(--sans);color:var(--accent-strong);cursor:pointer}.card-pick-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-pick-averages{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;font-size:12px;color:var(--text-muted)}.card-pick-averages strong{color:var(--text)}.card-pick-cap,.card-pick-nothing{margin:0;font-size:12px;color:var(--text-muted)}.review-no-pick{display:flex;flex-direction:column;gap:8px;flex-basis:100%;min-width:0}.review-no-pick-question{margin:0;font-size:13px;color:var(--text)}.review-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.review-footer-summary{margin:0;font-size:12px;color:var(--text-muted)}.review-tab:focus-visible,.review-panel:focus-visible,.review-group-head:focus-visible,.review-check input:focus-visible,.review-lines select:focus-visible,.review-left-out select:focus-visible,.import-line-update input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(min-width:768px){.review-lines .import-line-header,.review-lines .import-line{grid-template-columns:44px minmax(0,1.3fr) minmax(0,1.05fr) minmax(0,.8fr) minmax(0,1.25fr) minmax(0,1fr)}.review-lines .import-line-header{display:grid}.review-lines .import-line{align-items:center}.review-lines .import-line-raw{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-lines .import-line-update{min-height:44px}.review-tab{min-height:0;padding-block:7px}.review-group-head{display:flex;min-height:44px;padding:10px 14px}.review-group-change{margin-left:auto}.review-group-remove{min-height:0}.review-groups .review-line{grid-template:none / 22px minmax(0,1fr) 120px 96px minmax(0,1.2fr) 150px;gap:12px;padding:9px 14px}.review-groups .review-line>*{grid-area:auto;align-self:center}.review-check{min-width:0;min-height:0}.review-groups .import-line-payee{font-size:12.5px}.review-groups .import-line-seen,.review-groups .import-line-status{font-size:11.5px}.review-line-amount{font-size:12px}.review-line-outcome{margin-top:0}.review-move{min-height:0;margin-top:0;padding:5px 4px;border-radius:8px;font-size:11.5px}.review-new-group{padding:10px 14px 12px 48px}.review-group-field{flex:0 1 240px;min-height:0;font-size:12.5px}.review-add-group .review-group-field{flex-basis:260px}.review-group-field::placeholder{font-size:inherit}.review-group-create,.review-group-cancel{min-height:0}.review-group-suggestion{min-height:0;font-size:11.5px}}@media(max-width:767px){.import-primary,.import-secondary,.import-field input,.import-line-amount .inline-field{min-height:44px}.import-close{width:44px;height:44px;margin:-6px -6px 0 0}.toast{width:max-content}.toast-retry,.toast-dismiss{min-width:44px;min-height:44px;margin-block:-12px}.import-consent-agree{position:relative}.import-consent-agree input{position:relative;z-index:1;flex:none;width:24px;height:24px;margin:0}.import-consent-agree label:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0}}.over-time-card{display:flex;flex-direction:column;gap:12px;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.over-time-card-waiting{background:var(--surface-muted);border-style:dashed;border-color:var(--border-field)}.over-time-card-waiting .over-time-title,.over-time-empty{color:var(--text-muted)}.over-time-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 16px}.over-time-heading{display:flex;flex-direction:column;gap:4px;min-width:0}.over-time-title{margin:0;font-size:15px;font-weight:600}.over-time-summary,.over-time-empty{margin:0;font-size:12.5px;line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}.over-time-presets{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:10px;background:var(--surface-muted);border:1px solid var(--border)}.over-time-preset{min-height:32px;padding:4px 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font:inherit;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.over-time-preset[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--surface)}.over-time-preset:disabled{opacity:.5;cursor:not-allowed}.over-time-preset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.over-time-legend-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px}.over-time-legend-toggle{display:flex;align-items:center;gap:6px;margin:-2px 0;padding:2px 4px;border:1px solid transparent;border-radius:6px;background:transparent;color:inherit;font:inherit;cursor:pointer}.over-time-legend-toggle[aria-pressed=true]{border-color:var(--border);background:var(--surface-muted);color:var(--text)}.over-time-legend-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.over-time-hint{font-size:11.5px;color:var(--text-muted)}.over-time-chart{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.over-time-ymax{font:500 10px var(--mono);color:var(--text-muted)}.over-time-plot{position:relative;border-radius:6px;outline:none;cursor:crosshair;touch-action:pan-y}.over-time-plot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.over-time-chart svg{display:block;width:100%;height:170px}.over-time-baseline,.over-time-grid{stroke:var(--border);stroke-width:1}.over-time-grid{opacity:.6}:where(.over-time-series){--series-color: var(--accent)}.over-time-stroke{fill:none;stroke:var(--series-color);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.over-time-area .over-time-fill{fill:var(--series-color);opacity:.18}.over-time-dot{position:absolute;box-sizing:border-box;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);background:var(--surface);border:2px solid var(--series-color);pointer-events:none}.over-time-band .over-time-fill{fill:var(--series-color);opacity:.72}.over-time-band .over-time-stroke{stroke-width:1}.over-time-band.over-time-dimmed .over-time-fill{opacity:.18}.over-time-band.over-time-dimmed .over-time-stroke{opacity:.35}.over-time-band.over-time-emphasised .over-time-fill{opacity:1}.over-time-band.over-time-emphasised .over-time-stroke{stroke:var(--text);stroke-width:1.5}.over-time-marker{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 4;opacity:.6}.over-time-cursor{stroke:var(--text-muted);stroke-width:1;opacity:.5}.over-time-readout{position:absolute;top:0;display:flex;flex-direction:column;gap:2px;margin:0;width:max-content;max-width:50%;overflow-wrap:anywhere;font:500 11px var(--mono);color:var(--text);pointer-events:none}.over-time-readout[data-active=true]{padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 2px 8px #0000000f}.over-time-readout.anchor-end{transform:translate(-100%)}.over-time-readout-heading{font-weight:600}.over-time-readout-line{display:flex;align-items:center;gap:6px}.over-time-axis{position:relative;height:14px;font:500 10px var(--mono);color:var(--text-muted)}.over-time-tick{position:absolute;top:0;white-space:nowrap}.over-time-tick.anchor-middle{transform:translate(-50%)}.over-time-tick.anchor-end{transform:translate(-100%)}.over-time-tick[data-retirement=true]{font-weight:600;color:var(--accent-strong)}.over-time-strip{display:flex;flex-direction:column;gap:4px}.over-time-strip-caption{margin:0;font-size:11px;color:var(--text-muted)}.over-time-strip-plot{position:relative;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.over-time-strip-plot svg{display:block;width:100%;height:34px}.over-time-strip-line{fill:none;stroke:var(--text-muted);stroke-width:1.5}.over-time-strip-box{position:absolute;top:0;bottom:0;box-sizing:border-box;border:2px solid var(--accent);border-radius:4px;background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none}.over-time-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.over-time-slider{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;font-size:12px;color:var(--text-muted)}.over-time-slider-value{font:600 12px var(--mono);color:var(--accent);white-space:nowrap}.over-time-range{width:100%;margin:0;accent-color:var(--accent);touch-action:pan-y}.over-time-range:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:767px){.over-time-card{padding:14px}.over-time-sliders{grid-template-columns:minmax(0,1fr)}.over-time-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:44px;background:transparent}.over-time-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--border-field)}.over-time-range::-moz-range-track{height:4px;border-radius:2px;background:var(--border-field)}.over-time-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:44px;height:44px;margin-top:-20px;border:14px solid transparent;border-radius:50%;background:var(--accent);background-clip:padding-box}.over-time-range::-moz-range-thumb{width:44px;height:44px;box-sizing:border-box;border:14px solid transparent;border-radius:50%;background:var(--accent);background-clip:padding-box}}.expenses-top-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;min-width:0}.expenses-top-row>.over-time-card{flex:2 1 666px}.expenses-top-row>.where-card{flex:1 1 362px}.income-top-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;min-width:0}.income-top-row>.over-time-card{flex:2 1 666px}.income-top-row>.where-card{flex:1 1 362px}.income-top-row .over-time-ymax{transform:translateY(-13px)}.over-time-card-compact{gap:10px}.over-time-card-compact .over-time-title{font-size:13px}.over-time-card-compact .over-time-summary{font-size:11.5px}.over-time-card-compact .over-time-head{flex-direction:column;gap:10px}.over-time-card-compact .over-time-presets{gap:3px}.over-time-card-compact .over-time-legend-row,.over-time-card-compact .chart-legend,.over-time-card-compact .over-time-hint{font-size:11px}.over-time-card-compact .over-time-chart{position:relative}.over-time-card-compact .over-time-ymax{position:absolute;top:0;left:0;pointer-events:none}.over-time-card-compact .over-time-grid{stroke:var(--surface);opacity:.5}.over-time-card-compact .over-time-marker{stroke:var(--text);stroke-dasharray:3 3;opacity:.35}.over-time-card-compact .over-time-strip{padding-top:10px;border-top:1px solid var(--surface-hover)}.over-time-card-compact .over-time-strip-caption{font-size:10.5px}.over-time-card-compact .over-time-strip-plot{border:0;background:transparent}.over-time-card-compact .over-time-strip-line{stroke:var(--alert)}.over-time-card-compact .over-time-strip-box{border-width:1.5px;border-radius:3px}.over-time-card-compact .over-time-readout[data-active=true]{min-width:min(210px,50%)}.over-time-card-compact .over-time-readout-name{flex:1;min-width:0;font:500 11.5px var(--sans);color:var(--text-muted)}.over-time-card-compact .over-time-readout-amount{white-space:nowrap}.over-time-card-compact .over-time-readout-total{margin-top:2px;padding-top:3px;border-top:1px solid var(--border);font-weight:600;color:var(--alert)}.over-time-card-compact .over-time-readout-total .over-time-readout-name{font-weight:600;color:inherit}@media(min-width:768px){.over-time-card-compact{padding:18px 22px}.over-time-card-compact .over-time-preset{min-height:0;padding:5px 9px;border-radius:7px;font-size:11.5px;font-weight:600}.over-time-card-compact .over-time-chart svg{height:auto;aspect-ratio:1160 / 170}.over-time-card-compact .over-time-sliders{display:flex;flex-wrap:wrap;gap:8px 10px}.over-time-card-compact .over-time-slider{display:flex;gap:8px;color:var(--text)}.over-time-card-compact .over-time-range{flex:none;width:120px}.over-time-card-compact .over-time-slider-value{min-width:76px;font-size:11.5px;color:var(--accent-strong)}}.where-card{--where-more: #969183;--where-off: #d9d5ca;display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.where-card-waiting{background:var(--surface-muted);border-style:dashed;border-color:var(--border-field)}.where-card-waiting .where-title{color:var(--text-muted)}.where-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}.where-heading{display:flex;flex-direction:column;gap:2px;min-width:0;margin-right:auto}.where-title{margin:0;font-size:13px;font-weight:600}.where-period{margin:0;font-size:11.5px;color:var(--text-muted)}.where-modes{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.where-mode{padding:5px 10px;border:0;border-radius:7px;background:transparent;color:var(--text-muted);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}.where-mode[aria-pressed=true]{background:var(--accent);color:var(--surface)}.where-mode:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.where-ring{position:relative;flex:none;width:140px;height:140px;margin:0 auto}.where-ring svg{display:block;width:100%;height:100%}.where-track{fill:none;stroke:var(--surface-hover);stroke-width:30}.where-slice{fill:none;stroke:color-mix(in srgb,var(--surface) var(--where-tint, 0%),var(--series-color));stroke-width:30;transition:opacity .12s,stroke-width .12s}.where-slice.where-more{stroke:var(--where-more)}.where-slice.where-hot{stroke-width:36}.where-slice.where-dim{opacity:.3}@media(prefers-reduced-motion:reduce){.where-slice{transition:none}}.where-centre{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 38px;text-align:center;pointer-events:none}.where-centre-value{font:600 15px var(--mono)}.where-centre-label{display:-webkit-box;max-width:96px;overflow:hidden;font-size:10.5px;line-height:1.3;color:var(--text-muted);-webkit-box-orient:vertical;-webkit-line-clamp:2}.where-year{grid-template-columns:auto minmax(0,1fr) 13ch}.where-year .over-time-slider-value{font-size:11.5px;text-align:right;color:var(--accent-strong)}.where-year .over-time-range:disabled{opacity:.5}.where-empty{margin:0;padding:10px 12px;border:1px dashed var(--border-field);border-radius:10px;background:var(--surface-muted);font-size:12px;line-height:1.5;text-align:center;color:var(--text-muted)}.where-legend{display:flex;flex-direction:column;gap:1px;min-width:0;max-height:131px;overflow-y:auto;overscroll-behavior:contain}.where-rows{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none}.where-line{display:flex}.where-line>.where-row{flex:1;min-width:0}.where-row-off .where-swatch{background:var(--where-off)}.where-row-off .where-row-name,.where-row-off .where-row-amount{color:var(--text-muted);text-decoration:line-through}.where-out{display:flex;align-items:center;gap:8px;margin:0;font-size:11.5px;color:var(--text-muted)}.where-count-all{padding:2px 0;border:0;background:transparent;color:var(--accent-strong);font:inherit;font-weight:600;cursor:pointer}.where-count-all:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.where-salary{margin-top:auto;padding-top:10px;border-top:1px solid var(--border)}.where-salary-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.where-salary-title{margin:0;font-size:12px;font-weight:600}.where-salary-value{margin:0 0 0 auto;font:600 13px var(--mono);white-space:nowrap;color:var(--accent-strong)}.where-salary-estimate{padding:2px 6px;border-radius:6px;background:#fbf1df;color:#8a520a;font:600 9.5px var(--mono);letter-spacing:.05em;text-transform:uppercase}.where-salary-waiting{opacity:.55}.where-salary-how{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.where-row{display:flex;align-items:center;gap:7px;width:100%;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-size:11.5px;line-height:15px;text-align:left;cursor:pointer}.where-row:focus-visible,.where-fold:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.where-row.where-dim{color:var(--text-muted)}.where-row.where-dim .where-swatch{opacity:.3}.where-row.where-hot{background:var(--surface-hover)}.where-row-more{color:var(--accent-strong);font-weight:600;cursor:pointer}.where-swatch{flex:none;width:9px;height:9px;border-radius:2px;background:color-mix(in srgb,var(--surface) var(--where-tint, 0%),var(--series-color))}.where-swatch.where-more{background:var(--where-more)}.where-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.where-row-share{font:500 10.5px var(--mono);color:var(--text-muted)}.where-row-amount{min-width:58px;font:600 11px var(--mono);text-align:right}.where-fold{align-self:flex-start;padding:4px 6px;border:0;background:transparent;color:var(--accent-strong);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}.where-foot{display:flex;justify-content:flex-end}.where-back{flex:none;min-height:44px;padding:0 4px;border:0;background:transparent;font:600 12.5px var(--sans);color:var(--accent-strong);cursor:pointer}.where-back:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:767px){.where-card{gap:12px;padding:14px}.where-head{flex-wrap:nowrap;gap:8px}.where-heading{flex:1;margin-right:0}.where-title{font-size:14px}.where-modes{flex:none;border-radius:12px}.where-mode{min-height:44px;padding:0 12px;border-radius:9px;font-size:12.5px}.where-ring{width:168px;height:168px}.where-slice{cursor:pointer}.where-centre-value{font-size:16px}.where-centre-label{font-size:11px}.where-empty{padding:0 6px;border:0;background:transparent;font-size:12.5px;line-height:1.45;text-align:center}.where-legend{max-height:269px}.where-row{gap:8px;min-height:44px;padding:0 8px;border-radius:10px;font-size:13px;cursor:pointer}.where-row-share{font-size:11px}.where-row-amount{min-width:62px;font-size:12px}.where-fold{min-height:44px;font-size:13px}.where-out{justify-content:space-between;font-size:13px}.where-count-all{min-height:44px;padding:0 4px;font-size:13px}.where-salary-title,.where-salary-value{font-size:13px}}.history-note{margin:0;font-size:12px;color:var(--text-muted)}.history-error{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.history-retry{min-height:44px;padding:0 14px;border:1px solid var(--border-field);border-radius:8px;background:var(--surface);font:600 12px var(--sans);color:var(--text);cursor:pointer}.history-table{width:100%;border-collapse:collapse;font-size:12px}.history-table th{padding:0 8px 8px;border-bottom:1px solid var(--border);font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);text-align:left}.history-table td{padding:4px 8px;border-bottom:1px solid var(--border);vertical-align:top;line-height:44px}.history-table td .history-lines{line-height:normal}.history-table tr:last-child td{border-bottom:0}.history-when{font:500 11.5px var(--mono);color:var(--text-muted);white-space:nowrap}.history-table tr[data-state=undone]>td,.history-item[data-state=undone]{opacity:.55}.history-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.history-item{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--border);border-radius:12px;font-size:12px;min-width:0}.history-fields{display:flex;flex-direction:column;gap:6px;margin:0}.history-fields dt{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.history-fields dd{margin:0;min-width:0;overflow-wrap:anywhere}.history-expander{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;border:0;border-radius:6px;background:transparent;font:400 12px var(--sans);color:var(--text);text-align:left;cursor:pointer}.history-expander:hover{background:var(--surface-hover)}.history-expander:focus-visible,.history-retry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.history-lines{margin:4px 0 0;padding:0 0 0 20px;list-style:none}.history-lines li{padding:2px 0}.history-state{font-size:12px;color:var(--text-muted)}.history-undo{min-height:44px;padding:4px 6px;border:0;border-radius:6px;background:transparent;font:600 12px var(--sans);color:var(--accent);cursor:pointer}.history-undo:hover:not(:disabled){background:var(--accent-soft)}.history-undo:disabled{color:var(--text-muted);cursor:default}.history-item .history-undo{align-self:flex-start}.history-undo:focus-visible,.history-state:focus-visible,.undo-dialog:focus-visible,.undo-dialog-confirm:focus-visible,.undo-dialog-cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.history-undo-status{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.review-sum{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--text-muted)}.review-sum p{margin:0}.review-sum-total{font-size:13px;font-weight:600;color:var(--text)}.review-sum-parts{display:flex;flex-wrap:wrap;gap:0 14px}.review-line-name{display:flex;align-items:center;min-width:0}.review-line-name .import-line-payee{align-self:center;min-width:0;overflow-wrap:anywhere}.review-info{position:relative;display:inline-flex;flex:none}.review-info-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-9px -8px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer}.review-info-button:hover{color:var(--text)}.review-info-button:focus-visible,.payment-details:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.review-info-tip{position:fixed;z-index:30;width:max-content;max-width:min(240px,calc(100vw - 16px));padding:6px 9px;border-radius:8px;background:var(--text);color:var(--surface);font:500 11.5px/1.45 var(--sans)}.review-info-tip[hidden]{display:none}.review-not-sorted-line{font-size:12.5px}.review-not-sorted-line .import-line-payee{color:var(--text)}.review-not-sorted-amount{font:600 12.5px var(--mono);color:var(--text)}@media(min-width:768px){.review-not-sorted-add{width:150px;margin-left:auto}}.undo-dialog.payment-details{display:flex;flex-direction:column;max-width:520px;max-height:calc(100dvh - 32px)}.payment-details-list{flex:1 1 auto;min-height:0;margin:10px 0 0;padding:0;overflow-y:auto;list-style:none}.payment-details-list:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.payment-details-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:9px 0;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.payment-details-payee{grid-column:1;overflow-wrap:anywhere;color:var(--text)}.payment-details-date{grid-column:1 / -1}.payment-details-amount{grid-column:2;font:600 12.5px var(--mono);color:var(--text)}.payment-details-text,.payment-details-account{grid-column:1 / -1;overflow-wrap:anywhere}.payment-details .payment-details-move{grid-area:auto / 1 / auto / -1;justify-self:start;max-width:100%}.payment-details-notice{min-height:18px;margin:6px 0 0;font-size:12px;color:var(--text-muted)}.payment-details-notice:empty{display:none}.undo-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;background:#1f1d1852}.undo-dialog{width:100%;max-width:420px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 8px 24px #1f1d182e}.undo-dialog-question{margin:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--text)}.undo-dialog-left{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--text-muted)}.undo-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.undo-dialog-confirm,.undo-dialog-cancel{min-height:44px;padding:0 16px;border-radius:8px;font:600 13px var(--sans);cursor:pointer}.undo-dialog-confirm{border:1px solid var(--accent);background:var(--accent);color:#fff}.undo-dialog-cancel{border:1px solid var(--border-field);background:var(--surface);color:var(--text)}.undo-dialog-confirm:disabled,.undo-dialog-cancel:disabled{opacity:.6;cursor:default}@media(max-width:399px){.review-group-head{grid-template:"dot name name chevron" auto "dot badge change chevron" auto "dot tallies tallies chevron" auto / auto minmax(0,1fr) auto auto}.review-groups .review-line{grid-template:"check payee payee" auto "check seen amount" auto ". outcome outcome" auto ". move move" auto / 44px minmax(0,1fr) auto;column-gap:8px}}@media(max-width:399px){.undo-dialog-actions{flex-direction:column}}.income-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:#1f1d1861}.income-sheet{display:flex;flex-direction:column;width:100%;max-width:560px;max-height:92dvh;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #1f1d182e}.income-sheet:focus{outline:none}.income-sheet-head{display:flex;align-items:center;gap:10px;padding:8px 18px 0}.income-sheet-heading{flex:1;margin:0;font-size:15px;font-weight:700}.income-sheet-cancel{min-width:44px;min-height:44px;padding:0 4px;font:600 14px var(--sans);color:var(--text-muted);background:transparent;border:0;cursor:pointer}.income-sheet-body{display:flex;flex-direction:column;gap:14px;padding:12px 18px 16px;overflow-y:auto;overscroll-behavior:contain}.income-sheet-field{position:relative;display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.income-sheet-label{font-size:12px;color:var(--text-muted)}.income-sheet input,.income-sheet select{box-sizing:border-box;width:100%;min-width:0;min-height:46px;padding:12px 14px;font:16px var(--sans);color:var(--text);background:var(--surface);border:1px solid var(--border-field);border-radius:12px}.income-sheet input[aria-invalid=true]{border-color:var(--alert)}.income-sheet .field-hint{position:static;width:auto;max-width:none;font-size:12px;color:var(--alert)}.income-sheet .field-hint:empty{display:none}.income-sheet-pair{display:flex;gap:10px}.income-sheet-money{display:flex;align-items:center;gap:8px}.income-sheet-paid{display:flex;gap:6px}.income-sheet-paid button{flex:1;min-width:0;min-height:44px;padding:0 6px;font:600 13.5px var(--sans);color:var(--text);white-space:nowrap;background:var(--surface-muted);border:1px solid var(--border-field);border-radius:12px;cursor:pointer}.income-sheet-paid button[aria-pressed=true]{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent)}.income-sheet-net{margin:-6px 0 0;font:600 12px var(--mono);color:var(--positive)}.income-sheet-note,.income-sheet-hint,.income-sheet-result{margin:-6px 0 0;font-size:12px;line-height:1.45;color:var(--text-muted)}.income-sheet-note.income-note-warn{color:var(--amber)}.income-sheet-switch{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:4px 0;font:inherit;color:var(--text);text-align:left;background:transparent;border:0;cursor:pointer}.income-sheet-switch-text{display:flex;flex:1;flex-direction:column}.income-sheet-switch-title{font-size:14px;font-weight:600}.income-sheet-switch-note{font-size:12px;color:var(--text-muted)}.income-sheet-switch-track{position:relative;flex:none;width:40px;height:24px;background:var(--border-field);border-radius:999px}.income-sheet-switch-track:after{position:absolute;top:3px;left:3px;width:18px;height:18px;content:"";background:var(--surface);border-radius:50%;transition:transform .15s}.income-sheet-switch[aria-checked=true] .income-sheet-switch-track{background:var(--accent)}.income-sheet-switch[aria-checked=true] .income-sheet-switch-track:after{transform:translate(16px)}.income-sheet-saving{display:flex;flex-direction:column;gap:12px}.income-sheet-saving>.income-saving-warning,.income-sheet-saving>.income-saving-lost{margin:-6px 0 0;font-size:12px;line-height:1.45}.income-sheet-saving>.income-saving-warning:empty{margin-top:-12px}.income-sheet-periods{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px}.income-sheet-periods-head{display:flex;flex-direction:column;gap:4px}.income-sheet-periods-title{font-size:12px;font-weight:600}.income-sheet-periods-hint{font-size:12px;line-height:1.45;color:var(--text-muted)}.income-sheet-period-heads,.income-sheet-period{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px 8px;align-items:center}.income-sheet-period-heads{margin-bottom:-4px;font-size:12px;color:var(--text-muted)}.income-sheet-period-heads span:last-child{grid-column:3}.income-sheet-period+.income-sheet-period{padding-top:10px;border-top:1px solid var(--border)}.income-sheet .income-sheet-period input{padding:12px 10px}.income-sheet .income-sheet-period input:disabled{color:var(--text-muted);background:var(--surface-muted)}.income-sheet-period-dash{color:var(--text-muted)}.income-sheet-period-to{display:flex;grid-column:3;min-width:0}.income-sheet-period-no-month{display:flex;align-items:center;min-height:46px;padding:0 10px;color:var(--text-muted)}.income-sheet-period-amount{display:flex;grid-column:1 / -1;gap:8px;align-items:center;min-width:0}.income-sheet .income-sheet-period-amount input{text-align:right}.income-sheet-period-unit{flex:none;font-size:12px;color:var(--text-muted)}.income-sheet-period-remove-space{flex:none;width:44px}.income-sheet-period-remove{flex:none;min-width:44px;min-height:44px;font:600 18px var(--sans);color:var(--text-muted);background:transparent;border:0;border-radius:12px;cursor:pointer}.income-sheet-period-note,.income-sheet-period .field-hint{grid-column:1 / -1}.income-sheet-period-note{font-size:12px;line-height:1.45;color:var(--text-muted)}.income-sheet-period-note:empty{display:none}.income-sheet-period-note[data-pending=true]{color:var(--amber)}.income-sheet-period-note[data-stops=true]{font-weight:600;color:var(--positive)}.income-sheet-periods-add{display:flex;flex-direction:column}.income-sheet-periods-add button,.income-sheet-step-add{min-height:44px;padding:0;font:600 13.5px var(--sans);color:var(--accent-strong);text-align:left;background:transparent;border:0;cursor:pointer}.income-sheet-foot{display:flex;gap:10px;padding:12px 18px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border)}.income-sheet-delete{min-width:44px;min-height:48px;padding:0 16px;font:600 14px var(--sans);color:var(--alert);background:transparent;border:1px solid var(--alert-border);border-radius:12px;cursor:pointer}.income-sheet-confirm{display:flex;gap:8px}.income-sheet-confirm button{min-width:44px;min-height:48px}.income-sheet-save{flex:1;min-height:48px;font:600 15px var(--sans);color:var(--surface);background:var(--accent);border:0;border-radius:12px;cursor:pointer}.grant-sheet-chips{display:flex;flex-wrap:wrap;gap:6px}.grant-sheet-chips .income-chip{min-height:44px;padding:0 12px;font:500 12.5px var(--mono);border-radius:12px}.grant-sheet-chips .income-chip:disabled{color:var(--text-disabled);cursor:default}.grant-sheet-parts{margin:0;padding:0;list-style:none;border:1px solid var(--border);border-radius:12px}.grant-sheet-part{display:grid;grid-template-columns:72px 56px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:0 12px;font:500 12.5px var(--mono)}.grant-sheet-part+.grant-sheet-part{border-top:1px solid var(--border)}.grant-sheet-part-custom{grid-template-columns:82px 74px minmax(0,1fr) 44px;gap:6px;padding:6px 4px 6px 8px}.grant-sheet-part-custom .field-hint{grid-column:1 / -1}.grant-sheet .grant-sheet-part input{min-height:44px;padding:8px 6px;font:500 16px var(--mono)}.grant-sheet-part-share{display:flex;align-items:center;gap:2px}.grant-sheet-part-net{min-width:0;text-align:right;overflow-wrap:anywhere}.grant-sheet-part-remove{min-width:44px;min-height:44px;font:600 16px var(--sans);color:var(--text-muted);background:transparent;border:0;cursor:pointer}.grant-sheet-total{font-weight:600}.grant-sheet-total-whole,.grant-sheet-total .grant-sheet-part-net{color:var(--positive)}.grant-sheet-total-off{color:var(--amber)}.grant-sheet-part-add{align-self:flex-start;min-height:44px;padding:0 4px;font:600 13.5px var(--sans);color:var(--accent-strong);background:transparent;border:0;cursor:pointer}.grant-sheet-part-add:disabled{color:var(--text-disabled);cursor:default}.grant-sheet-lapse{margin:0;padding:10px 12px;font-size:12.5px;color:var(--text-muted);background:var(--surface-muted);border-radius:12px}.grant-sheet-saving{display:flex;flex-direction:column;gap:10px;padding:4px 12px 12px;background:var(--accent-tint);border-radius:12px}.grant-sheet-saving-fields{display:grid;grid-template-columns:1fr 1.6fr;gap:10px}@media(min-width:768px){.history-list{display:none}}@media(max-width:767px){.history-table{display:none}}.review-savings-lines{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.review-savings-lines ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.review-savings-per-month{font:600 12.5px var(--mono);color:var(--text)}.review-savings-account{font-size:12px;color:var(--text);overflow-wrap:anywhere}.review-lines .import-line-select.review-into-account{min-height:44px}@media(min-width:768px){.review-savings-lines .import-line-header,.review-savings-lines .import-line{grid-template-columns:44px minmax(0,1.4fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,1.1fr) minmax(0,1.3fr)}}.landing{min-height:100vh;background:var(--page);--landing-gutter: clamp(16px, 4vw, 36px);--landing-body: #4a463d;--landing-blue-soft: #e6f0f6;--landing-blue: #1d5f86}.landing-section:focus{outline:none}.landing-bar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--page) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}.landing-bar-inner{max-width:1240px;margin:0 auto;box-sizing:border-box;padding:14px var(--landing-gutter);display:flex;align-items:center;gap:12px}.landing-wordmark{font-size:17px;font-weight:700;letter-spacing:-.02em}.landing-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.landing a{text-decoration:none}.landing a:focus-visible,.landing button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.landing-nav-link,.landing-nav-login,.landing-nav-start{font-size:13px;padding:8px 14px;border-radius:20px;white-space:nowrap}.landing-nav-link{font-weight:500;color:var(--text-muted)}.landing-nav-link:hover{background:var(--surface-hover);color:var(--accent-strong)}.landing-nav-divider{width:1px;height:20px;background:var(--border-field);margin:0 6px}.landing-nav-login{font-weight:600;color:var(--accent-strong)}.landing-nav-login:hover{background:var(--accent-soft)}.landing-nav-start{font-weight:600;color:var(--surface);background:var(--accent);padding:9px 18px}.landing-nav-start:hover{background:var(--accent-strong)}.landing-main{max-width:1240px;margin:0 auto;box-sizing:border-box;padding:0 var(--landing-gutter);display:flex;flex-direction:column}.landing-hero{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding:72px 0 104px}.landing-hero-text{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:20px}.landing-pill{align-self:flex-start;font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-soft);border-radius:20px;padding:6px 12px}.landing-h1{margin:0;font-size:52px;line-height:1.05;font-weight:700;letter-spacing:-.025em;text-wrap:balance}.landing-lede{margin:0;font-size:18px;line-height:1.55;color:var(--landing-body);max-width:540px;text-wrap:pretty}.landing-hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:6px}.landing-button{font-size:15px;font-weight:600;padding:14px 24px;border-radius:var(--radius)}.landing-button-primary{color:var(--surface);background:var(--accent)}.landing-button-primary:hover{background:var(--accent-strong)}.landing-button-secondary{color:var(--accent-strong);background:var(--surface);border:1.5px solid var(--accent-line);padding:12.5px 22px}.landing-button-secondary:hover{background:var(--accent-soft)}.landing-button-light{align-self:flex-start;color:var(--text);background:var(--surface);padding:13px 22px}.landing-button-light:hover{background:var(--accent-soft)}.landing-fine{font-size:12.5px;line-height:1.5;color:var(--text-muted)}.landing-positive{color:var(--positive)}.landing-accent{color:var(--accent-strong)}.landing-example{flex:1 1 340px;min-width:0;position:relative}.landing-example-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:22px 24px;box-shadow:0 20px 50px #1f1d1814;display:flex;flex-direction:column;gap:12px}.landing-example-head{display:flex;align-items:center;gap:8px}.landing-example-dot{width:9px;height:9px;border-radius:50%;background:var(--positive)}.landing-example-badge{font:600 10.5px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--positive)}.landing-example-tag{margin-left:auto;font:600 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-hover);border-radius:6px;padding:3px 7px}.landing-example-verdict{font-size:22px;font-weight:700;line-height:1.25;letter-spacing:-.01em}.landing-example-chart{width:100%;display:block}.landing-example-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.landing-example-axis-mark{color:var(--accent-strong);font-weight:600}.landing-example-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--surface-hover);padding-top:12px}.landing-example-stats>div{display:flex;flex-direction:column;gap:2px;background:var(--surface-muted);border-radius:10px;padding:8px 10px;font-size:11px;color:var(--text-muted);min-width:0}.landing-example-figure{font:600 14px var(--mono);color:var(--text)}.landing-example-figure.landing-positive{color:var(--positive)}.landing-example-figure.landing-accent{color:var(--accent-strong)}.landing-float{position:absolute;left:28px;bottom:-62px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px 14px;box-shadow:0 12px 30px #1f1d181a;display:flex;align-items:center;gap:12px}.landing-float-text{display:flex;flex-direction:column;gap:1px}.landing-float-title{font-size:12px;font-weight:600}.landing-float-figure{font:500 11.5px var(--mono);color:var(--text-muted)}.landing-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;padding:24px 0 56px}.landing-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:8px}.landing-eyebrow{font:600 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.landing-card-title{font-size:20px;font-weight:700;letter-spacing:-.01em}.landing-card-text{font-size:14px;line-height:1.55;color:var(--text-muted)}.landing-section{display:flex;flex-direction:column;gap:24px;padding:40px 0 56px;border-top:1px solid var(--border);scroll-margin-top:64px}.landing-section-head{display:flex;flex-direction:column;gap:6px;max-width:640px}.landing-h2{margin:0;font-size:32px;font-weight:700;letter-spacing:-.02em}.landing-steps,.landing-features,.landing-promises{margin:0;padding:0;list-style:none;display:grid}.landing-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}.landing-steps>.landing-card{gap:10px;padding:22px}.landing-step-number{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font:600 13px var(--mono)}.landing-step-title{font-size:17px;font-weight:700}.landing-features{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}.landing-feature{display:flex;gap:14px;padding:18px 20px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}.landing-badge{width:36px;height:36px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;font:600 11.5px var(--mono)}.landing-badge-accent{background:var(--accent-soft);color:var(--accent-strong)}.landing-badge-amber{background:#fbf1df;color:var(--amber)}.landing-badge-positive{background:var(--positive-soft);color:var(--positive)}.landing-badge-blue{background:var(--landing-blue-soft);color:var(--landing-blue)}.landing-badge-alert{background:var(--alert-soft);color:var(--alert)}.landing-feature-text,.landing-promise-text{display:flex;flex-direction:column;gap:4px;min-width:0}.landing-feature-title{font-size:15px;font-weight:700}.landing-feature-body{font-size:13.5px;line-height:1.5;color:var(--text-muted)}.landing-data{flex-direction:row;flex-wrap:wrap;gap:32px;align-items:flex-start}.landing-data-intro{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:10px}.landing-data-lede{font-size:15px;line-height:1.55;color:var(--text-muted)}.landing-promises{flex:1 1 480px;min-width:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.landing-promise{display:flex;gap:10px;padding:16px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.landing-tick{flex:none;margin-top:1px;color:var(--positive)}.landing-promise-title{font-size:14px;font-weight:600}.landing-promise-body{font-size:13px;line-height:1.5;color:var(--text-muted)}.landing-faq{gap:16px;max-width:820px}.landing-faq-title{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em}.landing-faq-item{border-bottom:1px solid var(--border)}.landing-faq-question{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:14px 0;cursor:pointer;text-align:left;font:600 15.5px var(--sans);color:var(--text)}.landing-faq-question>span:first-child{flex:1}.landing-faq-chevron{font:500 20px/1 var(--sans);color:var(--accent-strong);transition:transform .15s}.landing-faq-question[aria-expanded=true] .landing-faq-chevron{transform:rotate(45deg)}.landing-faq-answer{margin:0 0 16px;font-size:14px;line-height:1.6;color:var(--landing-body);max-width:680px}.landing-cta{margin:8px 0 48px;background:var(--text);color:var(--surface);border-radius:24px;padding:40px clamp(20px,4vw,48px);display:flex;flex-wrap:wrap;gap:28px;align-items:center}.landing-cta-text,.landing-cta-actions{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:10px}.landing-cta .landing-h2{font-size:30px}.landing-cta-lede{font-size:15px;line-height:1.55;color:#c9c4b6}.landing-cta .landing-button-light:focus-visible{outline-color:var(--surface)}.landing-footer{width:calc(100% - 2 * var(--landing-gutter));max-width:calc(1240px - 2 * var(--landing-gutter));margin:0 auto;box-sizing:border-box;padding:20px 0 40px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;border-top:1px solid var(--border);font-size:12.5px;color:var(--text-muted)}.landing-footer-name{font-weight:700;color:var(--text);letter-spacing:-.01em}.landing-footer-links{margin-left:auto;display:flex;gap:18px}.landing-footer-link{color:var(--text-muted)}.landing-footer-link:hover{color:var(--accent-strong)}.landing-pending{margin:0;padding:72px var(--landing-gutter);text-align:center;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){.landing-faq-chevron{transition:none}}@media(max-width:700px){.landing-section-link,.landing-float{display:none}.landing-bar-inner{padding:10px 16px}.landing-nav-login,.landing-nav-start{min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}.landing-hero{padding:40px 0 32px;gap:32px}.landing-h1{font-size:36px}.landing-h2,.landing-cta .landing-h2{font-size:26px}}.landing-join{display:flex;flex-direction:column;gap:10px}.landing-join-row{display:flex;flex-wrap:wrap;gap:8px}.landing-join-input{flex:1 1 220px;min-width:0;font:inherit;font-size:14px;color:var(--surface);background:#2a2823;border:1.5px solid #4a463d;border-radius:12px;padding:12px 14px}.landing-join-input::placeholder{color:#8a8578}.landing-join-input:focus-visible{outline:2px solid var(--surface);outline-offset:1px}.landing-join-input[aria-invalid=true]{border-color:#f0a98a}.landing-join-button{font:inherit;font-size:14px;font-weight:600;color:var(--surface);background:var(--accent);border:0;border-radius:12px;padding:12px 18px;cursor:pointer}.landing-join-button:hover{background:var(--accent-strong)}.landing-join-button:focus-visible{outline:2px solid var(--surface);outline-offset:2px}.landing-join-button:disabled{cursor:progress;opacity:.8}.landing-join-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.landing-join-error{font-size:12.5px;color:#f0a98a}.landing-join-done{display:flex;align-items:center;gap:10px;background:#2a2823;border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.landing-join-done svg{flex:none;stroke:#5fd3a2;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.landing-join-fine{font-size:12px;color:#8a8578}.waiting-link-home{color:inherit;text-decoration:none}.waiting-link-card{max-width:560px;margin:64px auto;padding:32px clamp(20px,4vw,40px);background:var(--surface);border:1px solid var(--border);border-radius:24px;display:flex;flex-direction:column;gap:14px}.waiting-link-card .landing-h2{margin:0}.waiting-link-text{margin:0;font-size:15px;line-height:1.55;color:var(--landing-body)}.waiting-link-text:focus{outline:none}.waiting-link-button{align-self:flex-start;font:inherit;font-size:15px;font-weight:600;border:0;cursor:pointer;text-decoration:none}.waiting-link-button:disabled{cursor:progress;opacity:.8}.waiting-link-error{margin:0;font-size:13px;color:var(--alert)}@media(max-width:700px){.waiting-link-card{margin:32px auto}}
