:root{color-scheme:dark;--bg:#101417;--panel:#1b2126;--text:#e7ecee;--muted:#aab7be;--line:#354047;--orange:#e9a846;--mint:#a2e2bf;--field:#13191e;--error:#ffaaa0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,sans-serif}header,main,footer{max-width:1240px;margin:auto;padding:26px}header{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}a{color:inherit;text-underline-offset:4px}.brand{font-size:25px;font-weight:750;text-decoration:none}.brand span,footer{color:var(--muted)}nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap}button,input,select{font:inherit}button{cursor:pointer;color:var(--text);background:var(--field);border:1px solid var(--line);border-radius:8px;padding:9px 13px}button:disabled{opacity:.6;cursor:wait}.eyebrow{color:var(--orange);font-size:11px;letter-spacing:.13em;font-weight:750}h1{font-size:clamp(32px,5vw,60px);letter-spacing:-.04em;line-height:1.12;margin:18px 0}h2{font-size:23px;margin:4px 0}.lead{color:var(--muted);max-width:760px;font-size:18px}.notice{border-left:3px solid var(--orange);padding:8px 15px;color:var(--muted);max-width:950px;font-size:13px;margin:25px 0}form{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;gap:16px;margin:34px 0}fieldset{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}legend{color:var(--orange);font-size:12px;font-weight:700;padding:0 6px}label{display:grid;gap:7px;color:var(--muted);font-size:12px;margin:0 0 17px}input,select{min-width:0;width:100%;background:var(--field);border:1px solid var(--line);border-radius:7px;padding:10px 12px;color:var(--text);font-size:19px;font-variant-numeric:tabular-nums}input:focus{border-color:var(--orange)}.price-meta{display:grid;gap:10px;font-size:11px;color:var(--muted)}.price-meta button{font-size:12px}.form-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px}.error{color:var(--error);border:1px solid;padding:15px;border-radius:8px}.results{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}.strategy{display:block;text-align:left;background:var(--panel);padding:26px;border-radius:14px}.strategy[aria-pressed=true]{border-color:var(--mint);box-shadow:inset 0 3px var(--mint)}.strategy .eyebrow{display:block}.retirement-age{display:block;font-size:60px;line-height:1.2;letter-spacing:-.04em;margin-top:15px;color:var(--mint)}.retirement-year{color:var(--muted);font-size:13px}.strategy p{color:var(--muted);font-size:13px;min-height:42px}.strategy dl{margin-bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:18px}.strategy dt{color:var(--muted);font-size:11px}.strategy dd{margin:6px 0 0;font-weight:650;font-size:16px;overflow-wrap:anywhere}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.section-heading select{font-size:14px}.projection{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:25px}#projection-summary,#chart-detail{color:var(--muted);font-size:12px}canvas{width:100%;height:330px;display:block}.table-scroll{overflow:auto;max-height:560px;overscroll-behavior:contain;margin-top:20px}table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}td,th{text-align:right;padding:10px 12px;border-bottom:1px solid var(--line)}th{position:sticky;top:0;background:var(--field);z-index:1;color:var(--muted);font-size:11px}td:first-child,th:first-child{text-align:left}tr.retired td:first-child{border-left:3px solid var(--mint)}tr:hover{background:var(--field)}.method{margin-top:28px;padding:22px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px}.method summary{color:var(--text);font-size:15px;font-weight:650;cursor:pointer}:focus-visible{outline:2px solid var(--orange);outline-offset:3px}[hidden]{display:none!important}:root[data-theme=light]{color-scheme:light;--bg:#f6f8f9;--panel:#fff;--text:#1b272b;--muted:#53636d;--line:#cbd4d9;--orange:#905500;--mint:#257249;--field:#f0f4f5;--error:#a32928}@media(max-width:850px){form{grid-template-columns:1fr}.results{grid-template-columns:1fr}.strategy p{min-height:0}}@media(max-width:600px){header,main,footer{padding:20px}.projection,fieldset,.strategy{padding:18px}.strategy dl{grid-template-columns:1fr}.retirement-age{font-size:48px}canvas{height:300px}}
