:root{font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;color:#172b2a;background:#f5f6f1;line-height:1.7}*{box-sizing:border-box}body{margin:0}a{color:#176663;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}button,input{font:inherit}.wrap{max-width:1120px;margin:auto;padding:0 22px}.site-header{background:#fff;border-bottom:1px solid #d9e1d9}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}.brand{font-weight:800;font-size:1.25rem;text-decoration:none;color:#173b37}.brand small{display:block;font-size:.72rem;font-weight:500;color:#60716d}.nav{display:flex;flex-wrap:wrap;gap:16px}.nav a{text-decoration:none;font-weight:600}.nav a[aria-current=page]{text-decoration:underline}.hero{padding:66px 0 32px}.eyebrow{color:#216d65;font-weight:800;letter-spacing:.08em;font-size:.82rem}.hero h1,h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.18;letter-spacing:-.035em;margin:.25em 0}.lead{font-size:1.18rem;color:#425954;max-width:750px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 44px}.card,.panel,.article{background:#fff;border:1px solid #d9e1d9;border-radius:18px;padding:24px;box-shadow:0 5px 22px #143c3010}.card h2,.panel h2{margin-top:0;font-size:1.4rem}.card p{color:#50635d}.card a{font-weight:700}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.article{max-width:780px}.article h2{margin-top:1.9em;font-size:1.45rem}.article p,.article li{max-width:72ch}.note,.source-note{font-size:.9rem;color:#5d6e68}.callout{background:#eaf4f1;border-left:4px solid #268278;padding:16px 20px;border-radius:8px;margin:24px 0}.calculator{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field label{display:block;font-weight:700;margin-bottom:5px}.field input{width:100%;border:1px solid #91a8a2;border-radius:9px;background:#fff;padding:12px}.field small{display:block;color:#526761}.button{background:#176b65;color:#fff;border:0;border-radius:9px;padding:12px 22px;font-weight:800;cursor:pointer}.button:hover{background:#0c4f4a}.form-actions{grid-column:1/-1}.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-item{background:#edf5f1;padding:12px 15px;border-radius:10px}.result-item dt{font-size:.86rem;color:#4b625c}.result-item dd{font-size:1.28rem;font-weight:800;margin:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #dce5df;text-align:left;padding:10px}.chart{margin:24px 0}.chart svg{width:100%;height:auto;background:#f5faf7;border-radius:12px}.chart text{fill:#4e625b;font:13px system-ui}.chart figcaption{font-size:.85rem;color:#526761}footer{border-top:1px solid #d9e1d9;margin-top:64px;background:#fff;padding:28px 0}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer-inner nav{display:flex;gap:14px;flex-wrap:wrap}.breadcrumb{font-size:.9rem;margin-top:24px;color:#58726a}.breadcrumb a{color:inherit}.stack{display:grid;gap:18px}.full{grid-column:1/-1}input:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #b06418;outline-offset:3px}@media(max-width:760px){.topbar{display:block;padding-top:12px;padding-bottom:14px}.nav{gap:9px 16px}.hero{padding:36px 0 16px}.cards,.main-grid,.calculator,.results{grid-template-columns:1fr}.card,.panel,.article{padding:18px}.wrap{padding:0 16px}.footer-inner{display:block}.footer-inner nav{margin-top:12px}}

.data-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.data-highlights>div{background:#eaf4f1;border-radius:12px;padding:16px}.data-highlights strong,.data-highlights span{display:block}.data-highlights strong{font-size:1.5rem;line-height:1.3}.data-highlights span{color:#526761}.data-chart{margin:24px 0}.data-chart svg{display:block;width:100%;height:auto;background:#f5faf7;border-radius:12px}.data-chart rect{fill:#24766b}.data-chart text{fill:#425954;font:12px system-ui}.data-chart figcaption{font-size:.88rem;color:#526761;margin-top:6px}@media(max-width:600px){.data-highlights{grid-template-columns:1fr}}

.inflation-comparison{padding:24px;border:1px solid #d9e1d9;border-radius:16px;margin:28px 0;background:#f7faf5}
.inflation-bars{list-style:none;padding:0;display:grid;gap:22px}
.inflation-bars li>div:first-child{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.inflation-bars strong{font-variant-numeric:tabular-nums;color:#173b37}
.inflation-track{height:18px;background:#e0e9e2;border-radius:6px;overflow:hidden}
.inflation-track span{display:block;height:100%;background:#176b65;border-radius:6px}
.inflation-track .today{background:#ab611e}
@media(max-width:760px){.inflation-comparison{padding:16px}.chart text{font-size:20px}}

.household-figure{margin-block:24px}.household-bars{list-style:none;padding:0;display:grid;gap:14px}.household-bars li>div:first-child{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}.household-bars strong{font-variant-numeric:tabular-nums}.household-track{height:16px;background:#e0e9e2;border-radius:6px;overflow:hidden}.household-track span{display:block;height:100%;background:#176b65;border-radius:6px}.older-household .household-track span{background:#a65c21}.older-household{background:#fff4e7;outline:10px solid #fff4e7}.household-bars{max-width:800px}

.income-editor{grid-column:1/-1;min-width:0;border:1px solid #b9cbc1;border-radius:12px;padding:18px}.income-editor legend{font-weight:800;padding-inline:8px}.income-editor fieldset{min-width:0;margin:18px 0;border:1px solid #d9e1d9;border-radius:10px;padding:16px}.extra-income-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.button.secondary{background:#e3eee8;color:#173b37}.remove-income{margin-top:12px;min-height:44px;background:#fff;border:1px solid #a65c21;color:#784015;border-radius:8px;padding:8px 14px;cursor:pointer}.button:disabled{opacity:.5;cursor:default}.income-phase-chart{padding:20px;background:#f5faf7;border:1px solid #d9e1d9;border-radius:12px;margin:24px 0}.income-phase-chart ol{list-style:none;padding:0;display:grid;gap:18px}.income-phase-chart li>div:first-child{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.phase-track{height:16px;background:#e0e9e2;margin-top:6px;border-radius:5px;overflow:hidden}.phase-track span{display:block;height:100%;background:#176b65;border-radius:5px}@media(max-width:760px){.extra-income-grid{grid-template-columns:1fr}.income-editor,.income-phase-chart{padding:14px}}

.source-attribution{margin-block:28px;max-width:780px;padding:24px;background:#edf5f1;border:1px solid #c9ded2;border-radius:14px}.source-attribution h2{margin-top:0;font-size:1.3rem}.source-attribution p:last-child{margin-bottom:0}@media(max-width:760px){.source-attribution{padding:18px}}

.balance-chart .balance-grid{stroke:#d7e3dc;stroke-width:1}.balance-chart .balance-axis{stroke:#78968a;stroke-width:1.5}.balance-chart .balance-line{fill:none;stroke:#176b65;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.balance-chart .balance-point{fill:#176b65}.balance-chart .balance-unprojected{fill:#e1e5e1}.balance-chart .balance-shortage{stroke:#9d5425;stroke-width:2;stroke-dasharray:7 5}.balance-chart .balance-event-label{fill:#87451d}.balance-chart svg text{font-size:18px}.balance-event{font-size:.92rem;border-left:3px solid #9d5425;padding-left:12px}.balance-chart summary{cursor:pointer;font-weight:800;padding:14px 0}.balance-chart summary:focus-visible,.balance-chart .table-scroll:focus-visible{outline:3px solid #b06418;outline-offset:3px}.balance-chart caption{text-align:left;margin-block:10px}.balance-chart td{font-variant-numeric:tabular-nums}@media(max-width:760px){.balance-chart svg text{font-size:30px}.balance-chart h3{font-size:1.1rem}.balance-chart .table-scroll{font-size:.9rem}}

.start-entry{padding:26px;background:#e3eee8;border-left:5px solid #176663;border-radius:12px;margin:0 0 28px}.start-entry h2{margin-top:0}.start-cards,.start-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0}.start-card{background:white;border:1px solid #d9e1d9;padding:24px;border-radius:12px;display:flex;flex-direction:column}.start-card h2{font-size:1.3rem}.start-card a{margin-top:auto;font-weight:700;padding-block:10px}.start-steps{list-style:none;padding:0}.start-steps li{padding:18px;background:#f0f6f2;border-radius:8px}.start-steps strong{color:#176663}@media(max-width:760px){.start-cards,.start-steps{grid-template-columns:1fr}.start-entry,.start-card{padding:18px}}

.budget-scope,.budget-fields,.budget-next{margin:24px 0;background:#fff;border:1px solid #c9d8cd;border-radius:12px;padding:24px}.budget-scope label{display:block;font-weight:800}.budget-scope select{font:inherit;max-width:100%;padding:10px;border:1px solid #799e8b;border-radius:6px;margin-top:10px}.budget-fields legend{padding:0 10px;font-size:1.25rem;font-weight:800;color:#176663}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.budget-field{min-width:0;display:grid;gap:8px;align-content:start}.budget-field label{display:flex;justify-content:space-between;gap:8px;font-weight:700}.budget-field label span{font-weight:400;white-space:nowrap;font-size:.9rem}.budget-field input{width:100%;min-width:0;font:inherit;padding:12px;border:1px solid #799e8b;border-radius:7px;background:#fbfdfa}.budget-field small{color:#526761}.budget-actions{display:flex;flex-wrap:wrap;gap:12px}.budget-result{margin-top:24px}.budget-result[hidden]{display:none}.budget-result figure{margin:24px 0}.budget-bar-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;margin:16px 0}.budget-bar-track{background:#e1eae3;height:22px;border-radius:5px;overflow:hidden}.budget-bar-track i{display:block;background:#176663;height:100%}.budget-bar-row:last-child i{background:#a65c21}.budget-next>summary{font-size:1.25rem;font-weight:800;cursor:pointer;padding:12px}.budget-next>summary:focus-visible{outline:3px solid #b06418;outline-offset:3px}.budget-next .main-grid{grid-template-columns:1fr}.budget-next .panel{min-width:0}@media(max-width:760px){.budget-grid{grid-template-columns:1fr}.budget-scope,.budget-fields,.budget-next{padding:16px}.budget-bar-row{grid-template-columns:1fr;gap:6px}.budget-actions{display:grid}.budget-next>summary{font-size:1.1rem}.budget-next .panel{padding:14px}}

.scenario-comparison{margin:24px 0;display:grid;gap:16px}.scenario-comparison figcaption{font-weight:700}.scenario-comparison p{margin:4px 0 8px}.scenario-track{height:18px;background:#e2e9e5;border-radius:4px}.scenario-track i{display:block;height:100%;background:#216b56;border-radius:4px}
