: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) auto auto minmax(0, 1fr);height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);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{min-height:var(--band);background:var(--bg-band);border-bottom:1px solid var(--line);z-index:10;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.25rem .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:manipulation;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-centerline{stroke:var(--pipe-edge);opacity:.5}.plan2d-pipe{stroke:var(--pipe-edge)}.plan2d-pipe,.plan2d-centerline{pointer-events:none}.plan2d-other{stroke-opacity:.38;cursor:pointer}.plan2d-other:hover{stroke-opacity:.6}.plan2d-other-label{fill:var(--text-dim);pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,monospace}.plan2d-behind{fill:var(--text-dim);pointer-events:none;font-family:system-ui,sans-serif}.plan2d-top-active{stroke-opacity:.95;cursor:pointer}.segmented.plan-view{align-self:flex-start}.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-mark path{stroke:var(--accent);stroke-opacity:.75}.plan2d-mark-text{font-family:var(--mono,ui-monospace, monospace);stroke:#0e1218;stroke-linejoin:round;paint-order:stroke}.plan2d-mark-angle{fill:var(--text-dim)}.plan2d-mark-at{fill:var(--accent);font-weight:700}.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}.layout-map{z-index:5;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#161b24f0;flex-direction:column;gap:.35rem;padding:.5rem;display:flex;position:absolute;top:.6rem;right:.6rem;box-shadow:0 6px 18px #00000059}.layout-map:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout-map-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.layout-map-head .link-button{font-size:.6875rem}.layout-map-show{z-index:5;position:absolute;top:.6rem;right:.6rem}.layout-map-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.625rem;font-weight:700}.layout-map svg{background:var(--bg-sunken,#0e1218);border-radius:3px;display:block}.layout-map-pipe{stroke:#7d8896}.layout-map-pipe.is-active{stroke:var(--accent)}.layout-map-hit{stroke:#0000;cursor:grab;touch-action:none}.layout-map svg.is-dragging,.layout-map svg.is-dragging .layout-map-hit{cursor:grabbing}.layout-map svg{touch-action:none}.layout-map-label{fill:var(--text-dim);pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,monospace}.layout-map-label.is-active{fill:var(--accent);font-weight:700}.layout-map-ghost{stroke:var(--accent);stroke-opacity:.55;stroke-dasharray:4 3;pointer-events:none}.layout-map-views .segment{padding:.15rem .5rem;font-size:.6875rem}.layout-map-clash{fill:#e05c5c;fill-opacity:.85;pointer-events:none}.layout-map-move{justify-content:space-between;gap:.4rem;display:flex}.layout-map-arrows,.layout-map-steps{gap:.2rem;display:flex}.layout-map-arrows .chip{min-width:1.6rem;font-size:.8125rem}.chip.is-blocked{color:#e05c5c;border-style:dashed}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.clashes summary{cursor:pointer}.clashes{flex-direction:column;gap:.35rem;display:flex}.position{border-top:1px solid var(--line);flex-direction:column;gap:.4rem;padding-top:.5rem;display:flex}.position-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.625rem;font-weight:700}.layout-map-note{max-width:220px;color:var(--text-dim);margin:0;font-size:.6875rem}.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;display:block;position:absolute;inset:0;overflow:hidden}.scene3d-readout{z-index:5;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text);pointer-events:none;background:#161b24f0;margin:0;padding:.25rem .6rem;font-size:.75rem;position:absolute;top:.6rem;left:50%;transform:translate(-50%)}.view-note{z-index:5;max-width:60%;color:var(--text-dim);margin:0;font-size:.75rem;position:absolute;bottom:.6rem;left:.6rem}.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}.panel-note.is-clash{color:#e05c5c}.chain-row.is-clash{background:#e05c5c1f;border-color:#e05c5c}.chain-row.is-clash .chain-value{color:#f0a5a5;font-weight:700}.clashes summary.is-clash,.clashes>summary{color:#fff;border-radius:var(--radius-sm);background:#e05c5cd9;padding:.3rem .5rem;font-weight:700}.conflict{color:#fff;border-radius:var(--radius-sm);background:#e05c5cd9;margin:0;padding:.35rem .5rem;font-size:.8125rem;font-weight:700}.layout-map-pipe.is-clash{stroke:#e05c5c}.plan2d-clash{fill:#e05c5c;pointer-events:none;font-family:system-ui,sans-serif;font-weight:700}.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}@media (pointer:coarse){.field-input,.feature-field select{font-size:16px}}.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-actions{flex-wrap:wrap;gap:.4rem;display:flex}.rack{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;padding-top:.6rem;display:flex}.rack-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.625rem;font-weight:700}.rack-advances{border-collapse:collapse;width:100%;font-size:.75rem}.rack-advances caption{text-align:left;color:var(--text-dim);padding-bottom:.25rem}.rack-advances th{text-align:left;color:var(--text-dim);white-space:nowrap;padding:.2rem .4rem .2rem 0;font-weight:500}.rack-advances td{color:var(--accent);padding:.2rem 0;font-family:ui-monospace,SF Mono,Menlo,monospace}.rack-advances tr.is-over td{color:#e8834a}.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);width:calc(100% - .6rem);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-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.stick-strip{background:var(--bg-band);border-bottom:1px solid var(--line);padding:.35rem .875rem .5rem}.strip-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.strip-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0;font-size:.6875rem;font-weight:600}.strip-toggle{border:1px solid var(--line);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:.15rem .55rem;font-size:.75rem}.strip-toggle:hover{border-color:var(--accent-dim);color:var(--text)}.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;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:#04060ab8;place-items:center;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}.dialog-head{z-index:2;background:var(--bg-band);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .75rem;margin:-1.1rem -1.2rem 1rem;padding:.9rem 1.2rem .75rem;display:flex;position:sticky;top:0}.dialog-head .setup-title{margin:0}.dialog-actions{gap:.5rem;margin-left:auto;display:flex}.dialog-actions .button{width:auto}.dialog-actions .button.is-primary{padding-inline:1rem;font-weight:600}.button.is-primary{background:var(--accent-dim);border-color:var(--accent);color:var(--text)}.is-app{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation}.is-app button,.is-app label,.is-app .feature-row,.is-app .top-header{-webkit-user-select:none;user-select:none}@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{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);place-items:stretch stretch}.setup-routes{grid-template-columns:1fr}.setup{border:none;border-radius:0;width:100%}.run-panel .trig{order:-1}.scene3d canvas{touch-action:pan-y!important}}.measure-scroll{overflow-x:auto}.measure-table{border-collapse:collapse;width:100%;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem}.measure-table th,.measure-table td{text-align:right;white-space:nowrap;padding:.3rem .4rem}.measure-table tbody{border-bottom:1px solid var(--line);cursor:pointer}.measure-table thead th{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-family:inherit;font-size:.625rem;font-weight:700}.measure-table tbody th{text-align:left;font-weight:700}.measure-table .measure-marks{text-align:left;white-space:normal;color:var(--text-dim);padding-top:0}.measure-table tbody:hover{background:var(--bg-sunken)}.measure-table tbody.is-selected{background:#1b2b41}.measure-table tbody.is-selected th{color:var(--accent)}.measure-role{color:var(--text-faint);font-size:.625rem;font-weight:400;display:block}.measure-shape{flex-direction:column;gap:.25rem;display:flex}.measure-shape-title{margin:.4rem 0 0;font-size:.75rem;font-weight:700}.measure{gap:.5rem}.trig-table{border-collapse:collapse;width:100%;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8125rem}.trig-table+.trig-table{margin-top:.5rem}.trig-caption{text-align:left;color:var(--text-dim);padding-bottom:.2rem;font-family:inherit;font-size:.75rem}.trig-table th,.trig-table td{white-space:nowrap;padding:.2rem .4rem}.trig-table th{text-align:left;color:var(--text-dim);width:3.5rem;font-weight:600}.trig-table td{text-align:right;color:var(--text)}.trig-table td.trig-what{text-align:left;color:var(--text-faint);font-family:system-ui,sans-serif;font-size:.75rem}
