.viz{--sans:var(--font-body-stack);--mono:var(--font-mono);--accent-ink:#0a0f1c;--line-soft:var(--line);--viz-surface:var(--surface);--viz-grid:var(--line);--viz-rule:var(--muted);--viz-ink:var(--text);--viz-ink-soft:var(--text-dim);--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;background:var(--viz-surface);color:var(--viz-ink)}.viz .demo-panel{padding:22px 24px;border-top:1px solid var(--line-soft)}.viz .demo-panel:first-child{border-top:none}.viz .demo-panel>h3{font-family:var(--sans);font-size:15px;font-weight:650;letter-spacing:-.005em;margin-bottom:3px}.viz .demo-panel>.panel-note{font-size:14px;color:var(--viz-ink-soft);margin-bottom:18px;max-width:62ch}.viz .panel-grid{display:grid;grid-template-columns:220px 1fr;grid-gap:26px;gap:26px;align-items:start}@media (max-width:720px){.viz .panel-grid{grid-template-columns:1fr;gap:18px}}.viz .controls{display:flex;flex-direction:column;gap:18px}.viz .control-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.viz .control label{font-size:13px;font-weight:600;color:var(--viz-ink)}.viz .control output{font-family:var(--mono);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.viz .control-hint{font-size:12px;color:var(--viz-ink-soft);margin-top:5px;line-height:1.45}.viz .control input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:22px;background:transparent;margin-top:6px;cursor:pointer}.viz .control input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--viz-grid)}.viz .control input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--viz-grid)}.viz .control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--accent);border:2px solid var(--viz-surface);box-shadow:0 0 0 1px var(--accent)}.viz .control input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--viz-surface);box-shadow:0 0 0 1px var(--accent)}.viz .control input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.viz .demo-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}.viz .demo-actions button{font:inherit;font-size:13.5px;font-weight:600;padding:8px 15px;border-radius:7px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink)}.viz .demo-actions button.ghost{background:transparent;color:var(--accent)}.viz .demo-actions button:hover{opacity:.88}.viz .demo-actions button:disabled{opacity:.45;cursor:progress}.viz .plot-host{position:relative}.viz .plot{display:block;width:100%;height:auto;overflow:visible}.viz .plot-grid line{stroke:var(--viz-grid);stroke-width:1}.viz .plot text.axis-title,.viz .plot text.tick{font-family:var(--mono);font-size:10px;fill:var(--viz-ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.viz .plot text.axis-title{font-family:var(--sans);font-size:11px}.viz .plot text.point-label{font-family:var(--mono);font-size:11px;font-weight:600;fill:var(--viz-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.viz .plot text.rule-label{font-family:var(--mono);font-size:10px;fill:var(--viz-ink-soft)}.viz .plot-tip{position:absolute;transform:translate(-50%,calc(-100% - 14px));background:var(--viz-surface);border:1px solid var(--line);border-radius:7px;padding:8px 11px;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.14);font-size:12.5px;display:grid;grid-template-columns:1fr auto;grid-gap:3px 16px;gap:3px 16px;white-space:nowrap;z-index:5}.viz .plot-tip .tip-x{grid-column:1/-1;font-family:var(--mono);font-size:11px;color:var(--viz-ink-soft);padding-bottom:3px;border-bottom:1px solid var(--line-soft);margin-bottom:2px}.viz .plot-tip .k{display:flex;align-items:center;gap:7px;color:var(--viz-ink-soft)}.viz .plot-tip .k i{width:9px;height:9px;border-radius:2px;flex:none}.viz .plot-tip b{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--viz-ink)}.viz .plot-legend{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;margin:10px 0 0;padding:0;font-size:12.5px;color:var(--viz-ink-soft)}.viz .plot-legend li{display:flex;align-items:center;gap:7px}.viz .plot-legend i{width:11px;height:3px;border-radius:2px;flex:none}.viz .plot-caption{font-size:12.5px;color:var(--viz-ink-soft);margin-top:8px;max-width:64ch;line-height:1.5}.viz .stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:14px;gap:14px;margin-top:16px}.viz .stat{border:1px solid var(--line);border-radius:8px;padding:13px 15px;background:var(--viz-surface)}.viz .stat .stat-label{font-size:11.5px;color:var(--viz-ink-soft);line-height:1.35}.viz .stat .stat-value{font-family:var(--mono);font-size:20px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:5px;color:var(--viz-ink)}.viz .stat .stat-value small{font-size:12px;font-weight:500;color:var(--viz-ink-soft)}.viz .stat.is-pick{border-color:var(--accent)}.viz .table-view{margin-top:14px}.viz .table-view summary{font-size:12.5px;color:var(--accent);cursor:pointer;font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:6px}.viz .table-view summary::-webkit-details-marker{display:none}.viz .table-view summary:before{content:"▸";transition:transform .15s}.viz .table-view[open] summary:before{transform:rotate(90deg)}.viz .table-view .scroll{overflow-x:auto;margin-top:10px}.viz .table-view table{border-collapse:collapse;width:100%;font-size:13px}.viz .table-view caption{text-align:left;font-size:12px;color:var(--viz-ink-soft);padding-bottom:8px}.viz .table-view td,.viz .table-view th{text-align:left;padding:7px 12px;border-bottom:1px solid var(--line-soft)}.viz .table-view thead th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--viz-ink-soft);font-weight:600}.viz .table-view tbody th{font-weight:500;color:var(--viz-ink-soft)}.viz .table-view td.num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.viz .demo-loading{padding:30px 24px;font-size:14px;color:var(--viz-ink-soft)}@media (prefers-reduced-motion:reduce){.viz .table-view summary:before{transition:none}}.viz .phase-bar{display:flex;width:100%;height:26px;border-radius:4px;overflow:hidden;gap:2px}.viz .phase-bar span{display:block;height:100%}.viz .phase-key{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;list-style:none;padding:0;font-size:12px}.viz .phase-key li{display:flex;align-items:baseline;gap:7px;color:var(--viz-ink-soft)}.viz .phase-key i{width:10px;height:10px;border-radius:2px;flex:none;align-self:center}.viz .phase-key b{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--viz-ink);font-weight:600}.viz .alloc{display:flex;flex-direction:column;gap:7px;margin-top:4px}.viz .alloc-row{display:grid;grid-template-columns:108px 1fr 58px;grid-gap:10px;gap:10px;align-items:center;font-size:13px}.viz .alloc-row .n{color:var(--viz-ink-soft)}.viz .alloc-row .track{background:var(--viz-grid);height:12px;border-radius:3px;overflow:hidden}.viz .alloc-row .fill{height:100%;background:var(--series-1);border-radius:3px 0 0 3px}.viz .alloc-row .v{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;color:var(--viz-ink)}.viz .alloc-row.is-cash .fill{background:var(--viz-rule)}.viz .demo-error{border:1px solid var(--series-2);background:color-mix(in srgb,var(--series-2) 8%,transparent);padding:14px 16px;border-radius:8px;font-size:14px;color:var(--viz-ink)}.viz .demo-error code{font-size:12.5px}.viz .demo-select{font:inherit;font-size:13.5px;width:100%;margin-top:6px;padding:7px 10px;border-radius:6px;border:1px solid var(--line);background:var(--viz-surface);color:var(--viz-ink)}.viz .demo-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.viz .stat.is-warn{border-color:var(--series-2)}.viz .stat.is-warn .stat-value{color:var(--series-2)}.viz .floorplan{background:var(--viz-surface)}.viz .solver-strip{font-family:var(--mono);font-size:12px;line-height:1.6}.viz .solver-strip strong{color:var(--viz-ink);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.viz .aisle-row{display:flex;gap:6px;margin-top:8px}.viz .aisle-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1;min-width:0;height:18px;background:transparent;cursor:pointer}.viz .aisle-slider::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--viz-grid)}.viz .aisle-slider::-moz-range-track{height:3px;border-radius:2px;background:var(--viz-grid)}.viz .aisle-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:11px;height:11px;margin-top:-4px;border-radius:50%;background:var(--accent);border:1.5px solid var(--viz-surface)}.viz .aisle-slider::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--accent);border:1.5px solid var(--viz-surface)}.viz .aisle-slider:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.viz{border-radius:12px;overflow:hidden;border:1px solid var(--line)}