.cv-app{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);grid-template-areas:"result""inputs""chart""share";display:grid}.cv-app>*{min-width:0}.cv-area-result{grid-area:result}.cv-inputs{grid-area:inputs}.cv-area-chart{grid-area:chart}.cv-area-share{grid-area:share}@media (width>=880px){.cv-app{grid-template:"inputs result""inputs chart""inputs share""inputs."1fr/minmax(300px,380px) minmax(0,1fr);align-items:start}}.cv-inputs{padding:var(--sp-5)}.cv-inputs-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.cv-inputs-head .eyebrow{margin:0}.cv-field{padding:var(--sp-3) 0;border-top:1px solid var(--border)}.cv-inputs-head+.cv-field{border-top:0}.cv-label{font-size:var(--fs-sm);margin-bottom:var(--sp-2);font-weight:650;display:block}.cv-help{font-size:var(--fs-xs);color:var(--text-3);margin:var(--sp-2) 0 0}.cv-warn{color:var(--caution)}.cv-numrow{gap:var(--sp-2);align-items:stretch;display:flex}.cv-num,.cv-select,.cv-embed textarea{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:44px;padding:0 var(--sp-3)}.cv-num{min-width:0;font-size:var(--fs-lg);flex:1;font-weight:700}.cv-num::placeholder{color:var(--text-3);font-weight:500;font-size:var(--fs-md)}.cv-num:focus,.cv-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.is-warn .cv-num{border-color:var(--caution)}.cv-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%);width:100%;padding-right:var(--sp-6);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px}.cv-units,.cv-seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.cv-unit,.cv-seg-btn{font:inherit;font-size:var(--fs-sm);color:var(--text-2);min-width:40px;min-height:36px;padding:0 var(--sp-2);cursor:pointer;background:0 0;border:0;border-radius:6px;font-weight:650}.cv-seg-btn{min-height:30px;padding:0 var(--sp-3)}.cv-unit[aria-pressed=true],.cv-seg-btn[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.cv-unit-static{color:var(--text-2);padding:0 var(--sp-2);align-self:center;font-weight:650}.cv-slider{width:100%;margin:var(--sp-3) 0 0;appearance:none;cursor:pointer;background:0 0;height:28px}.cv-slider::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--pct), var(--border-strong) var(--pct));border-radius:2px;height:4px}.cv-slider::-moz-range-track{background:linear-gradient(to right, var(--accent) var(--pct), var(--border-strong) var(--pct));border-radius:2px;height:4px}.cv-slider::-webkit-slider-thumb{appearance:none;background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:22px;height:22px;margin-top:-9px;box-shadow:0 1px 3px #0003}.cv-slider::-moz-range-thumb{background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:20px;height:20px}.cv-output-card{padding:var(--sp-5)}.cv-result .eyebrow{margin:0 0 var(--sp-1)}.cv-big{align-items:baseline;gap:var(--sp-2);margin:0;line-height:1;display:flex}.cv-big-num{font-size:var(--fs-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-weight:800}.cv-big-unit{font-size:var(--fs-xl);color:var(--text-2);font-weight:700}.cv-range{margin:var(--sp-2) 0 0;color:var(--accent);font-weight:650}.cv-context{margin:var(--sp-2) 0 0;color:var(--text-2)}.cv-status{gap:var(--sp-2);margin:var(--sp-4) 0 0;padding:var(--sp-3);border-radius:var(--radius-sm);font-size:var(--fs-sm);align-items:baseline;font-weight:600;display:flex}.cv-status-dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.cv-status.is-ok{background:var(--ok-soft);color:var(--ok)}.cv-status.is-caution{background:var(--caution-soft);color:var(--caution)}.cv-status.is-over{background:var(--over-soft);color:var(--over)}.cv-chips{gap:var(--sp-2);margin:var(--sp-5) 0 0;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.cv-chip{background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3)}.cv-chip dt{font-size:var(--fs-xs);color:var(--text-3);font-weight:600}.cv-chip dd{margin:0;font-weight:750}fieldset.cv-field{border-bottom:0;border-left:0;border-right:0;min-width:0;margin:0;padding-left:0;padding-right:0}.cv-shapes legend{padding:0}.cv-shape-grid{gap:var(--sp-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.cv-shape{padding:var(--sp-2) var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);cursor:pointer;text-align:center;justify-items:center;gap:2px;font-weight:650;display:grid;position:relative}.cv-shape input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.cv-shape-icon{width:40px;height:28px;fill:color-mix(in srgb, currentColor 12%, transparent);stroke:currentColor;stroke-width:1.75px;stroke-linejoin:round}.cv-shape:hover{border-color:var(--border-strong)}.cv-shape:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.cv-shape:has(input:focus-visible){box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.cv-links{margin:var(--sp-4) 0 0;padding:0;list-style:none}.cv-links a{font-weight:700;font-size:var(--fs-sm)}.cv-chartcard{margin:0}.cv-chart-title{margin-bottom:var(--sp-3);font-weight:700}.cv-chart{width:100%;height:auto;display:block;overflow:visible}.cv-chart-summary{font-size:var(--fs-sm);color:var(--text-2);margin:var(--sp-3) 0 0}.cv-grid{stroke:var(--chart-grid);stroke-width:1px}.cv-tick{fill:var(--chart-axis);font-size:12px;font-family:var(--font-mono)}.cv-axis-label{fill:var(--text-2);font-size:12px;font-weight:600}.cv-band{fill:var(--chart-band)}.cv-line{fill:none;stroke:var(--chart-1);stroke-width:2.5px;stroke-linejoin:round}.cv-line-lo{stroke:var(--chart-2);stroke-width:1.5px;stroke-dasharray:5 4}.cv-marker{stroke:var(--text-3);stroke-dasharray:3 3}.cv-dot{fill:var(--surface);stroke:var(--chart-1);stroke-width:2.5px}.cv-dot-lo{stroke:var(--chart-2)}.cv-marker-label{fill:var(--text);font-size:13px;font-weight:700}.cv-stack-track{border-radius:var(--radius-sm);background:var(--surface-2);height:40px;margin-top:var(--sp-6);display:flex;position:relative}.cv-stack-seg{height:100%;transition:width .35s}.cv-stack-seg:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.cv-stack-seg.is-est,.cv-swatch.is-est{background-blend-mode:normal;background-image:repeating-linear-gradient(135deg,#ffffff47 0 4px,#0000 4px 8px)!important}.cv-stack-limit{border-left:2px solid var(--ok);width:0;transition:left .35s;position:absolute;top:-8px;bottom:-8px}.cv-stack-limit.is-over{border-color:var(--over)}.cv-stack-limit span{white-space:nowrap;font-size:var(--fs-xs);color:var(--text-2);margin-bottom:2px;font-weight:700;position:absolute;bottom:100%;transform:translate(-50%)}.cv-legend{margin:var(--sp-4) 0 0;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));padding:0;list-style:none;display:grid}.cv-legend li{align-items:center;gap:var(--sp-2);display:flex}.cv-legend strong{margin-left:auto}.cv-swatch{border-radius:3px;flex:none;width:12px;height:12px}.cv-gauge-track{fill:none;stroke:var(--surface-2);stroke-width:16px}.cv-gauge-zone{fill:none;stroke-width:4px}.cv-gauge-zone.is-ok{stroke:var(--ok)}.cv-gauge-zone.is-caution{stroke:var(--caution)}.cv-gauge-zone.is-over{stroke:var(--over)}.cv-gauge-value{fill:none;stroke:var(--chart-1);stroke-width:16px;stroke-linecap:round}.cv-gauge-num{fill:var(--text);font-size:28px;font-weight:800}.cv-tank{aspect-ratio:4/3;width:100%;max-height:440px;position:relative}.cv-tank>svg,.cv-tank>canvas{width:100%;height:100%;position:absolute;inset:0}.cv-tank>canvas{opacity:0;touch-action:pan-y;cursor:grab;transition:opacity .3s}.cv-tank>canvas:active{cursor:grabbing}.cv-tank[data-mode="3d"]>canvas{opacity:1}.cv-tank[data-mode="3d"]>svg{visibility:hidden}.cv-tank-hint{right:var(--sp-2);bottom:var(--sp-1);font-size:var(--fs-xs);color:var(--text-3);pointer-events:none;position:absolute}.cv-tank-glass{fill:color-mix(in srgb, var(--tank-glass) 35%, transparent)}.cv-tank-sand{fill:var(--tank-sand)}.cv-tank-sand-top{fill:color-mix(in srgb, var(--tank-sand) 80%, white)}.cv-tank-water{fill:color-mix(in srgb, var(--chart-1) 45%, transparent)}.cv-tank-surface{fill:color-mix(in srgb, var(--chart-2) 45%, transparent);stroke:var(--chart-2);stroke-width:1px}.cv-tank-edge{fill:none;stroke:var(--tank-edge);stroke-width:1.5px;stroke-linejoin:round}.cv-tank-edge.is-faint{stroke-width:1px;stroke-dasharray:4 4;opacity:.6}@media (prefers-reduced-motion:reduce){.cv-tank>canvas{transition:none}}.cv-share{gap:var(--sp-2);flex-wrap:wrap;display:flex}.cv-btn{font:inherit;font-weight:700;font-size:var(--fs-sm);min-height:40px;padding:0 var(--sp-4);border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);cursor:pointer;border-radius:999px}.cv-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.cv-btn-ghost{color:var(--accent);background:0 0}.cv-btn-ghost:hover{background:var(--accent-soft);color:var(--accent)}.cv-embed{gap:var(--sp-2);flex-basis:100%;justify-items:start;display:grid}.cv-embed textarea{width:100%;padding:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xs);resize:vertical}.cv-embed-credit{font-size:var(--fs-sm);margin:0}.cv-layers-glass{fill:none;stroke:var(--border-strong);stroke-width:4px}.cv-layer-water{fill:var(--chart-band)}.cv-layer-substrate{fill:var(--chart-4)}.cv-layer-label{fill:var(--text);font-size:13px;font-weight:700}.cv-layer-label.is-on-fill{fill:var(--surface)}.cv-layer-dim{stroke:var(--text-3);stroke-width:1.5px}.cv-refr-field{fill:var(--surface);stroke:var(--border-strong);stroke-width:2px}.cv-refr-blue{fill:var(--chart-2);opacity:.85}.cv-refr-target{fill:var(--ok);opacity:.25}.cv-refr-target-label{fill:var(--ok);font-size:12px;font-weight:700}.cv-refr-edge{stroke:var(--chart-4);stroke-width:3px}.cv-refr-tick{stroke:var(--text-2);stroke-width:1.5px}.cv-refr-tick.is-minor{stroke:var(--text-3);stroke-width:1px}.cv-plan-water{fill:color-mix(in srgb, var(--chart-1) 35%, transparent);stroke:var(--chart-1);stroke-width:2px;stroke-linejoin:round}.cv-plan-area{fill:var(--text);font-size:13px;font-weight:700}.cv-liner-lap{fill:color-mix(in srgb, var(--text-3) 22%, transparent);stroke:var(--text-3);stroke-width:1px}.cv-liner-wall{fill:color-mix(in srgb, var(--text-3) 12%, var(--surface));stroke:var(--text-3);stroke-width:1px;stroke-dasharray:4 3}.cv-liner-fold{fill:var(--surface);stroke:var(--text-3);stroke-width:1px;stroke-dasharray:4 3}.cv-profile-water{fill:color-mix(in srgb, var(--chart-1) 30%, transparent)}.cv-profile-ground{fill:color-mix(in srgb, var(--text-3) 18%, transparent)}.cv-profile-floor{fill:none;stroke:var(--chart-1);stroke-width:2.5px;stroke-linejoin:round}.cv-profile-avg{stroke:var(--text-3);stroke-dasharray:4 4}.cv-meter-label{fill:var(--text);font-size:13px;font-weight:700}.cv-meter-value{fill:var(--text-2);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.cv-meter-track{fill:var(--surface-2)}.cv-meter-zone{opacity:.55}.cv-meter-zone.is-ok{fill:var(--ok)}.cv-meter-zone.is-caution{fill:var(--caution)}.cv-meter-zone.is-over{fill:var(--over)}.cv-meter-link{stroke:var(--chart-1);stroke-width:2.5px;stroke-dasharray:3 3}.cv-meter-before{fill:var(--surface);stroke:var(--text-2);stroke-width:2.5px}.cv-meter-after{fill:var(--chart-1);stroke:var(--surface);stroke-width:2px}.cv-bags{margin:var(--sp-3) 0 0;gap:var(--sp-2);display:grid}.cv-bags-svg{width:100%;max-width:560px;height:48px;display:block}.cv-bag-shell{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1.5px;stroke-linejoin:round}.cv-bag-fill{fill:var(--chart-2)}.cv-bag-top{fill:var(--chart-4);opacity:.85}.cv-bags-label{font-size:var(--fs-sm);color:var(--text-2);font-weight:700}.cv-xy-line{fill:none;stroke:var(--chart-1);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.cv-xy-line.is-soft{stroke:var(--chart-2);stroke-width:2px;opacity:.55}.cv-xy-line.is-dashed{stroke:var(--text-3);stroke-width:2px;stroke-dasharray:5 4}.cv-xy-line.is-slam{stroke:var(--chart-4);stroke-width:3px}.cv-xy-dot{stroke-width:2.5px}.cv-xy-dot.is-now{fill:var(--surface);stroke:var(--text-2)}.cv-xy-dot.is-goal{fill:var(--chart-1);stroke:var(--surface)}.cv-xy-legend{gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.cv-xy-legend li{align-items:center;gap:var(--sp-2)}.cv-board-fill{fill:color-mix(in srgb, var(--chart-1) 14%, var(--surface));stroke:var(--text);stroke-width:1.5px;stroke-linejoin:round}.cv-board-stringer{stroke:var(--text-3);stroke-width:1px;stroke-dasharray:4 3}.cv-board-ruler{stroke:var(--chart-axis);stroke-width:1px}.cv-gauge-bar{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1px}.cv-range-band{fill:var(--chart-1);opacity:.85}.cv-range-ghost{fill:none;stroke:var(--text-3);stroke-width:1.25px;stroke-dasharray:3 2}.cv-board-marker circle{fill:var(--text)}.cv-board-marker line.cv-board-leader{stroke-width:1px;stroke-dasharray:2 2}.cv-board-marker line{stroke:var(--text);stroke-width:2px}.cv-board-marker.is-caution circle{fill:var(--caution)}.cv-board-marker.is-caution line{stroke:var(--caution)}.cv-daterow{gap:var(--sp-2);align-items:center;display:flex}.cv-date{min-width:0;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:44px;padding:0 var(--sp-3);flex:1}.cv-date:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.cv-timeline{overflow-x:auto}.cv-timeline .cv-chart{min-width:520px}.cv-tl-label{fill:var(--text);font-size:13px;font-weight:700}.cv-tl-sub{fill:var(--text-2);font-weight:500;font-family:var(--font-mono);font-size:11px}.cv-tl-cell.is-work{fill:var(--chart-1);background:var(--chart-1)}.cv-tl-cell.is-edge{fill:var(--chart-3);background:var(--chart-3)}.cv-tl-cell.is-night{fill:var(--surface-2);background:var(--surface-2);stroke:var(--border);stroke-width:1px}.cv-tl-hour{font-size:11px;font-family:var(--font-mono);pointer-events:none}.cv-tl-hour.is-long{letter-spacing:-.03em;font-size:8.5px}.cv-tl-hour.is-work{fill:var(--accent-text)}.cv-tl-hour.is-edge,.cv-tl-hour.is-night{fill:var(--text-2)}.cv-tl-marker{stroke:var(--text);stroke-width:2px}.cv-tl-marker-dot{fill:var(--text)}.cv-tl-overlap{fill:none;stroke:var(--ok);stroke-width:2px;stroke-dasharray:5 3}.cv-tl-legend .cv-swatch{border:1px solid var(--border)}.cv-bars-group{margin-top:var(--sp-4)}.cv-bars-label{margin:0 0 var(--sp-1);font-size:var(--fs-sm);font-weight:700}.cv-bars-tracks{gap:4px;display:grid;position:relative}.cv-bars-row{align-items:center;gap:var(--sp-2);height:20px;display:flex}.cv-bars-bar{border-radius:0 4px 4px 0;min-width:2px;height:100%;transition:width .35s}.cv-bars-num{white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2)}.cv-bars-base{border-left:2px dashed var(--text-3);pointer-events:none;position:absolute;top:-2px;bottom:-2px}.cv-bars-base-swatch{border-left:2px dashed var(--text-3);background:0 0;border-radius:0;width:2px}.cv-wire{gap:var(--sp-3);display:grid}.cv-wire-ends{justify-content:space-between;gap:var(--sp-3);display:flex}.cv-wire-ends p{font-size:var(--fs-sm);color:var(--text-2);margin:0;display:grid}.cv-wire-ends p.is-load{text-align:right}.cv-wire-ends strong{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--text);font-variant-numeric:tabular-nums}.cv-wire-run{height:44px;padding:0 var(--sp-3);border-radius:999px;place-items:center;display:grid;position:relative}.cv-wire-tag{background:var(--surface);color:var(--text);font-size:var(--fs-xs);text-align:center;border-radius:999px;max-width:100%;padding:2px 10px;font-weight:700}.cv-wire-drop{font-size:var(--fs-sm);color:var(--text-2);margin:0}.cv-wire-size{align-items:center;gap:var(--sp-2);height:22px;margin-top:4px;display:flex}.cv-wire-size-name{width:4.5rem;font-size:var(--fs-xs);color:var(--text-2);flex:none;font-weight:700}.cv-wire-size.is-chosen .cv-wire-size-name{color:var(--text)}.cv-wire-size-track{flex:1;min-width:0;height:100%;position:relative}.cv-wire-size-bar{background:var(--chart-4);border-radius:0 4px 4px 0;min-width:2px;height:100%}.cv-wire-size.is-chosen .cv-wire-size-bar{background:var(--chart-1)}.cv-wire-size.is-over .cv-wire-size-bar{background:var(--over)}.cv-wire-size-limit{border-left:2px dashed var(--text-3);z-index:1;position:absolute;top:-2px;bottom:-2px}.cv-wire-size-num{text-align:right;width:3.2rem;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);flex:none}.cv-app.is-chart-first{grid-template-areas:"result""chart""inputs""share"}@media (width>=880px){.cv-app.is-chart-first{grid-template-areas:"inputs result""inputs chart""inputs share""inputs."}}.cv-market-svg{-webkit-user-select:none;user-select:none}.cv-econ-axis{stroke:var(--chart-axis);stroke-width:1.5px}.cv-curve-line{fill:none;stroke-width:2.5px;stroke-linecap:round}.cv-curve.is-demand{--curve:var(--econ-demand)}.cv-curve.is-supply{--curve:var(--econ-supply)}.cv-curve-line{stroke:var(--curve)}.cv-curve-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font-size:14px;font-weight:800}.cv-drag{touch-action:none;cursor:grab}.cv-curve.is-held .cv-drag{cursor:grabbing}.cv-curve-hit{fill:none;stroke:#0000;stroke-width:22px;stroke-linecap:round;pointer-events:stroke}.cv-knob-g{outline:none}.cv-knob-hit{fill:#0000}.cv-knob{fill:var(--curve);stroke:var(--surface);stroke-width:2px;transition:r .12s}.cv-knob.is-ring{fill:var(--surface);stroke:var(--curve);stroke-width:2.5px}.cv-knob-glyph{fill:none;stroke:var(--surface);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.cv-knob-g:hover .cv-knob,.cv-curve.is-held .cv-knob{r:11}.cv-knob-g:hover .cv-knob.is-ring,.cv-curve.is-held .cv-knob.is-ring{r:9}.cv-knob-g:focus-visible .cv-knob-hit{fill:color-mix(in srgb, var(--focus) 14%, transparent);stroke:var(--focus);stroke-width:2px}.cv-area-fill{stroke:var(--surface);stroke-width:1.5px;stroke-linejoin:round}.cv-area.is-cs .cv-area-fill{fill:color-mix(in srgb, var(--econ-demand) 24%, transparent)}.cv-area.is-ps .cv-area-fill{fill:color-mix(in srgb, var(--econ-supply) 24%, transparent)}.cv-area.is-govt .cv-area-fill{fill:color-mix(in srgb, var(--econ-govt) 28%, transparent)}.cv-area.is-dwl .cv-area-fill{fill:color-mix(in srgb, var(--econ-dwl) 12%, transparent)}.cv-area.is-buyer .cv-area-fill{fill:color-mix(in srgb, var(--econ-demand) 46%, transparent)}.cv-area.is-seller .cv-area-fill{fill:color-mix(in srgb, var(--econ-supply) 46%, transparent)}.cv-area.is-elastic .cv-area-fill{fill:color-mix(in srgb, var(--econ-demand) 13%, transparent);stroke:none}.cv-area.is-inelastic .cv-area-fill{fill:color-mix(in srgb, var(--econ-dwl) 13%, transparent);stroke:none}.cv-area.is-outline .cv-area-fill{fill:none;stroke:var(--econ-govt);stroke-width:2px;stroke-dasharray:6 4}.cv-hatch-line{stroke:var(--econ-dwl);stroke-width:1.6px}.cv-area-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:12px;font-weight:700}.cv-econ-guide{fill:none;stroke:var(--text-3);stroke-width:1px;stroke-dasharray:3 3}.cv-econ-guide.is-faint{opacity:.55}.cv-econ-marks{pointer-events:none}.cv-econ-point circle{fill:var(--text);stroke:var(--surface);stroke-width:2px}.cv-econ-point.is-mark circle{fill:var(--econ-demand);stroke:var(--surface);stroke-width:2px}.cv-limit-line{fill:none;stroke:var(--text);stroke-width:2.5px;stroke-dasharray:9 5}.cv-limit-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3.5px;stroke-linejoin:round;font-size:12px;font-weight:800}.cv-econ-point.is-policy circle{fill:var(--surface);stroke:var(--text);stroke-width:2px}.cv-econ-point-label,.cv-guide-label,.cv-wedge-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3.5px;stroke-linejoin:round;font-size:12px;font-weight:700}.cv-guide-label{fill:var(--text-2);font-weight:650}.cv-guide-label.is-faint{fill:var(--text-3)}.cv-wedge-line{fill:none;stroke:var(--text);stroke-width:2px}.cv-market-legend li{gap:var(--sp-2)}.cv-legend-line{stroke-width:2.5px;stroke-linecap:round}.cv-legend-line.is-demand{stroke:var(--econ-demand)}.cv-legend-line.is-supply{stroke:var(--econ-supply)}.cv-market-legend .cv-area{flex:none}.cv-market-legend .cv-area-fill{stroke:none}.cv-market-legend .cv-area.is-outline .cv-area-fill{stroke:var(--econ-govt);stroke-width:1.5px;stroke-dasharray:3 2}.cv-market-foot{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.cv-market-foot .cv-help{flex:260px;margin:0}.cv-market-dl{gap:var(--sp-2);display:flex}.cv-btn-sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.cv-ppf-area{fill:var(--chart-band);stroke:none}.cv-ppf-zone{fill:var(--text-3);letter-spacing:.02em;font-size:12px;font-weight:700}.cv-ppf-line{fill:none;stroke:var(--text);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.cv-ppf-legend-line{stroke:var(--text);stroke-width:3px;stroke-linecap:round}.cv-ppf-vertex{fill:var(--text);stroke:var(--surface);stroke-width:1.5px}.cv-ppf-elbow{fill:none;stroke:var(--text-2);stroke-width:2px;stroke-dasharray:6 4}.cv-ppf-pt,.cv-ppf-handle{--curve:var(--text-2)}.cv-ppf-pt.is-a,.cv-ppf-handle.is-a{--curve:var(--econ-demand)}.cv-ppf-pt.is-b,.cv-ppf-handle.is-b{--curve:var(--econ-supply)}.cv-ppf-pt.is-test{--curve:var(--econ-govt)}.cv-ppf-handle.is-shape{--curve:var(--text)}.cv-ppf-pt circle{fill:var(--curve);stroke:var(--surface);stroke-width:2px}.cv-ppf-cross{fill:none;stroke:var(--curve);stroke-width:3px;stroke-linecap:round}.cv-ppf-handle.is-held .cv-drag{cursor:grabbing}.cv-ppf-handle .cv-knob-g:hover .cv-knob,.cv-ppf-handle.is-held .cv-knob{r:11}.cv-ppf-handle .cv-knob-g:hover .cv-knob.is-ring,.cv-ppf-handle.is-held .cv-knob.is-ring{r:9}.cv-exp-reserve{fill:var(--chart-4)}.cv-exp-loan{fill:var(--chart-2)}.cv-exp-seg{stroke:none}.cv-exp-seg.is-a{fill:var(--chart-1)}.cv-exp-seg.is-b{fill:var(--chart-2)}.cv-exp-seg.is-tail{fill:var(--chart-3)}.cv-exp-end.is-reserve{fill:var(--chart-4)}.cv-exp-end.is-loan{fill:var(--chart-2)}.cv-exp-segtext{fill:var(--accent-text);pointer-events:none;font-size:11.5px;font-weight:700}.cv-exp-segtext.is-dark{fill:var(--gray-950)}.cv-exp-segtext.is-tail{fill:var(--text)}.cv-exp-cap{fill:var(--text);font-size:13px;font-weight:700}.cv-expansion-legend{margin-top:var(--sp-2)}.cv-exp-swatch-reserve{background:var(--chart-4)}.cv-exp-swatch-loan{background:var(--chart-2)}.cv-exp-swatch-tail{background:var(--chart-3)}.cv-list-rows{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.cv-list-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:0;padding:var(--sp-2)}.cv-list-top{gap:var(--sp-2);align-items:center;display:flex}.cv-list-name{font:inherit;color:var(--text);width:0;min-width:0;min-height:36px;padding:0 var(--sp-2);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;font-weight:650}.cv-list-name:hover{border-color:var(--border)}.cv-list-name:focus{border-color:var(--accent);background:var(--surface);outline:none}.cv-list-choice{background:var(--surface);flex:none}.cv-list-choice .cv-seg-btn{min-width:36px;padding:0 var(--sp-2)}.cv-list-remove{font:inherit;font-size:var(--fs-lg);color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;width:36px;height:36px;line-height:1}.cv-list-remove:hover{color:var(--over);background:var(--over-soft)}.cv-list-nums{gap:var(--sp-2);margin-top:var(--sp-2);display:grid}.cv-list-num{min-width:0}.cv-list-num-label{font-size:var(--fs-xs);color:var(--text-2);margin:0 0 2px var(--sp-1);white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.cv-list-num .cv-num{width:100%;min-height:40px;font-size:var(--fs-md);background:var(--surface);padding:0 var(--sp-2)}.cv-list-num.is-warn .cv-num{border-color:var(--caution)}.cv-list-add{margin-top:var(--sp-2)}.cv-system{gap:var(--sp-4);display:grid}.cv-flow-node rect{fill:var(--surface-2);stroke:var(--border-strong)}.cv-flow-node.is-battery rect{fill:var(--accent-soft);stroke:var(--accent)}.cv-flow-label{letter-spacing:.04em;text-transform:uppercase;fill:var(--text-3);font-size:11px;font-weight:700}.cv-flow-value{fill:var(--text);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.cv-flow-detail{fill:var(--text-2);font-size:11px}.cv-flow-link{stroke:var(--chart-1);stroke-opacity:.75;stroke-linecap:butt}.cv-flow-link.is-solar-battery{stroke:var(--chart-2)}.cv-flow-link.is-battery-dc{stroke:var(--chart-4);stroke-opacity:.55}.cv-flow-wh{fill:var(--text-2);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.cv-flow-note{fill:var(--accent);font-weight:600}.cv-flow-key{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--text-3)}.cv-system-head{gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.cv-system-head .cv-bars-label{margin:0}.cv-system-head .cv-seg-btn{white-space:nowrap}.cv-system-note{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--ok-soft);color:var(--text)}.cv-system-note.is-caution{background:var(--caution-soft)}.cv-system-note.is-over{background:var(--over-soft)}.cv-bars-bar.is-over{background:var(--over)}.cv-bars-num.is-over{color:var(--over);font-weight:700}.cv-wiring{gap:var(--sp-2);display:grid}.cv-wiring-total{font-size:var(--fs-sm);color:var(--text-2);margin:0}.cv-wiring-total strong{color:var(--text);font-variant-numeric:tabular-nums}.cv-wiring-svg{width:100%;height:auto;margin-inline:auto}.cv-wiring-unit rect{fill:var(--surface-2);stroke:var(--border-strong)}.cv-wiring-unit.is-battery rect{fill:var(--accent-soft);stroke:var(--accent)}.cv-wiring-v{fill:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.cv-wiring-a{fill:var(--text-2);font-variant-numeric:tabular-nums;font-size:11px}.cv-wiring-mark{fill:var(--text-3);font-size:11px;font-weight:800}.cv-wiring-neg,.cv-wiring-pos,.cv-wiring-link{stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.cv-wiring-neg{stroke:var(--text)}.cv-wiring-pos{stroke:var(--over)}.cv-wiring-link{stroke:var(--text-2)}.cv-wiring-sign{font-size:20px;font-weight:800}.cv-wiring-sign.is-neg{fill:var(--text)}.cv-wiring-sign.is-pos{fill:var(--over)}.cv-wiring-gap{fill:var(--text-3);font-size:12px;font-weight:700}
