:root{--ch-pi:var(--accent);--ch-tax:#1fa98f;--ch-ins:#9b7df2;--ch-pmi:#e0607f;--ch-hoa:#7d8a98;--ch-int:#b8811f;--ch-soft:color-mix(in srgb, var(--accent) 45%, var(--surface-3));--ch-good:#4fd6a0;--ch-warn:#f0b64b;--ch-bad:#ff8a7a;--ch-grid:#eef2f614;--ch-axis:var(--text-muted);--ch-track:var(--surface-3);--ch-surface:var(--surface)}.k-pi{--c:var(--ch-pi)}.k-tax{--c:var(--ch-tax)}.k-ins{--c:var(--ch-ins)}.k-pmi{--c:var(--ch-pmi)}.k-hoa{--c:var(--ch-hoa)}.k-int{--c:var(--ch-int)}.k-soft{--c:var(--ch-soft)}.k-good{--c:var(--ch-good)}.k-warn{--c:var(--ch-warn)}.k-bad{--c:var(--ch-bad)}.k-muted{--c:var(--text-muted)}.calc{align-items:start;gap:clamp(1.25rem,3vw,2rem);display:grid}.calc>*{min-width:0}@media (width>=62rem){.calc{grid-template-columns:minmax(0,21rem) minmax(0,1fr)}}@media (width>=75rem){.calc__in{top:1.5rem}}.calc__in{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-content:start;gap:1.1rem;padding:clamp(1.1rem,2.4vw,1.5rem);display:grid}.calc__legend{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding-bottom:.55rem;font-size:.75rem;font-weight:800}.calc__out{gap:clamp(1rem,2.4vw,1.5rem);min-width:0;display:grid}.calc__wide{gap:clamp(1rem,2.4vw,1.5rem);min-width:0;margin-top:clamp(1.25rem,3vw,2rem);display:grid}.calc__two{gap:clamp(1rem,2.4vw,1.5rem);min-width:0;display:grid}@media (width>=48rem){.calc__two{grid-template-columns:repeat(2,minmax(0,1fr))}}.cf{gap:.5rem;min-width:0;display:grid}.cf__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .75rem;display:flex}.cf__label{color:var(--text-muted);font-size:.875rem;font-weight:600;line-height:1.3}.cf__box{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.2rem;min-height:2.6rem;margin-left:auto;padding:0 .7rem;transition:border-color .18s,box-shadow .18s;display:inline-flex}.cf__box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--cobalt-soft)}.cf__affix{color:var(--text-muted);font-size:.875rem;font-weight:600}.cf__num{width:7.5rem;min-height:2.5rem;color:var(--text);font:inherit;text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield;background:0 0;border:0;padding:0;font-size:1rem;font-weight:700}.cf__num::-webkit-outer-spin-button,.cf__num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cf__num:focus{outline:none}.cf__num[aria-invalid=true]{color:var(--ch-bad)}.cf:has([aria-invalid=true]) .cf__box{border-color:var(--ch-bad)}.cf__range{--fill:50%;-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:1.5rem;margin:0}.cf__range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--surface-3) var(--fill));border-radius:999px;height:.3rem}.cf__range::-moz-range-track{background:var(--surface-3);border-radius:999px;height:.3rem}.cf__range::-moz-range-progress{background:var(--accent);border-radius:999px;height:.3rem}.cf__range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);border:3px solid var(--accent);width:1.15rem;height:1.15rem;box-shadow:0 0 0 3px var(--surface);border-radius:50%;margin-top:-.425rem}.cf__range::-moz-range-thumb{background:var(--text);border:3px solid var(--accent);border-radius:50%;width:.9rem;height:.9rem}.cf__chips{flex-wrap:wrap;gap:.35rem;display:flex}.cf__chip{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:2rem;color:var(--text-muted);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;padding:.25rem .7rem;font-size:.8125rem;font-weight:700;transition:border-color .16s,color .16s,background-color .16s}.cf__chip:hover{border-color:var(--accent);color:var(--text)}.cf__chip[aria-pressed=true]{background:var(--cobalt-soft);border-color:var(--accent);color:var(--text)}.cf__chip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cf__hint{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.8125rem;line-height:1.45}.cf__err{color:var(--ch-bad);font-size:.8125rem;font-weight:600}.cf__err:empty{display:none}.calc__in .seg{flex-wrap:nowrap}.calc__in .seg__opt{flex:1 1 0;min-width:0;padding-inline:.5rem}.cf-select{gap:.4rem;display:grid}.cf-select label{color:var(--text-muted);font-size:.875rem;font-weight:600}.cf-select select{width:100%;min-height:2.75rem;font:inherit;color:var(--text);background-color:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 1.15rem) 1.2rem,calc(100% - .85rem) 1.2rem;background-repeat:no-repeat;background-size:.3rem .3rem;padding:.55rem 2.4rem .55rem .8rem;font-size:.9375rem;font-weight:600}.cf-select select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--cobalt-soft);outline:none}.calc__adv{border-top:1px solid var(--border);padding-top:.25rem}.calc__adv>summary{cursor:pointer;min-height:2.75rem;font-family:var(--font-display);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:1rem;font-size:.9375rem;font-weight:800;list-style:none;display:flex}.calc__adv>summary::-webkit-details-marker{display:none}.calc__adv>summary:after{content:"";border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);width:.55rem;height:.55rem;transition:transform .2s var(--ease-out,ease);flex:none;margin-right:.3rem;transform:rotate(45deg)translate(-2px,-2px)}.calc__adv[open]>summary:after{transform:rotate(-135deg)translate(-2px,-2px)}.calc__adv>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.calc__advbody{gap:1.1rem;padding:.5rem 0 .25rem;display:grid}.calc__note{color:var(--text-muted);align-items:start;gap:.5rem;font-size:.8125rem;line-height:1.5;display:flex}.calc__note svg{width:1rem;height:1rem;color:var(--accent);flex:none;margin-top:.15rem}.calc__hero{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-lg);gap:.35rem;padding:clamp(1.2rem,2.6vw,1.75rem);display:grid}.calc__hero[data-state=warn]{background:var(--caution)}.calc__herol{color:var(--ink-on-accent-muted);letter-spacing:.01em;font-size:.8125rem;font-weight:700}.calc__heron{font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(2.5rem,6vw,3.75rem);font-weight:900;line-height:1}.calc__heros{color:var(--ink-on-accent-muted);font-size:.9375rem;line-height:1.45}.calc__heros strong{color:var(--on-accent)}.calc__break{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:clamp(1rem,2.4vw,1.5rem);padding:clamp(1.1rem,2.4vw,1.5rem);display:grid}@media (width>=40rem){.calc__break{grid-template-columns:minmax(0,12.5rem) minmax(0,1fr)}}.calc__break .cplot{width:100%;max-width:13.75rem;margin-inline:auto}.calc__breakh{font-family:var(--font-display);letter-spacing:-.015em;margin-bottom:.6rem;font-size:1rem;font-weight:800}.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.6rem;margin:0;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-content:start;gap:.3rem;min-width:0;padding:.9rem 1rem;display:grid}.tile dt{color:var(--text-muted);font-size:.78rem;font-weight:600;line-height:1.3}.tile dd{font-family:var(--font-display);letter-spacing:-.025em;overflow-wrap:anywhere;margin:0;font-size:1.3rem;font-weight:800;line-height:1.15}.tile dd small{font-family:var(--font-body);letter-spacing:0;color:var(--text-muted);margin-top:.2rem;font-size:.75rem;font-weight:500;display:block}.tile--good dd{color:var(--ch-good)}.status{align-items:center;gap:.45rem;font-size:.875rem;font-weight:700;display:inline-flex}.status:before{content:"";background:var(--c,var(--text-muted));border-radius:50%;flex:none;width:.6rem;height:.6rem}.cchart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);gap:.85rem;min-width:0;margin:0;padding:clamp(1rem,2.4vw,1.5rem);display:grid}.cchart__head{gap:.2rem;display:grid}.cchart__title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:1.05rem;font-weight:800}.cchart__sub{color:var(--text-muted);font-size:.875rem;line-height:1.5}.cchart__sub strong{color:var(--text)}.cplot{min-width:0;position:relative}.cplot>svg{width:100%;height:auto;display:block;overflow:visible}.cchart__table>summary{cursor:pointer;min-height:2.5rem;color:var(--accent);align-items:center;gap:.45rem;font-size:.8125rem;font-weight:700;list-style:none;display:inline-flex}.cchart__table>summary::-webkit-details-marker{display:none}.cchart__table>summary:before{content:"+";text-align:center;width:1rem;font-size:1rem;line-height:1}.cchart__table[open]>summary:before{content:"−"}.cchart__table>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.ctablewrap{max-height:22rem;margin-top:.5rem;overflow:auto}.ctablewrap table,.ctable{border-collapse:collapse;width:100%;min-width:30rem;font-size:.875rem}.ctable th,.ctable td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.55rem .8rem}.ctable thead th{z-index:1;background:var(--surface-2);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;position:sticky;top:0}.ctable tbody th{font-weight:600}.ctable .num{text-align:right;font-variant-numeric:tabular-nums}.ctabs [role=tablist]{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-self:start;gap:.25rem;max-width:100%;padding:.25rem;display:flex}.ctabs [role=tab]{border-radius:var(--radius-sm);min-height:2.4rem;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem .9rem;font-size:.8125rem;font-weight:700}.ctabs [role=tab][aria-selected=true]{background:var(--accent);color:var(--on-accent)}.ctabs [role=tab]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ctabs{gap:.85rem;min-width:0;display:grid}.clg{color:var(--text-muted);flex-wrap:wrap;gap:.4rem 1.1rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:flex}.clg li{align-items:center;gap:.45rem;display:inline-flex}.clg--list{gap:0;font-size:.875rem;display:grid}.clg--list li{border-bottom:1px solid var(--border);color:var(--text-muted);grid-template-columns:.75rem minmax(0,1fr) auto 3.4rem;align-items:center;gap:.6rem;padding:.55rem 0;display:grid}.clg--list li:last-child{border-bottom:0}.clg__v{color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.clg__p{font-variant-numeric:tabular-nums;text-align:right;font-size:.8125rem}.clg__sw{background:var(--c);flex:none;display:inline-block}.clg__sw--rect{border-radius:3px;width:.75rem;height:.75rem}.clg__sw--line{border-radius:2px;width:1rem;height:2px}.clg__sw--dash{border-top:2px dashed var(--c);background:0 0;width:1rem;height:0}.c-svg{font-family:var(--font-body)}.c-grid{stroke:var(--ch-grid);stroke-width:1px;shape-rendering:crispedges}.c-zero{stroke:var(--border)}.c-axis{fill:var(--ch-axis);font-variant-numeric:tabular-nums;font-size:.72rem}.c-line{fill:none;stroke:var(--c);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.c-line--dash{stroke-dasharray:5 4}.c-area{fill:var(--c);opacity:.1;stroke:none}.c-dot{fill:var(--c);stroke:var(--ch-surface);stroke-width:2px}.c-dot--mark{fill:var(--text)}.c-hdot{fill:var(--c);stroke:var(--ch-surface);stroke-width:2px;pointer-events:none;opacity:0}.is-hover .c-hdot{opacity:1}.c-xhair{stroke:var(--text-muted);stroke-width:1px;opacity:0;pointer-events:none;shape-rendering:crispedges}.is-hover .c-xhair{opacity:.6}.c-end{fill:var(--text);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700}.c-endl{fill:var(--text-muted);font-size:.68rem}.c-thresh{stroke:var(--text-muted);stroke-width:1px;stroke-dasharray:4 3}.c-thresh.k-good,.c-thresh.k-warn,.c-thresh.k-bad{stroke:var(--c)}.c-tlabel{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:700}.c-mark{stroke:var(--text);stroke-width:1px;opacity:.55}.c-mlabel{fill:var(--text);font-size:.72rem;font-weight:700}.c-bar{fill:var(--c);transition:opacity .16s}.c-track{fill:var(--ch-track);stroke:var(--ch-track)}.c-arc{stroke:var(--c);transition:opacity .16s,stroke-width .16s}.c-hl{fill:var(--text-muted);font-size:.8rem;font-weight:600}.c-hv{fill:var(--text);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.c-dv{fill:var(--text);font-family:var(--font-display);letter-spacing:-.03em;font-size:1.6rem;font-weight:900}.c-dl{fill:var(--text-muted);font-size:.72rem;font-weight:600}.c-gband{stroke:var(--c);opacity:.9}.c-gtick{stroke:var(--text-muted);stroke-width:1.5px}.c-needle{stroke:var(--text);stroke-width:3px;stroke-linecap:round;transition:all .3s var(--ease-out,ease)}.c-hub{fill:var(--text);stroke:var(--ch-surface);stroke-width:3px}.c-hit{fill:#0000;stroke:none;cursor:crosshair;outline:none}.c-arc.c-hit{stroke:var(--c);fill:none;cursor:pointer}.c-rowhit,.c-gneedle{cursor:pointer}.c-hit:focus-visible{stroke:var(--text);stroke-width:2px}.c-band:focus-visible{fill:color-mix(in srgb, var(--text) 6%, transparent);stroke:var(--accent);stroke-width:2px}.c-arc.c-hit:focus-visible{stroke:var(--c);stroke-width:34px}.c-rowhit:focus-visible{fill:color-mix(in srgb, var(--text) 5%, transparent);stroke:var(--accent)}.has-hot .c-colg:not(.is-hot) .c-bar{opacity:.45}.has-hot .c-arc:not(.is-hot){opacity:.4}.c-arc.is-hot{stroke-width:32px}.ctip{z-index:5;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:10rem;max-width:min(17rem,100%);box-shadow:var(--shadow);pointer-events:none;opacity:0;padding:.65rem .8rem;transition:opacity .12s;position:absolute;top:0;left:0}.ctip.is-on{opacity:1}.ctip__t{color:var(--text-muted);margin-bottom:.3rem;font-size:.75rem;font-weight:700}.ctip__r{grid-template-columns:.85rem auto minmax(0,1fr);align-items:center;gap:.45rem;font-size:.8125rem;line-height:1.5;display:grid}.ctip__r strong{font-variant-numeric:tabular-nums;color:var(--text)}.ctip__r span{color:var(--text-muted);overflow-wrap:anywhere}.ctip__k{background:var(--c);border-radius:2px;width:.85rem;height:2px}.ctip__k.is-none{background:0 0}.sched{gap:.85rem;min-width:0;display:grid}.sched__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex}.sched__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.15rem,1.6vw,1.35rem);font-weight:800}.sched__acts{flex-wrap:wrap;gap:.5rem;display:flex}.sbtn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);min-height:2.5rem;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.8125rem;font-weight:700;transition:border-color .16s,background-color .16s;display:inline-flex}.sbtn:hover{border-color:var(--accent)}.sbtn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sbtn svg{width:1rem;height:1rem;color:var(--accent)}.sched__wrap{max-height:32rem;overflow:auto}.sched__wrap table{border-collapse:collapse;width:100%;min-width:44rem;font-size:.875rem}.sched__wrap th,.sched__wrap td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.6rem .85rem}.sched__wrap thead th{z-index:2;background:var(--surface-2);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:700;position:sticky;top:0}.sched__wrap .num{text-align:right;font-variant-numeric:tabular-nums}.sched__wrap thead .num{text-align:right}.sched__y th{font-weight:700}.sched__y.is-open th,.sched__y.is-open td{background:var(--cobalt-soft)}.sched__m th,.sched__m td{color:var(--text-muted);background:#26324159;font-size:.8125rem}.sched__m th{padding-left:2.6rem;font-weight:500}.sched__tog{min-height:2rem;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:0;font-weight:700;display:inline-flex}.sched__tog:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.sched__when{color:var(--text-muted);font-size:.75rem;font-weight:500}.sched__chev{border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);width:.45rem;height:.45rem;margin-right:.15rem;transition:transform .16s;transform:rotate(-45deg)}.sched__tog[aria-expanded=true] .sched__chev{transform:rotate(45deg)}.calc__disc{gap:var(--s-3);padding:var(--s-4);border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);align-items:start;font-size:.8125rem;line-height:1.55;display:flex}.calc__disc svg{width:1.1rem;height:1.1rem;color:var(--caution);flex:none;margin-top:.15rem}.calc__disc strong{color:var(--text)}@media (prefers-reduced-motion:reduce){.c-needle,.c-bar,.c-arc,.ctip,.cf__chip,.calc__adv>summary:after,.sched__chev{transition:none!important}}@media print{html.calc-print body *{visibility:hidden!important}html.calc-print [data-print-target],html.calc-print [data-print-target] *{visibility:visible!important}html.calc-print [data-print-target]{--bg:#fff;--surface:#fff;--surface-2:#f1f3f6;--surface-3:#e6e9ee;--text:#111;--text-muted:#444;--border:#c9ced6;--on-accent:#111;--ink-on-accent-muted:#222;--ch-grid:#e3e6ea;--ch-surface:#fff;color:#111;background:#fff;width:100%;position:absolute;inset:0 auto auto 0}html.calc-print body{background:#fff!important;padding:0!important}html.calc-print [data-print-target] .sched__wrap,html.calc-print [data-print-target] .ctablewrap{max-height:none;overflow:visible}html.calc-print [data-print-target] .sched__acts,html.calc-print [data-print-target] .cf__range,html.calc-print [data-print-target] .cf__chips,html.calc-print [data-print-target] .band:before{display:none}}.calc__in .seg--wrap{flex-wrap:wrap;overflow:visible}.calc__in .seg--wrap .seg__opt{flex:1 0 auto}.calc__gauge{text-align:center;justify-items:center;gap:.75rem;display:grid}.calc__gauge .cplot{width:100%;max-width:20rem}.c-tlabel,.c-mlabel,.c-end,.c-endl{paint-order:stroke;stroke:var(--ch-surface);stroke-width:3px;stroke-linejoin:round}@media (width<=30rem){.ctabs [role=tablist]{flex-wrap:nowrap;width:100%}.ctabs [role=tab]{flex:auto;padding-inline:.5rem;font-size:.75rem}}.cf__chip{min-width:2.75rem;min-height:2.5rem}.tile--good [data-neg],.tile--good dd[data-neg]{color:var(--ch-bad)}
