:root{--bg:#f6f1e8;--fg:#1b2430;--muted:#5d6673;--card:#fffcf7;--line:#e5dccd;--soft:#efe7da;--accent:#0f6e6a;--principal:#244c7a;--gains:#e95420;--ok:#1e7a46;--bad:#b3261e;--radius:16px;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input{font:inherit;color:inherit}a{color:var(--accent)}.wrap{width:min(1080px,100% - 32px);margin-inline:auto}.top{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.top-inner{align-items:center;gap:10px;height:56px;display:flex}.logo{border-radius:6px;width:22px;height:22px;display:inline-flex;overflow:hidden}.logo i{flex:1}.logo i:first-child{background:var(--accent);flex:6}.logo i:nth-child(2){background:var(--gains);flex:3}.logo i:nth-child(3){background:#5e2750;flex:1}.back{white-space:nowrap;margin-left:auto;font-size:14px;text-decoration:none}.back:hover{text-decoration:underline}.intro{padding:40px 0 24px}.intro h1{letter-spacing:-.01em;text-wrap:balance;margin:0 0 8px;font-size:clamp(24px,4vw,34px);line-height:1.25}.intro p{color:var(--muted);margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;padding:24px;box-shadow:0 1px 2px #1b24300a}.card-head{align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.card-head h2{margin:0;font-size:20px}.card-head p{color:var(--muted);margin:2px 0 0;font-size:14px}.step{background:var(--fg);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:grid}.grid{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:28px;display:grid}.inputs{flex-direction:column;gap:18px;display:flex}.outputs{min-width:0}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field small{color:var(--muted);font-weight:400}.input{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:8px;height:46px;padding:0 14px;transition:border-color .15s,box-shadow .15s;display:flex}.input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0f6e6a26}.input em{color:var(--muted);font-style:normal;font-weight:500}.input input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:18px;font-weight:600}.input.short{flex:none;width:104px}.pair{align-items:center;gap:14px;display:flex}input[type=range]{min-width:0;accent-color:var(--accent);flex:1}.chips{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.chips button{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:6px 4px;font-size:13px;font-weight:500}.chips button:hover{border-color:var(--accent)}.chips button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#0f6e6a14}.methods{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.method{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;padding:10px 12px;transition:border-color .15s;display:flex;position:relative}.method:hover{border-color:#c9bfae}.method b{font-size:16px}.method span{color:var(--muted);font-size:12px;font-weight:400}.method[aria-checked=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#0f6e6a0d}.badge{background:var(--accent);color:#fff;border-radius:99px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:600;position:absolute;top:8px;right:8px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.note{background:var(--soft);color:var(--fg);border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.bar{border-radius:99px;height:18px;margin:6px 0 20px;display:flex;position:relative;overflow:visible}.bar span{transition:flex .25s}.bar span:first-child{border-radius:99px 0 0 99px}.bar span:last-of-type{border-radius:0 99px 99px 0}.marker{background:var(--bad);border-radius:2px;width:2px;margin-left:-1px;position:absolute;top:-5px;bottom:-5px}.marker:after{content:"必要支出";color:var(--bad);white-space:nowrap;margin-top:2px;font-size:11px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.buckets{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.buckets li{border-bottom:1px solid var(--line);grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;display:grid}.buckets li>i{border-radius:3px;width:10px;height:10px}.buckets li div{flex-direction:column;min-width:0;display:flex}.buckets small{color:var(--muted);font-size:12px;font-weight:400}.pct{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.amt{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;min-width:92px;font-size:18px;font-weight:700;display:flex}.callout{border-radius:10px;margin:16px 0 0;padding:10px 12px;font-size:14px}.callout.ok{color:var(--ok);background:#1e7a4617}.callout.bad{color:var(--bad);background:#b3261e14}.link-row button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.hero{background:var(--fg);color:#fff;border-radius:12px;flex-direction:column;padding:18px 20px;display:flex}.hero span{opacity:.8;font-size:14px}.hero strong{font-variant-numeric:tabular-nums;font-size:clamp(28px,5vw,38px);line-height:1.2}.hero small{opacity:.75;font-size:13px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.stats div{border:1px solid var(--line);border-radius:12px;flex-direction:column;padding:12px 14px;display:flex}.stats span{color:var(--muted);font-size:13px}.stats b{font-variant-numeric:tabular-nums;font-size:20px}.dot{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.principal{background:var(--principal)}.dot.gains{background:var(--gains)}.chart{margin:18px 0 0}.chart svg{max-width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-size:11px}.chart .grid-line{stroke:var(--line);stroke-dasharray:3 3}.chart .cross{stroke:var(--fg);stroke-dasharray:4 3}.chart .cross-label{fill:var(--fg);font-weight:600}.chart figcaption{color:var(--muted);justify-content:center;gap:16px;font-size:12px;display:flex}.milestones{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:16px;font-size:14px}.milestones th{text-align:right;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 6px;font-weight:500}.milestones td{text-align:right;border-bottom:1px solid var(--line);padding:8px 6px}.milestones th:first-child,.milestones td:first-child{text-align:left}.foot{color:var(--muted);padding:8px 0 48px;font-size:13px}.foot p{margin:0 0 6px}@media (width<=820px){.grid{grid-template-columns:minmax(0,1fr)}}@media (width<=480px){.card{padding:18px 16px}.intro{padding-top:28px}.buckets li{gap:8px}.amt{min-width:80px;font-size:16px}.milestones{font-size:13px}.milestones th,.milestones td{padding:8px 3px}}
