.wealth-intro { margin-top:7px; color:var(--muted); font-size:14px; }
#wealth-heading:focus { outline:none; }
.wealth-layout { display:grid; grid-template-columns:minmax(270px,.78fr) minmax(0,1.65fr); gap:22px; align-items:start; }
.wealth-form { padding:24px; }
.wealth-form-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:18px; }
.wealth-form-heading h2 { margin:0; font-size:17px; }
.wealth-form-heading small { color:var(--faint); font-size:12px; }
.wealth-mode { display:grid; grid-template-columns:1fr 1fr; padding:4px; border:1px solid var(--line); border-radius:11px; background:var(--field); gap:4px; margin-bottom:22px; }
.wealth-mode button { min-height:40px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--muted); font-size:14px; }
.wealth-mode button[aria-pressed="true"] { color:var(--gold); background:var(--panel); border-color:var(--line); box-shadow:0 2px 5px #00000008; }
.wealth-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px 12px; }
.wealth-field { display:flex; flex-direction:column; gap:7px; min-width:0; color:var(--muted); font-size:13px; }
.wealth-field.wide { grid-column:1/-1; }
.wealth-input { display:flex; align-items:center; gap:4px; border:1px solid var(--line); border-radius:9px; background:var(--field); padding-right:12px; }
.wealth-input:focus-within { border-color:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 12%,transparent); }
.wealth-input input { width:100%; min-width:0; height:45px; background:transparent; border:0; outline:0; padding:9px 0 9px 12px; color:var(--text); font-size:17px; font-weight:550; font-variant-numeric:tabular-nums; }
.wealth-input span { flex-shrink:0; color:var(--faint); font-size:12px; }
.wealth-assumptions { margin-top:23px; border-top:1px solid var(--line); padding-top:14px; }
.wealth-assumptions summary, .wealth-table summary { cursor:pointer; font-size:13px; color:var(--muted); min-height:38px; align-content:center; }
.wealth-assumptions .wealth-fields { margin-top:10px; }
.wealth-assumptions p { font-size:12px; line-height:1.85; color:var(--faint); margin-top:13px; }
.wealth-error { margin-top:14px; color:var(--red); font-size:13px; }
.wealth-invalid { padding:40px 24px; text-align:center; color:var(--muted); }
.wealth-results { min-width:0; }
.wealth-outlook { border:1px solid color-mix(in srgb,var(--green) 28%,var(--line)); background:linear-gradient(115deg,color-mix(in srgb,var(--green) 8%,var(--panel)),var(--panel)); padding:23px 25px; border-radius:var(--radius); }
.wealth-outlook[data-funded="false"] { border-color:color-mix(in srgb,var(--gold) 38%,var(--line)); background:linear-gradient(115deg,color-mix(in srgb,var(--gold) 9%,var(--panel)),var(--panel)); }
.wealth-status { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.wealth-status::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0; }
[data-funded="false"] .wealth-status::before { background:var(--gold); }
.wealth-outlook h2 { font-size:clamp(23px,2.4vw,32px); line-height:1.5; font-weight:600; margin:7px 0; letter-spacing:.3px; }
.wealth-outlook>p:last-child { font-size:13px; color:var(--muted); }
.wealth-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:17px 0; }
.wealth-metrics>div { padding:15px 16px; background:var(--panel); border:1px solid var(--line); border-radius:11px; }
.wealth-metrics dt { color:var(--muted); font-size:12px; margin-bottom:7px; }
.wealth-metrics dd { margin:0; font-size:clamp(17px,1.7vw,23px); font-weight:600; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.wealth-metrics dd small { display:inline-block; white-space:nowrap; font-size:12px; font-weight:400; margin-left:4px; }
.wealth-positive { color:var(--green); }
.wealth-negative { color:var(--gold); }
.wealth-chart-panel { padding:22px 23px 15px; }
.wealth-chart-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.wealth-chart-heading h2 { font-size:16px; margin:0; }
.wealth-chart-heading span { color:var(--faint); font-size:12px; }
#wealth-chart { color:var(--green); margin:12px -7px 0; }
#wealth-chart svg { display:block; width:100%; height:auto; overflow:visible; }
#wealth-chart text { fill:var(--muted); font-family:var(--font); font-size:12px; }
#wealth-chart .wealth-retire-label { fill:var(--gold); font-weight:550; }
.wealth-gridline { stroke:var(--line); stroke-dasharray:3 5; }
.wealth-retire-line { stroke:var(--gold); stroke-dasharray:4 5; opacity:.7; }
.wealth-curve { fill:none; stroke:var(--green); stroke-width:2.5; stroke-linejoin:round; }
.wealth-chart-dot { fill:var(--green); stroke:var(--panel); stroke-width:2; }
.wealth-table { border-top:1px solid var(--line); margin-top:3px; }
.wealth-table-scroll { max-height:250px; overflow:auto; }
.wealth-table table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.wealth-table th, .wealth-table td { padding:9px 5px; border-bottom:1px solid var(--line); text-align:right; font-weight:400; }
.wealth-table th:first-child { text-align:left; }
.wealth-table thead th { color:var(--muted); background:var(--panel); position:sticky; top:0; }
.wealth-afford { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 2px 6px; }
.wealth-afford p { color:var(--muted); font-size:13px; }
.wealth-afford strong { color:var(--gold); font-size:19px; font-weight:600; display:block; margin:3px 0; }
.wealth-afford small { color:var(--faint); display:block; font-size:12px; }
.wealth-afford button { flex-shrink:0; }
.wealth-disclaimer { margin:20px 0 25px; color:var(--faint); font-size:12px; line-height:1.85; }
@media(max-width:1100px) and (min-width:901px) { .wealth-layout { grid-template-columns:260px minmax(0,1fr); gap:16px; } .wealth-metrics { gap:6px; } .wealth-metrics>div { padding:12px 9px; } .wealth-form { padding:18px; } }
@media(max-width:900px) { .sidebar>.main-nav { grid-template-columns:repeat(5,minmax(0,1fr)); gap:2px; } .main-nav .nav-item { font-size:11px; } .wealth-layout { grid-template-columns:minmax(250px,.8fr) minmax(0,1.3fr); gap:16px; } .wealth-metrics { gap:7px; } .wealth-metrics>div { padding:12px 10px; } }
@media(max-width:700px) { .wealth-layout { grid-template-columns:1fr; } .wealth-form { padding:20px; } .wealth-field.wide { grid-column:auto; } .wealth-outlook { padding:20px; } .wealth-metrics { gap:8px; } .wealth-metrics dd { font-size:17px; } .wealth-chart-panel { padding:18px 14px 12px; } #wealth-chart text { font-size:16px; } .wealth-afford { flex-wrap:wrap; } .wealth-intro { font-size:13px; } }
@media(max-width:700px) { .wealth-metrics dd small { display:block; margin:2px 0 0; } }
