@import"https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg: #080b0e;--stage: #0a0d10;--panel: #0d1216;--panel-2: #10171c;--well: #0a1014;--line: #1d2830;--line-soft: #151f26;--text: #e7eef4;--text-dim: #b6c3cc;--muted: #74838f;--faint: #52616c;--accent: #5cc8ff;--accent-dim: rgba(92, 200, 255, .14);--ok: #4fd39a;--warn: #e5a84b;--bad: #ff6157;--font-ui: "Golos Text", "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Roboto Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.4;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#5cc8ff47;color:#f4fbff}button,input{font-family:inherit}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:#25313a transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#25313a;border-radius:4px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#34434e;background-clip:content-box}h1,h2,h3,p{margin:0}.boot{display:grid;place-items:center;height:100%;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:48px 48px}.boot-inner{display:grid;justify-items:start;width:300px}.boot-mark{position:relative;display:block;width:40px;height:40px;margin-bottom:22px;border:1px solid #2b3a45;background:#0b1116}.boot-mark i{position:absolute;left:9px;height:2px;background:var(--accent)}.boot-mark i:nth-child(1){top:11px;width:21px}.boot-mark i:nth-child(2){top:18px;width:14px;opacity:.62}.boot-mark i:nth-child(3){top:25px;width:7px;opacity:.32}.boot-eyebrow{font-size:9px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}.boot-title{margin-top:5px;font-size:20px;font-weight:600;letter-spacing:-.01em}.boot-bar{position:relative;width:100%;height:2px;margin-top:20px;overflow:hidden;background:#1a232b}.boot-bar i{position:absolute;top:0;left:0;width:36%;height:100%;background:var(--accent);animation:boot-slide 1.25s cubic-bezier(.65,.05,.36,1) infinite}.boot-bar.has-error i{width:100%;background:var(--bad)}.boot-status{margin-top:11px;font-family:var(--font-mono);font-size:10px;letter-spacing:.02em;color:var(--muted)}.boot-status.has-error{max-width:100%;color:#ff9a93;line-height:1.5}@keyframes boot-slide{0%{transform:translate(-110%)}to{transform:translate(320%)}}.app{display:grid;grid-template-rows:58px minmax(0,1fr);height:100%;animation:app-in .22s ease-out both}@keyframes app-in{0%{opacity:0}to{opacity:1}}.topbar{display:flex;align-items:center;gap:18px;min-width:0;padding:0 14px 0 18px;border-bottom:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{position:relative;flex:none;width:30px;height:30px;border:1px solid #2b3a45;background:#0b1116}.brand-mark i{position:absolute;left:7px;height:2px;background:var(--accent)}.brand-mark i:nth-child(1){top:8px;width:15px}.brand-mark i:nth-child(2){top:14px;width:10px;opacity:.62}.brand-mark i:nth-child(3){top:20px;width:5px;opacity:.32}.brand-text{display:grid;min-width:0}.brand-eyebrow{font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.brand h1{overflow:hidden;margin-top:1px;font-size:14.5px;font-weight:600;letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis}.status-pill{display:inline-flex;flex:none;align-items:center;gap:7px;height:25px;padding:0 10px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.ok{color:#86dfb5;border-color:#1f4b3a;background:#0e1a15}.status-pill.ok .status-dot{background:var(--ok);box-shadow:0 0 7px #4fd39aa6}.status-pill.warn{color:#efc384;border-color:#4b3a1d;background:#17130c}.status-pill.warn .status-dot{background:var(--warn)}.status-pill.bad{color:#ffa49e;border-color:#522522;background:#1a100f}.status-pill.bad .status-dot{background:var(--bad);box-shadow:0 0 7px #ff615780}.top-meta{display:flex;align-items:center;gap:22px;min-width:0;margin-left:auto}.meta{display:grid;gap:1px}.meta span{font-size:8.5px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);white-space:nowrap}.meta b{font-family:var(--font-mono);font-size:11.5px;font-weight:500;color:var(--text-dim)}.meta-hash code{overflow:hidden;max-width:190px;color:#8fb6cf;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.spec-toggle{display:inline-flex;flex:none;align-items:center;gap:7px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:#0e1419;color:var(--text-dim);font-size:11px;font-weight:500;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.spec-toggle:hover{border-color:#31424e;color:var(--text)}.spec-toggle.is-open{border-color:#2c4857;background:#0c1a21;color:#b8e4f8}.spec-badge{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:3px;font-family:var(--font-mono);font-size:9.5px;line-height:1}.spec-badge.bad{background:#3a1816;color:#ffa49e}.spec-badge.warn{background:#382b12;color:#efc384}.body{--params-w: 306px;--spec-w: 372px;display:grid;grid-template-columns:var(--params-w) minmax(0,1fr) var(--spec-w);min-height:0;overflow:hidden}.body.spec-closed{grid-template-columns:var(--params-w) minmax(0,1fr)}.params{--pad: 16px;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-top:15px;border-right:1px solid var(--line);background:var(--panel)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 var(--pad);padding-bottom:13px;border-bottom:1px solid var(--line-soft)}.params-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 var(--pad) 72px;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 14px),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 14px),transparent 100%)}.view-stack{flex:none;padding:34px var(--pad) 16px;border-top:1px solid var(--line);background:#0b1014}.view-stack .group-head{position:static;margin:0 0 13px;padding:0;background:transparent}.panel-eyebrow{font-size:8.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}.panel-head h2{margin-top:2px;font-size:14.5px;font-weight:600;letter-spacing:-.005em}.text-btn{display:inline-flex;align-items:center;gap:5px;height:24px;margin-top:2px;padding:0 7px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted);font-size:10.5px;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.text-btn:hover{border-color:var(--line);background:var(--well);color:var(--text-dim)}.group{padding-top:12px}.group+.group{margin-top:14px;border-top:1px solid var(--line-soft)}.group-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;margin:0 0 3px;padding:8px 0 6px;background:var(--panel)}.group-index{font-family:var(--font-mono);font-size:9px;line-height:1;color:#47606e}.group-icon{flex:none;color:#567786}.group-head h3{font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#93a2ae;white-space:nowrap}.group-line{flex:1;height:1px;background:var(--line-soft)}.group-error{display:inline-grid;place-items:center;color:var(--bad)}.mini-link{border:0;background:transparent;color:#7ea8bd;font-size:9.5px;cursor:pointer;text-decoration:underline;text-decoration-color:#334b57;text-underline-offset:2px}.mini-link:hover{color:var(--accent)}.param-slot{margin:0 -8px;padding:0 8px;border-radius:4px}.param-slot.flash{animation:field-flash 1.5s ease-out}@keyframes field-flash{0%{background:#5cc8ff21}to{background:transparent}}.param{margin-bottom:17px}.param-slot:last-child .param{margin-bottom:2px}.param-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.param-label{font-size:11.5px;font-weight:400;color:var(--text-dim)}.param-hint{font-family:var(--font-mono);font-size:9px;color:var(--faint)}.number-field{display:inline-flex;align-items:baseline;gap:4px}.number-field input{width:64px;height:22px;padding:0 6px;border:1px solid var(--line);border-radius:3px;outline:none;background:var(--well);color:var(--text);font-family:var(--font-mono);font-size:11.5px;font-variant-numeric:tabular-nums;text-align:right;transition:border-color .14s ease,box-shadow .14s ease}.number-field input:hover{border-color:#2c3a45}.number-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.unit{font-family:var(--font-mono);font-size:9.5px;color:var(--muted)}.range-wrap{position:relative;display:flex;align-items:center;height:20px}.range{--range-color: var(--accent);-webkit-appearance:none;appearance:none;width:100%;height:20px;margin:0;background:transparent;cursor:pointer}.range::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(to right,var(--range-color) 0 var(--fill),#202b33 var(--fill) 100%)}.range::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;margin-top:-5px;border:2px solid var(--range-color);border-radius:50%;background:#eaf7ff;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s ease}.range:hover::-webkit-slider-thumb{box-shadow:0 0 0 4px #5cc8ff21}.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #5cc8ff42}.range::-moz-range-track{height:3px;border-radius:2px;background:#202b33}.range::-moz-range-progress{height:3px;border-radius:2px;background:var(--range-color)}.range::-moz-range-thumb{width:11px;height:11px;border:2px solid var(--range-color);border-radius:50%;background:#eaf7ff}.range:focus-visible{outline:none}.range-ticks{position:absolute;top:50%;right:7px;left:7px;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none}.range-ticks i{width:1px;height:5px;background:#3a4a55}.range-scale{display:flex;justify-content:space-between;margin-top:1px;color:var(--faint);font-family:var(--font-mono);font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.01em}.param-help{display:block;max-width:100%;margin-top:6px;color:var(--muted);font-size:10.5px;line-height:1.45}.param-note{display:flex;align-items:baseline;gap:6px;margin-top:6px;color:#8fa1af;font-size:10.5px;line-height:1.4}.note-dot{flex:none;width:4px;height:4px;border-radius:50%;background:var(--accent)}.param.has-error .param-label{color:#ff9f98}.param.has-error .number-field input{border-color:#6b2f2c}.param.has-error .range{--range-color: var(--bad)}.param.has-error .range::-webkit-slider-thumb{box-shadow:0 0 0 3px #ff61571f}.param.has-error .segmented{border-color:#582624}.param.has-error .segmented button.on{background:#34191a;box-shadow:inset 0 0 0 1px #5d2c2a;color:#ffb3ad}.segmented{display:flex;gap:2px;width:100%;padding:2px;border:1px solid var(--line);border-radius:4px;background:var(--well)}.segmented button{flex:1;height:28px;padding:0 4px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:11.5px;font-weight:500;white-space:nowrap;cursor:pointer;transition:color .14s ease,background .14s ease,box-shadow .14s ease}.segmented button:hover{background:#121b22;color:var(--text-dim)}.segmented button.on{background:#17303d;box-shadow:inset 0 0 0 1px #2a5568;color:#c9ebfa}.param-switch{margin-bottom:14px}.switch-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.switch-text{display:grid;gap:2px}.switch-text .param-help{margin-top:0}.switch-row input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{position:relative;flex:none;width:32px;height:18px;border:1px solid #29343d;border-radius:999px;background:#1a242c;transition:background .16s ease,border-color .16s ease}.switch-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#76858f;transition:transform .16s ease,background .16s ease}.switch-row input:checked+.switch-track{border-color:#2b6076;background:#123848}.switch-row input:checked+.switch-track .switch-thumb{transform:translate(14px);background:var(--accent)}.switch-row input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.layer-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.layer{position:relative;display:flex;align-items:center;gap:7px;height:34px;padding:0 8px;border:1px solid var(--line-soft);border-radius:4px;background:var(--well);cursor:pointer;transition:border-color .14s ease,background .14s ease,opacity .14s ease}.layer:hover{border-color:#2a3a45}.layer input{position:absolute;width:1px;height:1px;opacity:0}.layer-swatch{flex:none;width:7px;height:7px;border-radius:1px;box-shadow:inset 0 0 0 1px #00000040}.layer-name{overflow:hidden;flex:1;color:#a9b7c1;font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}.layer .switch-track{width:22px;height:13px}.layer .switch-thumb{top:1px;left:1px;width:9px;height:9px}.layer input:checked~.switch-track{border-color:#2b6076;background:#123848}.layer input:checked~.switch-track .switch-thumb{transform:translate(9px);background:var(--accent)}.layer input:focus-visible~.switch-track{outline:2px solid var(--accent);outline-offset:2px}.layer.off{opacity:.52}.layer.off .layer-swatch{background:#3d4952!important}.layer.off .layer-name{color:var(--muted)}.layer-note{margin-top:9px;color:var(--muted);font-size:10px;line-height:1.4}.explode{margin-top:14px;padding-top:13px;border-top:1px dashed var(--line-soft)}.explode .param-head{margin-bottom:4px}.mono-value{font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--text)}.stage{position:relative;min-width:0;overflow:hidden;background:var(--stage)}.stage canvas{display:block}.stage-metrics{position:absolute;top:14px;left:14px;display:flex;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:#0c1116;pointer-events:none}.metric{min-width:82px;padding:8px 13px 7px;border-right:1px solid var(--line-soft)}.metric:last-child{border-right:0}.metric>span{display:block;margin-bottom:2px;color:var(--muted);font-size:8px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.metric b{color:#e7f4fc;font-family:var(--font-mono);font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}.metric small{margin-left:4px;color:var(--muted);font-family:var(--font-mono);font-size:9px}.stage-dims{position:absolute;top:14px;right:14px;display:flex;align-items:baseline;gap:7px;padding:8px 11px;border:1px solid var(--line);border-radius:4px;background:#0c1116;pointer-events:none}.stage-dims>span{color:var(--faint);font-size:8px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.stage-dims b{color:#cfe0ea;font-family:var(--font-mono);font-size:11.5px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em}.stage-dims small{color:var(--muted);font-family:var(--font-mono);font-size:9px}.stage-toolbar{position:absolute;bottom:14px;left:14px;display:flex;align-items:center;gap:6px}.cam-switch{display:flex;padding:2px;border:1px solid var(--line);border-radius:4px;background:#0c1116}.cam-switch button{height:26px;padding:0 11px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:10.5px;font-weight:500;cursor:pointer;transition:color .14s ease,background .14s ease,box-shadow .14s ease}.cam-switch button:hover{background:#111a20;color:var(--text-dim)}.cam-switch button.on{background:#14303c;box-shadow:inset 0 0 0 1px #29505f;color:#cfeeff}.tool-btn{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:4px;background:#0c1116;color:var(--muted);cursor:pointer;transition:color .14s ease,border-color .14s ease}.tool-btn:hover{border-color:#2c4756;color:var(--accent)}.stage-hint{position:absolute;right:15px;bottom:18px;color:#4e5d68;font-size:9.5px;letter-spacing:.01em;pointer-events:none}.stage-active{position:absolute;top:58px;right:14px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #275062;border-radius:4px;background:#0c1a21;color:#cfeeff;font-size:10.5px;pointer-events:none}.stage-active .active-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px #5cc8ffb3}.stage-active small{color:#7fa6b8;font-family:var(--font-mono);font-size:9.5px}.stage-alert{position:absolute;top:58px;right:14px;display:flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid #522522;border-radius:4px;background:#1a100f;color:#ffa49e;font-size:10.5px;font-weight:500;cursor:pointer}.stage-alert.warn{border-color:#4b3a1d;background:#17130c;color:#efc384}.stage-alert span{color:var(--muted);font-weight:400}.stage-alert:hover span{color:var(--text-dim)}.spec{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-left:1px solid var(--line);background:var(--panel)}.spec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 15px 12px;border-bottom:1px solid var(--line-soft)}.spec-head h2{font-size:14px;font-weight:600;letter-spacing:-.005em}.spec-head p{margin-top:2px;color:var(--muted);font-size:10px}.icon-btn{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted);cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease}.icon-btn:hover{border-color:var(--line);background:var(--well);color:var(--text-dim)}.issues{padding:11px 13px 3px;border-bottom:1px solid var(--line-soft)}.issues-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.issues-title{display:inline-flex;align-items:center;gap:6px;color:#9aa8b3;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.issues-count{color:var(--faint);font-family:var(--font-mono);font-size:9px}.issues-list{display:grid;gap:6px;margin:8px 0 9px;padding:0;list-style:none}.issue{overflow:hidden;border:1px solid #3a2f16;border-left:2px solid var(--warn);border-radius:3px;background:#17130b}.issue.error{border-color:#482220;border-left-color:var(--bad);background:#1a100f}.issue.info{border-color:#22323c;border-left-color:#5f8fa8;background:#0c1519}.issue-body{display:block;width:100%;padding:7px 9px 8px;border:0;background:transparent;color:inherit;font:inherit;text-align:left}button.issue-body{cursor:pointer}button.issue-body:hover{background:#ffffff07}.issue-top{display:flex;align-items:center;gap:7px}.issue-sev{font-size:8.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.issue-sev.warning{color:var(--warn)}.issue-sev.error{color:#ff8e86}.issue-sev.info{color:#8db8cd}.issue-top code{color:#6f7d88;font-family:var(--font-mono);font-size:8.5px}.issue-jump{margin-left:auto;color:#7d929f;font-size:8.5px;letter-spacing:.02em}.issue-message{display:block;margin-top:2px;color:#cfb99e;font-size:10.5px;line-height:1.4}.issue.error .issue-message{color:#e7b6b2}.issue.info .issue-message{color:#a9c0cd}.spec-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 14px;scrollbar-gutter:stable}.spec-table{width:100%;border-collapse:collapse;table-layout:fixed}.spec-table th{position:sticky;top:0;z-index:2;padding:9px 0 7px;border-bottom:1px solid var(--line);background:var(--panel);color:var(--faint);font-size:8.5px;font-weight:500;letter-spacing:.1em;text-align:left;text-transform:uppercase}.spec-table th:last-child{width:96px;padding-right:4px;text-align:right}.group-row td{padding:15px 0 5px}.group-swatch{display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:1px;vertical-align:1px}.group-label{color:#9caab5;font-size:8.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.group-count{margin-left:6px;color:#46555f;font-family:var(--font-mono);font-size:8.5px}.line td{padding:7px 0;border-bottom:1px solid #131b21;vertical-align:top;transition:background .12s ease}.line:hover td{background:#11181e}.line.static:hover td{background:transparent}.line.active td{background:#0f1f27}.line.active td:first-child{box-shadow:inset 2px 0 0 var(--accent)}.line-name{overflow:hidden}.line-name span{display:block;padding-right:6px;color:#cfdae3;font-size:11.5px;line-height:1.3;overflow-wrap:break-word}.line.active .line-name span{color:#eaf7ff}.line-name small{display:block;margin-top:2px;color:#596874;font-family:var(--font-mono);font-size:9px;letter-spacing:.01em}.line-qty{padding-right:4px;text-align:right;white-space:nowrap}.line-qty b{color:#d9e7f1;font-family:var(--font-mono);font-size:11.5px;font-weight:500;font-variant-numeric:tabular-nums}.line.active .line-qty b{color:#b8e7fc}.line-qty small{margin-left:5px;color:#7e8f9b;font-family:var(--font-ui);font-size:10.5px;font-weight:500;letter-spacing:.01em}.spec-total{padding:13px 15px 15px;border-top:1px solid var(--line);background:#0b1014}.spec-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.spec-total-row>span{color:#8b9aa5;font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.spec-total-row b{color:#f0f8fd;font-family:var(--font-mono);font-size:21px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.spec-total-row small{margin-left:5px;color:var(--muted);font-size:10px;letter-spacing:0}.spec-total-meta{display:flex;justify-content:space-between;gap:10px;margin-top:5px;color:#56656f;font-family:var(--font-mono);font-size:9px}@media(max-width:1500px){.body{--params-w: 300px;--spec-w: 350px}}@media(max-width:1380px){.body{--params-w: 292px;--spec-w: 326px}.params{--pad: 14px}.metric{min-width:76px;padding-right:11px;padding-left:11px}.metric b{font-size:14px}.stage-metrics .metric:nth-child(5){display:none}.top-meta{gap:16px}}@media(max-width:1180px){.body{grid-template-columns:280px minmax(0,1fr)}.spec{position:fixed;top:58px;right:0;bottom:0;z-index:40;width:344px;box-shadow:-24px 0 48px #00000073}.meta-hash{display:none}}@media(max-height:850px){.view-stack{padding-top:47px}}@media(max-width:960px){.status-pill{display:none}.stage-metrics .metric:nth-child(4),.stage-metrics .metric:nth-child(5){display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mode-switch{display:flex;flex:none;gap:2px;padding:2px;border:1px solid var(--line);border-radius:4px;background:var(--well)}.mode-switch button{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:10.5px;font-weight:500;cursor:pointer;transition:background .14s ease,color .14s ease,box-shadow .14s ease}.mode-switch button:hover{background:#121b22;color:var(--text-dim)}.mode-switch button.on{background:#17303d;box-shadow:inset 0 0 0 1px #2a5568;color:#c9ebfa}.status-pill.empty{color:var(--muted);border-color:var(--line);background:#0e1419}.status-pill.empty .status-dot{background:#52616c}.body.building-mode{--params-w: 322px;--spec-w: 390px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:var(--well);color:var(--text-dim);font-size:11px;font-weight:500;cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease}.btn:hover{border-color:#31424e;color:var(--text)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{border-color:#2b5a6d;background:#12303d;color:#c9ebfa}.btn-primary:hover{border-color:#3b7489;background:#163b4b;color:#e5f8ff}.btn-sm{height:26px;padding:0 8px;font-size:10.5px}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{border-color:transparent;background:transparent;color:var(--muted)}.building-panel{padding-top:0}.building-panel>.panel-head{padding-top:15px}.building-head h2{margin-top:2px}.panel-sub{margin-top:2px;color:var(--muted);font-size:9.5px}.building-head .btn{margin-top:4px}.building-scroll{flex:1;min-height:0;overflow-y:auto;padding:12px var(--pad) 36px}.building-list-empty,.editor-empty{display:grid;justify-items:center;gap:6px;padding:22px 12px;border:1px dashed var(--line);border-radius:4px;color:var(--muted);text-align:center;font-size:10.5px;line-height:1.4}.building-list-empty svg,.editor-empty svg{color:#5d7d8d}.building-list-empty>span,.editor-empty>span{color:var(--text-dim);font-size:11.5px}.building-list-empty small,.editor-empty small{color:var(--faint);font-size:9.5px}.building-list-empty .btn{margin-top:4px}.editor-empty{margin-top:16px}.module-list{display:grid;gap:4px;max-height:262px;overflow-y:auto;padding-right:3px}.module-card{--level: #8b98a6;display:flex;align-items:center;width:100%;padding:6px 8px 6px 9px;border:1px solid var(--line-soft);border-left:2px solid var(--level);border-radius:3px;background:var(--well);color:var(--text);text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease}.module-card:hover{border-color:#2b3c47;border-left-color:var(--level);background:#101920}.module-card.selected{border-color:#2c4b5a;border-left-color:var(--level);background:#0f1f27;box-shadow:inset 0 0 0 1px #5cc8ff29}.module-card-top{display:flex;flex:1;align-items:center;gap:6px;min-width:0}.module-code{color:#dce8f0;font-family:var(--font-mono);font-size:11.5px;font-weight:500}.module-card.selected .module-code{color:#d9f5ff}.module-level-chip{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-family:var(--font-mono);font-size:8.5px;white-space:nowrap}.module-level-chip i{width:4px;height:4px;border-radius:50%}.module-error{display:inline-grid;place-items:center;margin-left:auto;color:var(--bad)}.module-card-meta{overflow:hidden;margin-left:auto;padding-left:4px;color:#667784;font-family:var(--font-mono);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.module-card.selected .module-card-meta{color:#8fa9b8}.module-editor{margin-top:14px;border-top:1px solid var(--line-soft)}.module-facts{display:grid;grid-template-columns:1.5fr 1fr 1fr;overflow:hidden;margin-bottom:4px;border:1px solid var(--line-soft);border-radius:3px;background:var(--well)}.module-facts>div{min-width:0;overflow:hidden;padding:7px 6px 6px;border-right:1px solid var(--line-soft)}.module-facts>div:last-child{border-right:0}.module-facts span{display:block;margin-bottom:2px;color:var(--faint);font-size:8px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.module-facts b{display:inline;color:#dce9f2;font-family:var(--font-mono);font-size:10.5px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.module-facts small{margin-left:3px;color:var(--muted);font-family:var(--font-mono);font-size:8.5px}.module-level-row{display:flex;align-items:center;gap:7px;margin:7px 0 8px;color:var(--muted);font-size:10px}.module-level-row select{width:48px;height:23px;padding:0 5px;border:1px solid var(--line);border-radius:3px;outline:none;background:var(--well);color:var(--text-dim);font-family:var(--font-mono);font-size:10px}.module-level-row select:focus{border-color:var(--accent)}.module-hash{overflow:hidden;margin-left:auto;color:var(--faint);font-family:var(--font-mono);font-size:8.5px;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.module-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:8px 0}.module-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:28px;padding:0 5px;border:1px solid var(--line-soft);border-radius:3px;background:var(--well);color:#9fb0bb;font-size:9.5px;white-space:nowrap;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.module-actions button:hover{border-color:#31424e;background:#101920;color:var(--text)}.module-actions button:disabled{opacity:.38;cursor:default}.module-actions button:disabled:hover{border-color:var(--line-soft);background:var(--well);color:#9fb0bb}.module-actions button.danger{border-color:#34201f;color:#d68f8a}.module-actions button.danger:hover{border-color:#5a2a27;background:#1a100f;color:#ffa49e}.module-issues{display:grid;gap:4px;margin:8px 0 4px;padding:0;list-style:none}.module-issue{padding:6px 8px;border-left:2px solid var(--warn);border-radius:3px;background:#17130b;color:#cbb9a2;font-size:10px;line-height:1.4}.module-issue.error{border-left-color:var(--bad);background:#1a100f;color:#e7b6b2}.module-issue-top{display:flex;align-items:center;gap:5px;margin-bottom:2px}.module-issue-top i{width:4px;height:4px;border-radius:50%;background:var(--warn)}.module-issue.error .module-issue-top i{background:var(--bad)}.module-issue-top code{color:#7d8a93;font-family:var(--font-mono);font-size:8.5px}.editor-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:15px 0 2px;padding-top:12px;border-top:1px dashed var(--line-soft)}.editor-subhead span{color:#93a2ae;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase}.editor-subhead small{color:var(--faint);font-family:var(--font-mono);font-size:8.5px}.building-stage{display:flex;flex-direction:column;min-height:0}.building-3d{position:relative;flex:1;min-height:0;overflow:hidden}.building-stage .plan-panel{flex:none}.building-empty-stage,.building-wait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;height:100%;padding:24px;background-color:var(--stage);background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:48px 48px;text-align:center}.building-empty-stage h2{margin:1px 0 0;font-size:20px;font-weight:600;letter-spacing:-.01em}.building-empty-stage p{max-width:320px;margin:0 0 10px;color:var(--muted);font-size:11px}.building-empty-stage .empty-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:5px;border:1px solid #2b3a45;background:#0b1116;color:var(--accent)}.building-wait{color:var(--muted);font-family:var(--font-mono);font-size:10.5px}.stage-error{position:absolute;top:14px;left:50%;z-index:6;max-width:520px;padding:8px 12px;transform:translate(-50%);border:1px solid #522522;border-radius:4px;background:#1a100f;color:#ffa49e;font-size:10.5px}.plan-panel{display:flex;flex-direction:column;height:238px;min-height:0;border-top:1px solid var(--line);background:var(--panel)}.plan-head{display:flex;flex:none;align-items:center;gap:12px;height:38px;padding:0 12px;border-bottom:1px solid var(--line-soft)}.plan-title{display:flex;flex:none;align-items:center;gap:7px;min-width:0;color:#6f8b9a}.plan-title-text{display:grid;min-width:0;gap:1px}.plan-title-text b{color:#9fb0bc;font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.plan-title-text small{color:var(--faint);font-family:var(--font-mono);font-size:8px;white-space:nowrap}.plan-levels{display:flex;align-items:center;gap:2px;min-width:0;margin-left:auto;overflow-x:auto}.plan-levels button{display:inline-flex;flex:none;align-items:center;gap:4px;height:22px;padding:0 6px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:9.5px;cursor:pointer}.plan-levels button:hover{background:#111a20;color:var(--text-dim)}.plan-levels button i{width:4px;height:4px;border-radius:50%;background:var(--level, var(--muted))}.plan-levels button.on{border-color:#2c4b5a;background:#12242d;color:#c9ebfa}.plan-actions{display:flex;flex:none;align-items:center;gap:2px;margin-left:2px;padding-left:6px;border-left:1px solid var(--line-soft)}.plan-canvas{position:relative;flex:1;min-height:0;overflow:hidden;background:#090e12}.plan-svg{display:block;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.plan-bg{fill:#090e12}.plan-grid line{stroke:#18232b;stroke-width:1;pointer-events:none}.plan-grid line.major{stroke:#263842}.plan-module{outline:none}.plan-module .plan-rect{vector-effect:non-scaling-stroke}.plan-module.selected .plan-rect{filter:drop-shadow(0 0 5px rgba(92,200,255,.25))}.plan-code{font-family:var(--font-mono);font-size:10.5px;font-weight:500;pointer-events:none}.plan-level{font-family:var(--font-ui);font-size:8.5px;pointer-events:none}.plan-size{font-family:var(--font-mono);font-size:8px;pointer-events:none}.plan-empty{position:absolute;top:50%;left:50%;display:grid;justify-items:center;gap:8px;min-width:220px;padding:14px 18px;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:4px;background:#0a0f13f0;color:var(--muted);font-size:10.5px;text-align:center;pointer-events:auto}.plan-empty>span{color:var(--text-dim);font-size:11.5px}.plan-empty .btn{height:27px;font-size:10.5px}.build-summary{padding:12px 15px 11px;border-bottom:1px solid var(--line-soft)}.build-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.build-stat{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0}.build-stat>span{color:var(--faint);font-size:8px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.build-stat b{color:#dce9f2;font-family:var(--font-mono);font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.build-stat small{margin-left:3px;color:var(--muted);font-family:var(--font-ui);font-size:9px}.build-id{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:7px;border-top:1px solid var(--line-soft)}.build-id span{color:var(--faint);font-size:8px;font-weight:500;letter-spacing:.09em;text-transform:uppercase}.build-id code{overflow:hidden;color:#8fb6cf;font-family:var(--font-mono);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.build-note{margin-top:6px;color:#56656f;font-size:9.5px;line-height:1.35}.spec-empty{padding:22px 8px;color:var(--muted);font-size:10.5px;line-height:1.45;text-align:center}@media(max-width:1500px){.body.building-mode{--params-w: 312px;--spec-w: 364px}}@media(max-width:1380px){.body.building-mode{--params-w: 304px;--spec-w: 344px}}@media(max-height:850px){.plan-panel{height:200px}.module-list{max-height:214px}}
