:root{--bg: #eef1f8;--card: #ffffff;--ink: #17203a;--muted: #5c6a86;--line: #e3e8f2;--brand: #2f6df6;--brand-deep: #1a4fd0;--brand-tint: #e9f0ff;--field-bg: #f7f9fd;--shadow: 0 8px 30px rgba(23, 32, 58, .09)}@media(prefers-color-scheme:dark){:root{--bg: #0f1524;--card: #171e30;--ink: #eef2fb;--muted: #9aa6c2;--line: #26304a;--brand: #5b8bff;--brand-deep: #7ba1ff;--brand-tint: #1b2540;--field-bg: #1f2840;--shadow: 0 8px 30px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}input,button,select,textarea{font-family:inherit}.page{max-width:620px;margin:0 auto;padding:40px 20px 72px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}.hero{text-align:center;margin-bottom:28px}.hero h1{margin:0;font-size:28px;letter-spacing:-.02em}.tagline{margin:6px 0 0;color:var(--muted);font-size:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.inputs{display:grid;gap:18px}.field{display:grid;gap:4px}.field .q{font-weight:600;font-size:15px}.field small{color:var(--muted);font-size:13px}.field input{margin-top:4px}input[type=number]{width:100%;padding:11px 12px;font-size:16px;border:1px solid var(--line);border-radius:10px;background:var(--field-bg);color:var(--ink)}input[type=number]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.money-input{position:relative;display:flex;align-items:center}.money-input .prefix{position:absolute;left:12px;color:var(--muted);font-size:16px;pointer-events:none}.money-input input{padding-left:26px;padding-right:78px}.money-input .suffix{position:absolute;right:12px;color:var(--muted);font-size:14px;pointer-events:none}.age-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.years-note{margin:2px 0 0;color:var(--muted);font-size:13px}.results{display:grid;gap:14px;margin:20px 0}.result-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.result-card.primary{border-color:var(--brand);background:linear-gradient(180deg,var(--brand-tint),var(--card) 70%)}.result-label{margin:0;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.result-number{margin:6px 0 0;font-size:46px;font-weight:800;letter-spacing:-.03em;color:var(--brand-deep);line-height:1.05}.result-card:not(.primary) .result-number{color:var(--ink)}.result-sub{margin:2px 0 0;color:var(--muted);font-size:14px}.result-detail{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--ink)}.assumptions{margin-top:8px}.accordion{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:none;color:var(--brand);font-size:15px;font-weight:600;cursor:pointer;padding:16px 20px;text-align:left}.accordion-body{padding:0 20px 20px}.chev{font-size:11px}.sliders{display:grid;gap:20px}.slider{display:grid;gap:6px}.slider-top{display:flex;justify-content:space-between;font-weight:600;font-size:15px}.slider-value{color:var(--brand-deep)}.slider input[type=range]{width:100%;accent-color:var(--brand)}.slider small{color:var(--muted);font-size:13px}.future-monthly-note{margin:4px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:14px;color:var(--ink)}.ontrack{margin-top:8px}.ontrack-body{display:grid;gap:18px}.ontrack-intro{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.status-card{border:1px solid var(--line);border-radius:14px;padding:18px}.status-on-track{border-color:#37b26e;background:#37b26e1a}.status-close{border-color:#d9a520;background:#d9a5201f}.status-shortfall{border-color:#e0574f;background:#e0574f1a}.status-badge{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px}.status-emoji{font-size:18px}.status-compare{margin-top:14px;display:grid;gap:6px}.status-row{display:flex;justify-content:space-between;font-size:15px}.status-row .k{color:var(--muted)}.status-row .v{font-weight:700}.status-message{margin:14px 0 0;font-size:14px;line-height:1.5}.explain{margin:20px 0 8px;display:grid;gap:14px}.explain-btn{width:100%;padding:14px 18px;font-size:15px;font-weight:700;color:#fff;border:none;border-radius:12px;cursor:pointer;background:linear-gradient(135deg,var(--brand),var(--brand-deep));box-shadow:var(--shadow)}.explain-btn:disabled{opacity:.7;cursor:default}.explain-output p{margin:0 0 12px;font-size:15px;line-height:1.6}.explain-output p:last-child{margin-bottom:0}.explain-error{margin:0;font-size:14px;color:#e0574f;text-align:center}.sticky-bar{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 4px 16px #00000024}.sticky-inner{max-width:620px;margin:0 auto;padding:9px 18px;display:flex;align-items:center;gap:16px}.sticky-field{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}.sticky-field input[type=number]{width:72px;padding:6px 8px;font-size:14px;border-radius:8px}.sticky-money{display:inline-flex;align-items:center;gap:3px}.sticky-money input[type=number]{width:76px}.sticky-prefix,.sticky-unit{color:var(--muted)}.sticky-result{margin-left:auto;display:flex;align-items:baseline;gap:6px;white-space:nowrap}.sticky-result-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.sticky-result strong{font-size:17px;color:var(--brand-deep)}@media(max-width:520px){.sticky-inner{gap:10px;padding:8px 12px}.sticky-field>span:first-child,.sticky-result-label{display:none}}.infotip{position:relative;display:inline-flex;vertical-align:middle;margin-left:5px}.infotip-btn{width:16px;height:16px;padding:0;border:none;border-radius:50%;background:var(--muted);color:var(--card);font-size:11px;font-weight:700;font-style:italic;line-height:16px;text-align:center;cursor:pointer}.infotip-bubble{position:absolute;top:150%;right:0;z-index:10;width:250px;max-width:70vw;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);font-size:13px;font-weight:400;line-height:1.5;color:var(--ink)}.ss{margin-top:8px}.ss-badge{margin-left:8px;font-size:12px;font-weight:600;color:var(--muted)}.ss-body{display:grid;gap:16px}.ss-intro{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.ss-modes{display:flex;gap:8px}.ss-mode{flex:1;padding:9px 10px;font-size:14px;font-weight:600;border:1px solid var(--line);border-radius:9px;background:var(--field-bg);color:var(--muted);cursor:pointer}.ss-mode.active{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-deep)}.ss-estimate{display:grid;gap:10px}.ss-sublabel{margin:0;font-size:13px;font-weight:600;color:var(--muted)}.ss-job{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.ss-job input[type=number]{width:62px;padding:7px 8px;font-size:14px;border-radius:8px}.ss-job input.ss-salary{width:92px}.ss-remove{margin-left:auto;width:24px;height:24px;border:none;border-radius:50%;background:var(--field-bg);color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.ss-add{justify-self:start;padding:7px 12px;font-size:14px;font-weight:600;border:1px dashed var(--line);border-radius:9px;background:none;color:var(--brand);cursor:pointer}.ss-row-2{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.ss-inline{gap:4px}.ss-inline select{padding:9px 10px;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--field-bg);color:var(--ink)}.ss-couple{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}.ss-result{display:flex;align-items:baseline;justify-content:space-between;padding-top:14px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}.ss-result strong{font-size:20px;color:var(--brand-deep)}.ss-note{margin:0;font-size:14px;line-height:1.5;color:var(--ink)}.disclaimer{margin-top:28px;text-align:center;font-size:12.5px;line-height:1.5;color:var(--muted)}
