:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #172036;--hover: #2b3a52;--border: #334155;--fg: #f1f5f9;--muted: #94a3b8;--primary: #1a4d80;--primary-fg: #e0efff;--accent: #f59e0b;--accent-ink: #1a1203;--ok: #22c55e;--warn: #f59e0b;--bad: #ef4444;--run: #22c55e;--hold: #f59e0b;--alarm: #ef4444;--grid: rgba(148, 163, 184, .09);--grid-major: rgba(148, 163, 184, .17);--ink: #cbd5e1;--steel: #64748b;--steel-2: #475569;--stage: #111a2e;--sel: #38bdf8;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--r: 6px;color-scheme:dark}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #e9eef5;--panel: #ffffff;--panel-2: #f4f7fb;--hover: #e2e8f0;--border: #cbd5e1;--fg: #0f172a;--muted: #52627a;--primary: #1a4d80;--primary-fg: #ffffff;--accent: #d97706;--accent-ink: #ffffff;--ok: #15803d;--warn: #b45309;--bad: #dc2626;--run: #16a34a;--hold: #d97706;--alarm: #dc2626;--grid: rgba(26, 77, 128, .07);--grid-major: rgba(26, 77, 128, .14);--ink: #1e293b;--steel: #64748b;--steel-2: #94a3b8;--stage: #f8fafc;--sel: #0284c7;color-scheme:light}}:root[data-theme=light]{--bg: #e9eef5;--panel: #ffffff;--panel-2: #f4f7fb;--hover: #e2e8f0;--border: #cbd5e1;--fg: #0f172a;--muted: #52627a;--primary: #1a4d80;--primary-fg: #ffffff;--accent: #d97706;--accent-ink: #ffffff;--ok: #15803d;--warn: #b45309;--bad: #dc2626;--run: #16a34a;--hold: #d97706;--alarm: #dc2626;--grid: rgba(26, 77, 128, .07);--grid-major: rgba(26, 77, 128, .14);--ink: #1e293b;--steel: #64748b;--steel-2: #94a3b8;--stage: #f8fafc;--sel: #0284c7;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--panel)}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r);padding:6px 11px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){background:var(--hover)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--sel);outline-offset:1px}button.primary{background:var(--primary);color:var(--primary-fg);border-color:var(--primary)}button.primary:hover:not(:disabled){filter:brightness(1.15);background:var(--primary)}button.accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.accent:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}button.danger{color:var(--bad)}button.ghost{background:transparent;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--hover)}button.small{padding:3px 8px;font-size:12.5px}input[type=text],input[type=number],input[type=password],select,textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r);padding:5px 8px;min-width:0;width:100%}input[type=number]{font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}label.check{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.app{display:flex;flex-direction:column;height:100%}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand img{height:30px;width:auto;display:block}.brand .word{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--border);padding-left:10px}.brand .wm{font-weight:800;font-size:17px;letter-spacing:.02em}.brand .wm b{color:var(--accent)}.tabs{display:flex;gap:2px;background:var(--panel-2);padding:3px;border-radius:9px;border:1px solid var(--border)}.tabs button{border:0;background:transparent;padding:5px 14px;border-radius:6px;font-weight:600;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--primary);color:var(--primary-fg)}.top .spacer{flex:1}.chip .short{display:none}@media (max-width: 900px){.chip .short{display:inline}}.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);font-size:12.5px;cursor:pointer}.dot{width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}.dot.ok{background:var(--ok)}.dot.run{background:var(--run);box-shadow:0 0 0 3px color-mix(in srgb,var(--run) 30%,transparent)}.dot.hold{background:var(--hold)}.dot.alarm{background:var(--alarm)}.example-badge{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:4px;padding:1px 6px}.work{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:12px;padding-block:12px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.stage-col{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.side{min-width:0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-bottom:24px}@media (max-width: 900px){.work{display:flex;flex-direction:column;overflow-y:auto}.stage-col{flex:none}.stage{height:min(50vh,400px);flex:none!important}.top{gap:8px}.tabs{flex:1}.tabs button{flex:1;padding:5px 8px}.chip .long{display:none}.side{overflow:visible}.brand .word{display:none}}.stage{flex:1;min-height:260px;position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background-color:var(--stage);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}.stage svg{width:100%;height:100%;display:block;touch-action:none;user-select:none}.stage .corner{position:absolute;left:10px;top:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);pointer-events:none}.stage .hud{position:absolute;right:10px;bottom:8px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:70%}.hud .pill{font-family:var(--font-mono);font-size:11.5px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--border);border-radius:5px;padding:1px 7px;font-variant-numeric:tabular-nums}.svg-label{font-size:13px;fill:var(--muted);font-family:var(--font-sans)}.svg-value{font-size:12px;fill:var(--ink);font-family:var(--font-mono)}.part{cursor:default}.part.drag{cursor:grab}.part.drag:active{cursor:grabbing}.sensor-hit{cursor:pointer}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px}.card h3{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}.card h3 .grow{flex:1}.card p.hint,.hint{margin:0;color:var(--muted);font-size:12.5px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>*{min-width:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.field{display:flex;flex-direction:column;gap:3px;min-width:0}.field>span{font-size:11.5px;color:var(--muted)}.unit-input{position:relative}.unit-input input{padding-right:34px}.unit-input em{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:11.5px;color:var(--muted);pointer-events:none}.item{border:1px solid var(--border);border-radius:8px;padding:9px;display:flex;flex-direction:column;gap:8px;background:var(--panel-2)}.item.sel{border-color:var(--sel)}.item-head{display:flex;align-items:center;gap:8px}.item-head .name{flex:1;font-weight:600;min-width:0}.letter{font-family:var(--font-mono);font-weight:700;color:var(--accent);width:22px;text-align:center;flex:none}.tag{font-size:11px;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;white-space:nowrap}.templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.templates button{text-align:left;white-space:normal;display:flex;flex-direction:column;gap:2px;padding:8px 10px}.templates button b{font-size:13.5px}.templates button span{font-size:12px;color:var(--muted)}.templates button[aria-pressed=true]{border-color:var(--accent)}.addbar{display:flex;flex-wrap:wrap;gap:6px}pre.code{margin:0;max-height:320px;overflow:auto;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px;font-family:var(--font-mono);font-size:12px;line-height:1.5}.problems{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.problems li{font-size:12.5px;padding:5px 8px;border-radius:6px;border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent)}.problems li.error{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}.problems li button{margin-left:6px}.note{font-size:12.5px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--primary) 18%,transparent);border:1px solid color-mix(in srgb,var(--primary) 50%,transparent)}.blocks{display:flex;flex-direction:column;gap:4px}.blk{border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.blk.sel{border-color:var(--sel)}.blk.now{box-shadow:inset 4px 0 0 var(--accent)}.blk.bad{border-color:color-mix(in srgb,var(--bad) 70%,transparent)}.blk-line{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;min-height:36px}.blk-num{font-family:var(--font-mono);font-size:11px;color:var(--muted);width:20px;text-align:right;flex:none}.blk-icon{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:5px;font-size:12px;font-weight:700;color:var(--accent-ink)}.blk-text{flex:1;min-width:0;overflow-wrap:anywhere}.blk-text small{color:var(--muted)}.blk-edit{padding:4px 10px 10px;display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--border)}.blk-tools{display:flex;gap:4px;flex-wrap:wrap}.nest{margin:2px 0 6px 18px;padding-left:8px;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:4px}.nest-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px}.nest-empty{font-size:12px;color:var(--muted);padding:4px 2px}.loopcount{font-family:var(--font-mono);font-size:11.5px;color:var(--accent)}.runbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.runbar button{padding:8px 14px;font-weight:600}.speed{display:flex;align-items:center;gap:10px}.speed b{font-family:var(--font-mono);font-size:20px;width:64px;text-align:right;font-variant-numeric:tabular-nums}.status-line{display:flex;align-items:center;gap:8px;font-weight:600}.waiting{color:var(--accent);font-size:13px}.log{max-height:200px;overflow:auto;font-family:var(--font-mono);font-size:12px;display:flex;flex-direction:column;gap:1px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px}.log .warn{color:var(--warn)}.log .err{color:var(--bad)}.log time{color:var(--muted);margin-right:6px}.io{display:flex;flex-wrap:wrap;gap:6px}.io button{display:inline-flex;align-items:center;gap:6px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.jog{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center}.jog .pos{font-family:var(--font-mono);text-align:center;font-variant-numeric:tabular-nums}.slider-row{display:grid;grid-template-columns:26px minmax(0,1fr) 76px;gap:8px;align-items:center}.backdrop{position:fixed;inset:0;background:#0206178c;display:grid;place-items:center;z-index:20;padding:16px}.dialog{width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.dialog h2{margin:0;font-size:17px}.err-text{color:var(--bad);font-size:13px}.ok-text{color:var(--ok);font-size:13px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.machine-name{font-weight:600;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}.bench{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:12px;padding-block:12px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.area{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.viewport{flex:1;min-height:260px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel)}.vp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--panel);font-size:12.5px}.vp-bar .check{font-size:12.5px}.vp-bar .spacer{flex:1}.vp-src{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.vp-stage{flex:1;min-height:0;position:relative;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--stage) 92%,#fff 8%),var(--stage) 75%)}.vp-stage>svg{width:100%;height:100%;display:block;touch-action:none;user-select:none}.vp-stage .hud{position:absolute;right:10px;bottom:8px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:70%;pointer-events:none}.view3d{position:absolute;inset:0;touch-action:none}.view3d canvas{display:block;outline:none}.seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.seg button{border:0;border-radius:0;background:var(--panel-2)}.seg button+button{border-left:1px solid var(--border)}.seg button[aria-pressed=true]{background:var(--primary);color:var(--primary-fg)}.timeline{flex:none;border:1px solid var(--border);border-radius:10px;background:var(--panel);display:flex;flex-direction:column;max-height:42%;min-height:120px}.tl-head{display:flex;align-items:center;gap:10px;padding:5px 8px;border-bottom:1px solid var(--border);font-size:12.5px;flex-wrap:wrap}.tl-head .spacer{flex:1}.tl-head .tag{font-family:var(--font-mono)}.tl-body{display:flex;overflow:auto;min-height:0;position:relative}.tl-labels{position:sticky;left:0;z-index:2;flex:none;width:116px;background:var(--panel);border-right:1px solid var(--border);font-size:12px}.tl-l{display:flex;align-items:center;gap:6px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.tl-l .letter{font-family:var(--font-mono);font-weight:700;color:var(--accent)}.tl-svg{flex:none;display:block}.tl-grid{stroke:var(--border);stroke-width:1;opacity:.6}.tl-tick{font:10.5px var(--font-mono);fill:var(--muted)}.tl-sep{stroke:var(--border);opacity:.6}.tl-axis{fill:none;stroke:var(--sel);stroke-width:1.6}.tl-on{fill:var(--ok);opacity:.75}.tl-head-line{stroke:var(--bad);stroke-width:2}.tl-step{cursor:pointer}.tl-step rect{fill:var(--steel);opacity:.85;stroke:transparent;stroke-width:2}.tl-step text{font:600 10.5px var(--font-sans);fill:#fff;pointer-events:none}.tl-step.move rect{fill:var(--accent)}.tl-step.move text{fill:var(--accent-ink)}.tl-step.sense rect{fill:var(--sel)}.tl-step.switch rect{fill:var(--ok)}.tl-step.flow rect{fill:var(--primary)}.tl-step.note rect{fill:var(--muted)}.tl-step:hover rect{opacity:1}.tl-step.sel rect{stroke:var(--fg);opacity:1}.blk-head{display:grid;grid-template-columns:34px 1fr auto;gap:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 8px}.blk-num{width:34px}.blk-time{flex:none;font-family:var(--font-mono);font-size:11px;color:var(--muted);text-align:right;display:flex;gap:6px}.blk-time em{font-style:normal;color:var(--fg);opacity:.8;min-width:4.5ch}i.blk-icon{font-style:normal;display:inline-grid;margin-right:6px;vertical-align:-5px}.blk-icon.move{background:var(--accent);color:var(--accent-ink)}.blk-icon.wait{background:var(--steel);color:#fff}.blk-icon.sense{background:var(--sel);color:#fff}.blk-icon.switch{background:var(--ok);color:#fff}.blk-icon.flow{background:var(--primary);color:var(--primary-fg)}.blk-icon.note{background:var(--muted);color:var(--panel)}.addstep{position:relative}.addmenu{position:absolute;z-index:20;left:0;top:calc(100% + 4px);min-width:250px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 10px 30px #0000004d;display:flex;flex-direction:column;gap:2px}.addgroup{display:flex;flex-direction:column;gap:1px}.addgroup>span{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:4px 6px 2px}.addmenu button{text-align:left;justify-content:flex-start}.seqtabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:6px}.seqtabs button[role=tab]{border:1px solid var(--border);background:var(--panel-2);border-radius:7px 7px 0 0;padding:5px 12px;font-weight:600;color:var(--muted);max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seqtabs button[role=tab][aria-selected=true]{background:var(--panel);color:var(--fg);border-color:var(--sel);box-shadow:inset 0 -2px 0 var(--sel)}.seqmenu{position:relative;margin-left:auto}.parts-list{display:flex;flex-direction:column;gap:3px}.part-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;text-align:left;padding:4px 6px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;cursor:pointer}.part-row input[type=text]{min-height:30px;padding:3px 8px;font-weight:600}.part-row b{font-weight:500;font-size:12px;color:var(--muted)}.part-row em{font-style:normal;font-family:var(--font-mono);font-size:11.5px;color:var(--muted)}.part-row.sel{border-color:var(--sel)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.place{border-top:1px dashed var(--border);padding-top:8px;display:flex;flex-direction:column;gap:6px}@media (max-width: 900px){.bench{display:flex;flex-direction:column;overflow-y:auto}.area{flex:none}.viewport{height:min(56vh,440px);flex:none}.timeline{max-height:none}.bench .side{overflow:visible}.machine-name{display:none}.grid4{grid-template-columns:1fr 1fr}}.navbox{position:absolute;left:10px;top:10px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;user-select:none}.vcube-wrap{width:76px;height:76px;perspective:400px;display:grid;place-items:center}.vcube{position:relative;width:50px;height:50px;transform-style:preserve-3d}.vface{position:absolute;inset:0;width:50px;height:50px;padding:0;border-radius:4px;display:grid;place-items:center;font:700 9.5px var(--font-sans);letter-spacing:.02em;text-transform:uppercase;color:var(--fg);background:color-mix(in srgb,var(--panel) 88%,#93b4e6);border:1px solid color-mix(in srgb,var(--border) 70%,#5b8ad6);backface-visibility:hidden;cursor:pointer;box-shadow:none;min-height:0}.vface:hover{background:var(--sel);color:#fff}.vface.f-front{transform:translateZ(25px)}.vface.f-back{transform:rotateY(180deg) translateZ(25px)}.vface.f-right{transform:rotateY(90deg) translateZ(25px)}.vface.f-left{transform:rotateY(-90deg) translateZ(25px)}.vface.f-top{transform:rotateX(90deg) translateZ(25px)}.vface.f-bottom{transform:rotateX(-90deg) translateZ(25px)}.navbtns{display:flex;flex-direction:column;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #00000014}.navbtns button{width:34px;height:32px;min-height:0;padding:0;border:0;border-radius:0;background:transparent;display:grid;place-items:center;color:var(--fg);box-shadow:none}.navbtns button+button{border-top:1px solid var(--border)}.navbtns button:hover:not(:disabled){background:color-mix(in srgb,var(--sel) 16%,transparent)}.navbtns button:disabled{opacity:.35}.navbtns svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.navbtns svg .fill{fill:currentColor}.dim-tag{position:absolute;left:0;top:0;z-index:2;min-height:0;padding:2px 8px;border-radius:6px;font:600 12px var(--font-mono);background:var(--panel);color:var(--fg);border:1.5px solid var(--sel);box-shadow:0 1px 4px #00000026;cursor:text;white-space:nowrap}.dim-tag:hover{background:var(--sel);color:#fff}.dim-input{width:76px;font:600 12px var(--font-mono);padding:1px 4px;border:0;background:transparent;color:inherit;outline:none}.box-sel{position:absolute;display:none;z-index:2;pointer-events:none;border:1.5px dashed var(--sel);background:color-mix(in srgb,var(--sel) 12%,transparent)}.view3d.placing canvas{cursor:copy!important}.lib-item{cursor:grab}.blk-grip{color:var(--muted);font-size:11px;letter-spacing:-2px;cursor:grab;opacity:.6;flex:none}.blk.drop-before{box-shadow:0 -3px 0 var(--sel)}.blk.drop-after{box-shadow:0 3px 0 var(--sel)}.nest-empty.drop{outline:2px dashed var(--sel);border-radius:6px}.bench.with-lib{grid-template-columns:236px minmax(0,1fr) 400px}.lib-col{min-width:0;min-height:0;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.library{display:flex;flex-direction:column;gap:10px;padding:10px}.lib-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.lib-head b{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.lib-cat{display:flex;flex-direction:column;gap:5px}.lib-cat-name{font-size:11px;font-weight:600;color:var(--muted)}.lib-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.lib-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 5px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--fg);font-size:10.5px;line-height:1.15;text-align:center;cursor:grab;user-select:none}.lib-tile:hover{border-color:var(--sel)}.lib-tile svg{color:var(--fg);opacity:.85}.lib-tile.off{opacity:.45;cursor:pointer;border-style:dashed}.lib-tile.off.open,.lib-tile.off:hover{opacity:.8}.lib-tile i{position:absolute;top:2px;right:4px;font-style:normal;font-weight:800;color:var(--bad);font-size:11px}.lib-why{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--panel-2);display:flex;flex-direction:column;gap:6px;font-size:12px}.fixes{display:flex;flex-direction:column;gap:6px}.fix{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;font-size:12px}.fix em{display:block;font-style:normal;color:var(--muted);font-size:11.5px;margin-top:2px}.lib-tree{border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:2px}.tree-row{display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:0;background:transparent;padding:3px 6px;border-radius:6px;font-size:12.5px}.tree-row:hover{background:var(--hover)}.tree-row.sel{background:color-mix(in srgb,var(--sel) 22%,transparent)}.tree-row svg{flex:none;color:var(--muted)}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-axis{font:700 11px var(--font-mono);color:var(--accent)}.tag.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,transparent)}.card h3 svg{vertical-align:-4px;color:var(--fg)}.yaml-view{margin:0;max-height:280px;overflow:auto;font:11.5px/1.45 var(--font-mono);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 0}.yaml-view div{white-space:pre;padding:0 8px 0 0}.yaml-view div i{display:inline-block;width:34px;text-align:right;margin-right:10px;font-style:normal;color:var(--muted);opacity:.6;user-select:none}.yaml-view .chg{background:color-mix(in srgb,var(--ok) 18%,transparent);box-shadow:inset 3px 0 0 var(--ok)}.yaml-edit{width:100%;font:12px/1.45 var(--font-mono);background:var(--panel-2);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:8px;resize:vertical}.schematic{position:absolute;inset:0}.schematic>svg{width:100%;height:100%;display:block;touch-action:none;user-select:none}.sch-side{position:absolute;left:10px;top:10px;z-index:2}.sch-name{fill:var(--fg);font-family:var(--font-sans);font-weight:600;pointer-events:none;paint-order:stroke;stroke:var(--stage);stroke-width:3px}.sch-part.drag{cursor:grab}@media (max-width: 1200px){.bench.with-lib{grid-template-columns:200px minmax(0,1fr) 340px}.lib-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.bench.with-lib{display:flex;flex-direction:column}.lib-col{overflow:visible;order:1}.bench.with-lib .side{order:2}.lib-grid{grid-template-columns:repeat(4,1fr)}}.size-tip{position:absolute;display:none;z-index:3;pointer-events:none;font:600 12px var(--font-mono);background:var(--fg);color:var(--panel);border-radius:6px;padding:3px 8px;white-space:nowrap}.lib-tile.mine{padding-top:8px}.lib-tile .swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--border)}.lib-tile .tile-x{position:absolute;top:1px;right:2px;border:0;background:transparent;padding:0 3px;font-size:13px;line-height:1;color:var(--muted);min-height:0}.lib-tile .tile-x:hover{color:var(--bad);background:transparent}input[type=color]{width:100%;height:32px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2)}.dro{position:absolute;right:10px;bottom:10px;display:flex;gap:4px;align-items:stretch;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 120px)}.dro-src{align-self:center;font:700 10px var(--font-mono);letter-spacing:.08em;color:var(--muted);margin-right:4px}.dro.live .dro-src{color:var(--ok)}.dro-axis{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:8px;border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 90%,transparent);font-family:var(--font-mono);min-height:0}.dro-axis b{font-size:14px}.dro-axis .dro-v{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;min-width:6.5ch;text-align:right;color:var(--fg)}.dro-axis em{font-style:normal;font-size:11px;color:var(--muted)}.dro-axis.sel{border-color:var(--sel);box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 40%,transparent)}.dro.live .dro-axis{border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}.dro.live .dro-axis.sel{border-color:var(--sel)}.dro-big{display:flex;align-items:baseline;gap:10px;justify-content:center;padding:6px 0;font-family:var(--font-mono)}.dro-big b{font-size:22px;color:var(--accent)}.dro-big span{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}.dro-big em{font-style:normal;color:var(--muted)}.jog-row{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}.jog-row>button{font-weight:700;min-height:40px}.tag.live{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}.stepbuilder,.sb-teach{display:flex;flex-direction:column;gap:8px}.sb-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.sb-title>b:first-child{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--primary-fg);font-size:12px;flex:none}.sb-sliders{display:flex;flex-direction:column;gap:4px;padding-left:30px}.sb-slider{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1.4fr) 70px;gap:8px;align-items:center;font-size:12.5px}.sb-slider b{color:var(--accent);font-family:var(--font-mono)}.sb-slider em{font-style:normal;text-align:right;font-family:var(--font-mono);font-size:12px}.sb-quick{display:flex;flex-wrap:wrap;gap:6px;padding-left:30px}.sb-quick button{min-height:34px}.sb-pair{display:inline-flex}.sb-pair button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.sb-pair button:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0}.sb-flash{margin:0;padding-left:30px;color:var(--ok);font-size:12.5px;font-weight:600}.sb-more{align-self:flex-start}.sb-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.sb-tile{display:flex;align-items:flex-start;gap:8px;text-align:left;padding:7px 8px}.sb-tile i.blk-icon{margin:0;flex:none}.sb-tile span{display:flex;flex-direction:column;min-width:0}.sb-tile em{font-style:normal;font-size:11.5px;color:var(--muted);font-weight:400;white-space:normal}.sb-tile{white-space:normal;min-width:0}.mono{font-family:var(--font-mono)}.vp-state{font-size:12px;color:var(--muted)}.vp-state.live{color:var(--ok);font-weight:600}.pop{position:relative}.pop-card{position:absolute;left:0;top:calc(100% + 6px);z-index:15;width:290px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000029;display:flex;flex-direction:column;gap:6px}.pop.help .pop-card{width:340px}.pop-sec{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px}.pop-row{align-items:flex-start!important;gap:8px}.pop-row span{display:flex;flex-direction:column}.pop-row em{font-style:normal;font-size:11.5px;color:var(--muted)}.keys{border-collapse:collapse;font-size:12.5px}.keys th{text-align:left;font-weight:600;padding:3px 10px 3px 0;white-space:nowrap;vertical-align:top}.keys td{padding:3px 0;color:var(--muted)}.placing-bar{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:10px;padding:6px 8px 6px 14px;border-radius:999px;background:var(--fg);color:var(--panel);font-size:13px;box-shadow:0 4px 14px #0003;white-space:nowrap}.placing-bar button{background:var(--panel);color:var(--fg)}.lib-tile.armed{border-color:var(--sel);background:color-mix(in srgb,var(--sel) 16%,var(--panel-2));box-shadow:inset 0 0 0 1px var(--sel)}.first-steps{position:absolute;right:10px;top:10px;z-index:3;width:min(330px,calc(100% - 120px));padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;box-shadow:0 6px 20px #00000024;font-size:12.5px;display:flex;flex-direction:column;gap:8px}.first-steps ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.first-steps button{align-self:flex-end}.welcome{width:min(620px,100%)}.wl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.wl-tile{white-space:normal;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 12px;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);color:var(--fg);min-height:120px}.wl-tile:hover{border-color:var(--sel);box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 30%,transparent)}.wl-tile em{font-style:normal;font-size:12px;color:var(--muted)}.wl-icon{font-size:26px;line-height:1;color:var(--accent);margin-bottom:6px}.wire-line{margin:0;font-size:12.5px;font-weight:600;color:var(--ok)}.wire-line.bad{color:var(--warn, #d97706)}details.more{border-top:1px solid var(--border);padding-top:6px}details.more>summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--muted);list-style:none;display:flex;align-items:center;gap:8px;padding:4px 0}details.more>summary:before{content:"▸";font-size:10px}details.more[open]>summary:before{content:"▾"}details.more>summary::-webkit-details-marker{display:none}details.more[open]>summary{margin-bottom:6px}details.wiring{border-top:0;padding:4px 2px;display:flex;flex-direction:column;gap:10px}details.wiring>summary{font-size:13px;color:var(--fg)}.many-list{margin:0;padding-left:18px;font-size:13px}button.link{background:none;border:0;padding:0;min-height:0;color:var(--sel);text-decoration:underline;cursor:pointer;box-shadow:none}.jogbar{flex:none;border-top:1px solid var(--border);background:var(--panel);padding:6px 8px;display:flex;flex-direction:column;gap:6px}.jb-axes{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.jb-src{font:700 10px var(--font-mono);letter-spacing:.08em;color:var(--muted)}.jogbar.live .jb-src{color:var(--ok)}.jb-fold{min-width:26px;padding:0 4px}.jb-axis{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:9px;border:1px solid var(--border);background:var(--panel-2);font-family:var(--font-mono)}.jb-axis.sel{border-color:var(--sel);box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 35%,transparent)}.jb-axis.moving{border-color:var(--accent)}.jogbar.live .jb-axis{border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}.jb-btn{width:34px;min-height:32px;padding:0;font:700 18px var(--font-sans);border-radius:7px;touch-action:none;user-select:none}.jb-btn:active:not(:disabled){background:var(--accent);color:#fff}.jb-letter{min-height:0;padding:0 4px;border:0;background:transparent;box-shadow:none;font:800 15px var(--font-mono)}.jb-val{min-height:0;padding:2px 4px;border:0;background:transparent;box-shadow:none;font:600 16px var(--font-mono);font-variant-numeric:tabular-nums;min-width:7ch;text-align:right;color:var(--fg);cursor:text}.jb-val:hover{background:color-mix(in srgb,var(--sel) 14%,transparent)}.jb-input{width:9ch;font:600 15px var(--font-mono);padding:2px 4px}.jb-axis em{font-style:normal;font-size:11px;color:var(--muted);margin-right:2px}.jb-stop{margin-left:auto;min-height:34px;padding:0 14px;font-weight:700;color:#fff;background:#dc2626;border-color:transparent}.jb-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.jb-tools .spacer{flex:1}.jb-sep{width:1px;align-self:stretch;background:var(--border);margin:0 2px}.jb-out.on{border-color:var(--ok)}.rec{color:#dc2626;font-weight:700}.rec.on{background:#dc2626;color:#fff;animation:recblink 1.4s infinite}@keyframes recblink{50%{opacity:.75}}.jb-rec-hint{margin:0;font-size:12px;color:#dc2626}.jb-ready{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 10px;border-radius:8px;font-size:12.5px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border))}.jb-ready span{flex:1;min-width:200px}.jb-ready.bad{background:color-mix(in srgb,#dc2626 12%,var(--panel));border-color:color-mix(in srgb,#dc2626 45%,var(--border))}.preview-tag{position:absolute;left:50%;bottom:10px;transform:translate(-50%);z-index:3;font-size:12px;padding:3px 10px;border-radius:999px;background:var(--fg);color:var(--panel);pointer-events:none}.go-bubble{position:absolute;z-index:4;display:none;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--border);box-shadow:0 6px 18px #0000002e;font-size:12.5px;white-space:nowrap}.strip{flex:none;border:1px solid var(--border);border-radius:10px;background:var(--panel);display:flex;flex-direction:column;max-height:46%;min-height:150px}.strip .timeline{border:0;border-radius:0;max-height:none;min-height:0;flex:1}.strip-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--border);font-size:12.5px}.strip-head .spacer{flex:1}.strip-seq{max-width:180px;font-weight:600}.strip-time{font-family:var(--font-mono);color:var(--muted)}.strip-rec{color:#dc2626;font-weight:700}.strip-speed{width:auto}.strip-where{color:var(--muted);font-size:12px}.strip-confirm{display:inline-flex;align-items:center;gap:6px}.strip-confirm span{color:#dc2626;font-weight:600}.strip-msg{margin:0;padding:4px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.strip-cards{display:flex;gap:8px;padding:8px;overflow-x:auto;overflow-y:hidden;align-items:stretch;min-height:0;flex:1}.sc{position:relative;flex:none;width:196px;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);font-size:12.5px;cursor:pointer}.sc:hover{border-color:color-mix(in srgb,var(--sel) 60%,var(--border))}.sc.sel{border-color:var(--sel);box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 35%,transparent)}.sc.now{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.sc.bad{border-color:#dc2626}.sc.drop-before:before,.sc.drop-after:after{content:"";position:absolute;top:4px;bottom:4px;width:3px;border-radius:2px;background:var(--sel)}.sc.drop-before:before{left:-6px}.sc.drop-after:after{right:-6px}.sc-head{display:flex;align-items:center;gap:6px;cursor:grab}.sc-n{font:700 12px var(--font-mono);color:var(--muted);min-width:1.5ch}.sc-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-name{flex:1;min-width:0;font-weight:600;font-size:12.5px;padding:2px 4px;border:1px solid transparent;background:transparent}.sc-name:hover,.sc-name:focus{border-color:var(--border);background:var(--panel)}.sc-axes{display:grid;grid-template-columns:1fr 1fr;gap:4px}.sc-ax{display:flex;align-items:center;gap:3px;padding:1px 4px;border:1px solid var(--border);border-radius:6px;background:var(--panel);font-family:var(--font-mono)}.sc-ax b{font-size:11px;color:var(--muted)}.sc-ax input{width:100%;min-width:0;border:0;padding:2px 0;background:transparent;font:600 13px var(--font-mono);text-align:right;color:var(--fg);outline:none}.sc-ax em{font-style:normal;font-size:10.5px;color:var(--muted)}.sc-ax.bad{border-color:#dc2626;background:color-mix(in srgb,#dc2626 10%,var(--panel))}.sc-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sc-row>button.small{flex:1;padding-inline:4px}.chip-s{min-height:0;padding:2px 8px;font-size:11.5px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted);box-shadow:none}.chip-s.on{background:var(--sel);border-color:var(--sel);color:#fff}.sc-custom{font:11px var(--font-mono);color:var(--muted)}.sc-text{margin:0;color:var(--muted)}.sc-problem{margin:0;font-size:11.5px;color:#dc2626}.sc-foot{display:flex;align-items:center;gap:2px;margin-top:auto}.sc-foot .spacer{flex:1}.sc-dur{font:11px var(--font-mono);color:var(--muted)}button.icon{min-height:0;width:24px;height:22px;padding:0;border:0;background:transparent;box-shadow:none;color:var(--muted);font-size:12px}button.icon:hover:not(:disabled){color:var(--fg);background:color-mix(in srgb,var(--sel) 14%,transparent)}.sc-add{flex:none;display:flex;flex-direction:column;justify-content:center;gap:6px;width:190px;padding:8px;border:1.5px dashed var(--border);border-radius:10px}.sc-add .hint{margin:0;font-size:12px}.roles{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roles li{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.roles li.done{border-color:color-mix(in srgb,var(--ok) 45%,var(--border))}.role-mark{width:18px;text-align:center;font-weight:700;color:var(--muted)}.roles li.done .role-mark{color:var(--ok)}.role-txt{flex:1;min-width:0;display:flex;flex-direction:column}.role-txt em{font-style:normal;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.built{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.built li{display:flex;align-items:center;gap:6px;font-size:13px}.built li span{flex:1}.built li em{font-style:normal;font-size:11.5px;color:var(--muted)}.wizard{width:min(560px,100%)}.opt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}.opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;text-align:left;white-space:normal;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--fg);min-height:0}.opt em{font-style:normal;font-size:11.5px;color:var(--muted)}.opt.on{border-color:var(--sel);box-shadow:0 0 0 2px color-mix(in srgb,var(--sel) 35%,transparent)}.test{display:flex;flex-direction:column;gap:8px}.test-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.test-row .grow{flex:1;min-width:180px}.dot.big{width:16px;height:16px}.console{position:fixed;right:16px;bottom:16px;z-index:18;width:min(620px,calc(100vw - 32px));height:min(420px,60vh);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 36px #00000040;overflow:hidden}.con-head{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--border);font-size:12.5px}.con-head .spacer{flex:1}.con-state{font:11.5px var(--font-mono);color:var(--muted)}.con-state.ok{color:var(--ok)}.small-check{font-size:12px}.con-lines{flex:1;overflow-y:auto;padding:6px 10px;font:12.5px/1.45 var(--font-mono);background:color-mix(in srgb,var(--panel-2) 70%,var(--panel))}.con-l{display:flex;flex-wrap:wrap;gap:6px;white-space:pre-wrap;word-break:break-word}.con-l.you{color:var(--sel);font-weight:600}.con-l.motion,.con-l.ok{color:var(--muted)}.con-l.bad{color:#dc2626}.con-who{width:1ch;flex:none}.con-t{flex:1;min-width:0}.con-ex{flex-basis:100%;padding-left:2ch;font-family:var(--font-sans);font-size:12px;color:var(--fg)}.con-quick{display:flex;gap:4px;flex-wrap:wrap;padding:6px 10px;border-top:1px solid var(--border)}.con-in{display:flex;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid var(--border);font-family:var(--font-mono)}.con-in input{flex:1;font:13px var(--font-mono)}.dialog.help{width:min(600px,100%)}.checks{display:flex;flex-direction:column;gap:4px}.check-l{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px;border:1px solid var(--border)}.check-l.ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.check-l.ok>span:first-child{color:var(--ok);font-weight:700}.check-l.bad{border-color:color-mix(in srgb,#dc2626 40%,var(--border));background:color-mix(in srgb,#dc2626 6%,var(--panel))}.check-l.bad>span:first-child{color:#dc2626;font-weight:700}.check-l .grow{flex:1}.qa{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:var(--panel-2);border:1px solid var(--border)}.qa-q{margin:0;font-weight:600}.qa-fix{margin:0;font-size:13.5px}.qa>button{align-self:flex-start}.next-hint{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:8px;max-width:min(620px,calc(100% - 140px));padding:6px 6px 6px 12px;border-radius:12px;background:var(--panel);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 4px 16px #00000024;font-size:13px}.next-hint .grow{flex:1}.notices{position:absolute;right:10px;bottom:10px;z-index:4;display:flex;flex-direction:column;gap:6px;max-width:min(420px,calc(100% - 20px))}.notice{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border-radius:10px;background:var(--panel);border:1px solid color-mix(in srgb,#dc2626 50%,var(--border));border-left:4px solid #dc2626;box-shadow:0 6px 18px #00000029;font-size:13px}.notice .grow{flex:1}.hint-pulse{animation:hintpulse 1.6s ease-in-out infinite;position:relative;z-index:1}@keyframes hintpulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 70%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 0%,transparent)}}.io-mon{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding-top:6px;border-top:1px dashed var(--border)}.io-h{font:700 10.5px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 2px 0 4px}.io-chip{display:inline-flex;align-items:center;gap:5px;min-height:0;padding:3px 8px 3px 6px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);color:var(--fg);font-size:12px;box-shadow:none}.io-chip b{font-weight:600}.io-chip em{font-style:normal;font-size:10.5px;color:var(--muted);font-family:var(--font-mono)}.io-led{width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--muted) 35%,transparent);border:1px solid color-mix(in srgb,var(--muted) 60%,transparent)}.io-chip.in.on .io-led{background:#f59e0b;border-color:#d97706;box-shadow:0 0 6px #f59e0b}.io-chip.lim.on .io-led{background:#dc2626;border-color:#b91c1c;box-shadow:0 0 6px #dc2626}.io-chip.out.on .io-led{background:var(--ok);border-color:var(--ok);box-shadow:0 0 6px var(--ok)}.io-chip.on{border-color:color-mix(in srgb,var(--accent) 50%,var(--border))}.io-chip.unknown .io-led{border-style:dashed}button.io-chip:hover{border-color:var(--sel)}.jb-home{min-height:0;width:26px;height:28px;padding:0;border:0;background:transparent;box-shadow:none;color:var(--muted);font-size:15px}.jb-home:hover:not(:disabled){color:var(--fg);background:color-mix(in srgb,var(--sel) 14%,transparent)}.on-tab{border-color:var(--sel)}.strip.compact{min-height:0}.card.fold:not(.open){padding-block:8px}.card.fold h3{align-items:center}.card.fold:not(.open) h3{margin:0}.fold-btn{display:flex;align-items:center;gap:6px;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;flex:1}.fold-btn:hover{color:var(--sel)}.fold-mark{font-size:10px;width:10px;color:var(--muted)}.fold-sum{font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--muted);max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;gap:4px;align-items:center}.fold-last{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag.bad{color:#dc2626;border-color:color-mix(in srgb,#dc2626 50%,transparent)}.lib-list{display:flex;flex-direction:column;gap:4px}.lib-list .lib-tile{flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;padding:4px 8px 4px 4px;text-align:left;font-size:12.5px}.lib-list .lib-tile svg{flex:none;opacity:1}.lib-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}.lib-txt b{font-weight:600}.lib-txt em{font-style:normal;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-list .lib-tile.off{opacity:.75}.lib-list .lib-tile.off svg{filter:grayscale(1);opacity:.55}.lib-need{margin-left:auto;flex:none;font-size:10.5px;font-weight:700;color:#b45309;border:1px solid color-mix(in srgb,#f59e0b 60%,transparent);border-radius:999px;padding:1px 7px;background:color-mix(in srgb,#f59e0b 12%,transparent)}.lib-list .lib-tile svg{background:#eef2f7;border-radius:8px;padding:2px;box-sizing:content-box}:root[data-theme=dark] .lib-list .lib-tile svg{background:#c5cfda}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .lib-list .lib-tile svg{background:#c5cfda}}.stages{display:flex;gap:2px;background:var(--panel-2);padding:3px;border-radius:10px;border:1px solid var(--border)}.stages button{position:relative;display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:4px 22px 4px 8px;border-radius:7px;color:var(--muted);min-height:0;text-align:left;box-shadow:none}.stages button[aria-selected=true]{background:var(--primary);color:var(--primary-fg)}.st-n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--font-sans);border:1.5px solid currentColor}.stages button.done .st-n{background:var(--ok);border-color:var(--ok);color:#fff}.st-txt{display:flex;flex-direction:column;line-height:1.15}.st-txt b{font-size:13px;font-weight:700;white-space:nowrap}.st-txt em{font-style:normal;font-size:11px;opacity:.8;white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}.st-arrow{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:16px;opacity:.5}@media (max-width: 1250px){.machine-name{display:none}.st-txt em{max-width:110px}}@media (max-width: 900px){.st-txt em{display:none}.stages,.stages button{flex:1}}.intro{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-left:4px solid var(--accent);border-radius:10px;background:var(--panel);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.intro p{margin:0;font-size:13px;line-height:1.45}.intro-head{display:flex;align-items:center;gap:6px;font-size:14px}.intro .spacer,.intro .row .spacer{flex:1}.intro-mini{align-self:flex-start;min-height:0;padding:4px 10px;font-size:12px;border-radius:999px;background:var(--panel);color:var(--muted)}.dialog.how{width:min(720px,100%)}.how-flow{display:flex;align-items:stretch;gap:8px}.hf-box{flex:1;display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);text-align:center;align-items:center}.hf-box.main{border-color:var(--accent)}.hf-box em{font-style:normal;font-size:11.5px;color:var(--muted)}.hf-ic{font-size:22px;color:var(--accent)}.hf-arrow{align-self:center;font-size:22px;color:var(--muted)}.how-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;counter-reset:hs}.how-steps li{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.45;counter-increment:hs}.how-steps li>div:last-child:before{content:counter(hs) ". ";font-weight:800;color:var(--accent)}.hs-pics{flex:none;width:116px;display:flex;gap:2px;flex-wrap:wrap}.hs-pics svg{background:#eef2f7;border-radius:6px}.hs-key{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);font-weight:700;font-size:15px}@media (max-width: 600px){.how-flow{flex-direction:column}.hf-arrow{transform:rotate(90deg)}.hs-pics{display:none}}.wiring{display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--fg)}.wiring svg{flex:none}.wiring .hint{margin:0;font-size:12px}.grid2 .wiring{grid-column:1 / -1}@media (max-width: 560px){.wiring{flex-direction:column;align-items:flex-start}}.bench.with-rail{grid-template-columns:34px minmax(0,1fr) 400px}.lib-rail{writing-mode:vertical-rl;display:flex;align-items:center;gap:8px;padding:10px 0;min-height:0;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.lib-rail:hover{color:var(--fg);border-color:var(--sel)}.lib-col{position:relative}.lib-close{position:absolute;top:6px;right:6px;z-index:1;min-height:0;padding:0 6px}details.lib-cat>summary{cursor:pointer;list-style:none}details.lib-cat>summary:before{content:"▸ ";font-size:9px}details.lib-cat[open]>summary:before{content:"▾ "}details.lib-cat>summary::-webkit-details-marker{display:none}@media (max-width: 1200px){.bench.with-rail{grid-template-columns:34px minmax(0,1fr) 340px}}.library>.lib-head:first-child{padding-right:26px}@media (max-width: 900px){.bench.with-rail{display:flex;flex-direction:column}.lib-rail{writing-mode:horizontal-tb;justify-content:center;padding:6px}}@media (max-width: 1440px){.machine-name{display:none}.stages button{padding-right:18px}.st-txt em{max-width:120px}}.dialog.boardmap{width:min(1180px,100%)}.bm2{background:#141414;border-radius:10px;padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px;color:#f2f2f2;overflow-x:auto;box-shadow:inset 0 0 0 2px #2a2a2a}.bm2-row{display:flex;gap:8px;align-items:flex-start}.bm2-mid{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}.bm2-mid b{font-size:22px;letter-spacing:.02em}.bm2-mid span{font-size:11.5px;color:#bdbdbd}.bmb{display:flex;flex-direction:column;align-items:stretch;gap:4px;flex:none}.bmb-terms{display:flex;gap:2px;padding:4px 4px 3px;border:1.5px solid #e8e8e8;border-radius:3px}.bmb-title{text-align:center;font:700 13px var(--font-sans);letter-spacing:.08em;border:1.5px solid #e8e8e8;border-radius:2px;padding:1px 6px}.bmb-sum{font-size:10.5px;line-height:1.3;color:#d6d6d6;max-width:190px}.bmt{display:flex;flex-direction:column;align-items:center;gap:3px;width:30px;min-height:0;padding:2px 0;border:0;border-radius:4px;background:transparent;box-shadow:none;color:#e6e6e6;cursor:pointer}.bmt:hover,.bmt.sel{background:#ffffff1f}.bmt-screw{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#fafafa,#9aa2aa 70%);border:1px solid #6a6f74;position:relative}.bmt-screw:after{content:"";position:absolute;left:4px;right:4px;top:9px;height:1.5px;background:#555}.bmt-l{font:600 7.5px var(--font-mono);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;height:44px;text-align:left;color:#cfcfcf}.bmt.free .bmt-screw{opacity:.35}.bmt.free .bmt-l{color:#8a8a8a}.bmt.used .bmt-screw{box-shadow:0 0 0 2px #38bdf8}.bmt.lit .bmt-screw{background:radial-gradient(circle at 38% 32%,#fff3c4,#f59e0b 70%);box-shadow:0 0 10px #f59e0b}.bmt.gnd .bmt-screw,.bmt.pwr .bmt-screw,.bmt.bus .bmt-screw{opacity:.8}.bm2-row.bottom .bmb{flex-direction:column-reverse}.bm2-row.bottom .bmb-sum{display:none}.bmb.port{align-items:center}.bm-port{width:56px;height:52px;border:1.5px solid #e8e8e8;border-radius:3px;display:grid;place-items:center;font:800 13px var(--font-sans)}.bm-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);font-size:13px}.bm-pick .grow{flex:1;min-width:200px}.side{position:relative}.side-grip{position:absolute;right:-10px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:5;border-radius:4px}.side-grip:hover,.side-grip:active{background:color-mix(in srgb,var(--sel) 35%,transparent)}.side-top{display:flex;justify-content:flex-end;margin:-6px 0 -8px}.side-close{min-height:0;padding:1px 6px;font-size:11.5px;color:var(--muted)}.side-close:hover{color:var(--fg)}.side-rail{writing-mode:vertical-rl}.area{position:relative}.bmt-io{font:700 8px var(--font-mono);color:#7dd3fc;height:10px}.bmt.free .bmt-io{color:#5b8fa8}.simple-note{margin:0;font-size:12px;text-align:center}.tour{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:6;width:min(480px,calc(100% - 140px));padding:12px 14px;border-radius:12px;background:var(--panel);border:2px solid var(--accent);box-shadow:0 8px 26px #0003;display:flex;flex-direction:column;gap:8px}.tour p{margin:0;font-size:14px;line-height:1.45}.tour-dots{display:flex;gap:5px}.tour-dots span{width:22px;height:5px;border-radius:3px;background:var(--border)}.tour-dots span.done{background:var(--ok)}.tour-dots span.on{background:var(--accent)}.wl-try{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;white-space:normal;border:2px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--fg);min-height:0}.wl-try span:last-child{display:flex;flex-direction:column;gap:2px}.wl-try em{font-style:normal;font-size:12.5px;color:var(--muted)}.wl-try .wl-icon{margin:0}.wl-board{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}.wl-board .seg button{padding:6px 10px;font-size:13px}.pinfields{display:grid;gap:6px}.pinfields .field input{font-family:var(--mono, ui-monospace, monospace)}.pinfields em{font-style:normal;font-size:12px;display:block;margin-top:2px}.pinmap{width:100%;border-collapse:collapse;font-size:13px}.pinmap th{text-align:left;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border);padding:4px 6px}.pinmap td{border-bottom:1px solid var(--border);padding:4px 6px}
