:root{--bg:#0b0e13;--bg-band:#141922;--bg-sunken:#0e131b;--line:#263040;--line-strong:#35425a;--text:#e6ecf4;--text-dim:#93a1b5;--text-faint:#64748b;--accent:#4a9eff;--accent-dim:#2c5f96;--pipe-edge:#5c6672;--radius:8px;--radius-sm:5px;--band:2.75rem;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden}.app-shell{grid-template-rows:var(--band) var(--band) minmax(0, 1fr) auto;height:100%;display:grid}.body{grid-template-columns:minmax(0,1fr) 20rem;min-height:0;display:grid}.menu{position:relative}.menu-trigger{border-radius:var(--radius-sm);color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.45rem;padding:.35rem .6rem;font-size:.8125rem;display:flex}.menu-trigger:hover{background:var(--bg-sunken);color:var(--text)}.menu-trigger.is-open{background:var(--bg-sunken);border-color:var(--line);color:var(--text)}.menu-glyph{border-top:2px solid;border-bottom:2px solid;width:.875rem;height:.6875rem;position:relative}.menu-glyph:after{content:"";border-top:2px solid;position:absolute;inset:calc(50% - 1px) 0 auto}.menu-popup{background:var(--bg-band);border:1px solid var(--line-strong);border-radius:var(--radius);z-index:30;flex-direction:column;min-width:12rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .35rem);left:0;box-shadow:0 10px 30px #00000073}.menu-item{border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.45rem .6rem;font-size:.8125rem}.menu-item:hover:not(:disabled){background:var(--accent-dim)}.menu-item:disabled{color:var(--text-faint);cursor:default}.menu-item.is-separated{border-top:1px solid var(--line);margin-top:.25rem;padding-top:.5rem}.header-problem{color:#e8834a;margin:0;font-size:.75rem}.setup.is-narrow{max-width:30rem}.top-header{background:var(--bg-band);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:.75rem;padding:0 .75rem;display:flex}.app-title{letter-spacing:.01em;margin:0;font-size:.9375rem;font-weight:600}.feature-row{background:var(--bg-band);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:.6rem;padding:0 .75rem;display:flex}.feature-row-divider{background:var(--line);width:1px;height:1.25rem}.segmented{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.segment{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:.25rem .7rem;font-size:.8125rem;font-weight:600}.segment:hover{color:var(--text)}.segment.is-active{background:var(--accent-dim);color:#fff}.feature-toggle{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-dim);font:inherit;cursor:pointer;padding:.3rem .65rem;font-size:.8125rem}.feature-toggle:hover{color:var(--text);border-color:var(--line-strong)}.feature-toggle.is-active{background:var(--accent-dim);border-color:var(--accent);color:#fff}.feature-toggle:disabled{opacity:.4;cursor:default}.feature-field{align-items:center;gap:.35rem;display:flex}.feature-field>span{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-size:.625rem;font-weight:600}.feature-field select{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-dim);font:inherit;cursor:pointer;padding:.25rem .35rem;font-size:.75rem}.feature-field select:hover{color:var(--text);border-color:var(--line-strong)}.plan2d{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#0e1218;width:100%;height:100%;display:block}.plan2d:active{cursor:grabbing}.plan2d-grid-minor line{stroke:#1e2530}.plan2d-grid-major line{stroke:#313d4d}.plan2d-origin line{stroke:#4a9eff;opacity:.55}.plan2d-ruler{pointer-events:none}.plan2d-ruler line{stroke:#4a5a6e}.plan2d-ruler text{fill:#7f94ad;stroke:none;font-family:ui-monospace,SF Mono,Menlo,monospace}.plan2d-tick.is-fine line{stroke:#3a4757}.plan2d-centreline{stroke:var(--pipe-edge);opacity:.5}.plan2d-pipe{stroke:var(--pipe-edge)}.plan2d-pipe,.plan2d-centreline{pointer-events:none}.plan2d-hit{stroke:#0000;cursor:pointer;pointer-events:stroke}.plan2d-hit:hover{stroke:var(--accent);stroke-opacity:.22}.plan2d-selection{stroke:var(--accent);stroke-opacity:.95;pointer-events:none}.plan2d-bend-id{pointer-events:none}.plan2d-bend-id circle{fill:var(--accent);stroke:var(--bg);stroke-width:0}.plan2d-bend-id text{fill:#0e1218;font-family:ui-monospace,monospace;font-weight:700}.plan2d-hit.is-selected:hover{stroke:var(--accent);stroke-opacity:.16}.working-toggle{align-self:flex-start}.working{flex-direction:column;gap:.5rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.working-step{background:var(--bg-sunken);border-left:2px solid var(--line-strong);border-radius:var(--radius-sm);padding:.4rem .6rem}.working-name{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.625rem;font-weight:700}.working-rule,.working-sum{margin:.15rem 0 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8125rem}.working-rule{color:var(--text-dim)}.working-equals{color:var(--text-faint);margin:0 .4rem}.working-value{color:var(--accent);font-weight:700}.working-note{color:var(--text-faint);margin:.2rem 0 0;font-size:.6875rem}.plan2d-dims{pointer-events:none}.plan2d-shrink path{stroke:#b98a5a;opacity:.75;fill:none}.plan2d-shrink-tie{opacity:.4!important}.plan2d-shrink text{fill:#c79a68;stroke:none}.plan2d-triangle path,.plan2d-angle path{stroke:var(--accent);opacity:.55;fill:none}.plan2d-forward{opacity:.3}.plan2d-dim-text{fill:#9fb4cc;stroke:none;font-family:var(--mono,ui-monospace, monospace);paint-order:stroke}.plan2d-corner{fill:var(--bg-band);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.plan2d-bend-at line,.plan2d-bend-at circle{stroke:#57c17b;fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.plan2d-handle.is-grabbed{fill:var(--accent);cursor:grabbing}.plan2d-handle.is-angle{stroke:#5ce07a}.plan2d-handle.is-angle:hover{fill:#1e3a24}.plan2d-handle.is-angle.is-grabbed{fill:#5ce07a}.plan2d-handle-arm{stroke:#5ce07a;opacity:.5;pointer-events:none}.plan2d-sketch polyline{stroke:var(--accent)}.plan2d-sketch circle{fill:var(--accent);stroke:#0e1218;stroke-width:.5px}.plan2d-sketch-label{fill:var(--accent);stroke:#0e1218;paint-order:stroke;pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,monospace}.panel.is-drawing{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.plan-unavailable{text-align:center;background:#0e1218;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:2rem;display:flex}.plan-unavailable h2{color:var(--caution,#e8834a);margin:0;font-size:.9375rem}.plan-unavailable p{max-width:32rem;color:var(--text-dim);margin:0;font-size:.8125rem;line-height:1.5}.controls-help{z-index:5;position:absolute;bottom:.6rem;right:.6rem}.controls-trigger{background:var(--bg-band);border:1px solid var(--line-strong);width:1.75rem;height:1.75rem;color:var(--text-dim);font:inherit;cursor:pointer;border-radius:50%;font-size:.8125rem;font-weight:700}.controls-trigger:hover,.controls-trigger.is-open{color:var(--text);border-color:var(--accent)}.controls-popup{background:var(--bg-band);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:19rem;padding:.6rem .7rem;position:absolute;bottom:calc(100% + .4rem);right:0;box-shadow:0 10px 30px #00000073}.controls-popup h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .4rem;font-size:.625rem;font-weight:700}.controls-popup dl{flex-direction:column;gap:.3rem;margin:0;display:flex}.controls-popup dl>div{justify-content:space-between;gap:1rem;display:flex}.controls-popup dt{color:var(--text-dim);font-size:.75rem}.controls-popup dd{color:var(--text);white-space:nowrap;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem}.scene3d{background:#0e1218;width:100%;height:100%;display:block}.scene3d canvas{display:block;width:100%!important;height:100%!important}.run-panel{background:var(--bg-band);border-left:1px solid var(--line);flex-direction:column;gap:.75rem;padding:.75rem;display:flex;overflow-y:auto}.panel{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.panel-title{letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:.6875rem;font-weight:700}.panel-note{color:var(--text-faint);margin:0;font-size:.75rem;line-height:1.45}.panel-note.is-over{color:#e8834a}.field{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.field-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-size:.625rem;font-weight:600}.field-input{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:.35rem .45rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8125rem}.field-input:focus{border-color:var(--accent);outline:none}.field-input.is-invalid{border-color:#e05c5c}.field-inline{align-items:center;gap:.3rem;display:flex}.field-suffix{color:var(--text-faint);font-size:.75rem}.field-hint{color:var(--text-faint);font-size:.625rem;line-height:1.35}.field-row{align-items:flex-end;gap:.4rem;display:flex}.chips{flex-wrap:wrap;gap:.2rem;display:flex}.chip{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-dim);font:inherit;cursor:pointer;padding:.2rem .4rem;font-size:.6875rem}.chip:hover{color:var(--text);border-color:var(--line-strong)}.chip.is-active{background:var(--accent-dim);border-color:var(--accent);color:#fff}.chip.is-danger{color:#f0a5a5;border-color:#6b3232}.button{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text);font:inherit;cursor:pointer;padding:.4rem .6rem;font-size:.8125rem}.button:hover{border-color:var(--accent-dim)}.readouts{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.4rem;margin:0;display:grid}.readouts>div{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.35rem .45rem}.readouts dt{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-size:.5625rem;font-weight:600}.readouts dd{margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.875rem}.readouts>div.is-over{border-color:#e8834a}.readouts>div.is-over dd{color:#e8834a}.panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.panel.is-selected{border-color:var(--accent-dim)}.summary{color:var(--text);margin:0;font-size:.8125rem}.summary-sep{color:var(--text-faint)}.chain{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.chain>li{flex-direction:column;gap:.2rem;display:flex}.chain-row{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.3rem .45rem;display:flex}.chain-row:hover{border-color:var(--accent-dim)}.chain-row.is-bend{border-left-color:var(--accent);margin-left:.6rem}.chain-row.is-selected{border-color:var(--accent);background:#1b2b41}.chain-what{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap;flex:none;font-size:.625rem;font-weight:700}.chain-value{text-align:right;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8125rem}.viewport{background:#0e1218;place-items:stretch stretch;min-height:0;display:grid;position:relative}.stick-strip{background:var(--bg-band);border-top:1px solid var(--line);padding:.5rem .875rem .75rem}.strip{width:100%;height:6.75rem;display:block}.strip-stock{fill:#1a212c;stroke:var(--line);stroke-width:1px}.strip-used{fill:#b9c0c7}.strip-used.is-over{fill:#e8834a}.strip-mark line{stroke:var(--accent);stroke-width:2px}.strip-mark text{fill:var(--accent);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.strip-mark-note{fill:var(--text-faint)!important;font-size:11px!important}.strip-mark.is-over line{stroke:#e8834a}.strip-mark.is-over text{fill:#e8834a!important}.strip-cut line{stroke:#e05c5c;stroke-width:2px;stroke-dasharray:4 3}.strip-cut text{fill:#e05c5c;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.strip-end{fill:var(--text-faint);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.strip-caption{color:var(--text-dim);margin:.25rem 0 0;font-size:.75rem}.strip-problem{color:#e8834a;margin:0;padding:1rem 0;font-size:.8125rem}.placeholder{color:var(--text-faint);margin:0;font-size:.8125rem}:where(button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.control-key{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-sunken);color:var(--text-dim);margin-left:.4rem;padding:.05rem .3rem;font-family:inherit;font-size:.6875rem}.feature-toggle.has-icon{align-items:center;gap:.35rem;display:inline-flex}.feature-toggle.has-icon svg{stroke:currentColor;width:.875rem;height:.875rem}.solve-warnings{margin:.4rem 0 0;padding-left:1.1rem}.solve-warnings li{margin-bottom:.2rem}.plan-unavailable-list{text-align:left;color:var(--text-dim);margin:0 0 .75rem;padding-left:1.1rem;font-size:.8125rem}.plan-unavailable-list li{margin-bottom:.2rem}.plan-unavailable-list strong{color:var(--text)}.plan-unavailable-actions{justify-content:center;gap:.5rem;margin-top:.9rem;display:flex}.plan-unavailable-actions .button{width:auto}.chain-row.is-over{border-color:#e8834a}.chain-row.is-over .chain-value{color:#e8834a}.setup-backdrop{z-index:40;background:#04060ab8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.setup{background:var(--bg-band);border:1px solid var(--line-strong);border-radius:var(--radius);width:min(30rem,100%);max-height:100%;padding:1.1rem 1.2rem 1rem;overflow:auto;box-shadow:0 24px 60px #00000080}.setup:focus{outline:none}.setup-title{margin:0 0 .25rem;font-size:1.0625rem}.setup-note{color:var(--text-dim);margin:0 0 1rem;font-size:.8125rem}.setup-question{margin-bottom:1rem}.setup-question h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .45rem;font-size:.625rem;font-weight:700}.setup-question .chips{margin-bottom:.35rem}.setup-routes{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.setup-route{text-align:left;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;gap:.2rem;padding:.6rem .7rem;display:flex}.setup-route:hover{border-color:var(--line-strong)}.setup-route.is-active{border-color:var(--accent);background:#16233a}.setup-route strong{font-size:.8125rem}.setup-route span{color:var(--text-dim);font-size:.6875rem;line-height:1.35}.feature-toggle-group{gap:.25rem;display:inline-flex}.setup-hint{color:var(--text-faint);margin:.35rem 0 0;font-size:.75rem}.setup-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.setup-actions .button{width:auto}.button.is-primary{background:var(--accent-dim);border-color:var(--accent);color:var(--text)}@media (width<=760px){html,body,#root{height:auto}body{overflow:auto}.app-shell{grid-template-rows:auto auto auto auto;height:auto;min-height:100%}.body{grid-template-columns:1fr}.viewport{height:55vh;min-height:18rem}.run-panel{border-left:none;border-top:1px solid var(--line);overflow:visible}.feature-row{flex-wrap:wrap;height:auto;padding:.4rem .75rem}.setup-backdrop{place-items:stretch stretch;padding:0}.setup-routes{grid-template-columns:1fr}.setup{border:none;border-radius:0;width:100%}}
