.retirement-page{background:var(--soft)}
.retirement-tool-shell{max-width:1180px}
.retirement-page .tool-layout{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:18px;align-items:start}
.retirement-page .panel,.retirement-page .result{min-width:0;padding:24px;border-radius:16px}
.retirement-input-panel h1{font-size:clamp(27px,4vw,42px);line-height:1.12;letter-spacing:-.03em;margin:9px 0 10px;color:var(--ink)}
.retirement-input-panel>p{color:var(--muted);line-height:1.65;margin:0}
.retirement-page .article-jump{margin:16px 0 18px}
.retirement-page .article-jump a{background:var(--soft);color:var(--blue);text-decoration:none;transition:transform .16s ease,background .16s ease}
.retirement-page .article-jump a:hover{transform:translateY(-1px);background:var(--surface)}
.input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.input-grid label{display:flex;flex-direction:column;gap:6px;color:var(--ink);font-size:13px;font-weight:800;min-width:0}
.input-grid input,.input-grid select{width:100%;box-sizing:border-box;min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--ink);font:inherit;font-weight:700;padding:9px 10px}
.input-grid input:focus,.input-grid select:focus{outline:3px solid color-mix(in srgb,var(--blue) 30%,transparent);outline-offset:2px}
.input-grid select option{background:#141824;color:#f8fafc}
.field-sub{color:var(--muted);font-size:11px;font-weight:700;line-height:1.4}
.inline-number{display:inline-block!important;width:72px!important;min-height:30px!important;padding:5px 6px!important;font-size:12px!important;vertical-align:middle}
.mode-help{min-height:20px;color:var(--muted);font-size:12px;line-height:1.5;margin:12px 0 0}
.retirement-page .quant-actions{margin-top:13px}
.retirement-page .status{min-height:22px;margin-top:12px;color:var(--muted);font-size:13px;font-weight:800}
.retirement-page .status.ok{color:#087f5b}.retirement-page .status.error{color:#b42318}
.status-detail{color:var(--muted);font-size:12px;line-height:1.45;margin-top:3px}
.tool-error{margin:12px 0 0;padding:10px 12px;border:1px solid #ef8354;border-radius:9px;background:color-mix(in srgb,#ef8354 12%,var(--surface));color:#b42318;font-size:13px;line-height:1.55}
.retirement-page .formula-note{margin-top:15px;line-height:1.65}
.retirement-result h2{font-size:25px;line-height:1.25;margin:7px 0 8px;color:var(--ink)}
.result-intro{color:var(--muted);font-size:13px;line-height:1.5;margin:0}
.retirement-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:15px 0}
.retirement-metrics .metric{min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}
.retirement-metrics .metric:last-child{grid-column:1/-1}
.retirement-metrics .metric b{display:block;overflow-wrap:anywhere;color:var(--ink);font-size:20px;line-height:1.2;margin-top:5px}
.retirement-metrics .metric small{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:4px}
.selected-rule{border-left:3px solid #f97316;background:var(--soft);color:var(--muted);font-size:12px;line-height:1.5;padding:9px 11px;margin:12px 0 0}
.selected-rule strong{color:var(--ink)}
.retirement-visual{margin-top:14px!important;padding:13px!important}
.retirement-visual canvas{display:block;width:100%;height:260px;max-width:100%;border-radius:9px;background:var(--soft)}
.table-visual,.scenario-visual{margin-top:12px!important;padding:13px!important}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap table{width:100%;min-width:500px;border-collapse:collapse;font-size:12px}
.table-wrap th,.table-wrap td{padding:8px 7px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}
.table-wrap th{color:var(--muted);font-size:11px}.table-wrap td{color:var(--ink)}
.table-wrap tr:last-child td{border-bottom:0}
.table-wrap td:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.chart-summary{color:var(--muted);font-size:12px;line-height:1.5;margin:8px 0 0}
.retirement-page .source-box{font-size:12px;line-height:1.65;margin-top:12px;padding-top:13px}
.retirement-page .source-box a{color:var(--blue);font-weight:800;text-decoration:underline}
@media(max-width:900px){.retirement-page .tool-layout{grid-template-columns:1fr}.retirement-result{order:2}}
@media(max-width:560px){.retirement-tool-shell{padding-left:14px!important;padding-right:14px!important}.retirement-page .panel,.retirement-page .result{padding:17px}.input-grid,.retirement-metrics{grid-template-columns:1fr;gap:10px}.retirement-metrics .metric:last-child{grid-column:auto}.retirement-page .article-jump{overflow-x:auto;flex-wrap:nowrap}.retirement-page .article-jump a{white-space:nowrap}.retirement-page .quant-actions{display:grid;grid-template-columns:1fr}.retirement-page .quant-actions button{width:100%}.retirement-visual canvas{height:225px}.panel-heading{align-items:flex-start;flex-direction:column;gap:4px}.panel-heading>span{text-align:left}}
@media(prefers-reduced-motion:reduce){.retirement-page .article-jump a{transition:none}}
