/* UX-3.1.0 inner workbench; original animated cover is isolated in cover.css. */
:root { color-scheme: light; --ink-0:#fff; --ink-1:#f7f8f4; --ink-2:#eef2ec; --ink-3:#e8eee8; --panel:#fff; --panel-2:#f5f7f2; --line:#e0e6de; --line-strong:#c9d4c9; --text:#203a2e; --muted:#607268; --faint:#69786f; --teal:#276d51; --teal-soft:#286a51; --amber:#8b703f; --red:#a45151; --shadow:0 8px 32px rgba(35,64,43,.035); --radius:18px; --max:1420px; }
* { box-sizing:border-box; font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue','PingFang SC','Noto Sans CJK SC','Microsoft YaHei',sans-serif; }
html { background:var(--ink-1); scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--text); background:var(--ink-1); -webkit-font-smoothing:antialiased; }
button,input { font:inherit; } button,a { -webkit-tap-highlight-color:transparent; } button { cursor:pointer; } a { color:inherit; text-decoration:none; }
button:disabled { cursor:default; opacity:.6; } :focus-visible { outline:2px solid #397757; outline-offset:4px; }
.sr-only { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.skip-link { position:fixed;left:16px;top:-60px;z-index:999;padding:12px 16px;background:#fff;border-radius:8px; } .skip-link:focus { top:16px; }
.brand { display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-size:20px;letter-spacing:-.6px;font-weight:600; }
.brand-mark,.brand-mark svg { width:34px;height:24px; }
.btn { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 21px;border:1px solid transparent;border-radius:9px;font-size:13px;font-weight:550;transition:background .2s,box-shadow .2s; }
.btn-primary { color:#fff;background:#285e46; } .btn-primary:hover { background:#1d4a36;box-shadow:0 4px 14px #285e4622; }
.btn-ghost,.btn-dark { color:var(--text);background:#fff;border-color:var(--line-strong); } .btn-ghost:hover,.btn-dark:hover { background:#eff4ee; }
.app-shell { min-height:100svh;background:var(--ink-1); }
.app-header { position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:16px max(24px,calc((100vw - 1420px)/2));border-bottom:1px solid var(--line);background:#fcfdf9ed;backdrop-filter:blur(14px);gap:20px; }
.app-header-meta { display:flex;align-items:center;gap:20px; }.app-header-meta>span { color:var(--faint);font-size:11px; }
.shell-main { width:min(var(--max),calc(100% - 64px));margin:0 auto;padding:30px 0 70px; }
.panel { background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0; }
.panel-head { padding:26px 30px 22px;border-bottom:1px solid var(--line); }.panel-body { padding:28px 30px;min-width:0; }
.panel-head h2 { margin:0;font-size:21px;font-weight:550;letter-spacing:-.4px; }.panel-subtitle { margin:10px 0 0;font-size:12px;color:var(--muted);line-height:1.8; }
.section-kicker { font-size:9px;font-weight:650;letter-spacing:2px;color:#738b71;margin:0 0 12px; }
.status-chip { display:inline-flex;align-items:center;gap:7px;border:1px solid #d8e5d9;border-radius:30px;background:#f2f7ee;color:#406e4a;padding:6px 11px;font-size:10px;line-height:1.5; }
.status-chip:before { content:'';width:5px;height:5px;border-radius:50%;background:currentColor; }.status-chip.warning { color:#836a3f;background:#faf6ec;border-color:#e9dfc7; }.status-chip.danger { color:#99504b;background:#fcf1ee;border-color:#edd3ca; }
.example-banner { display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:13px 18px;border:1px solid #e5e4d5;border-radius:10px;background:#f8f7ed;margin-bottom:30px; }
.example-banner>div { display:flex;align-items:center;gap:13px;font-size:10px;color:#776e4d; }.example-banner strong { font-weight:600; }.example-banner p { margin:0;color:#7a7968;font-size:10px;line-height:1.6; }
.result-layout { display:grid;grid-template-columns:195px minmax(0,1fr);gap:40px; }.result-nav { position:sticky;top:108px;align-self:start; }.result-nav-label { margin:8px 14px 24px;color:#7f8d7c;font-size:9px;letter-spacing:1.8px; }
.result-nav>a { display:flex;align-items:center;justify-content:space-between;padding:15px 16px;font-size:13px;color:#667c6b;margin-bottom:5px;border-radius:9px; }.result-nav>a:hover { background:#eef2eb; }.result-nav>a.active { color:#285b40;background:#eaf1e6;font-weight:600; }.result-nav>a.active:after { content:'';width:5px;height:5px;border-radius:50%;background:#68906a; }
.result-meta { font-size:9px;line-height:1.8;color:#7f8a7c;overflow-wrap:anywhere;border-top:1px solid var(--line);margin:30px 14px 0;padding-top:24px; }.result-content { min-width:0;overflow-wrap:anywhere; }
.result-hero { display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin:3px 0 30px; }.result-hero h1 { font-size:36px;line-height:1.3;font-weight:500;letter-spacing:-1.2px;margin:13px 0 0; }.result-hero p { font-size:13px;line-height:1.8;color:var(--muted);max-width:630px;margin:12px 0 0; }.result-actions { display:flex;gap:9px;flex-shrink:0; }
.grid-2 { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px; }.grid-3 { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }.grid-2>*{min-width:0;}
.metric-card { padding:24px 26px; }.metric-label { font-size:11px;color:var(--muted); }.metric-value { font-size:34px;font-weight:450;letter-spacing:-1px;margin:12px 0 0;font-variant-numeric:tabular-nums; }.metric-note { font-size:11px;line-height:1.8;color:var(--faint);margin:12px 0 0; }.summary-metrics .panel:first-child { background:#f0f5ea;border-color:#dbe6d4; }
.chapter { margin-top:22px; }.chapter-title { display:flex;justify-content:space-between;align-items:start;gap:20px; }.chapter-title h2 { font-size:22px;font-weight:500;letter-spacing:-.5px;margin:0; }.chapter-title p { color:var(--muted);font-size:12px;line-height:1.8;margin:9px 0 0;max-width:600px; }.chapter-title .section-kicker { margin:0 0 10px;font-size:9px;color:#738b71; }
.goal-cards { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }.goal-cards article { padding:20px 23px;background:#f7f9f4;border:1px solid #e6ebe1;border-radius:12px; }.goal-number { font-family:Georgia,serif;color:#9a9d73;font-size:18px; }.goal-cards h3 { font-size:18px;margin:18px 0 8px;font-weight:500; }.goal-cards p { font-size:11px;color:var(--faint);margin:0; }.goal-relations { display:flex;gap:10px;flex-wrap:wrap;margin-top:20px; }.goal-relations>span { border:1px solid #e3e8dd;border-radius:7px;padding:8px 12px;font-size:11px; }.goal-relations i { font-style:normal;color:#819476;padding:0 10px; }
.spending-timeline { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:36px;border-top:1px solid #dbe3d3; }.spending-timeline>div { position:relative;padding:25px 20px 0 0; }.timeline-node { position:absolute;left:0;top:-5px;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#a5b191;box-shadow:0 0 0 1px #b4c1a6; }.spending-timeline small { color:var(--muted);font-size:11px; }.spending-timeline h3 { font-size:25px;font-weight:450;margin:12px 0; }.spending-timeline p { font-size:11px;color:var(--faint);line-height:1.8;margin:0; }
.risk-dimensions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }.risk-dimension { padding:24px;background:#fbfcf8;border:1px solid #e5eadd;border-radius:12px; }.risk-dimension:last-child { background:#f0f5eb; }.dimension-top { display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:1px;color:#7a8f70; }.dimension-top small { font-size:9px;letter-spacing:0; }.risk-dimension h3 { font-size:18px;font-weight:500;margin:18px 0 10px; }.risk-dimension>p { font-size:11px;line-height:1.8;color:var(--muted);min-height:20px; }.dimension-estimate { display:flex;align-items:center;gap:20px;margin:24px 0 26px; }.dimension-estimate>strong { font-weight:400;font-size:39px;font-variant-numeric:tabular-nums; }.dimension-estimate strong small { font-size:20px;margin-left:3px; }.dimension-estimate>span { font-size:10px;line-height:1.8;color:var(--muted); }
.range-track { position:relative;height:8px;background:#e1e7da;border-radius:5px; }.range-band { position:absolute;top:0;height:100%;background:#b3ccb2;border-radius:5px; }.range-dot { position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#3e7452;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 0 0 1px #76a180; }.range-axis { display:flex;justify-content:space-between;color:#7f8c76;font-size:9px;margin:12px 0 21px; }
details>summary { cursor:pointer;font-size:12px;color:#526f57;line-height:1.8; }.risk-dimension details p { font-size:10px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere; }.audit-details { margin-top:22px;padding-top:20px;border-top:1px solid var(--line); }
.liquidity-lanes { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px; }.liquidity-lane>div:first-child { display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:18px; }.liquidity-lane strong { font-weight:500; }.liquidity-lane span { font-size:20px;font-weight:400; }.liquidity-track { height:9px;border-radius:5px;background:#eff2eb;position:relative; }.liquidity-track i,.liquidity-track b { position:absolute;height:100%;border-radius:5px;left:0;top:0;background:#b0c9a8; }.liquidity-track b { background:#477a52; }.liquidity-lane small { display:block;margin-top:13px;font-size:9px;color:var(--faint); }
.insight-row { display:flex;align-items:baseline;justify-content:space-between;gap:20px;font-size:12px;padding:15px 0;border-bottom:1px solid #edf0e9; }.insight-row:first-child { padding-top:0; }.insight-row>span { color:var(--muted); }.insight-row strong { font-size:12px;font-weight:500;text-align:right; }.insight-note { color:#5e765d;font-size:11px;line-height:1.9;background:#f4f7ef;padding:15px 17px;border-radius:8px;margin-top:22px; }.confidence-summary { display:flex;gap:20px;align-items:center;margin:0 0 24px; }.confidence-summary strong { font-size:36px;font-weight:400; }.confidence-summary span { font-size:10px;line-height:1.8;color:var(--muted); }.evidence-bar { margin:17px 0; }.evidence-bar>div:first-child { display:flex;justify-content:space-between;font-size:11px;margin-bottom:9px;color:var(--muted); }.evidence-bar strong { color:#3e6647;font-weight:500; }.evidence-track { height:5px;background:#edf1e8;border-radius:3px; }.evidence-track i { display:block;background:#8eaf80;height:100%;border-radius:3px; }
.table-scroll { overflow-x:auto;max-width:100%; }.data-table { width:100%;border-collapse:collapse;margin:20px 0 0; }.data-table th,.data-table td { padding:13px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7; }.data-table th { color:var(--muted);font-weight:500; }.data-table td { color:#465e4d;font-variant-numeric:tabular-nums; }
.allocation-wrap { display:grid;grid-template-columns:300px 1fr;gap:38px;align-items:center; }.donut-shell { position:relative;width:min(100%,280px);aspect-ratio:1;margin:auto; }.allocation-donut { width:100%;height:100%;overflow:visible; }.donut-track { stroke:#e7ece2;stroke-width:13; }.donut-segment { cursor:pointer; }.donut-segment:hover,.donut-segment.selected { opacity:.8; }.donut-center { position:absolute;inset:31%;display:grid;align-content:center;text-align:center;pointer-events:none; }.donut-center strong { font-size:32px;font-weight:450; }.donut-center span { font-size:10px;color:var(--muted);line-height:1.4;margin-top:8px; }.allocation-list { display:grid;gap:4px; }.allocation-row { display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:12px;padding:12px 10px;width:100%;text-align:left;border:1px solid transparent;border-bottom-color:var(--line);background:transparent;color:var(--text);border-radius:8px;font-size:12px; }.allocation-row:hover,.allocation-row.selected { background:#f1f5ed;border-color:#dfe7d8; }.allocation-dot { display:block;width:8px;height:8px;border-radius:50%; }.allocation-row small { display:block;color:var(--faint);font-size:10px;margin-top:5px; }.allocation-row strong { font-size:17px;font-weight:500; }.allocation-table-row { cursor:pointer; }.allocation-table-row:hover { background:#f3f6ee; }.allocation-table-row td:first-child { display:flex;align-items:center;gap:8px; }.compact-copy { font-size:12px;line-height:1.8;margin:0; }
.tab-row { display:flex;gap:6px;flex-wrap:wrap; }.tab-button { padding:8px 13px;min-height:36px;font-size:11px;color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:7px; }.tab-button.active { color:#2a6245;background:#eaf2e4;border-color:#c9dbbc;font-weight:600; }.small-badge { color:#728064;font-size:10px;padding:7px 11px;background:#f3f5ec;border-radius:5px;white-space:nowrap; }
.analysis-toolbar { display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:25px; }.segmented-control { display:flex;gap:4px;padding:4px;background:#f0f3eb;border-radius:9px; }.segmented-control button { color:#708062;background:transparent;border:0;padding:9px 22px;border-radius:6px;font-size:12px; }.segmented-control button.active { background:#fff;color:#315739;box-shadow:0 1px 6px #24492f13; }
.chart-heading { display:flex;justify-content:space-between;gap:25px;margin:4px 0 15px; }.chart-headline { display:block;font-size:42px;font-weight:400;letter-spacing:-1.3px;line-height:1.2;margin:12px 0; }.chart-heading p { font-size:11px;color:var(--muted);margin:0; }.chart-context { font-size:10px;color:#5f7859;line-height:2;text-align:right;padding-top:5px; }.chart-context small { font-size:9px;color:#827f68; }.status-dot { display:inline-block;width:5px;height:5px;border-radius:50%;background:#6e955d;margin-right:7px; }
.path-chart { margin:15px 0 0; }.chart-canvas { width:100%; }.chart-canvas svg { width:100%;height:auto;display:block;touch-action:pan-y;overflow:visible; }.chart-gridline { stroke:#e8ece3;stroke-width:1; }.chart-baseline { stroke:#aebda3;stroke-width:1;stroke-dasharray:4 5; }.chart-axis { font-size:12px;fill:#7a8970; }.chart-readout { display:flex;align-items:center;gap:18px;font-size:11px;border-top:1px solid #e8ecdf;padding:15px 0; }.chart-date { color:#405d3d;font-weight:600;min-width:62px; }.chart-values { display:flex;flex-wrap:wrap;gap:9px 24px;color:#64765b; }.chart-values>span { display:inline-flex;align-items:center;gap:6px;font-size:10px; }.chart-values i { display:inline-block;width:6px;height:6px;border-radius:50%; }.chart-values strong { font-weight:500;color:#314e2f;font-variant-numeric:tabular-nums; }.chart-scrubber { display:flex;align-items:center;gap:15px;font-size:9px;color:#7b876f; }.chart-scrubber input { flex:1;min-width:40px;height:20px;accent-color:#457044;cursor:ew-resize; }.chart-data { margin-top:15px; }.chart-data summary { font-size:10px; }.chart-data .table-scroll { max-height:300px; }.chart-data th { position:sticky;top:0;background:#fafcf7; }
.chart-limitation { margin:21px 0 0;padding-top:18px;border-top:1px solid #e9ece1;font-size:10px;line-height:1.9;color:#7c7b63; }.forecast-footnotes { display:grid;grid-template-columns:190px 1fr;gap:25px;background:#f6f8f1;border:1px solid #e8eedd;border-radius:9px;padding:17px 20px;margin-top:22px; }.forecast-footnotes>div { border-right:1px solid #dce5d2; }.forecast-footnotes span { font-size:10px;color:var(--muted); }.forecast-footnotes strong { display:block;font-size:24px;font-weight:450;margin-top:8px; }.forecast-footnotes p { margin:0;align-self:center;font-size:11px;line-height:1.9;color:#677b5d; }.method-details { margin-top:23px; }.method-details>summary { font-size:11px; }.assumption-grid { display:grid;grid-template-columns:1fr 1fr;gap:15px 28px;font-size:11px;color:var(--muted);line-height:1.9; }.assumption-grid strong { display:block;color:var(--text);margin:8px 0; }
.annual-detail { margin-top:24px; }.annual-detail summary span { margin-left:16px;font-size:10px;color:var(--faint); }.annual-bars { display:flex;align-items:end;justify-content:space-between;gap:8px;margin-top:23px;overflow-x:auto; }.annual-bar { flex:1;min-width:43px;text-align:center; }.annual-bar>strong { font-size:10px;font-weight:500; }.annual-bar-track { display:flex;align-items:end;justify-content:center;height:75px;margin:12px 0 8px;border-bottom:1px solid #dbe4d3; }.annual-bar-track i { width:55%;max-width:28px;background:#a4bf92;border-radius:3px 3px 0 0; }.annual-bar-track i.negative { background:#bd897b; }.annual-bar>span { font-size:10px;display:block; }.annual-bar small { display:block;color:var(--faint);font-size:8px;margin-top:5px; }
.pressure-controls { display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-bottom:20px;font-size:11px;color:var(--muted); }.pressure-comparison { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px; }.pressure-card { text-align:left;color:#34573b;background:#fafbf6;border:1px solid #e3e8da;border-radius:10px;padding:17px 14px; }.pressure-card:hover { border-color:#8faf7a; }.pressure-number { font-size:9px;color:#8c9b7b;letter-spacing:1px; }.pressure-card h3 { font-size:13px;font-weight:550;margin:14px 0 22px; }.pressure-measure { display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;margin-top:14px; }.pressure-measure>span { font-size:9px;color:#73836a; }.pressure-measure strong { font-size:16px;font-weight:500; }.comparison-track { height:4px;background:#e7ecdf;border-radius:3px;margin-top:8px; }.comparison-track i { display:block;height:4px;border-radius:3px; }.return-bar { background:#82a775; }.drawdown-bar { background:#c2a777; }.pressure-card p { font-size:10px;color:#6b7a61;margin:17px 0 10px;min-height:28px; }.pressure-card small { font-size:9px;color:#758c67; }.stress-path-header { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px;border-top:1px solid var(--line);padding-top:26px; }.stress-path-header h3 { font-size:16px;font-weight:500;margin:0; }.stress-path-header span { font-size:10px;color:var(--muted); }
.stress-detail { background:#f4f7ed;border:1px solid #e0e8d4;border-radius:11px;margin-top:24px;padding:24px; }.stress-detail h3 { margin:0 0 23px;font-size:17px;font-weight:500; }.stress-detail .grid-3 span { font-size:11px;color:var(--muted); }.stress-detail .grid-3 strong { display:block;font-size:29px;font-weight:450;margin:10px 0; }.stress-detail p { font-size:11px;color:var(--muted);line-height:1.9; }.stress-detail details>p { font-size:10px; }.all-scenarios { margin-top:26px; }.stress-scroll { overflow-x:auto; }.stress-grid { display:grid;grid-template-columns:110px repeat(5,minmax(85px,1fr));min-width:660px;gap:6px;margin-top:18px; }.stress-axis,.stress-cell { background:#f6f8f1;border:1px solid #e1e8d8;border-radius:7px;padding:12px 8px;font-size:10px;color:#65785a; }.stress-axis { display:grid;place-items:center;text-align:center; }.stress-cell strong { display:block;font-size:13px;margin-top:8px; }.stress-cell small { font-size:9px; }.stress-cell.selected { background:#eaf2de;border-color:#9eba83; }
.horizon-comparison { margin-top:22px;gap:30px; }.horizon-comparison h3 { font-size:17px;font-weight:500; }.quantile-chart { margin:25px 0; }.quantile-chart figcaption { font-size:12px; }.quantile-chart figcaption span { display:block;font-size:10px;color:var(--faint);margin-top:7px; }.quantile-chart svg { width:100%;height:auto;color:#69805f;font-size:12px; }.quantile-values { display:flex;flex-wrap:wrap;gap:7px;justify-content:space-between;font-size:10px;color:var(--muted); }.recovery-summary { margin-top:24px;border-top:1px solid var(--line);padding-top:14px; }.recovery-summary h4 { font-size:13px;font-weight:550; }.recovery-summary>p { display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted); }.recovery-summary .data-table th,.recovery-summary .data-table td { padding:10px 4px;font-size:10px; }
.disclosure { padding:16px 18px;border:1px solid #e8e2cd;border-radius:10px;background:#fcfaf2;color:#817751;font-size:11px;line-height:1.9; }.source-list { display:grid;gap:12px; }.source-card { border:1px solid var(--line);background:#fafcf7;padding:20px;border-radius:10px; }.source-card h3 { font-size:13px;margin:0 0 11px;overflow-wrap:anywhere; }.source-card p { font-size:11px;line-height:1.9;color:var(--muted);margin:0; }.boundary-list { padding-left:20px;margin:0;display:grid;gap:13px;font-size:12px;line-height:1.8;color:var(--muted); }.diagnostics { font-family:ui-monospace,monospace;font-size:10px;color:var(--faint);line-height:1.9;overflow-wrap:anywhere;border:1px dashed var(--line);padding:18px;border-radius:10px;margin-top:20px; }
.reference-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px; }.reference-card { display:block;background:#fafbf7;border:1px solid #e6ebde;padding:24px 22px;border-radius:11px;transition:background .2s; }.reference-card:hover { background:#f0f5e7; }.reference-card>span { font-size:11px;color:#85946e;letter-spacing:.4px; }.reference-card h3 { font-size:15px;line-height:1.7;font-weight:500;margin:23px 0 12px; }.reference-card p { font-size:11px;line-height:1.9;color:var(--muted);margin:0 0 23px; }.reference-card small { font-size:9px;color:#718264; }
.field-details { font-size:11px;line-height:1.7; }.field-details>div { padding:10px 0;border-bottom:1px solid var(--line); }.field-details dt { color:var(--muted);overflow-wrap:anywhere; }.field-details dd { margin:7px 0 0 10px;overflow-wrap:anywhere; }.field-details ol { padding-left:18px; }.reading-guide p { color:var(--muted);font-size:12px;line-height:1.9; }.reading-guide h3 { font-size:14px;font-weight:500; }
.assessment-layout { display:grid;grid-template-columns:250px minmax(0,1fr);gap:26px; }.assessment-aside { align-self:start;position:sticky;top:106px;padding:27px;background:#fff; }.assessment-card { background:#fff;min-height:610px;padding:clamp(27px,4.5vw,60px); }.progress-label { display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:14px; }.progress-track { height:4px;border-radius:4px;background:#e9eedf; }.progress-fill { height:100%;background:#749b61;border-radius:4px; }.step-list { list-style:none;display:grid;gap:5px;padding:0;margin:27px 0 0; }.step-list li { padding:13px 12px;font-size:12px;color:#7f8d73;border-radius:7px; }.step-list li.current { color:#416335;background:#eff5e7; }.question-index { font-size:11px;letter-spacing:1px;color:#708c5c;margin:0 0 23px; }.question-title { font-size:clamp(25px,3vw,36px);font-weight:500;line-height:1.4;margin:0 0 16px;letter-spacing:-.5px; }.question-help { font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:30px; }.option-list { display:grid;gap:12px; }.option { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;text-align:left;width:100%;background:#fcfdf9;color:#49613f;border:1px solid #e2e8d7;border-radius:10px;font-size:14px;line-height:1.7; }.option:hover { background:#f5f8ef;border-color:#b2c99b; }.option.selected { background:#eff6e5;border-color:#92b571;box-shadow:inset 3px 0 0 #81a960; }.option-check { flex:0 0 24px;width:24px;height:24px;border-radius:50%;border:1px solid #c5d2b5;color:transparent;display:grid;place-items:center; }.option.selected .option-check { background:#709450;color:#fff;border-color:#709450; }.assessment-actions { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:35px; }.text-button { background:transparent;border:0;color:var(--muted);padding:12px 0;font-size:12px; }
.calculating { min-height:calc(100svh - 80px);display:grid;place-items:center;text-align:center; }.calculation-visual { width:140px;height:140px;position:relative;margin:0 auto 35px; }.calculation-ring { position:absolute;inset:0;border:1px solid #c6d8b7;border-radius:50%;animation:breathe 2.4s ease-in-out infinite; }.calculation-ring:nth-child(2) { inset:22px;animation-delay:-.7s; }.calculation-ring:nth-child(3) { inset:43px;background:#e7f0dd;animation-delay:-1.4s; }.calculating h1 { font-size:29px;font-weight:500; }.calculating p { font-size:13px;color:var(--muted); }.empty-state { text-align:center;padding:65px 30px; }.empty-state-icon { width:58px;height:58px;display:grid;place-items:center;margin:0 auto 25px;color:#947b49;border:1px solid #e3d7b9;border-radius:50%;background:#fbf8ef; }.empty-state h1 { font-size:31px;font-weight:500; }.empty-state p { max-width:620px;line-height:1.9;font-size:13px;color:var(--muted);margin:0 auto 25px; }
.information-screen { position:fixed;inset:0;z-index:200;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--ink-1);color:var(--text); }.information-header { display:flex;justify-content:space-between;align-items:center;padding:18px clamp(22px,4vw,60px);border-bottom:1px solid var(--line);background:#fdfef9;min-height:80px; }.information-close { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:30px;color:var(--text);background:#fff;padding:0 16px;font-size:12px; }.information-close svg { width:18px;height:18px; }.information-scroll { min-height:0;overflow-y:auto;outline:0; }.information-content { width:min(900px,calc(100% - 48px));margin:auto;padding:70px 0 90px; }.information-content>h1 { font-size:clamp(38px,6vw,65px);font-weight:450;letter-spacing:-2px;margin:0; }.information-slots { display:grid;gap:20px;margin-top:50px; }.information-slot { padding:30px 35px;border:1px solid var(--line);border-radius:18px;background:#fff; }.information-slot h2 { margin:0;font-size:23px;font-weight:500; }.information-slot p { font-size:15px;line-height:2;color:var(--muted);margin:22px 0 0;overflow-wrap:anywhere; } #information-title:focus { outline:none; }
.drawer-backdrop { position:fixed;inset:0;z-index:80;background:#273c2b50;backdrop-filter:blur(3px); }.asset-drawer { position:fixed;right:0;top:0;height:100svh;width:min(510px,100%);z-index:90;display:grid;grid-template-rows:auto minmax(0,1fr);background:#fdfef9;border-left:1px solid var(--line);box-shadow:-20px 0 80px #24442422; }.drawer-header { display:flex;justify-content:space-between;align-items:start;gap:18px;padding:30px;border-bottom:1px solid var(--line); }.drawer-header h2 { font-size:28px;font-weight:500;margin:5px 0; }.drawer-scroll { overflow-y:auto;padding:0 30px 40px; }.asset-detail-list { margin:0; }.asset-detail-list>div { padding:24px 0;border-bottom:1px solid var(--line); }.asset-detail-list dt { color:var(--muted);font-size:11px; }.asset-detail-list dd { margin:12px 0 0;font-size:13px;line-height:1.9; }.drawer-research-action { width:100%;margin-top:25px; }.research-gate { position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:20px;background:#203a2966; }.research-gate-card { width:min(560px,100%);padding:35px; }.research-gate-card h2 { font-size:28px;font-weight:500; }.research-gate-card p { font-size:13px;line-height:1.9;color:var(--muted); }.gate-actions { display:flex;justify-content:end;gap:10px;margin-top:24px; }.research-screen { min-height:100svh;background:var(--ink-1); }.research-main { width:min(960px,calc(100% - 44px));margin:auto;padding:65px 0; }.research-intro h1 { font-size:40px;font-weight:450; }.research-intro p { color:var(--muted);font-size:14px;line-height:1.9; }.research-controls { margin-top:35px; }.research-controls h2 { font-size:20px;font-weight:500; }.research-filter-group { display:grid;grid-template-columns:100px 1fr;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted); }.research-filter-group button,.research-paths button { min-height:40px;padding:0 14px;background:#f2f5ec;border:1px solid var(--line);border-radius:8px;color:#788969; }.research-paths { display:flex;gap:12px;margin-top:22px; }.research-unavailable { margin-top:20px;text-align:center;padding:50px 30px; }.research-unavailable h2 { font-size:27px;font-weight:500; }.research-unavailable p { color:var(--muted);font-size:13px;line-height:1.8;max-width:650px;margin:0 auto 24px; }
.print-example-header,.print-example-footer,.print-document { display:none; }
@keyframes breathe { 0%,100%{transform:scale(.94);opacity:.5}50%{transform:scale(1.04);opacity:1} }
/* Readable analytical typography; references remain secondary. */
.metric-label,.metric-note,.panel-subtitle,.chapter-title p { font-size:12px; }
.risk-dimension>p,.insight-row,.insight-row strong { font-size:13px; }
.dimension-top { font-size:10px; }.dimension-top small { font-size:10px; }.dimension-estimate>span { font-size:12px; }.range-axis { font-size:10px; }
.insight-note,.spending-timeline p,.spending-timeline small,.goal-cards p,.goal-relations>span,.liquidity-lane small { font-size:12px; }
.chart-limitation { font-size:12px;color:#69715c; }.chart-values>span,.chart-date { font-size:12px; }.chart-scrubber { font-size:11px; }.chart-axis { font-size:13px; }.chart-heading p { font-size:12px; }.chart-context,.chart-context small { font-size:11px; }
.forecast-footnotes span,.forecast-footnotes p,.assumption-grid,.reference-card p { font-size:12px; }.reference-card>span { font-size:12px; }.reference-card small { font-size:11px; }
.pressure-card h3 { font-size:15px; }.pressure-card p,.pressure-measure>span,.pressure-card small { font-size:11px; }.pressure-comparison { margin-top:26px; }.pressure-controls { margin-bottom:12px; }
.data-table th,.data-table td { font-size:12px; }.evidence-bar>div:first-child { font-size:12px; }.confidence-summary span { font-size:11px; }.source-card p,.disclosure { font-size:12px; }
.result-meta { padding-left:0;padding-right:0; }.result-meta summary { font-size:10px; }.result-meta p{font-size:9px;margin:13px 0 0;}.chart-data summary{font-size:11px;}
@media (max-width:1180px) {.result-layout{grid-template-columns:170px minmax(0,1fr);gap:24px}.result-hero{display:block}.result-actions{margin-top:20px}.pressure-comparison{grid-template-columns:repeat(3,minmax(0,1fr))}.allocation-wrap{grid-template-columns:250px 1fr;gap:25px}.reference-grid{grid-template-columns:1fr 1fr} }
@media (max-width:980px) {.result-layout{grid-template-columns:1fr}.result-nav{position:static;display:flex;gap:4px;border-bottom:1px solid var(--line);padding-bottom:12px}.result-nav-label,.result-meta{display:none}.result-nav>a{padding:10px 16px;margin:0;font-size:12px;white-space:nowrap}.result-nav>a.active:after{display:none}.shell-main{width:calc(100% - 44px)}.assessment-layout{grid-template-columns:1fr}.assessment-aside{position:static}.step-list{display:none}.app-header{padding:16px 24px}.allocation-wrap{grid-template-columns:280px 1fr}.horizon-comparison{gap:24px}.panel-head,.panel-body{padding:24px}.chart-context{display:none} }
@media (max-width:700px) {.app-header{padding:14px 18px;min-height:70px}.app-header .brand{font-size:17px}.app-header-meta>span{display:none}.app-header .btn{font-size:11px;padding:0 12px;min-height:38px}.shell-main{width:calc(100% - 28px);padding-top:18px}.example-banner{padding:12px 14px;gap:7px;margin-bottom:20px}.example-banner p{font-size:9px;line-height:1.7}.result-layout{gap:23px}.result-nav{justify-content:space-between;gap:0;overflow-x:auto}.result-nav>a{padding:10px 11px;font-size:11px}.result-hero h1{font-size:31px}.result-hero p{font-size:12px}.result-actions{gap:8px;margin-top:18px}.result-actions .btn{font-size:11px;min-height:39px}.grid-3{grid-template-columns:1fr;gap:10px}.summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.summary-metrics .metric-card{padding:16px 11px;border-radius:12px}.summary-metrics .metric-label{font-size:9px;min-height:24px}.summary-metrics .metric-value{font-size:23px;margin-top:5px;letter-spacing:-1px}.summary-metrics .metric-note{font-size:9px;line-height:1.7;margin-top:8px}.panel-head,.panel-body{padding:21px 18px}.panel-head h2,.chapter-title h2{font-size:19px;line-height:1.5}.panel-subtitle,.chapter-title p{font-size:11px}.section-kicker{font-size:8px;letter-spacing:1.5px}.chapter{margin-top:16px}.chapter-title{display:block}.chapter-title>.tab-row{margin-top:17px}.small-badge{display:inline-block;margin-top:11px;font-size:9px}.goal-cards{gap:8px}.goal-cards article{padding:16px 12px}.goal-cards h3{font-size:14px;line-height:1.5;margin-top:14px}.goal-cards p{font-size:9px;line-height:1.7}.goal-number{font-size:15px}.goal-relations{gap:7px}.goal-relations>span{font-size:9px;padding:8px}.goal-relations i{padding:0 6px}.spending-timeline{grid-template-columns:1fr;margin-top:28px;border-top:0;border-left:1px solid #dbe3d3}.spending-timeline>div{padding:0 0 22px 22px}.spending-timeline>div:last-child{padding-bottom:0}.timeline-node{top:5px;left:-5px}.spending-timeline h3{font-size:23px;margin:9px 0}.risk-dimensions,.grid-2{grid-template-columns:1fr}.risk-dimension{padding:22px 20px}.liquidity-lanes{grid-template-columns:1fr;gap:27px}.liquidity-lane>div:first-child{margin-bottom:13px}.liquidity-lane small{font-size:9px}.insight-row{font-size:11px}.insight-row strong{font-size:11px}.confidence-summary strong{font-size:32px}.allocation-wrap{grid-template-columns:1fr;gap:24px}.allocation-table{min-width:590px}.tab-button{font-size:10px;padding:8px 11px}.analysis-toolbar{align-items:start;flex-direction:column;gap:15px}.segmented-control{width:100%}.segmented-control button{flex:1;padding:9px 12px;font-size:11px}.chart-heading{margin-bottom:9px}.chart-headline{font-size:35px}.chart-heading p{font-size:10px;line-height:1.8}.chart-axis{font-size:12px}.chart-readout{align-items:start;gap:10px;padding:14px 0}.chart-date{font-size:10px;min-width:48px}.chart-values{gap:8px 13px}.chart-values>span{font-size:9px}.chart-scrubber{gap:10px;font-size:8px}.forecast-footnotes{grid-template-columns:1fr;gap:12px;padding:16px}.forecast-footnotes>div{border-right:0}.forecast-footnotes strong{display:inline;margin-left:15px;font-size:22px}.forecast-footnotes p{font-size:10px}.assumption-grid{grid-template-columns:1fr;gap:4px}.annual-bars{gap:9px;justify-content:start}.annual-bar{min-width:43px;flex:0 0 43px}.pressure-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}.pressure-card{padding:16px 12px}.pressure-card:last-child{grid-column:1/-1}.pressure-card h3{margin:10px 0 18px}.pressure-measure strong{font-size:18px}.pressure-card p{min-height:0}.pressure-card:last-child .pressure-measure{max-width:240px}.stress-path-header{display:block;margin-top:25px;padding-top:23px}.stress-path-header span{display:block;margin-top:10px}.stress-detail{padding:20px 17px}.stress-detail .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stress-detail .grid-3 span{font-size:9px}.stress-detail .grid-3 strong{font-size:21px;line-height:1.5}.stress-detail h3{font-size:15px;line-height:1.7}.stress-detail p{font-size:10px}.reference-grid{grid-template-columns:1fr}.reference-card{padding:22px}.reference-card h3{margin-top:15px}.information-header{min-height:70px;padding:14px 20px}.information-close span{display:none}.information-content{width:calc(100% - 28px);padding-top:45px}.information-slots{margin-top:33px}.information-slot{padding:24px 22px}.information-slot h2{font-size:20px}.information-slot p{font-size:14px}.assessment-card{padding:25px 20px}.assessment-aside{padding:22px}.question-title{font-size:25px}.option{font-size:13px;padding:16px}.research-main{padding-top:35px}.research-filter-group{grid-template-columns:1fr}.research-paths,.gate-actions{flex-direction:column}.research-gate-card{padding:25px}.drawer-header,.drawer-scroll{padding-left:22px;padding-right:22px}.reading-guide .grid-2{gap:5px}.data-table th,.data-table td{font-size:10px;padding:11px 7px} }
@media (max-height:600px) { }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important} }
@media print {
 @page { size:A4;margin:18mm 12mm 16mm; }
 html,body,#app,.app-shell { min-height:0;height:auto;overflow:visible;background:#fff!important;color:#203a2e!important; }
 .app-header,.result-nav,.result-actions,.skip-link,.btn,.pressure-controls,.tab-row,.analysis-toolbar,.chart-scrubber,.asset-drawer,.drawer-backdrop,.diagnostics,.print-example-header,.print-example-footer{display:none!important}
 .shell-main,.result-layout{width:100%;margin:0;display:block;padding:0}.panel{box-shadow:none;border-color:#cbd4c5;background:white!important}.panel-head,.panel-body{padding:16px}.chapter{break-inside:auto}.result-hero{margin-bottom:20px}.result-hero h1{font-size:28px}.chart-canvas svg{max-height:220px}.chart-readout{font-size:9pt}.chart-axis{fill:#41553e}.chart-limitation,.metric-note,.panel-subtitle{color:#455540;font-size:9pt}.path-chart,.metric-card,.source-card,.risk-dimension,.reference-card,tr,.stress-detail{break-inside:avoid}.chart-data:not([open]){display:none}.chart-data .table-scroll{max-height:none;overflow:visible}.table-scroll{overflow:visible;max-height:none}.data-table,.allocation-table{width:100%;min-width:0}.data-table th,.data-table td{padding:6px;font-size:8pt;white-space:normal;overflow-wrap:anywhere}.data-table th{position:static}.pressure-comparison{grid-template-columns:repeat(3,minmax(0,1fr))}.pressure-card{break-inside:avoid}.grid-2{grid-template-columns:1fr 1fr}.horizon-comparison{display:block}.stress-grid{min-width:0;grid-template-columns:65px repeat(5,minmax(0,1fr));gap:3px;break-inside:avoid}.stress-axis,.stress-cell{padding:5px 3px;font-size:8pt;min-width:0}.stress-cell small,.stress-cell strong{font-size:7pt;white-space:normal}.annual-bars{overflow:visible}.annual-bar{min-width:0}.reference-grid{grid-template-columns:1fr 1fr}.example-banner{break-inside:avoid}.goal-cards,.liquidity-lanes,.summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.spending-timeline{grid-template-columns:repeat(3,minmax(0,1fr))}.risk-dimensions{grid-template-columns:1fr 1fr}.status-chip{color:#46553b;background:#fff;border-color:#a5b09c}.chart-context{display:none}h1,h2,h3,h4{break-after:avoid}thead{display:table-header-group}
 .printing-report #app{display:none!important}.printing-report .print-document{display:table;border-collapse:collapse;width:100%;color:#203a2e;background:#fff}.print-document>thead{display:table-header-group}.print-document>tfoot{display:table-footer-group}.print-document>thead>tr>td{padding:0 0 5mm;font-size:9pt}.print-document>tfoot>tr>td{padding:5mm 0 0;text-align:center;font-size:9pt}.print-document>tbody>tr{break-inside:auto}.print-document .print-body{padding:0}.print-document .shell-main{margin:0;width:100%}
}

.chart-unit { font-size:11px;color:#6c7b63;margin:16px 0 4px; }
.annual-bar-track { position:relative;height:100px;border-bottom:0; }.annual-bar-track:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#dbe4d3;}.annual-bar-track i{position:absolute;bottom:50%;left:22.5%;max-width:none;width:55%;}.annual-bar-track i.negative{top:50%;bottom:auto;border-radius:0 0 3px 3px;}
@media print { .quantile-chart,.recovery-summary { break-inside:avoid; }.chart-unit{font-size:8pt;} }

@media print {
 .spending-timeline,.goal-cards,.grid-2>.panel,.method-details { break-inside:avoid; }
 .panel-head { break-inside:avoid; break-after:avoid; }
 .panel-head+.panel-body { break-before:avoid; }
 .pressure-panel,.summary-analysis-panel { break-before:page; }
 .reading-guide,details:not([open]) { display:none; }
}

/* Carry the cover's teal, glass and rounded controls into the bright workbench. */
.app-header,.information-header { border-bottom-color:#d1e2dc; background:linear-gradient(110deg,#eff8f5eF,#ffffffed 62%); backdrop-filter:blur(14px); }
.app-header .brand-mark,.information-header .brand-mark { color:#227967; }
.app-shell .btn,.information-screen .btn { border-radius:999px; }
.app-shell .btn-primary { background:#246653; }
.app-shell .btn-primary:hover { background:#1b5244; }
@media (prefers-reduced-motion:no-preference) {
 .shell-main,.information-content { animation:workbench-arrive .38s ease-out both; }
 @keyframes workbench-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
@media print { .shell-main,.information-content { animation:none; } }
