:root{--bg:#faf8f4;--card:#fff;--ink:#1d2a26;--muted:#5b6763;--line:#e4ded3;--accent:#1d5f8a;--accent-ink:#fff;--soft:#e8f1f8;--warn:#9a5b00;--warn-soft:#fff4e0;--radius:14px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#11161a;--card:#192128;--ink:#e8eef2;--muted:#a2afb8;--line:#2b3640;--accent:#6cb6e6;--accent-ink:#0b1c28;--soft:#182a36;--warn:#f0b85a;--warn-soft:#2e2415;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:17px/1.55 var(--font);margin:0}a{color:var(--accent)}.wrap{max-width:1040px;margin:0 auto;padding:0 16px}header.top{border-bottom:1px solid var(--line);background:var(--card)}header.top .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:60px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;font-weight:800;text-decoration:none}.brand span{color:var(--accent)}nav.tools{flex-wrap:wrap;gap:4px 14px;padding:6px 0;font-size:15px;display:flex}nav.tools a{color:var(--muted);text-decoration:none}nav.tools a[aria-current=page],nav.tools a:hover{color:var(--ink);text-decoration:underline}main{padding:24px 0 48px}h1{letter-spacing:-.02em;margin:8px 0;font-size:clamp(28px,4vw,40px);line-height:1.15}h2{margin:36px 0 8px;font-size:24px}h3{margin:20px 0 4px;font-size:18px}.lede{color:var(--muted);max-width:70ch;margin:0 0 20px;font-size:19px}.tool{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:16px;display:grid}@media (width<=820px){.tool{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.result{position:sticky;top:12px}@media (width<=820px){.result{position:static}}label.f{margin:14px 0 6px;font-size:15px;font-weight:600;display:block}label.f:first-child{margin-top:0}.hint{color:var(--muted);font-size:14px;font-weight:400}input[type=number],input[type=text]{width:100%;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;min-height:44px;padding:10px 12px}input:focus-visible,button:focus-visible,.chip input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.money{position:relative}.money:before{content:"$";color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.money input{padding-left:26px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{position:relative}.chip input{opacity:0;margin:0;position:absolute;inset:0}.chip span{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:999px;min-height:40px;padding:8px 14px;font-size:15px;line-height:22px;display:inline-block}.chip input:checked+span{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.line{border:1px dashed var(--line);border-radius:12px;margin:10px 0;padding:12px}.line-head{justify-content:space-between;align-items:center;gap:8px;display:flex}button{font:inherit;cursor:pointer;border-radius:10px;min-height:44px}.btn{background:var(--accent);color:var(--accent-ink);border:0;padding:10px 16px;font-weight:700}.btn-quiet{color:var(--accent);border:1px solid var(--line);background:0 0;padding:8px 14px}.x{color:var(--muted);background:0 0;border:0;min-height:32px;font-size:14px;text-decoration:underline}.big{letter-spacing:-.02em;font-size:40px;font-weight:800;line-height:1.1}.kv{grid-template-columns:1fr auto;gap:6px 12px;margin:12px 0 0;font-size:16px;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.why{background:var(--soft);border-radius:10px;margin-top:14px;padding:10px 12px;font-size:15px}.note{background:var(--warn-soft);color:var(--ink);border-left:4px solid var(--warn);border-radius:8px;margin-top:12px;padding:10px 12px;font-size:15px}table.out{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:10px;font-size:15px}table.out th,table.out td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}table.out td.n,table.out th.n{text-align:right}.ad{margin:20px 0}.guide{max-width:72ch}.guide code,.formula{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px}.formula{white-space:pre-wrap;margin:8px 0;padding:10px 12px;display:block}.grid-tools{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.grid-tools a{color:inherit;text-decoration:none}.grid-tools .card:hover{border-color:var(--accent)}.grid-tools h3{color:var(--accent);margin:0 0 4px;font-size:19px}details{border-bottom:1px solid var(--line);padding:10px 0}summary{cursor:pointer;font-weight:600}footer.bottom{border-top:1px solid var(--line);color:var(--muted);padding:24px 0 40px;font-size:14px}footer.bottom a{color:var(--muted)}.crumbs{color:var(--muted);font-size:14px}.crumbs a{color:var(--muted)}select{width:100%;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;min-height:44px;padding:10px 12px}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=520px){.two{grid-template-columns:1fr}}.plan-head{border-top:1px solid var(--line);margin:18px 0 0;padding-top:12px;font-weight:700}.win{color:var(--accent)}.mini{z-index:10;background:var(--accent);color:var(--accent-ink);text-align:left;border:0;padding:12px 16px;font-weight:700;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 6px 20px #0003}.mini[hidden]{display:none}.chk{flex-wrap:wrap;gap:8px;display:flex}ol.steps{padding-left:1.3em}ol.steps li{margin:0 0 12px}.danger{background:#fdeceb;border-left:4px solid #b3261e;border-radius:8px;margin:12px 0;padding:12px 14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .danger{background:#3a1a18}}.sources ul{color:var(--muted);padding-left:1.2em;font-size:15px}.checklist li{margin-bottom:8px}div[data-for]>label.f:first-child{margin-top:14px}
