@font-face{font-family:Canvas Sans;src:url('./fonts/manrope-400.woff2?v=a30ddcd349') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Canvas Sans;src:url('./fonts/manrope-700.woff2?v=a30ddcd349') format('woff2');font-weight:600 800;font-display:swap}
@font-face{font-family:Canvas Mono;src:url('./fonts/dmmono-500.woff2?v=9964608a84') format('woff2');font-weight:500;font-display:swap}
@media screen{
:root{--sans:'Canvas Sans','Avenir Next',sans-serif;--mono:'Canvas Mono',Consolas,monospace;--ink:#e5eaf0;--ink2:#b4c0cd;--muted:#a1afbc;--line:#35414b;--line2:#2b3741;--bg:#141e27;--panel:#1c2933;--wash:#24323d;--green:#9cdbbb;--green-lt:#243c34;--green-mid:#8dd0b0;--red:#ffb1a0;--red-lt:#482d2b;--amber:#edca93;--amber-lt:#3d352c;--slate:#aeb8ce;--focus:#bbdacb}
body{background:#141e27;font-size:16px;line-height:1.6}.top{padding:19px max(28px,calc((100vw - 1480px)/2));background:#141e27;border-bottom:1px solid #30404a}.brand svg{width:30px;height:30px}.brand-name{font-size:22px;font-weight:700;letter-spacing:-.9px;line-height:1.2}.brand-tag{display:block;color:#9bafbb;text-transform:uppercase;letter-spacing:.15em;font-size:11px;margin-top:4px}.top nav{gap:16px}.top nav a{font-size:14px;padding:9px 6px;color:#c1ced6}.top nav a:last-child{background:#273945;border:1px solid #405562;border-radius:7px;padding:9px 12px}.top nav a:hover{background:#2c3e49}
main{max-width:1480px;padding:0 28px}.intro{padding:29px 0 23px;justify-content:space-between;align-items:flex-end;gap:30px}.eyebrow{font-size:12px!important;font-weight:700;letter-spacing:.16em;color:#b4c8cb!important;margin:0 0 11px!important}h1{font-size:clamp(32px,3.4vw,45px);line-height:1.14;letter-spacing:-1.9px;font-weight:700;max-width:650px}.intro>p{font-size:15px;line-height:1.85;color:#adc0cb;max-width:370px;margin:0 0 4px}.forecast-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-top:1px solid #35444e}.workspace-note{font-size:13px;color:#a7bdc7;display:flex;align-items:center;gap:8px}.workspace-note i{display:block;width:5px;height:5px;border-radius:50%;background:#9cdbbb}.forecast-toolbar .actions{display:flex;gap:7px;padding:0;margin:0;flex-wrap:wrap}.btn{border-radius:6px;border-color:#97c8af;background:#a4d9bd;color:#20382b;min-height:36px;font-size:13px;padding:7px 12px;font-weight:700}.btn:hover{background:#c1ead0}.btn.ghost{background:#253640;border-color:#485d68;color:#dbe6e9}.btn.ghost:hover{background:#304651}.btn-text{font-size:13px;color:#b5c7d2;min-height:36px;text-underline-offset:4px}
.kpis{border:1px solid #3d4e58;border-radius:12px 12px 0 0;background:#1c2c36;grid-template-columns:1.6fr 1fr 1fr 1.2fr;overflow:hidden}.kpi{border-color:#374b55;padding:21px 22px;gap:5px}.k-lab{font-family:var(--sans);font-size:12px;letter-spacing:.12em;font-weight:700;color:#b2c5cf}.kpi strong{font-family:var(--mono);font-size:22px;font-weight:500;letter-spacing:-.7px}.kpi .k-big{font-size:clamp(29px,2.8vw,42px)!important;font-weight:500;line-height:1.15!important;letter-spacing:-1.5px;color:#b4e0c6}.k-sub{font-size:13px;line-height:1.7;color:#a6bbc7}.track{height:4px;margin-top:10px;border-radius:3px;background:#354752}.track i{background:#a2d5bc}.track i.warn{background:#d6bb8c}.track i.bad{background:#ed9e8e}.track b{background:#dce4e6}
.work{border:1px solid #3d4e58;border-top:0;border-radius:0 0 12px 12px;grid-template-columns:340px minmax(0,1fr);background:#182630;overflow:hidden;gap:0;margin-bottom:30px}.inputs{padding:22px 20px;border-color:#354650;background:#1a2a35}.in-head{margin-bottom:19px;gap:8px}.in-head h2{font-size:17px;letter-spacing:-.4px}.sample-pill{background:transparent;color:#bbcad0;padding:0;font-size:12px;font-weight:400;line-height:1.5}.sample-pill::before{content:'◦ ';color:#b9cdb9}.grid{gap:13px 9px}.f{font-size:13px;font-weight:600;color:#b8cbd5;gap:5px;line-height:1.6}.f em{font-size:12px;color:#9db4c1}.f input,.f select,.ev input,.ev select{border:1px solid #526773;background:#233944;color:#f0f3f3;border-radius:5px;min-height:40px;height:40px;font-family:var(--sans);font-size:14px;padding:8px;max-width:100%;color-scheme:dark}.f input:focus,.f select:focus,.ev input:focus{border-color:#b4d6c4;outline:2px solid #739d87;outline-offset:2px}.suffix i{color:#c1cfd5;font-size:13px}.suffix.wide-suffix input{padding-right:53px}.events{border-color:#3a4a55;margin-top:22px;padding-top:18px}.events h3,.stress h3{font-size:14px}.ev-head{gap:10px}.ev-quick{gap:5px;display:flex;flex-wrap:wrap}.chip{background:#263e4b;border:1px solid #536d7b;color:#d9e4e7;border-radius:5px;font-size:13px;padding:5px 8px;min-height:32px}.chip:hover{background:#345362}.ev{background:#21333f;border-color:#435964;border-left:3px solid #d4a397;border-radius:5px;padding:11px;margin-bottom:8px}.ev.in{border-left-color:#9cdbbb}.ev input{height:34px;min-height:34px;font-size:13px}.ev select{font-size:13px;height:34px;min-height:34px}.ev-f{font-size:12px;color:#bed0d7}.ev-r1 .ev-label{font-size:13px;font-weight:600;background:transparent}.ev-r1 .ev-del{font-size:19px;color:#c7d3d9}.ev-empty{font-size:13px;color:#afc1cc}.stress{border-color:#40525e;padding-top:18px;margin-top:18px}.stress .two{gap:12px}.stress h3{margin-bottom:11px}.err{background:#472e2b;color:#ffd5c9;border-radius:5px;font-size:13px;padding:10px}
.charts{padding:23px 24px;background:#15222c;min-width:0}.ch-head{display:block;margin-bottom:15px}.chart-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;color:#adc5cd;display:block;margin-bottom:7px}#chTitle{font-size:25px;letter-spacing:-.8px;font-weight:700}.legend{gap:9px 16px;font-size:12px;color:#bccbd2;margin-top:16px}.legend i{width:14px;height:3px}.l-base{background:#9cdbbb}.l-rev{background:#a9b8db}.l-cost{background:#ebad9c}.l-cut{background:#c4dfa9}.l-buf{border-color:#d0b47e}#chart{height:310px;max-height:none;background:#15222c;margin:3px 0 19px}#chart .g{stroke:#2d404c;stroke-dasharray:3 5}#chart .ax{fill:#a5bac8;font:12px var(--mono)}#chart .zero{stroke:#6d8492}#chart .tick{stroke:#6d8492}#chart .ln.base{stroke:#a6dfbc;stroke-width:3}#chart .ln.cost{stroke:#e6a995;stroke-width:1.8}#chart .ln.rev{stroke:#a5b2d5;stroke-width:1.8}#chart .ln.cut{stroke:#d4df9b;stroke-width:1.8}#chart .buf{stroke:#e0c38e;stroke-dasharray:4 6}#chart .cross{stroke:#e0ab91;stroke-dasharray:3 5}#chart .dot{fill:#f0b099;stroke:#15222c;stroke-width:3}#chart .lbl{fill:#f0b59b;font:13px var(--sans)}
.scen{font-family:var(--sans);font-size:13px;border:1px solid #344a57;border-radius:6px;border-collapse:separate;border-spacing:0;overflow:hidden;width:100%}.scen th,.scen td{border-color:#344a57;padding:12px 9px;font-size:13px}.scen thead th{background:#20333f;color:#b4c7d2;font-size:11px;letter-spacing:.05em}.scen tbody th{font-weight:600;color:#c2d6de}.scen td{font-family:var(--mono);font-weight:500}.scen tr:first-child th,.scen tr:first-child td{background:#233e3c;color:#c8e4d3}.scen .cut-row{background:#293732}.scen .cut-row th{color:#c2dbad}.needs{background:#223f3c;border:1px solid #3f675c;border-radius:7px;color:#d7e8dd;padding:15px;margin-top:22px}.needs-h{font-size:13px;color:#bad4c7}.needs-b{font-size:14px;line-height:1.8;color:#d5e8dc}.needs-b strong{color:#d0ead9;font-family:var(--mono);font-weight:500;font-size:16px}.needs.ok{background:#203b32}.needs-ok{color:#c5dfd0;font-size:14px}.status{font-size:13px;color:#a4bbc7;text-align:right;margin-top:15px}
.monthly{border:1px solid #3c505d;border-radius:11px;overflow:hidden;background:#1b2b36}.mo-head{padding:19px 21px;border-bottom:1px solid #394c59}.mo-head h2{font-size:18px;letter-spacing:-.4px}.mo-head p{font-size:13px;color:#a9bfcb;line-height:1.7}.months{font-size:13px}.months th,.months td{font-size:13px;padding:11px 13px;border-color:#354753}.months thead th{background:#213643;color:#c0d0d7;font-size:12px}.months tbody th{background:#1b2b36}.months .note{color:#afc2ce;font-family:var(--sans)}.months .neg-row td,.months .neg-row th{background:#3f2e2e;color:#f6c8b9}.months .warn-row td,.months .warn-row th{background:#3c382e;color:#ecdbb1}.months td.strong{font-weight:500}.pos{color:#b5dcc6}.neg{color:#f2b6a5}
.lower{padding:35px 0 45px;border-color:#394d5b}.lower h2{font-size:23px;letter-spacing:-.6px}.method-grid>div{background:#20313e;border:1px solid #3c505e;border-radius:7px;padding:18px}.method-grid h3{font-size:15px;color:#d3e2e7}.method-grid p{font-size:14px;line-height:1.8;color:#b3c7d3}.method-grid code{color:#d3e3e8;background:#2b414d}.caveat{font-size:13px;border:1px solid #4e5548;background:#2b322d;color:#c5caba;border-radius:6px;padding:14px}.faq{border-color:#4a606e}.faq summary{font-size:15px;color:#cfdee5}.faq p{font-size:14px;color:#b5c7d1;line-height:1.8}.faq details{border-color:#3a4e5b}.foot{padding:22px max(28px,calc((100vw - 1480px)/2));border-top:1px solid #344956;background:#111b23;color:#abc1cd;font-size:13px}.foot b{font-size:19px;color:#d9e7eb}.foot a{color:#c2d3da}.doc h1{font-size:34px}.doc p{font-size:16px}.doc code{background:#243b46;color:#d1e2e8;border-color:#4a626e}.doc .back{color:#20382c;background:#acdbbf}
@media(max-width:1180px){.work{grid-template-columns:300px minmax(0,1fr)}.inputs{padding:20px 15px}.charts{padding:22px 17px}.kpis{grid-template-columns:1.6fr 1fr 1fr}.kpi:last-child{grid-column:1/-1;border-left:0;border-top:1px solid #3b4e59;display:grid;grid-template-columns:1fr 1fr 2fr;align-items:center;gap:15px;padding:12px 20px}.kpi:last-child .k-sub{min-height:0}.kpi{padding:18px}.k-big{font-size:34px!important}.intro>p{max-width:330px}.scen th,.scen td{padding:10px 6px;font-size:12px}}
@media(max-width:900px){.work{display:flex;flex-direction:column}.inputs{border-right:0;border-bottom:1px solid #3e5361;padding:22px}.charts{padding:24px 20px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.events{margin-top:18px}.ev-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ev{margin:0}.intro{align-items:start;gap:18px}.intro>p{max-width:520px}.kpi:last-child{grid-template-columns:1fr 1fr 2fr}.forecast-toolbar{align-items:start;gap:12px;flex-direction:column}.forecast-toolbar .actions{width:100%}.scen th,.scen td{font-size:13px;padding:11px}.inputs .grid .f.wide{grid-column:span 3}}
@media(max-width:640px){main{padding:0 16px}.top{padding:16px}.brand-name{font-size:20px}.brand-tag{font-size:7px}.top nav{gap:0}.top nav a{display:none!important}.top nav a:first-child{display:block!important;font-size:13px;border:1px solid #4b626f;padding:8px 11px;border-radius:6px}.intro{padding:23px 0 20px;display:block}h1{font-size:34px;letter-spacing:-1.4px}.intro>p{font-size:14px;line-height:1.8;margin-top:15px;max-width:35ch}.eyebrow{font-size:11px!important}.workspace-note{font-size:12px}.forecast-toolbar .actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.forecast-toolbar .btn{font-size:13px;padding:7px 8px;min-height:38px}.forecast-toolbar .btn-text{font-size:12px}.kpis{grid-template-columns:1fr 1fr;border-radius:9px 9px 0 0}.kpi-main{grid-column:1/-1;border-bottom:1px solid #3e5361}.kpi{padding:17px;gap:5px}.kpi strong{font-size:20px}.kpi .k-big{font-size:36px!important}.k-lab{font-size:12px}.k-sub{font-size:13px}.kpi:nth-child(2){border-left:0}.kpi:last-child{display:flex;grid-column:1/-1;align-items:start;gap:5px}.kpi:last-child .k-sub{min-height:0}.inputs{padding:20px 16px}.grid{grid-template-columns:1fr 1fr;gap:12px}.inputs .grid .f.wide{grid-column:span 2}.grid .f:first-child,.grid .f:nth-child(2),.grid .f:nth-child(3){grid-column:auto}.grid .f:nth-child(3){grid-column:1/-1}.f{font-size:13px}.f input,.f select{font-size:15px;min-height:43px}.ev-list{grid-template-columns:1fr}.ev-head{display:block}.ev-quick{margin-top:10px}.chip{min-height:36px;font-size:13px}.ev input,.ev select{min-height:40px;font-size:14px}.ev-f{font-size:13px}.ev input.ev-label{font-size:14px}.charts{padding:20px 12px}#chTitle{font-size:23px}.legend{gap:10px;font-size:11px}#chart{height:250px;margin-top:12px}.scen{display:block;overflow-x:auto;white-space:nowrap}.scen th,.scen td{font-size:13px;padding:12px 9px}.needs{padding:14px;margin-top:18px}.needs-h{font-size:13px}.needs-b{font-size:13px}.needs-b strong{font-size:16px}.mo-head{padding:18px 15px}.mo-head h2{font-size:17px}.mo-head p{font-size:13px}.months th,.months td{font-size:13px}.lower>h2{font-size:23px}.method-grid{grid-template-columns:1fr}.foot{padding:20px 16px;gap:8px}.foot nav{width:100%}}
}

@media screen{.doc pre{overflow:auto;padding:18px;border:1px solid var(--line);border-radius:8px;font:14px/1.8 var(--mono);background:var(--wash)}.doc table{width:100%;border-collapse:collapse;min-width:0;margin:20px 0;font-size:15px}.doc td,.doc th{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.doc .back{margin-top:12px}.doc .lead{font-size:17px;line-height:1.8}}
@media print{.forecast-toolbar{display:none!important}}

/* Readability pass: body 16px, most controls 14–16px, supporting text 12–14px. */
@media screen{.doc p{font-size:16px;line-height:1.8}.doc pre{font-size:14px}.doc table{font-size:14px}}
@media screen and (max-width:640px){main input:not([type=checkbox]):not([type=range]),main select,main textarea{font-size:16px!important}}
@media screen{.f{font-size:13px;line-height:1.6}.f em{font-size:12px}.f input,.f select,.ev input,.ev select{height:44px;min-height:44px}.grid{row-gap:18px}.legend{font-size:12px;line-height:1.6}.k-sub{font-size:13px;line-height:1.7}.k-lab{font-size:12px;letter-spacing:.06em}.scen thead th{font-size:12px}.scen th,.scen td{font-size:13px;line-height:1.6}.months th,.months td{font-size:13px;line-height:1.6}.months thead th{font-size:12px}.ev-head{flex-wrap:wrap}.ev-quick{flex-wrap:wrap}.chart-kicker{font-size:12px}.brand-tag{font-size:10px}#chart .ax{font-size:12px}#chart .lbl{font-size:13px}.btn{min-height:42px}}
@media screen and (max-width:640px){.kpi strong{font-size:19px}.kpi .k-big{font-size:36px!important}.legend{gap:10px 14px}.scen th,.scen td{font-size:13px}.months th,.months td{font-size:13px}.forecast-toolbar .btn{font-size:13px}.forecast-toolbar .btn-text{font-size:12px}.ev-r1{flex-wrap:wrap}.doc .top nav a{font-size:13px}}
