.calculator-page{width:min(1320px,calc(100% - 48px));margin:0 auto;padding:11px 0 var(--section-space)}
.breadcrumb-bar+.calculator-page>:first-child{padding-top:clamp(9px,1.25vw,17px)}
.calculator-page h1{font-size:clamp(2.7rem,4.6vw,4.6rem);font-weight:850;line-height:1.02;letter-spacing:-.052em}
.calculator-page h2{font-weight:830;letter-spacing:-.025em}
.calculator-page input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #9ba9a4;border-radius:4px!important;background:#fff;color:var(--ink);font:inherit}
.calculator-page input:focus{border-color:#00845b;outline:3px solid rgba(0,132,91,.16);outline-offset:0}
.calculator-page .dark-cta{margin-top:72px;border-radius:18px!important}
.calculator-method,.calculator-example,.calculator-limitations,.calculator-related{margin-top:72px}
.calculator-related a{font-weight:820}

/* Spending analyzer: a category ledger beside a live distribution map. */
.spending-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:clamp(32px,4vw,52px);align-items:center;padding:clamp(34px,5vw,66px);border-radius:22px!important;background:#e7f8f2}
.calculator-action-first{grid-template-columns:minmax(440px,1.1fr) minmax(0,.9fr)}
.calculator-action-first>h1{grid-column:1/-1}
.spending-hero .page-direct-answer{width:100%;max-width:none;font-size:1.18rem;line-height:1.6}
.spending-hero ul{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.spending-hero li{padding:8px 12px;border-radius:999px!important;background:#fff;color:#006f4c;font-size:.78rem;font-weight:800}
.calculator-upload-panel{min-width:0;color:#17201d}
.calculator-upload-panel .upload-form{padding:20px;border-radius:18px!important;background:#fff}
.calculator-upload-panel .upload-zone{min-height:172px;padding:20px 16px;border-radius:13px!important;background:#f6f7f5}
.calculator-upload-panel .upload-zone:hover,.calculator-upload-panel .upload-zone.dragging{background:#e7f8f2}
.calculator-upload-panel .tool-output-contract,.calculator-upload-panel .save-signin{border-radius:8px!important}
.calculator-upload-panel .consent{margin:12px 0}
.calculator-upload-panel .button{border-radius:7px!important}
.calculator-upload-panel .privacy-note{margin-bottom:0;line-height:1.45}
.spending-workbench{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(370px,.85fr);gap:28px;align-items:start;margin-top:54px}
.spending-entry{padding:34px;border-radius:18px!important;background:#f3f4f3}
.spending-entry-heading{width:100%;max-width:none;margin-bottom:24px}
.spending-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.spending-ledger label{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:12px;align-items:center;padding:10px 12px;border-radius:8px!important;background:#fff}
.spending-ledger label>span:first-child{font-size:.84rem;font-weight:780}
.currency-field{position:relative;display:block}
.currency-field b{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#66706c;font-size:.8rem}
.currency-field input{min-height:42px;padding-left:25px;text-align:right}
.spending-distribution{position:sticky;top:104px;padding:30px;border-radius:18px!important;background:#003f2e;color:#fff}
.spending-distribution>.result-label{display:block;color:#b9dfd2;font-size:.76rem;font-weight:820;text-transform:uppercase;letter-spacing:.08em}
.spending-distribution>strong{display:block;margin:4px 0 8px;font-size:2.8rem;letter-spacing:-.04em}
.spending-distribution>p{color:#d8eee7}
.spending-bars{display:grid;gap:13px;margin-top:24px}
.spending-bars article>div{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;font-size:.78rem}
.bar-rank{width:20px;height:20px;display:grid;place-items:center;border-radius:50%!important;background:#a4e638;color:#003f2e;font-weight:900}
.bar-value{color:#c9e3da}
.spending-bars meter{width:100%;height:9px;accent-color:#a4e638}
.spending-scenario{margin-top:28px;padding:22px;border-radius:12px!important;background:#fff;color:#17201d}
.spending-scenario h3{font-size:1.05rem}
.spending-scenario label{display:grid;grid-template-columns:1fr 90px;gap:14px;align-items:center;margin:14px 0}
.spending-scenario label>span:last-child{display:flex;align-items:center;gap:6px}
.spending-scenario input{min-height:40px;text-align:right}
.spending-scenario dl{display:grid;gap:8px;margin:0}
.spending-scenario dl div{display:flex;justify-content:space-between;gap:20px}
.spending-scenario dd{margin:0;font-weight:850}
.spending-scenario small{display:block;margin-top:12px;color:#626a67}
.spending-interpretation{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;margin-top:72px;padding:42px;border-radius:18px!important;background:#f1eef8}
.spending-interpretation figure{margin:0}
.spending-interpretation figure img{width:100%;aspect-ratio:1.9/1;object-fit:cover;border-radius:14px!important}
.spending-interpretation figcaption{margin-top:9px;color:#58615d;font-size:.72rem;line-height:1.5}
.spending-interpretation dl{display:grid;gap:14px;margin:0}
.spending-interpretation>dl{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
.spending-interpretation dl div{padding:18px;border-radius:10px!important;background:#fff}
.spending-interpretation dt{font-weight:850}
.spending-interpretation dd{margin:5px 0 0;color:#4d5451;line-height:1.6}
.spending-method ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:0;list-style:none;counter-reset:method}
.spending-method li{padding:26px;border-radius:14px!important;background:#e7f8f2;counter-increment:method}
.spending-method li::before{display:block;margin-bottom:14px;color:#00845b;font-size:1.5rem;font-weight:900;content:counter(method)}
.spending-method h3{font-size:1.15rem}
.spending-example{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;padding:38px;border-radius:18px!important;background:#fff7e9}
.spending-example aside{padding:24px;border-radius:12px!important;background:#fff}
.spending-limits>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.spending-limits article{padding:24px;border:1px solid #dfe6e2;border-radius:14px!important}
.spending-next{display:grid;grid-template-columns:.7fr 1.3fr;gap:38px;padding:38px;border-radius:18px!important;background:#e7f8f2}
.spending-next nav{display:grid;gap:12px}
.spending-next article{padding:18px;border-radius:10px!important;background:#fff}
.spending-next article p{margin-bottom:0}

/* Monthly expense calculator: a planning worksheet and closing statement. */
.expense-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:clamp(32px,4vw,50px);align-items:center;padding:clamp(36px,5vw,68px);border-radius:22px!important;background:#fff3da}
.expense-hero .page-direct-answer{width:100%;max-width:none;font-size:1.18rem;line-height:1.6}
.expense-equation{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:28px}
.expense-equation span{padding:9px 12px;border-radius:6px!important;background:#fff;font-size:.78rem;font-weight:820}
.expense-equation b{color:#007957;font-size:.72rem;text-transform:uppercase}
.expense-source-guide{display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:36px;align-items:center;margin-top:54px;padding:38px;border-radius:18px!important;background:#e7f8f2}
.expense-source-guide>div p{margin-bottom:0}
.expense-source-guide figure{margin:0}
.expense-source-guide img{width:100%;aspect-ratio:1.9/1;object-fit:cover;border-radius:14px!important}
.expense-source-guide figcaption{margin-top:9px;color:#58615d;font-size:.72rem;line-height:1.5}
.expense-planner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:32px;align-items:start;margin-top:54px}
.expense-inputs{display:grid;gap:18px}
.expense-input-heading{padding:30px;border-radius:16px!important;background:#f1eef8}
.expense-inputs fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:24px;border:0;border-radius:16px!important;background:#f3f4f3}
.expense-inputs legend{padding:0 0 12px;font-size:1.15rem;font-weight:850}
.expense-inputs label{display:grid;gap:7px;padding:12px;border-radius:9px!important;background:#fff;font-size:.82rem;font-weight:780}
.expense-inputs label:last-child:nth-child(even){grid-column:1/-1}
.expense-statement{position:sticky;top:104px;padding:30px;border-radius:16px!important;background:#fff;border:3px solid #00845b}
.expense-statement>div:first-child{display:grid;gap:4px;margin-bottom:24px}
.expense-statement>div:first-child span{color:#68706d;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.expense-statement>div:first-child strong{font-size:1.3rem}
.expense-statement dl{display:grid;gap:8px;margin:0}
.expense-statement dl div{display:flex;justify-content:space-between;gap:18px;padding:10px 0}
.expense-statement dd{margin:0;font-weight:850}
.expense-total{font-size:1.05rem}
.expense-remaining{padding:18px!important;border-radius:10px!important;background:#e7f8f2;font-size:1.15rem}
.expense-statement>p{margin:22px 0 0;color:#545c59}
.expense-reserve-guide{margin-top:72px;padding:42px;border-radius:18px!important;background:#003f2e;color:#fff}
.expense-reserve-guide>.section-answer,.expense-reserve-guide>div:first-child p{color:#d8eee7}
.expense-reserve-guide>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
.expense-reserve-guide article{padding:24px;border-radius:12px!important;background:#fff;color:#17201d}
.expense-example{width:100%;max-width:none;margin-left:0;margin-right:0;padding:38px;border-radius:18px!important;background:#f1eef8}
.expense-method{display:grid;grid-template-columns:.75fr 1.25fr;gap:42px}
.expense-method dl{display:grid;gap:12px;margin:0}
.expense-method dl div{padding:20px;border-radius:12px!important;background:#e7f8f2}
.expense-method dt{font-weight:850}
.expense-method dd{margin:6px 0 0;color:#4b5551;line-height:1.65}
.expense-next>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.expense-next article{padding:24px;border-radius:14px!important;background:#fff7e9}
.expense-limits{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;padding:38px;border-radius:18px!important;background:#f3f4f3}
.expense-limits ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.expense-limits li{display:grid;gap:5px;padding:18px;border-radius:10px!important;background:#fff}
.expense-limits li span{color:#515a56;line-height:1.6}

/* Financial health check: a neutral signal board, never a scorecard. */
.health-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:clamp(32px,4vw,48px);align-items:center;padding:clamp(36px,5vw,66px);border-radius:22px!important;background:#003f2e;color:#fff}
.health-hero .page-direct-answer{width:100%;max-width:none;color:#d7eee6;font-size:1.18rem;line-height:1.6}
.health-hero aside{display:grid;gap:5px;margin-top:24px;padding:18px;border-radius:12px!important;background:#fff;color:#17201d}
.health-hero-upload{min-width:0;color:#17201d}
.health-hero-upload .upload-form{padding:20px;border-radius:18px!important;background:#fff}
.health-hero-upload .upload-zone{min-height:172px;padding:20px 16px;border-radius:13px!important;background:#f6f7f5}
.health-hero-upload .upload-zone:hover,.health-hero-upload .upload-zone.dragging{background:#e7f8f2}
.health-hero-upload .tool-output-contract,.health-hero-upload .save-signin{border-radius:8px!important}
.health-hero-upload .consent{margin:12px 0}
.health-hero-upload .button{border-radius:7px!important}
.health-hero-upload .privacy-note{margin-bottom:0;line-height:1.45}
.health-boundary{display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:36px;align-items:center;margin-top:54px;padding:38px;border-radius:18px!important;background:#f1eef8}
.health-boundary>div p{margin-bottom:0}
.health-boundary figure{margin:0}
.health-boundary img{width:100%;aspect-ratio:1.9/1;object-fit:cover;border-radius:14px!important}
.health-boundary figcaption{margin-top:9px;color:#58615d;font-size:.72rem;line-height:1.5}
.health-boundary ul{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.health-boundary li{display:grid;gap:5px;padding:18px;border-radius:10px!important;background:#fff}
.health-boundary li span{color:#555d59}
.health-lab{display:grid;grid-template-columns:minmax(330px,.65fr) minmax(0,1.35fr);gap:28px;align-items:start;margin-top:72px}
.health-input-panel{display:grid;gap:11px;padding:30px;border-radius:16px!important;background:#f3f4f3}
.health-input-panel label{display:grid;grid-template-columns:1fr 150px;gap:12px;align-items:center;padding:11px;border-radius:8px!important;background:#fff;font-size:.82rem;font-weight:780}
.health-input-panel input{text-align:right}
.health-signal-board{padding:32px;border-radius:18px!important;background:#e7f8f2}
.health-board-heading{display:flex;justify-content:space-between;gap:24px;align-items:start}
.health-board-heading p{width:100%;max-width:none;margin:0;color:#53605b}
.health-signals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}
.health-signals article{padding:24px;border-radius:13px!important;background:#fff}
.health-signals article>span{display:block;color:#58615d;font-size:.78rem;font-weight:800}
.health-signals strong{display:block;margin:8px 0;color:#007957;font-size:2rem;letter-spacing:-.04em}
.health-signals p{margin:0;color:#58615d;font-size:.8rem}
.health-signal-board>dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0}
.health-signal-board>dl div{display:flex;justify-content:space-between;gap:15px;padding:14px;border-radius:10px!important;background:#003f2e;color:#fff}
.health-signal-board dd{margin:0;font-weight:850}
.health-method{padding:38px;border-radius:18px!important;background:#fff7e9}
.health-method>.table-wrap{margin-top:24px}
.health-method table{width:100%;border-collapse:separate;border-spacing:8px}
.health-method th,.health-method td{padding:18px;border-radius:8px!important;background:#fff;text-align:left;vertical-align:top}
.health-method thead th{background:#003f2e;color:#fff}
.health-example{display:grid;grid-template-columns:.8fr 1.2fr;gap:38px;padding:38px;border-radius:18px!important;background:#e7f8f2}
.health-limits>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.health-limits article{padding:24px;border-radius:14px!important;background:#f1eef8}
.health-next{display:grid;grid-template-columns:.75fr 1.25fr;gap:38px}
.health-next ol{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.health-next li{padding:20px;border-left:6px solid #a4e638;border-radius:8px!important;background:#003f2e;color:#fff}
.health-next li a{color:#fff}
.health-next li p{margin-bottom:0;color:#d7eee6}

@media(max-width:1120px){.spending-hero,.expense-hero,.health-hero,.spending-workbench,.expense-planner,.health-lab{grid-template-columns:1fr}.spending-distribution,.expense-statement{position:static}.spending-interpretation,.spending-next,.expense-source-guide,.expense-method,.expense-limits,.health-boundary,.health-example,.health-next{grid-template-columns:1fr}.spending-method ol,.spending-limits>div,.expense-reserve-guide>div:last-child,.expense-next>div:last-child,.health-boundary ul,.health-limits>div{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.calculator-page{width:calc(100% - 28px);padding-top:6px}.spending-hero,.expense-hero,.health-hero{padding:28px 20px}.spending-ledger,.expense-inputs fieldset,.health-signals,.health-signal-board>dl,.spending-interpretation>dl{grid-template-columns:1fr}.spending-ledger label,.health-input-panel label{grid-template-columns:1fr}.spending-method ol,.spending-limits>div,.expense-reserve-guide>div:last-child,.expense-next>div:last-child,.health-boundary ul,.health-limits>div{grid-template-columns:1fr}.spending-entry,.spending-distribution,.expense-statement,.health-input-panel,.health-signal-board{padding:22px 18px}.spending-interpretation,.spending-example,.spending-next,.expense-source-guide,.expense-reserve-guide,.expense-example,.expense-limits,.health-boundary,.health-method,.health-example{padding:26px 20px}.calculator-upload-panel .upload-form,.health-hero-upload .upload-form{padding:14px}.calculator-upload-panel .upload-zone,.health-hero-upload .upload-zone{min-height:150px}.health-board-heading{display:grid}.expense-equation{align-items:flex-start;flex-direction:column}.expense-inputs label:last-child:nth-child(even){grid-column:auto}}
