:root{color-scheme: light;--bg: #f6f7f9;--panel: #ffffff;--ink: #1c2024;--muted: #6b7280;--line: #e3e6ea;--accent: #2f6f4f;--on-accent: #ffffff;--field-border: #858c96;--pos: #2f6f4f;--neg: #b4443c;--warn: #966719;--grid: #eef0f3;--goal: #8a8f98;--cat-1: #2a78d6;--cat-2: #eb6834;--cat-3: #1baf7a;--cat-4: #eda100;--cat-5: #e87ba4;--cat-6: #008300;--cat-7: #4a3aa7;--cat-8: #e34948;--cat-us-stock: var(--cat-1);--cat-intl-stock: var(--cat-4);--cat-us-bond: var(--cat-5);--cat-cash: var(--cat-6);--acct-investment: var(--cat-1);--acct-cash: var(--cat-6);--acct-real-estate: var(--cat-5);--acct-vehicle: var(--cat-4);--acct-other: var(--cat-7);--acct-loan: var(--cat-2);--acct-credit: var(--cat-3);--flow-now: var(--cat-1);--flow-rest: #a4a6aa;--flow-interest: var(--neg);--text-micro: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 21px;--text-xl: 28px;--text-hero: 48px;--space-hair: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-pill: 999px;--shadow-float: 0 4px 14px rgb(0 0 0 / 14%);--ease: 140ms cubic-bezier(.2,.6,.3,1)}a,button,summary,input,select,textarea,.hbar-label{transition: color var(--ease),background-color var(--ease),border-color var(--ease),outline-color var(--ease),text-decoration-color var(--ease)}:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px}@media (prefers-reduced-motion: reduce){:root{--ease: 0s}*{animation-duration: 0.01ms !important;animation-iteration-count: 1 !important}}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme: dark;--bg: #14161a;--panel: #1c1f24;--ink: #e8eaed;--muted: #9aa1ab;--line: #2c313a;--accent: #6cc296;--on-accent: #14161a;--field-border: #6b7380;--pos: #6cc296;--neg: #e0776d;--warn: #d7a55c;--grid: #23272e;--goal: #767c86;--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300;--cat-7: #9085e9;--cat-8: #e66767;--flow-rest: #5c5e62}}:root[data-theme="dark"]{--bg: #14161a;--panel: #1c1f24;--ink: #e8eaed;--muted: #9aa1ab;--line: #2c313a;--accent: #6cc296;--on-accent: #14161a;--field-border: #6b7380;--pos: #6cc296;--neg: #e0776d;--warn: #d7a55c;--grid: #23272e;--goal: #767c86;--cat-1: #3987e5;--cat-2: #d95926;--cat-3: #199e70;--cat-4: #c98500;--cat-5: #d55181;--cat-6: #008300;--cat-7: #9085e9;--cat-8: #e66767;--flow-rest: #5c5e62;color-scheme: dark}*{box-sizing: border-box}:where(main) :where(input:not([type="checkbox"],[type="radio"],[type="hidden"]),select,textarea){font: inherit;font-size: var(--text-sm);padding: var(--space-1) var(--space-2);border: 1px solid var(--field-border);border-radius: var(--radius-sm);background: var(--bg);color: var(--ink)}:where(main) :where(input:not([type="checkbox"],[type="radio"],[type="hidden"]),select,textarea):focus{outline: 2px solid var(--accent);outline-offset: -1px;border-color: transparent}input[type="checkbox"],input[type="radio"]{accent-color: var(--accent)}:where(main button){min-height: 24px}body{margin: 0;background: var(--bg);color: var(--ink);font: var(--text-base)/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}#app{max-width: 1280px;margin: 0 auto;padding: var(--space-4) var(--space-4) var(--space-8)}main{display: block}a{color: var(--accent);text-underline-offset: 2px}.skip-link{position: absolute;left: var(--space-4);top: var(--space-2);z-index: 50;padding: var(--space-2) var(--space-3);border-radius: var(--radius-sm);background: var(--panel);color: var(--accent);box-shadow: var(--shadow-float);transform: translateY(-200%)}.skip-link:focus-visible{transform: none}main:focus{outline: none}html{scrollbar-gutter: stable}#progress{position: fixed;inset: 0 0 auto 0;height: 2px;z-index: 40;background: var(--accent);transform-origin: left;transform: scaleX(0);opacity: 0;pointer-events: none}#progress.htmx-request{opacity: 1;animation: nav-progress 900ms cubic-bezier(.1,.7,.3,1) forwards}@keyframes nav-progress{0%{transform: scaleX(0.05)}50%{transform: scaleX(0.6)}100%{transform: scaleX(0.92)}}.household-name{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: baseline;gap: var(--space-1) var(--space-4);font-size: var(--text-xs);font-weight: 600;letter-spacing: .02em;color: var(--muted);margin-bottom: var(--space-2)}.household-name .explore-link{font-weight: 400;letter-spacing: 0;color: var(--muted)}.household-name .explore-link:hover,.household-name .explore-link:focus-visible{color: var(--ink)}.sandbox-bar{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2);font-size: var(--text-sm);margin-bottom: var(--space-2)}.sandbox-bar form,.sandbox-reset[open]{display: inline-flex;align-items: center;gap: var(--space-2)}.sandbox-reset > span{color: var(--muted)}table.review{table-layout: fixed;width: min(40rem,100%)}.review .c-name{width: 50%}.review .c-kind{width: 30%}.review :is(th,td){text-align: left}.review .num{text-align: right}.explore-list{display: grid;grid-template-columns: repeat(auto-fill,minmax(16rem,1fr));gap: var(--space-3);list-style: none;padding: 0;margin: var(--space-3) 0}.explore-list form,.explore-list button{height: 100%}.explore-list button{display: flex;flex-direction: column;gap: var(--space-1);width: 100%;text-align: left;font: inherit;color: var(--ink);background: var(--bg);cursor: pointer;border: 1px solid var(--line);border-radius: var(--radius-md);padding: var(--space-3) var(--space-4)}.explore-list button:hover,.explore-list button:focus-visible,.explore-list button[aria-current]{border-color: var(--accent)}.explore-list .title{font-weight: 600}.explore-list .line{font-size: var(--text-sm);color: var(--muted)}.tabs-row{margin-bottom: var(--space-4);border-bottom: 1px solid var(--line)}.menu-btn{display: none}@media (min-width: 641px){.site-menu{display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);flex-wrap: wrap;position: static;inset: auto;width: auto;height: auto;margin: 0;padding: 0;border: 0;background: none;color: inherit;overflow: visible}}.tabs{display: flex;gap: var(--space-1) 0;flex-wrap: wrap}.tabs a{color: var(--muted);text-decoration: none;font-size: var(--text-sm);padding: var(--space-2) var(--space-3);border-bottom: 2px solid transparent;margin-bottom: -1px}.tabs a.active{color: var(--ink);border-bottom-color: var(--accent);font-weight: 600}.tabs a,.theme-toggle button{display: inline-flex;flex-direction: column;align-items: center}.tabs a::after,.theme-toggle button::after{content: attr(data-label);font-weight: 600;height: 0;overflow: hidden;visibility: hidden}.tabs a:hover,.tabs a:focus-visible{color: var(--ink)}.theme-toggle{display: flex;gap: var(--space-hair);margin-bottom: var(--space-2);flex-shrink: 0}.theme-toggle button{font: inherit;font-size: var(--text-xs);color: var(--muted);background: none;cursor: pointer;border: 1px solid var(--line);border-radius: var(--radius-sm);padding: var(--space-hair) var(--space-2)}.theme-toggle button.active{color: var(--ink);border-color: var(--accent);font-weight: 600}.theme-toggle button:hover,.theme-toggle button:focus-visible{color: var(--ink)}.site-menu > .sign-out{margin-bottom: var(--space-2)}.sign-out a{margin-right: var(--space-3);font-size: var(--text-sm)}@media (min-width: 641px){.site-menu:has(> .sign-out){justify-content: flex-start}.site-menu:has(> .sign-out) > .tabs{margin-right: auto}}@media (max-width: 640px){#app{display: grid;grid-template-columns: 1fr auto}#app > *{grid-column: 1 / -1}#app > :is(.household-name,.sandbox-bar){grid-column: 1}#app > .tabs-row{grid-column: 2;display: flex;align-items: flex-end;padding-left: var(--space-3)}#app:not(:has(> .household-name,> .sandbox-bar)) > .tabs-row{grid-column: 1 / -1;justify-content: flex-end}#app > :is(.household-name,.sandbox-bar,.tabs-row){margin-bottom: var(--space-4);padding-bottom: var(--space-2);border-bottom: 1px solid var(--line)}.menu-btn{display: inline-flex;align-items: center;gap: var(--space-1);min-height: 44px;padding: 0 var(--space-3);font: inherit;font-size: var(--text-sm);color: var(--ink);background: none;cursor: pointer;border: 1px solid var(--line);border-radius: var(--radius-sm);anchor-name: --site-menu}.menu-btn .caret{font-size: var(--text-xs)}.menu-btn:hover,.menu-btn:focus-visible{border-color: var(--accent)}.site-menu:popover-open{display: flex;flex-direction: column;gap: var(--space-2);overflow: hidden;width: min(18rem,calc(100vw - 2 * var(--space-4)));max-height: calc(100dvh - 2 * var(--space-8));inset: calc(var(--space-8) + var(--space-6)) var(--space-4) auto auto;margin: 0;padding: var(--space-2);border: 1px solid var(--line);border-radius: var(--radius-md);background: var(--panel);color: var(--ink);box-shadow: var(--shadow-float)}.site-menu .tabs{flex-direction: column;flex-wrap: nowrap;gap: 0;min-height: 0;overflow-y: auto;background: linear-gradient(to top,var(--panel) 40%,transparent) bottom / 100% var(--space-8) no-repeat local,radial-gradient(farthest-side at 50% 100%,color-mix(in srgb,var(--ink) 18%,transparent),transparent) bottom / 100% var(--space-3) no-repeat scroll}.site-menu .tabs a{align-items: flex-start;justify-content: center;min-height: 44px;margin: 0;padding: 0 var(--space-3);font-size: var(--text-base);border-bottom: 0;border-radius: var(--radius-sm)}.site-menu .tabs a.active{background: color-mix(in srgb,var(--accent) 12%,transparent)}.site-menu .theme-toggle{flex: none;margin: 0;padding: var(--space-1) var(--space-3)}.site-menu .tabs + .theme-toggle{padding-top: var(--space-2);border-top: 1px solid var(--line)}.site-menu > .sign-out{margin: 0;padding: 0 var(--space-3) var(--space-1)}}@supports (position-area: block-end){.site-menu:popover-open{position-anchor: --site-menu;position-area: block-end span-inline-start;position-try-fallbacks: flip-block;inset: auto;margin: var(--space-1) 0;max-height: calc(100% - 2 * var(--space-1))}}header{display: flex;flex-wrap: wrap;align-items: baseline;justify-content: space-between;gap: var(--space-1) var(--space-4);margin-bottom: var(--space-4)}header h1{font-size: var(--text-xl);margin: 0;font-weight: 650;letter-spacing: -0.01em}header .asof{color: var(--muted);font-size: var(--text-sm)}.cards{display: grid;grid-template-columns: repeat(auto-fit,minmax(250px,1fr));gap: var(--space-1) var(--space-3);margin-bottom: var(--space-4)}.cards > .card{display: grid;grid-template-rows: subgrid;grid-row: span 3;align-content: start;margin-bottom: var(--space-2)}@media (max-width: 700px){.cards{grid-template-columns: repeat(2,1fr)}}.card{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);padding: var(--space-3) var(--space-4)}.card .label{color: var(--muted);font-size: var(--text-xs);text-transform: uppercase;letter-spacing: .04em}.card .value{font-size: var(--text-lg);font-weight: 640;font-variant-numeric: tabular-nums}.card .sub{color: var(--muted);font-size: var(--text-xs);margin-top: var(--space-hair)}.summary-line{font-size: var(--text-md);line-height: 1.55;margin: calc(-1 * var(--space-1)) 0 var(--space-4);max-width: 62ch;color: var(--ink)}.summary-line strong{font-weight: 660}.standing{padding: var(--space-6)}.standing .standing-headline{font-size: var(--text-xl);font-weight: 600;line-height: 1.2;letter-spacing: -0.01em;margin: 0}.standing-caption{font-size: var(--text-md);line-height: 1.55;max-width: 78ch;margin-top: var(--space-2)}.standing-caption strong{font-weight: 660}.tone-good{color: var(--pos)}.tone-warn{color: var(--warn)}.journey-row{position: relative;height: 1.5em;font-size: var(--text-sm);color: var(--muted)}.journey-row > span{position: absolute;top: 0;white-space: nowrap}.journey-row.fi{color: var(--ink);font-weight: 600}.journey-track{position: relative;height: 8px;margin: var(--space-2) 0;background: var(--grid);border-radius: var(--radius-pill)}.journey-track > i{position: absolute;top: 0;bottom: 0}.journey-done{background: var(--accent);border-radius: var(--radius-pill) 0 0 var(--radius-pill)}.journey-ahead{background: radial-gradient(circle,var(--accent) 1.5px,transparent 2px) 0 50% / 8px 8px repeat-x}.journey-ahead.assumed{background-size: 16px 8px}.journey-spare{background: color-mix(in srgb,var(--pos) 22%,transparent)}.journey-short{background: color-mix(in srgb,var(--warn) 30%,transparent)}.journey-track .tick{position: absolute;top: -4px;bottom: -4px;width: 2px;margin-left: -1px;border-radius: var(--radius-pill);background: var(--ink)}.journey-track .tick.plan{background: var(--goal)}.journey-track .tick.closest{background: var(--muted)}section{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);padding: var(--space-4) var(--space-4);margin-bottom: var(--space-4)}section h2{font-size: var(--text-lg);font-weight: 620;line-height: 1.3;margin: 0 0 var(--space-3)}section p{max-width: 80ch}section h2 a{color: inherit;text-decoration: underline;text-decoration-color: var(--muted);text-decoration-thickness: 2px;text-underline-offset: 4px}section h2 a:hover,section h2 a:focus-visible{text-decoration-color: var(--accent)}section.linked{position: relative;transition: border-color 150ms ease-out}section.linked h2 a::after{content: "";position: absolute;inset: 0;border-radius: var(--radius-md)}section.linked a:not(h2 a){position: relative;z-index: 1}section.linked:has(h2 a:hover),section.linked:has(h2 a:focus-visible){border-color: var(--muted)}section .note{max-width: 80ch;color: var(--muted);font-size: var(--text-xs);margin-top: var(--space-2)}.settings-data{margin-top: var(--space-4)}svg.chart{width: 100%;height: auto;display: block;touch-action: pan-y pinch-zoom}svg.chart-phone{display: none}@media (max-width: 480px){svg.chart-wide{display: none}svg.chart-phone{display: block}}svg .grid-line{stroke: var(--grid);stroke-width: 1}svg .zero-line{stroke: var(--muted);stroke-width: 1.25}svg .axis-label{fill: var(--muted);font-size: var(--text-micro)}svg .axis-label.bar-value{fill: var(--ink);stroke: var(--panel);stroke-width: 3px;paint-order: stroke}svg .series{fill: none;stroke-width: 1.75}svg .series-label{font-size: var(--text-micro);font-weight: 600}svg .area-fill{opacity: 0.13;stroke: none}svg .goal-line{stroke: var(--goal);stroke-width: 1.25}svg .series.reference{stroke-width: 1.25}svg .bar-marker{stroke: var(--warn);stroke-width: 2}svg .baseline-label{stroke: var(--panel);stroke-width: 3px;paint-order: stroke}svg .drift-gate{stroke: var(--accent);stroke-width: 1;opacity: 0.55}svg .drift-zero{stroke: var(--ink);stroke-width: 1.5}svg.alloc-bars{margin-bottom: var(--space-1)}svg .seg-lbl{font-size: var(--text-micro);font-weight: 600}svg .drift-cls{fill: var(--ink);stroke: var(--panel);stroke-width: 3px;paint-order: stroke}svg .drift-val{fill: var(--ink)}.chart-empty{color: var(--muted);font-size: var(--text-sm);padding: var(--space-6) 0;text-align: center}.legend{display: flex;gap: var(--space-4);flex-wrap: wrap;margin-top: var(--space-2);font-size: var(--text-xs);color: var(--muted)}.legend span{display: inline-flex;align-items: center;gap: var(--space-1)}.legend i{width: 14px;height: 3px;border-radius: var(--radius-pill);display: inline-block}.legend i.reference{height: 1.5px}.legend i.bar{width: 10px;height: 10px;border-radius: 2px}.legend .prov-key{margin-right: 0}.overview-main{display: grid;grid-template-columns: minmax(0,3fr) minmax(0,2fr);gap: var(--space-4);align-items: start;margin-bottom: var(--space-4)}.overview-col{display: flex;flex-direction: column;gap: var(--space-4)}.overview-col > section{margin-bottom: 0}@media (max-width: 700px){.overview-main{display: flex;flex-direction: column;align-items: stretch}.overview-col{display: contents}.overview-col.wide > :first-child{order: 1}.overview-col.rail > :first-child{order: 2}.overview-col.wide > :nth-child(2){order: 3}.overview-col.rail > :nth-child(2){order: 4}.overview-col.wide > :nth-child(3){order: 5}.overview-col.rail > :nth-child(3){order: 6}}.nw-level{display: flex;align-items: baseline;flex-wrap: wrap;gap: var(--space-1) var(--space-4)}.nw-figure{font-size: var(--text-xl);font-weight: 650;line-height: 1.1;letter-spacing: -0.01em;font-variant-numeric: tabular-nums}.nw-change{font-size: var(--text-md);color: var(--ink);font-variant-numeric: tabular-nums}.nw-change strong{font-weight: 650}.nw-change.muted{font-size: var(--text-sm);color: var(--muted)}.nw-trend{margin: var(--space-4) 0 var(--space-3)}svg.trend{display: block;width: 100%;height: 56px;overflow: visible}svg.trend path{fill: none;stroke-width: 2;stroke-linejoin: round;stroke-linecap: round;vector-effect: non-scaling-stroke}svg.trend .trend-before{stroke: var(--muted);opacity: 0.55}svg.trend .trend-recent{stroke: var(--accent);stroke-width: 2.5}svg.trend .zero-line{vector-effect: non-scaling-stroke}.nw-trend-axis{display: flex;justify-content: space-between;margin-top: var(--space-1);font-size: var(--text-xs);color: var(--muted);font-variant-numeric: tabular-nums}.mix-bar{display: flex;gap: var(--space-hair);height: 14px}.mix-bar > i{display: block;height: 100%;border-radius: var(--radius-sm)}.mix .legend{gap: var(--space-1) var(--space-4);font-size: var(--text-sm)}.mix .legend b{color: var(--ink);font-weight: 600;font-variant-numeric: tabular-nums}section.next-step .grade-lead + .step{margin-top: var(--space-4);padding-top: var(--space-3);border-top: 1px solid var(--line)}section.next-step .step-label{font-size: var(--text-xs);font-weight: 600;color: var(--muted);letter-spacing: .04em;text-transform: uppercase}section.next-step .step-title{margin-top: var(--space-1);font-size: var(--text-md);font-weight: 650;line-height: 1.25;letter-spacing: -0.01em}section.next-step .step-body{margin: var(--space-2) 0 0;font-size: var(--text-sm);line-height: 1.5}section.linked .explain-btn{position: relative;z-index: 1}.legend i.unitemised{background: repeating-linear-gradient(-45deg,var(--cat-1) 0 2px,var(--panel) 2px 4px);box-shadow: inset 0 0 0 1px var(--cat-1)}svg .unitemised-bar{stroke: var(--cat-1);stroke-width: 1.25;vector-effect: non-scaling-stroke}.cta{display: inline-flex;align-items: center;min-height: 32px;padding: 0 var(--space-3);border: 1px solid var(--accent);border-radius: var(--radius-sm);color: var(--accent);font-size: var(--text-sm);font-weight: 600;text-decoration: none}.cta:hover,.cta:focus-visible{background: color-mix(in srgb,var(--accent) 10%,transparent)}table{width: 100%;border-collapse: collapse;font-size: var(--text-sm)}th,td{text-align: right;padding: var(--space-2) var(--space-2);border-bottom: 1px solid var(--line);font-variant-numeric: tabular-nums}th:first-child,td:first-child{text-align: left}thead th{color: var(--muted);font-weight: 550;font-size: var(--text-xs);text-transform: uppercase;letter-spacing: .03em}tbody tr:last-child td{border-bottom: none}tfoot td{border-top: 2px solid var(--line);border-bottom: none;font-weight: 640}.pos{color: var(--pos)}.neg{color: var(--neg)}.muted{color: var(--muted)}.pill{font-size: var(--text-xs);padding: 1px var(--space-2);border-radius: var(--radius-pill);border: 1px solid var(--line);color: var(--muted)}.pill.act{color: var(--ink);border-color: var(--muted)}.pill.optional{border-style: dashed;font-style: italic}.acct-no-balance{font-size: var(--text-xs);color: var(--warn);margin-top: var(--space-hair)}.acct-no-balance a{color: inherit;text-decoration: underline}.prov-word{font-weight: 650;color: var(--ink);white-space: nowrap}.prov-key{width: 20px;height: 4px;margin-right: var(--space-1);vertical-align: middle;overflow: visible}.prov-key line{stroke: currentColor;stroke-width: 2.5;stroke-linecap: round}.prov-stroke-projected{stroke-dasharray: 0 4.5;stroke-linecap: round}.prov-stroke-assumed{stroke-dasharray: 0 9;stroke-linecap: round}svg .prov-bar{fill-opacity: 0.25;stroke-width: 2}.assumed-note{margin-top: var(--space-2);font-size: var(--text-sm);color: var(--muted);max-width: 62ch}.nw-headline{display: flex;align-items: baseline;gap: var(--space-2);margin-bottom: var(--space-3)}.nw-headline .value{font-size: var(--text-xl);font-weight: 660;font-variant-numeric: tabular-nums}.nw-headline .sub{color: var(--muted);font-size: var(--text-sm)}.range-tabs{display: flex;flex-wrap: wrap;gap: var(--space-1);margin-bottom: var(--space-2)}.range-custom{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2);margin-bottom: var(--space-2);font-size: var(--text-xs);color: var(--muted)}.range-tabs a{font-size: var(--text-xs);padding: var(--space-hair) var(--space-2);border-radius: var(--radius-sm);color: var(--muted);border: 1px solid var(--line);text-decoration: none}.range-tabs a:hover,.range-tabs a:focus-visible{color: var(--ink)}.range-tabs a.active,.range-tabs span.active{color: var(--ink);border-color: var(--accent);font-weight: 600}.range-tabs span{font-size: var(--text-xs);padding: var(--space-hair) var(--space-2);border-radius: var(--radius-sm);border: 1px solid var(--line);color: var(--muted)}.range-tabs span.off:not(.active){opacity: 0.55}.nw-line{display: grid;align-items: center;column-gap: var(--space-2);padding: 0 var(--space-hair);grid-template-columns: [lead] 22px [name] minmax(0,1fr) [spark] 130px [chg] 96px [cagr] 136px [bal] 116px}.nw-line > *{grid-row: 1}.nw-line > .acct-name,.nw-line > .acct-cat-name,.nw-line > .acct-inst-name{grid-column: name}.nw-line > .spark,.nw-line > .spark-empty{grid-column: spark}.nw-line > .acct-chg{grid-column: chg;text-align: right;font-size: var(--text-xs)}.nw-line > .acct-cagr{grid-column: cagr;text-align: right;font-size: var(--text-xs);color: var(--muted)}.nw-line > .acct-bal{grid-column: bal}.nw-line > .acct-dot{grid-column: lead;justify-self: end}summary.nw-line::before{grid-area: 1 / lead;justify-self: start;color: var(--muted);font-size: var(--text-micro)}@media (max-width: 640px){.nw-line{grid-template-columns: [lead] 22px [name] minmax(0,1fr) [bal] 92px}.nw-line > .spark,.nw-line > .spark-empty,.nw-line > .acct-cagr{display: none}.nw-line > .acct-chg{grid-area: 2 / name;text-align: left}.nw-line > .acct-chg:empty{display: none}}.acct-bal{font-variant-numeric: tabular-nums;text-align: right}.acct-chg,.acct-cagr{font-variant-numeric: tabular-nums}.nw-selectall,.acct-cat-wrap,.acct-row-wrap,.acct-inst-head{display: grid;grid-template-columns: var(--space-4) minmax(0,1fr);align-items: start}.nw-selectall,.acct-inst-head{align-items: center}.nw-selectall{padding-bottom: var(--space-2);margin-bottom: var(--space-1);border-bottom: 1px solid var(--line);font-size: var(--text-xs);font-weight: 620}.acct-groups{display: flex;flex-direction: column;gap: var(--space-1)}.acct-cat-wrap{padding-left: var(--space-4);border-bottom: 1px solid var(--line)}.acct-inst-group > .acct-row-wrap{padding-left: var(--space-4)}.nw-check{margin: 0;cursor: pointer}.nw-check:disabled{opacity: 0.4;cursor: not-allowed}.acct-cat-wrap > .nw-check{margin-top: var(--space-3)}.acct-row-wrap > .nw-check{margin-top: var(--space-3)}.acct-cat > summary{padding-block: var(--space-2);cursor: pointer;font-weight: 620;list-style: none}.acct-cat > summary::-webkit-details-marker{display: none}.acct-cat > summary::before{content: "▾"}.acct-cat:not([open]) > summary::before{content: "▸"}.acct-dot{width: 9px;height: 9px;border-radius: var(--radius-pill)}.acct-inst{padding-block: var(--space-1) var(--space-hair);font-size: var(--text-xs);color: var(--muted);font-weight: 600;text-transform: uppercase;letter-spacing: .03em}.acct-row > summary{padding-block: var(--space-1);cursor: pointer;list-style: none;font-size: var(--text-sm)}.acct-row > summary::-webkit-details-marker{display: none}.acct-row > summary::before{content: "▸"}.acct-row[open] > summary::before{content: "▾"}.acct-row > summary:hover,.acct-row > summary:focus-visible{color: var(--accent)}.acct-row .spark{opacity: 0.9}.acct-row{container-type: inline-size}.acct-figures-wrap{max-height: 240px;overflow: hidden auto;margin: var(--space-hair) calc(-1 * var(--space-4)) var(--space-2) 0}.acct-figures{width: 100cqw;table-layout: fixed;font-size: var(--text-xs)}.acct-figures td,.acct-figures th{padding: var(--space-hair) var(--space-hair) var(--space-hair) var(--space-8)}.acct-figures-wrap.pending{padding: var(--space-1) 0 var(--space-1) var(--space-8);font-size: var(--text-xs)}.acct-net{margin-top: var(--space-3);padding: var(--space-2) 0 0 var(--space-4);border-top: 2px solid var(--line);font-weight: 660;font-variant-numeric: tabular-nums}.acct-row.closed > summary .acct-name,.acct-inst.closed .acct-inst-name,.acct-cat.closed > summary .acct-cat-name{font-style: italic;color: var(--muted)}.acct-row-wrap.closed{opacity: 0.72}.acct-row-wrap.closed .spark{opacity: 0.4}table tbody tr.closed,table tbody tr.muted-row{opacity: 0.72;font-style: italic;color: var(--muted)}svg.spark{display: block}.acct-cat-actions{padding: var(--space-hair) 0 var(--space-2) var(--space-8)}a.acct-focus{font-size: var(--text-xs);color: var(--accent);text-decoration: none}a.acct-focus:hover,a.acct-focus:focus-visible{text-decoration: underline}.acct-row > a.acct-focus{display: inline-block;margin: 0 0 var(--space-2) var(--space-8)}.nw-focus{display: flex;align-items: center;gap: var(--space-3);margin-bottom: var(--space-2);font-size: var(--text-xs);color: var(--muted)}.nw-focus a{color: var(--accent);text-decoration: none}.nw-focus a:hover,.nw-focus a:focus-visible{text-decoration: underline}#nw-accounts.focused .nw-check{opacity: 0.3}.nw-paused{display: flex;flex-wrap: wrap;align-items: baseline;gap: var(--space-1);margin-bottom: var(--space-2);padding: var(--space-2);border-radius: var(--radius-sm);border: 1px solid var(--line);font-size: var(--text-xs);color: var(--muted)}.nw-paused.idle{border-color: transparent}@media (max-width: 640px){.nw-paused{min-height: calc(3lh + var(--space-4))}}.nw-paused a{color: var(--accent);text-decoration: none}.nw-paused a:hover,.nw-paused a:focus-visible{text-decoration: underline}.acct-row-wrap.on-chart,.acct-cat-wrap.on-chart{box-shadow: inset 3px 0 0 var(--accent)}.acct-row-wrap.on-chart > .acct-row > summary .acct-name{color: var(--accent);font-weight: 600}.acct-row-wrap.on-chart .nw-check,.acct-cat-wrap.on-chart .nw-check{opacity: 1}.entry [data-balance]{width: 100%;max-width: 160px;text-align: right;font-variant-numeric: tabular-nums}.entry,table.settings.accounts,table.ledger{table-layout: fixed}.stack col + col{width: 11rem}.entry-note > span{display: block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.live-nw{color: var(--accent)}.entry-section,.entry-total,.journey{margin-top: var(--space-6)}.entry-section-head{display: flex;align-items: baseline;gap: var(--space-3)}.entry-section-head > :first-child{flex: 1;overflow-wrap: anywhere}.entry-state{width: 8rem;text-align: right;font-size: var(--text-sm);font-weight: 400}.entry-total{font-weight: 600}.entry .by-fund-row > td{padding-top: 0;grid-column: 1 / -1}.by-fund > summary{cursor: pointer;font-size: var(--text-xs);color: var(--accent);width: max-content}.by-fund[open] > summary{margin-bottom: var(--space-2)}.entry [data-balance][readonly]{background: transparent;border-style: dashed}.funds-check{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-1) var(--space-2);min-height: 24px;margin: 0 0 var(--space-1);font-size: var(--text-xs)}@media (max-width: 640px){.stack,.stack > *{display: block}.stack > colgroup{display: none}.stack > * > tr{display: grid;grid: auto / repeat(3,minmax(0,1fr))}.stack > * > tr > :first-child:not(:only-child){grid-column: 1 / -1;padding-bottom: 0;border: 0}.funds-check{min-height: calc(1lh + 24px + var(--space-1))}}.actions{display: flex;gap: var(--space-2);margin-top: var(--space-3);align-items: center}.actions button,.actions a,.month-control button,.cash-flow-bulk-actions button{appearance: none;font: inherit;font-size: var(--text-sm);font-weight: 550;cursor: pointer;padding: var(--space-2) var(--space-3);border-radius: var(--radius-sm);border: 1px solid var(--accent);background: var(--accent);color: var(--on-accent);text-decoration: none;min-height: 32px}.actions .ghost,.actions button.active,.month-control .ghost{background: none;color: var(--ink);border-color: var(--line)}.cash-flow-bulk-actions .ghost{background: var(--panel);color: var(--ink);border-color: var(--field-border)}.actions button:disabled{opacity: .5;cursor: default}.warn{color: var(--warn);font-size: var(--text-sm);margin: var(--space-1) 0}.error{color: var(--neg);font-size: var(--text-sm);margin: var(--space-1) 0}table.settings{width: 100%;border-collapse: collapse}table.settings td{padding: var(--space-2) 0;border-top: 1px solid var(--line);vertical-align: top}table.settings tr:first-child td{border-top: none}.s-label{font-size: var(--text-sm);font-weight: 550}.s-help{color: var(--muted);font-size: var(--text-xs);font-weight: 400;margin-top: var(--space-hair);max-width: 46ch}table.settings:has(td.s-label){table-layout: fixed}table.settings td.s-label{width: 20rem;padding-right: var(--space-6)}.s-current{width: 11rem;font-size: var(--text-sm);font-variant-numeric: tabular-nums;white-space: nowrap;padding-right: var(--space-6);color: var(--muted)}.s-cur{display: grid;grid-template-columns: minmax(0,1fr) 5em;column-gap: var(--space-1)}.s-cur > :first-child{text-align: right}.s-cur > .s-help{grid-column: 1 / -1;white-space: normal;text-align: right}.s-input,.s-choice{text-align: left}.s-radio{display: grid;grid-template-columns: auto 1fr;gap: var(--space-hair) var(--space-2);padding: var(--space-hair) 0}.s-radio input{margin: 0;grid-row: 1;align-self: center}.s-radio-label{font-size: var(--text-sm);grid-column: 2}.s-radio-help{color: var(--muted);font-size: var(--text-xs);grid-column: 2}.s-field{display: inline-flex;align-items: center;gap: var(--space-hair)}.s-field::before,.s-field::after{content: "";width: 1ch;color: var(--muted);font-size: var(--text-xs)}.s-field.s-pct::after,.s-field.s-rate::after{content: "%"}.s-field.s-money::before{content: "$"}.s-field input{width: 96px;text-align: right;font-variant-numeric: tabular-nums}.fee-toggle{display: inline-flex;align-items: center;gap: var(--space-1);cursor: pointer}.fee-toggle:has(input[type="checkbox"]:not(:checked)) .s-field{opacity: 0.45}.text-input{font-size: var(--text-base);width: 260px}textarea.text-input{display: block;width: 100%;max-width: 480px;resize: vertical}.note-label{display: block;margin: var(--space-3) 0 var(--space-1)}.income-section h3{font-size: var(--text-sm);font-weight: 600;margin: var(--space-4) 0 var(--space-1)}.income-job{margin: var(--space-1) 0 var(--space-3) var(--space-4);padding-left: var(--space-3);border-left: 2px solid var(--line)}.job-head{display: flex;flex-wrap: wrap;gap: var(--space-2);align-items: flex-end;margin-bottom: var(--space-1)}.job-head .job-field{display: flex;flex-direction: column;gap: var(--space-hair);font-size: var(--text-xs);color: var(--muted)}.job-head .job-field-employer input{width: 170px}.job-head .job-field-title input{width: 250px}.job-head .job-field-periods input{width: 60px;text-align: right}table.settings.income td,table.settings.income th{padding: var(--space-1) var(--space-2) var(--space-1) 0;border-top: none;vertical-align: middle}table.settings.income th{font-size: var(--text-xs);font-weight: 500;color: var(--muted);text-align: left}table.settings.income .s-input{width: auto;text-align: left}table.settings.income td > input{width: 128px}table.settings.income .s-field input{width: 90px}.year-cell{display: inline-flex;align-items: baseline;gap: var(--space-1)}.year-cell .yr{font-variant-numeric: tabular-nums;font-size: var(--text-sm);min-width: 34px}.year-cell .yr-input{width: 56px}button.row-del{display: inline-flex;align-items: center;justify-content: center;min-width: 24px;min-height: 24px;border: none;background: none;padding: 0;line-height: 1;cursor: pointer;font-size: var(--text-base);color: var(--muted)}button.row-del:hover,button.row-del:focus-visible{color: var(--neg)}table.settings.income td.total-comp{font-weight: 600;font-variant-numeric: tabular-nums;white-space: nowrap;padding-left: var(--space-1)}.income-scroll{overflow-x: auto}:is(.table-wide,.table-scroll,.income-scroll){background: linear-gradient(to left,var(--panel) 40%,transparent) right / var(--space-8) 100% no-repeat local,radial-gradient(farthest-side at 100% 50%,color-mix(in srgb,var(--ink) 18%,transparent),transparent) right / var(--space-3) 100% no-repeat scroll}:is(.table-wide,.table-scroll,.income-scroll) > table > * > tr > :first-child{position: sticky;left: 0;z-index: 1;background: var(--panel)}table.pay-grid{table-layout: fixed;min-width: 640px}.pay-grid .c-year{width: 6rem}.pay-grid .c-money{width: 9.5rem}.pay-grid .c-total{width: 7.5rem}table.settings.income :is(th.num,td.total-comp){text-align: right}table.settings.income td > input[aria-label^="Note"]{width: 100%}table.earnings-grid{table-layout: fixed;width: min(26rem,100%)}.earnings-grid .c-year{width: 5rem}.earnings-grid .c-amt{width: 11rem}.earnings-grid :is(th,td){text-align: left}.add-toggle{font: inherit;font-size: var(--text-xs);padding: var(--space-hair) var(--space-1);margin: var(--space-hair) 0 var(--space-2) var(--space-4);cursor: pointer;background: none;color: var(--accent);border: 1px dashed var(--line);border-radius: var(--radius-sm)}.add-target[hidden]{display: none}.acct-manual[hidden]{display: table-row;visibility: hidden}.acct-derived{font-size: var(--text-sm);color: var(--muted)}table.settings.accounts td{vertical-align: middle}.accounts .c-sub{width: 15rem}.accounts .c-owner{width: 12rem}.accounts .c-act{width: 11rem}table.contrib-year{min-width: 70rem}.contrib-year .c-money{width: 9.5rem}.contrib-year .c-limit{width: 8.5rem}.contrib-year .c-note{width: 10rem}.contrib-year .c-total{width: 8.5rem}.contrib-year .c-del{width: 2.5rem}table.contrib-year :is(th,td){text-align: left;vertical-align: baseline}table.contrib-year thead th{vertical-align: bottom}table.contrib-year :is(th,td).num{text-align: right}.contrib-year td.c-acct strong{font-size: var(--text-sm)}.contrib-year .s-field{display: flex}.contrib-year .s-field input{flex: 1;min-width: 0;width: 100%;max-width: none}.contrib-year td > input{width: 100%;max-width: none;text-align: left}.contrib-year input::placeholder{color: var(--muted)}.contrib-year td.c-limit{font-size: var(--text-sm)}.contrib-year td.c-limit .s-help.warn{color: var(--warn);margin: 0}.contrib-owner th{font-size: var(--text-sm);font-weight: 600;color: var(--ink);padding-top: var(--space-4);text-transform: none;letter-spacing: 0}.contrib-dated{margin-top: var(--space-2)}table.contrib-history{width: auto}.contrib-history td:first-child{white-space: nowrap;padding-right: var(--space-4)}.contrib-history a{color: inherit;text-decoration: none}.contrib-history a:hover,.contrib-history a:focus-visible{color: var(--accent);text-decoration: underline}.contrib-history th.on a{color: var(--accent);font-weight: 650}.contrib-grid{margin: var(--space-hair) 0 var(--space-2)}.contrib-grid > summary{cursor: pointer;list-style: none;font-size: var(--text-xs);color: var(--muted);padding: var(--space-hair) var(--space-hair) var(--space-hair) var(--space-3);position: relative}.contrib-grid > summary::-webkit-details-marker{display: none}.contrib-grid > summary::before{content: "▸";position: absolute;left: 0;font-size: var(--text-micro);color: var(--muted)}.contrib-grid[open] > summary::before{content: "▾"}.contrib-grid > summary:hover,.contrib-grid > summary:focus-visible{color: var(--accent)}.contrib-grid > .income-scroll{margin-top: var(--space-1)}.contrib-grid > button.ghost.small{margin: var(--space-1) 0 0 var(--space-3)}.pension-list{list-style: none;margin: var(--space-1) 0 var(--space-2);padding: 0}.record{padding-block: var(--space-hair);font-size: var(--text-sm)}.record > details > summary{cursor: pointer;list-style: none;position: relative;padding-left: var(--space-3)}.record > details > summary::-webkit-details-marker{display: none}.record > details > summary::before{content: "▸";position: absolute;left: 0;font-size: var(--text-micro);color: var(--muted)}.record > details[open] > summary::before{content: "▾"}.record > details > summary:hover,.record > details > summary:focus-visible{color: var(--accent)}.record > details > form{margin: var(--space-1) 0 var(--space-2) var(--space-3)}p.contrib-current{font-size: var(--text-sm);margin: var(--space-hair) 0 var(--space-1)}table.settings.people td,table.settings.people th,table.settings.accounts td,table.settings.accounts th,table.settings.holdings td,table.settings.holdings th{padding: var(--space-1) var(--space-2) var(--space-1) 0;border-top: none;text-align: left}table.settings.people th,table.settings.accounts th,table.settings.holdings th{font-size: var(--text-xs);font-weight: 500;color: var(--muted)}table.settings.people td > input{width: 160px}table.settings.holdings td > input[name$="-ticker"]{width: 80px}table.settings.holdings td > input[name$="-name"]{width: 180px}table.settings.holdings td > input[name$="-value"]{width: 110px;text-align: right}.person-age{margin-left: var(--space-2);font-size: var(--text-xs);color: var(--muted);white-space: nowrap}button.ghost.small,a.ghost.small,summary.ghost.small{display: inline-flex;align-items: center;min-height: 24px;font: inherit;font-size: var(--text-xs);padding: var(--space-hair) var(--space-2);cursor: pointer;background: none;color: var(--muted);text-decoration: none;border: 1px solid var(--line);border-radius: var(--radius-sm)}button.ghost.small:hover,button.ghost.small:focus-visible,summary.ghost.small:hover,summary.ghost.small:focus-visible{color: var(--neg);border-color: var(--neg)}summary.ghost.small{list-style: none}summary.ghost.small::-webkit-details-marker{display: none}a.ghost.small:hover,a.ghost.small:focus-visible{color: var(--accent);border-color: var(--accent)}.acct-actions{display: flex;flex-direction: row;align-items: center;gap: var(--space-1)}.acct-actions .close-action{border-color: transparent}.accounts-group{margin-bottom: var(--space-4)}.accounts-group h3{font-size: var(--text-sm);font-weight: 600;margin: 0 0 var(--space-1)}.accounts-group table.settings.accounts{margin-bottom: var(--space-1)}dialog.preview-modal{border: none;padding: 0;background: transparent;color: inherit;max-width: 480px;width: calc(100% - 32px);margin: auto}dialog.preview-modal::backdrop{background: rgba(0,0,0,0.5)}dialog.preview-modal section{margin-bottom: 0}dialog#cash-flow-preview{max-width: 960px;margin-top: 8vh}.preview-rows{max-height: 55vh;overflow: auto}.preview-rows th{position: sticky;top: 0;background: var(--panel)}.preview-rows :is(th,td){text-align: left}.preview-rows :is(th,td).num{text-align: right}.month-controls{display: flex;flex-wrap: wrap;gap: var(--space-3) var(--space-6)}.month-control{display: flex;align-items: flex-end;gap: var(--space-2)}.month-control label,.holdings-asof{display: flex;flex-direction: column;gap: var(--space-1);font-size: var(--text-xs);color: var(--muted)}.month-control select{min-width: 15em;min-height: 32px}.month-controls-help{margin: var(--space-2) 0 var(--space-3);max-width: 70ch}.year-picker{display: flex;flex-direction: column;gap: var(--space-1)}.year-picker-label{font-size: var(--text-xs);color: var(--muted)}.year-tabs{display: flex;flex-wrap: wrap;gap: var(--space-1)}.year-tabs :is(a,.year-earlier){display: inline-flex;align-items: center;justify-content: center;gap: var(--space-1);min-height: 32px;margin: 0;padding: 0 var(--space-3);font: inherit;font-size: var(--text-sm);font-variant-numeric: tabular-nums;border: 1px solid var(--line);border-radius: var(--radius-sm);background: none;color: var(--muted);text-decoration: none;cursor: pointer}.year-tabs :is(a,.year-earlier):hover,.year-tabs :is(a,.year-earlier):focus-visible{color: var(--ink)}.year-tabs a.active{color: var(--ink);border-color: var(--accent);box-shadow: inset 0 0 0 1px var(--accent)}.year-earlier{min-width: 7em;anchor-name: --year-earlier}.year-earlier > :is(.yt-wide,.yt-narrow){display: inline-flex;align-items: center;gap: var(--space-1)}.year-earlier .caret{font-size: var(--text-xs)}.year-list{width: min(24em,calc(100vw - 32px))}@supports (position-area: block-end){.year-list{position-anchor: --year-earlier;position-area: block-end span-inline-end;position-try-fallbacks: flip-block;inset: auto;margin: var(--space-1) 0}}.year-list-years{display: grid;grid-template-columns: repeat(auto-fill,minmax(5.5em,1fr));gap: var(--space-1)}@media (min-width: 760px){.year-tabs .yt-narrow{display: none}.year-tabs .year-earlier.active-wide{color: var(--ink);border-color: var(--accent);box-shadow: inset 0 0 0 1px var(--accent)}}@media (max-width: 759px){.year-tabs .yt-wide{display: none}.year-tabs .year-earlier.active-narrow{color: var(--ink);border-color: var(--accent);box-shadow: inset 0 0 0 1px var(--accent)}}@media (max-width: 640px){.year-tabs :is(a,.year-earlier){padding: 0 var(--space-2)}}.year-mark{flex: none;box-sizing: border-box;width: 9px;height: 9px;border-radius: var(--radius-pill);border: 1.5px solid var(--accent)}.year-mark.full{background: var(--accent)}.year-mark.part{background: linear-gradient(90deg,var(--accent) 50%,transparent 50%)}.year-key{display: flex;flex-wrap: wrap;gap: var(--space-1) var(--space-3);margin: 0;font-size: var(--text-xs);color: var(--muted)}.year-key > span{display: inline-flex;align-items: center;gap: var(--space-1)}.remove-toggle{display: inline-flex;align-items: center;gap: var(--space-1);font-size: var(--text-xs);color: var(--muted);cursor: pointer}tr:has(.remove-toggle input:checked) :is(input:not([type=checkbox]),select){opacity: 0.45;text-decoration: line-through}table.settings.holdings td > .s-pct input{width: 64px}.holdings-asof{margin-bottom: var(--space-2);align-items: flex-start}.holdings-asof input{width: 12em}#toast{position: fixed;left: 50%;bottom: 24px;transform: translateX(-50%);z-index: 50;pointer-events: none;max-width: calc(100% - 32px)}#toast .toast-msg{background: var(--ink);color: var(--bg);border-radius: var(--radius-sm);padding: var(--space-2) var(--space-4);font-size: var(--text-sm);box-shadow: var(--shadow-float);animation: toast-out 4s ease-in forwards}@keyframes toast-out{0%,80%{opacity: 1}100%{opacity: 0;visibility: hidden}}@media (prefers-reduced-motion: reduce){#toast .toast-msg{animation-timing-function: steps(1,end)}}.phone-only{display: none}@media (max-width: 640px){.phone-only{display: inline}table.settings,table.settings > tbody,table.assets-table,table.assets-table > tbody,table.contrib-year,table.contrib-year > :is(tbody,tfoot){display: block;min-width: 0}:is(table.settings,table.contrib-year,table.assets-table) > colgroup,:is(table.contrib-year,table.assets-table) > thead{display: none}:is(table.settings,table.contrib-year,table.assets-table) td{display: block;border-top: none;border-bottom: none;padding: var(--space-1) 0}:is(table.settings,table.contrib-year,table.assets-table) tr{display: block;border-top: 1px solid var(--line);padding: var(--space-2) 0}table.settings td.s-label,.s-current{width: auto;padding-right: 0}.s-cur{display: flex;gap: var(--space-1)}:is(table.settings,table.contrib-year,table.assets-table) td[data-label]::before{content: attr(data-label);display: block;font-size: var(--text-xs);color: var(--muted)}table.settings.income thead,table.settings.people thead,table.settings.accounts thead,table.settings.holdings thead,table.settings.debt-own-order thead{display: none}:is(table.settings,table.contrib-year) td :is(input:not([type="checkbox"],[type="radio"]),select){width: 100%;max-width: none}table.contrib-year th{display: block}table.contrib-year td:empty{display: none}table.contrib-year tr{position: relative}table.contrib-year tbody.contrib-owner + tbody > tr{border-top: none}table.contrib-year td.c-acct{padding-right: var(--space-8)}table.contrib-year td.c-del{position: absolute;top: var(--space-2);right: 0}:is(table.contrib-year,table.assets-table) td.num,table.debt-own-order td{text-align: left}table.contrib-year tfoot tr,table.assets-table tr.subtotal{display: flex;justify-content: space-between}#cash-flow-filters .cash-flow-fields{display: grid;grid-template-columns: 1fr 1fr}#cash-flow-filters .cash-flow-field :is(input,select){width: 100%}#cash-flow-filters .cash-flow-field-wide{grid-column: 1 / -1}}svg .hit-slot{fill: transparent}svg .hit:hover .hit-slot:hover{fill: var(--ink);fill-opacity: 0.04}svg .hit-slot.clickable{cursor: pointer}svg .slot-selected{fill: var(--ink);fill-opacity: 0.07}.tip{position: fixed;left: 0;top: 0;z-index: 20;pointer-events: none;background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-sm);padding: var(--space-2) var(--space-2);font-size: var(--text-xs);line-height: 1.5;white-space: pre-line;font-variant-numeric: tabular-nums;box-shadow: var(--shadow-float);max-width: 280px;text-wrap: pretty}.table-view{margin-top: var(--space-2)}.table-view summary{cursor: pointer;color: var(--muted);font-size: var(--text-xs);padding: var(--space-1) 0}.table-view summary:hover,.table-view summary:focus-visible{color: var(--ink)}.table-scroll{overflow-x: auto;max-height: 320px;overflow-y: auto;margin-top: var(--space-1)}.table-view table{font-size: var(--text-xs)}.table-view td{font-variant-numeric: tabular-nums}.part-n{display: inline-grid;place-items: center;width: 1.4em;height: 1.4em;border-radius: var(--radius-pill);background: var(--ink);color: var(--bg);font-size: var(--text-xs);font-weight: 600}ol.part-key{padding-left: 1.4em}ol.part-key li{margin-bottom: var(--space-1)}.hero{display: flex;align-items: baseline;gap: var(--space-3);flex-wrap: wrap}.hero-figure{font-size: var(--text-hero);font-weight: 650;line-height: 1.05;letter-spacing: -0.02em}.hero-figure.status{font-size: var(--text-xl)}.hero-figure.compact{font-size: var(--text-xl)}.hero-figure.secondary{font-size: var(--text-lg)}.status-headline{font-size: var(--text-lg);font-weight: 650;line-height: 1.25;letter-spacing: -0.01em}.grade-lead{display: flex;align-items: center;gap: var(--space-4)}.grade-words{display: grid;gap: var(--space-1);min-width: 0}.grade-head{display: flex;align-items: center;gap: var(--space-2);flex-wrap: wrap}.grade-chip{display: inline-flex;flex: none;align-items: center;justify-content: center;min-width: 64px;height: 64px;padding: 0 var(--space-2);border-radius: var(--radius-md);font-size: var(--text-xl);font-weight: 700;letter-spacing: .01em;border: 2px solid var(--line);color: var(--muted);background: color-mix(in srgb,currentColor 7%,var(--panel))}.grade-chip.pos{color: var(--pos);border-color: color-mix(in srgb,var(--pos) 40%,var(--line))}.grade-chip.warn{color: var(--warn);border-color: color-mix(in srgb,var(--warn) 40%,var(--line))}.grade-chip.neg{color: var(--neg);border-color: color-mix(in srgb,var(--neg) 40%,var(--line))}.hero-caption{color: var(--muted);font-size: var(--text-sm);max-width: 46ch}.hero-caption.lines{max-width: none}.figure-pair{display: flex;align-items: baseline;gap: var(--space-2);flex-wrap: wrap}.figure-rate{font-size: var(--text-md);font-weight: 600;color: var(--muted)}.best-step{display: flex;flex-wrap: wrap;align-items: baseline;gap: var(--space-1) var(--space-2);margin-top: var(--space-3)}.best-step-label{color: var(--muted);font-size: var(--text-sm)}.best-step a,.best-step > span:last-child{font-size: var(--text-md);font-weight: 650}.unlock-list{list-style: none;margin: 0;padding: 0;display: grid;gap: var(--space-3)}.unlock-list a,.unlock-list strong{font-weight: 600}.unlock-list .sub{color: var(--muted);font-size: var(--text-sm);margin-top: var(--space-hair)}.card h3.label{margin: 0;font-weight: inherit}.card h3.label .explain-btn{width: 18px;height: 18px;margin-left: var(--space-1)}.meter{margin-top: var(--space-3)}.meter-track{position: relative;height: 12px;border-radius: var(--radius-pill);background: var(--grid);overflow: visible}.meter-track > i{display: block;height: 100%;border-radius: var(--radius-pill);background: var(--goal)}.meter-track.tone-good > i{background: var(--pos)}.meter-track.tone-warn > i{background: var(--warn)}.meter-track.tone-bad > i{background: var(--neg)}.meter-target{position: absolute;top: -4px;width: 2px;height: 20px;background: var(--ink);opacity: 0.45;border-radius: var(--radius-pill)}.meter-verdict{margin-top: var(--space-2);font-size: var(--text-sm);font-weight: 600}.meter-verdict.tone-good{color: var(--pos)}.meter-verdict.tone-warn{color: var(--warn)}.meter-verdict.tone-bad{color: var(--neg)}svg .fan{stroke: none}svg .fan-outer{fill: var(--cat-1);opacity: 0.16}svg .fan-inner{fill: var(--cat-1);opacity: 0.30}svg .fan-median{fill: none;stroke: var(--cat-1);stroke-width: 2}svg .fan-clip{stroke: var(--cat-1);stroke-width: 2}svg .stack-band{stroke: var(--panel);stroke-width: 2}svg .stack-band.no-seam{stroke: none}svg .band-label{font-size: var(--text-micro);font-weight: 600}svg .axis-label.end-label{fill: var(--ink);font-weight: 600}.explain-btn{display: inline-flex;align-items: center;justify-content: center;width: 24px;height: 24px;margin-left: var(--space-2);vertical-align: text-bottom;border: 1px solid var(--line);border-radius: var(--radius-pill);background: var(--panel);color: var(--muted);font: inherit;font-size: var(--text-xs);font-weight: 600;cursor: pointer}.explain-btn:hover,.explain-btn:focus-visible{color: var(--ink);border-color: var(--accent)}.explain,.year-list{max-width: min(460px,calc(100vw - 32px));padding: var(--space-4) var(--space-6);border: 1px solid var(--line);border-radius: var(--radius-md);background: var(--panel);color: var(--ink);box-shadow: var(--shadow-float);font-size: var(--text-sm);line-height: 1.55}.explain h3,.year-list h3{margin: 0 0 var(--space-2);font-size: var(--text-base)}.explain p{margin: 0 0 var(--space-2)}.explain::backdrop{background: rgb(0 0 0 / 12%)}.explain .waterfall{margin: var(--space-2) 0 var(--space-3)}.explain .mix{margin: var(--space-2) 0 var(--space-3)}.chart-headline{font-size: var(--text-md);line-height: 1.5;margin: 0 0 var(--space-3);max-width: 80ch}.hero ~ .chart-headline{margin-top: var(--space-4)}.axis-caption{color: var(--muted);font-size: var(--text-xs);text-align: center;margin-top: var(--space-1)}svg .odds-line{stroke: var(--cat-1);stroke-width: 2.5}svg .odds-mark.plan{fill: var(--panel);stroke: var(--ink);stroke-width: 2}svg .odds-mark.reached{fill: var(--cat-1);stroke: var(--panel);stroke-width: 2}svg .odds-label{fill: var(--ink)}svg .cap-line{stroke: var(--warn);stroke-width: 1.5}svg .step-fill{fill: var(--cat-1)}svg .step-line{stroke: var(--cat-1);stroke-width: 2}svg .retire-guide{stroke: var(--muted)}.hbars{display: grid;grid-template-columns: 190px 1fr max-content;gap: var(--space-2)}.hbar{display: grid;grid-column: 1 / -1;grid-template-columns: subgrid;align-items: center}.hbar-label{font-size: var(--text-xs);color: var(--muted)}.hbar-track{height: 10px;border-radius: var(--radius-pill);background: var(--grid)}.hbar-track > i{display: block;height: 100%;border-radius: var(--radius-pill);background: var(--cat-1);opacity: 0.55}.hbar.is-highlight .hbar-track > i{opacity: 1}.hbar.is-highlight .hbar-label{color: var(--ink);font-weight: 600}.hbar-value{font-size: var(--text-xs);text-align: right;font-variant-numeric: tabular-nums}a.hbar{color: inherit;text-decoration: none;border-radius: var(--radius-sm);padding: var(--space-hair) var(--space-1);margin: calc(-1 * var(--space-hair)) calc(-1 * var(--space-1))}a.hbar:hover,a.hbar:focus-visible{background: var(--grid)}a.hbar:hover .hbar-label,a.hbar:focus-visible .hbar-label{color: var(--ink)}.reference-figure{display: flex;gap: var(--space-6);flex-wrap: wrap;margin-top: var(--space-1)}.reference-figure > div{min-width: 150px}.reference-figure .label{color: var(--muted);font-size: var(--text-xs)}.reference-figure .value{font-size: var(--text-lg);font-weight: 600;margin-top: var(--space-hair)}.reference-figure .sub{color: var(--muted);font-size: var(--text-xs);margin-top: var(--space-hair)}.assumption-grid{display: grid;grid-template-columns: repeat(3,1fr);gap: var(--space-2) var(--space-4)}@media (max-width: 700px){.assumption-grid{grid-template-columns: repeat(2,1fr)}}.assumption-grid .label{color: var(--muted);font-size: var(--text-xs)}.cash-flow-fields{display: flex;flex-wrap: wrap;gap: var(--space-2);align-items: flex-end;margin-bottom: var(--space-2)}.cash-flow-field{display: flex;flex-direction: column;gap: var(--space-hair);font-size: var(--text-xs);color: var(--muted)}.cash-flow-field input[name="amount"]{width: 90px;text-align: right}.cash-flow-field select[name="category_select"]{width: 160px}.category-picker{display: inline-flex;flex-wrap: wrap;align-items: center;gap: var(--space-2)}.category-new{display: inline-flex;align-items: center;gap: var(--space-2)}.category-new[hidden]{display: none}.cash-flow-category-new{width: 180px}.cash-flow-category-parent{width: 150px}.cash-flow-field-wide input{width: 220px}.cash-flow-field-checkbox{display: flex;flex-direction: row;align-items: center;gap: var(--space-1);font-size: var(--text-xs);color: var(--muted);margin-bottom: var(--space-2)}.cash-flow-account-pick{display: block;margin: var(--space-2) 0;font-size: var(--text-xs);color: var(--muted)}.cash-flow-account-pick select{display: block;margin-top: var(--space-1);max-width: 100%}.cash-flow-account-pick .s-help{display: block;margin-top: var(--space-1)}.cash-flow-csv{display: block;width: 100%;max-width: 560px;resize: vertical;padding: var(--space-2)}.cash-flow-file .actions{margin-top: 0}.cash-flow-file-status{min-height: 2lh;overflow-wrap: anywhere}.cash-flow-imports{margin-top: var(--space-4)}.cash-flow-import-list{list-style: none;padding: 0;margin: var(--space-2) 0}.cash-flow-import-list li{display: flex;justify-content: space-between;align-items: center;gap: var(--space-2);padding: var(--space-2) 0;border-top: 1px solid var(--line)}.cash-flow-import-list li > div{min-width: 0;overflow-wrap: anywhere}.cash-flow-undone{visibility: hidden}.cash-flow-tab-radio{position: absolute;opacity: 0;pointer-events: none}.cash-flow-tabs{display: flex;gap: var(--space-1);border-bottom: 1px solid var(--line);margin-bottom: var(--space-3)}.cash-flow-tab{padding: var(--space-1) var(--space-3);cursor: pointer;font-size: var(--text-sm);color: var(--muted);border-bottom: 2px solid transparent;margin-bottom: -1px}#cash-flow-tab-single:focus-visible ~ .cash-flow-tabs label[for="cash-flow-tab-single"],#cash-flow-tab-csv:focus-visible ~ .cash-flow-tabs label[for="cash-flow-tab-csv"]{outline: 2px solid var(--accent);outline-offset: 2px}.cash-flow-tab-panel{display: none}#cash-flow-tab-single:checked ~ #cash-flow-panel-single,#cash-flow-tab-csv:checked ~ #cash-flow-panel-csv{display: block}#cash-flow-tab-single:checked ~ .cash-flow-tabs label[for="cash-flow-tab-single"],#cash-flow-tab-csv:checked ~ .cash-flow-tabs label[for="cash-flow-tab-csv"]{color: var(--ink);border-bottom-color: var(--ink)}.sort-link{color: inherit;text-decoration: none;white-space: nowrap}.sort-link:hover,.sort-link:focus-visible{text-decoration: underline}.sort-link.active{color: var(--ink);font-weight: 620}.cash-flow-pagination{display: grid;grid-template-columns: 5em minmax(14em,auto) 5em 1fr;align-items: center;gap: var(--space-2) var(--space-4);margin-top: var(--space-2)}.pg-count{text-align: center;margin: 0}.pg-next{text-align: right}.cash-flow-page-size{justify-self: end}@media (max-width: 640px){.cash-flow-pagination{grid-template-columns: 5em 1fr 5em}.cash-flow-page-size{grid-column: 1 / -1;justify-self: start}}.cash-flow-pagination .muted{color: var(--muted)}.cash-flow-page-size{display: flex;align-items: center;gap: var(--space-1)}.cash-flow-page-size a{display: inline-flex;align-items: center;min-height: 24px;font-size: var(--text-xs);padding: var(--space-hair) var(--space-2);border-radius: var(--radius-sm);color: var(--muted);border: 1px solid var(--line);text-decoration: none}.cash-flow-page-size a:hover,.cash-flow-page-size a:focus-visible{color: var(--ink)}.cash-flow-page-size a.active{color: var(--ink);border-color: var(--accent);font-weight: 600}.cash-flow-bulk-actions{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2) var(--space-3);margin-top: var(--space-3);padding: var(--space-2) var(--space-3);background: var(--bg);border: 1px solid var(--line);border-radius: var(--radius-sm);font-size: var(--text-sm)}.cash-flow-bulk-actions .bulk-count{min-width: 8em;color: var(--muted);font-variant-numeric: tabular-nums}.cash-flow-bulk-actions button:disabled{opacity: 0.5;cursor: default}.cash-flow-bulk-actions :is(select,input){min-height: 32px}.cash-flow-bulk-actions select[name$="_select"]{width: 180px}table.ledger th,table.ledger td{text-align: left;padding: var(--space-2) var(--space-3) var(--space-2) 0;white-space: nowrap;overflow: hidden;text-overflow: ellipsis}table.ledger .num{text-align: right}table.ledger td{vertical-align: middle}table.cf-grid{min-width: 900px}.cf-grid .c-sel{width: 36px}.cf-grid .c-date{width: 104px}.cf-grid .c-amt{width: 116px}.cf-grid .c-flow{width: 96px}.cf-grid .c-cat{width: 160px}.cf-grid .c-acct{width: 170px}.cf-grid .c-src{width: 88px}.cf-grid .c-act{width: 96px}.table-wide{overflow-x: auto}table.assets-table{min-width: 59rem}table.move-table{min-width: 560px}.assets-table .c-owner{width: 10rem}.assets-table .c-sec{width: 13rem}.assets-table :is(.c-val,.c-debt,.c-eq){width: 8rem}@media (max-width: 640px){table.assets-table{min-width: 0}table.ledger.assets-table td{padding: var(--space-1) 0;white-space: normal}table.assets-table td:first-child{font-weight: 600}}.sort-dir{display: inline-block;width: 1.25em;text-align: center}.visually-hidden{position: absolute;left: 0;top: 0;width: 1px;height: 1px;overflow: hidden;clip-path: inset(50%);white-space: nowrap}.row-actions{display: inline-flex;align-items: center;gap: var(--space-1)}.assumption-grid .value{font-size: var(--text-sm);font-weight: 550;margin-top: 1px}.need-want,.funds-check-actions{display: inline-flex;gap: var(--space-1)}.need-want button.ghost.small[aria-pressed="true"]{background: var(--accent);color: var(--on-accent);border-color: var(--accent)}.need-want-cell{white-space: nowrap}details.need-want-editor > summary{cursor: pointer;font-size: var(--text-sm);margin-bottom: var(--space-1)}.cf-timeframe{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2) var(--space-3);margin-bottom: var(--space-3)}.cf-timeframe .range-tabs{margin-bottom: 0}.cf-timeframe .range-tabs a,.cf-timeframe .range-tabs span{font-size: var(--text-sm);padding: var(--space-1) var(--space-3)}.cf-breakdown{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(340px,100%),1fr));gap: var(--space-4) var(--space-8)}.cf-breakdown .hbars{grid-template-columns: minmax(8em,160px) 1fr max-content}.debt-charges{margin: var(--space-3) 0 0;font-size: var(--text-sm);color: var(--muted)}.debt-missing{margin-top: var(--space-3)}.rate-group + .rate-group{margin-top: var(--space-4)}.rate-line{font-size: var(--text-xs);color: var(--muted);border-bottom: 1px solid var(--line);padding-bottom: var(--space-1);margin-bottom: var(--space-2)}#debt-carrying .hbars{grid-template-columns: minmax(8em,220px) 1fr max-content}@media (max-width: 640px){#debt-carrying .hbars{grid-template-columns: 1fr max-content;row-gap: var(--space-1)}#debt-carrying .hbar-track{grid-column: 1 / -1;grid-row: 2}}table.debt-table{min-width: 26rem}.debt-table :is(.c-bal,.c-min){width: 6.5rem}.debt-table .c-rate{width: 5rem}table.ledger.debt-table td:first-child{white-space: normal}.debt-table td .sub{color: var(--muted);font-size: var(--text-xs)}#debt-list h3{font-size: var(--text-sm);font-weight: 600;margin: var(--space-4) 0 var(--space-2)}.debt-progress{margin: var(--space-3) 0 0;font-size: var(--text-sm)}.debt-progress strong{font-weight: 650;font-variant-numeric: tabular-nums}.debt-progress .explain-btn{margin-left: var(--space-1)}.order-cards{border: 0;padding: 0;margin: 0 0 var(--space-4);min-width: 0}.order-cards > legend{padding: 0;margin-bottom: var(--space-2);font-weight: 600}.order-cards > legend .explain-btn{margin-left: var(--space-1)}.order-cards-grid{display: grid;gap: var(--space-3)}@media (min-width: 700px){.order-cards-grid{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (min-width: 1260px){.order-cards-grid{grid-template-columns: repeat(4,minmax(0,1fr))}}.order-card{display: flex;flex-direction: column;gap: var(--space-1);padding: var(--space-3) var(--space-4);background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);cursor: pointer}.order-card:has(input:checked){border-color: var(--accent);outline: 1px solid var(--accent)}.order-card-base{cursor: default;border-style: dashed}.order-card-head{display: flex;align-items: center;gap: var(--space-2)}.order-card-head input{margin: 0}.order-card-name{font-weight: 600}.order-card-known{color: var(--muted);font-size: var(--text-xs)}.order-card-value{font-size: var(--text-lg);font-weight: 640;font-variant-numeric: tabular-nums}.order-card .sub{color: var(--muted);font-size: var(--text-xs)}.order-card svg.chart{margin: var(--space-2) auto;max-width: 320px}.debt-no-extra{margin-top: var(--space-3)}.debt-more{margin-top: var(--space-3);font-size: var(--text-xs);color: var(--muted)}.debt-more ul{display: grid;grid-template-columns: repeat(3,minmax(0,9rem));gap: var(--space-4);margin: var(--space-1) 0 0;padding: 0;list-style: none}.debt-more li{display: flex;flex-direction: column}.debt-more strong{color: var(--ink);font-size: var(--text-sm);font-variant-numeric: tabular-nums}.debt-own-order > summary{cursor: pointer;font-size: var(--text-sm);color: var(--accent);width: max-content;margin: var(--space-3) 0 var(--space-2)}table.debt-own-order :is(.c-bal,.c-place){width: 7rem}table.debt-own-order .c-rate{width: 5rem}table.debt-own-order td .sub{color: var(--muted);font-size: var(--text-xs)}.needs-lead{display: flex;flex-wrap: wrap;align-items: baseline;gap: var(--space-1) var(--space-3);margin: 0 0 var(--space-2)}.needs-figure{font-size: var(--text-xl);font-weight: 650;letter-spacing: -0.01em;font-variant-numeric: tabular-nums}.needs-figure.muted{color: var(--muted)}.needs-unit{font-size: var(--text-sm);font-weight: 400;color: var(--muted)}.alloc-status{margin-bottom: var(--space-3)}.alloc-verdict{margin: var(--space-1) 0 0;font-size: var(--text-sm);color: var(--muted);max-width: 72ch}.acct-mix{display: grid;grid-template-columns: minmax(10em,16em) max-content 1fr;gap: var(--space-2) var(--space-4);align-items: center}.acct-mix-row{display: grid;grid-column: 1 / -1;grid-template-columns: subgrid;align-items: center}.acct-mix-name{font-size: var(--text-sm);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.acct-mix-name .s-help{margin-left: var(--space-2)}.acct-mix-bal{font-size: var(--text-sm);text-align: right;font-variant-numeric: tabular-nums}.acct-mix .mix-bar > i.unspecified{background: var(--grid)}.acct-mix-row.muted-row{opacity: 0.55}@media (max-width: 640px){.acct-mix{grid-template-columns: 1fr max-content}.acct-mix-row .mix-bar{grid-column: 1 / -1}}.chart-lead{font-size: var(--text-md);margin: 0 0 var(--space-3);max-width: 70ch}.chart-lead .hero-caption{max-width: none}#perf-line > .chart-lead,#perf-return-lead{min-height: 2lh}@media (max-width: 640px){#perf-line > .chart-lead,#perf-return-lead{min-height: 3lh}}.perf-ask{min-height: calc(2lh + 24px + var(--space-2) + var(--space-3));margin-bottom: var(--space-3)}.perf-ask > .note{margin: 0 0 var(--space-2)}.perf-ask-actions{display: flex;flex-wrap: wrap;gap: var(--space-2)}.jump-from{list-style: none;margin: 0;padding: 0;display: grid;gap: var(--space-2);justify-items: start}.perf-ask button.ghost.small:hover,.perf-ask button.ghost.small:focus-visible,.funds-check button.ghost.small:hover,.funds-check button.ghost.small:focus-visible{color: var(--accent);border-color: var(--accent)}details.levers{background: var(--panel);border: 1px solid var(--line);border-radius: var(--radius-md);padding: var(--space-3) var(--space-4);margin-bottom: var(--space-4)}details.levers > summary{cursor: pointer;font-weight: 600}details.levers[open] > summary{margin-bottom: var(--space-3)}.lever-grid{display: grid;gap: var(--space-3) var(--space-4);grid-template-columns: repeat(auto-fill,minmax(min(240px,100%),1fr))}.lever-head{display: flex;align-items: baseline;gap: var(--space-2);font-size: var(--text-sm)}.lever-value{margin-left: auto;font-weight: 600;font-variant-numeric: tabular-nums;white-space: nowrap}.lever input[type="range"]{width: 100%;margin: var(--space-1) 0 0;accent-color: var(--accent)}.lever-note{font-size: var(--text-sm);color: var(--muted);margin: var(--space-3) 0 0}.lever-result{margin-top: var(--space-3);line-height: 1.4}.lever-result > div{white-space: nowrap;overflow: hidden;text-overflow: ellipsis}details.levers .actions{display: flex;flex-wrap: wrap;gap: var(--space-2);margin-top: var(--space-3)}.hero-caption .saved-beside{color: var(--muted)}