.logic-ide{--logic-hi: #16a34a;--logic-lo: #9aa3af;--logic-x: #dc2626;--lg-stroke: #111827;--lg-grid: #ccd2da;--lg-led-off: #d3d8de;--lg-canvas-bg: #f8fafc}.logic-ide[data-theme=dark]{--logic-hi: #34d399;--logic-lo: #6b7280;--logic-x: #f87171;--lg-stroke: #e8eae6;--lg-grid: #34362c;--lg-led-off: #3a3b32;--lg-canvas-bg: #101109}.logic-ide[data-theme=retro-green]{--logic-hi: #33ff33;--logic-lo: #1f7a1f;--logic-x: #ff5a5a;--lg-stroke: #33ff33;--lg-grid: #143014;--lg-led-off: #0c200c;--lg-canvas-bg: #000000}.logic-ide[data-theme=retro-amber]{--logic-hi: #ffb000;--logic-lo: #7a5500;--logic-x: #ff5a5a;--lg-stroke: #ffb000;--lg-grid: #2a1f00;--lg-led-off: #241a00;--lg-canvas-bg: #000000}.logic-ide .lg-palette{flex:0 0 var(--palette-w, 210px);min-width:0;display:flex;flex-direction:column;overflow:hidden}.logic-ide[data-parts=closed] .lg-palette,.logic-ide[data-parts=closed] .lab-vrez-palette{display:none}.logic-ide .lg-palette-hint{font-size:.7rem;color:var(--ide-accent);padding:.2rem .45rem .35rem}.logic-ide[data-theme=dark] .lg-palette-hint,.logic-ide[data-theme=retro-green] .lg-palette-hint,.logic-ide[data-theme=retro-amber] .lg-palette-hint{color:var(--logic-hi)}.logic-ide .lg-parts{flex:1 1 auto;min-height:0;overflow:auto;padding:.4rem .5rem .6rem}.logic-ide .lg-part-group{margin-bottom:.6rem}.logic-ide .lg-part-group h4{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ide-muted);margin:.1rem .15rem .35rem}.logic-ide .lg-parts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.logic-ide .lg-part{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.45rem .3rem .3rem;border:1px solid var(--ide-border);border-radius:var(--r-panel);background:var(--ide-panel);color:var(--ide-text);cursor:pointer}.logic-ide .lg-part:hover{background:var(--ide-soft);border-color:var(--ide-muted)}.logic-ide .lg-part.is-armed{border-color:var(--ide-accent);box-shadow:inset 0 0 0 1px var(--ide-accent);background:var(--ide-soft)}.logic-ide .lg-part-name{font-size:.7rem;font-weight:600;text-align:center;line-height:1.15}.logic-ide .lg-thumb{display:block}.logic-ide[data-mode=run] .lg-part{opacity:.45;pointer-events:none}.logic-ide .lg-run{background:#16a34a;color:#fff;border-color:#15803d;font-weight:600}.logic-ide .lg-run:hover{background:#15803d}.logic-ide .lg-stop{background:#dc2626;color:#fff;border-color:#b91c1c;font-weight:600}.logic-ide .lg-stop:hover{background:#b91c1c}.logic-ide .lg-speed{padding:.12rem .3rem;font-size:.72rem}.logic-ide .lg-rate-badge{font:600 .68rem ui-monospace,Menlo,monospace;color:#f59e0b;padding:.1rem .3rem;border:1px solid color-mix(in srgb,#f59e0b 45%,var(--ide-border));border-radius:var(--r-ctrl);white-space:nowrap}.logic-ide .lg-canvas-wrap{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;background:var(--lg-canvas-bg);border-top:1px solid var(--ide-border)}.logic-ide .lg-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:default}.logic-ide .lg-canvas.is-placing,.logic-ide .lg-canvas.is-wiring{cursor:crosshair}.logic-ide .lg-canvas.is-snap{cursor:pointer}.logic-ide .lg-grid-dot{fill:var(--lg-grid)}.logic-ide .lg-grid-dot-major{fill:color-mix(in srgb,var(--lg-grid) 55%,var(--lg-stroke))}.logic-ide .lg-hit{fill:transparent}.logic-ide[data-mode=edit] .lg-hit{cursor:move}.logic-ide[data-mode=run] .lg-hit{cursor:default}.logic-ide .lg-hit.lg-pokable{cursor:pointer}.logic-ide .lg-body{fill:var(--ide-panel);stroke:var(--lg-stroke);stroke-width:2;stroke-linejoin:round}.logic-ide .lg-line{fill:none;stroke:var(--lg-stroke);stroke-width:2}.logic-ide .lg-stub{stroke:var(--lg-stroke);stroke-width:2}.logic-ide .lg-fill{fill:var(--ide-panel)}.logic-ide .lg-digit{fill:var(--ide-text);font:700 13px ui-monospace,Menlo,monospace;text-anchor:middle;dominant-baseline:middle}.logic-ide .lg-port-name{fill:var(--ide-text);font:600 8px ui-sans-serif,system-ui;text-anchor:middle;dominant-baseline:middle}.logic-ide .lg-label{fill:var(--ide-muted);font:600 10px ui-sans-serif,system-ui;text-anchor:middle}.logic-ide .lg-bulb{fill:var(--lg-led-off);stroke:var(--lg-stroke);stroke-width:2}.logic-ide .lg-led.lg-hot .lg-bulb{fill:var(--logic-hi)}.logic-ide .lg-seg{fill:var(--lg-led-off);stroke:none}.logic-ide .lg-seg.is-on{fill:var(--logic-hi)}.logic-ide .lg-switch.lg-hot .lg-fill,.logic-ide .lg-const.lg-hot .lg-fill,.logic-ide .lg-probe.lg-hot .lg-fill{fill:color-mix(in srgb,var(--logic-hi) 32%,var(--ide-panel))}.logic-ide .lg-probe.lg-bad .lg-fill{fill:color-mix(in srgb,var(--logic-x) 32%,var(--ide-panel))}.logic-ide .lg-val{fill:var(--ide-muted);font:600 9px ui-sans-serif,system-ui;text-anchor:middle;dominant-baseline:middle}.logic-ide .lg-led-tri{fill:var(--lg-led-off);stroke:var(--lg-stroke);stroke-width:2;stroke-linejoin:round}.logic-ide .lg-ledA .lg-led-tri{fill:color-mix(in srgb,var(--led-hue, #ef4444) calc(var(--lg-glow, 0) * 100%),var(--lg-led-off))}.logic-ide .lg-led-halo{fill:var(--led-hue, #ef4444);opacity:calc(var(--lg-glow, 0) * .45)}.logic-ide .lg-meter-letter{fill:var(--ide-muted);font:700 13px ui-sans-serif,system-ui;text-anchor:middle;dominant-baseline:middle}.logic-ide .lg-meter-read{fill:var(--ide-text);font:600 7.5px ui-monospace,Menlo,monospace;text-anchor:middle;dominant-baseline:middle}.logic-ide .lg-port{fill:transparent;stroke:transparent;stroke-width:2}.logic-ide[data-mode=edit] .lg-port{cursor:crosshair}.logic-ide[data-mode=edit] .lg-port:hover{fill:color-mix(in srgb,var(--logic-hi) 25%,var(--lg-canvas-bg));stroke:var(--logic-hi)}.logic-ide[data-mode=run] .lg-port{pointer-events:none}.logic-ide .lg-wp{fill:var(--ide-panel);stroke:var(--ide-accent);stroke-width:1.5;cursor:move}.logic-ide .lg-selbox{fill:none;stroke:var(--ide-accent);stroke-width:1.5;stroke-dasharray:4 3}.logic-ide[data-theme=dark] .lg-selbox{stroke:var(--logic-hi)}.logic-ide .lg-marquee{fill:color-mix(in srgb,var(--ide-accent) 12%,transparent);stroke:var(--ide-accent);stroke-width:1}.logic-ide .lg-wire-line{fill:none;stroke:var(--logic-lo);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.logic-ide .lg-wire-line.v-hi{stroke:var(--logic-hi)}.logic-ide .lg-wire-line.v-x{stroke:var(--logic-x)}.logic-ide .lg-wire-hit{fill:none;stroke:transparent;stroke-width:10;cursor:pointer}.logic-ide .lg-wire.is-selected .lg-wire-line{stroke:var(--ide-accent);stroke-width:3.2}.logic-ide[data-theme=dark] .lg-wire.is-selected .lg-wire-line{stroke:#93c5fd}.logic-ide .lg-wire-draft{fill:none;stroke:var(--ide-accent);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.logic-ide .lg-vertex{fill:var(--ide-accent);stroke:var(--lg-canvas-bg);stroke-width:1.5;pointer-events:none}.logic-ide .lg-junction{fill:var(--lg-stroke);stroke:none;pointer-events:none}.logic-ide .lg-junction.is-preview{fill:var(--logic-hi);stroke:var(--lg-canvas-bg);stroke-width:1.5}.logic-ide .lg-stub-end{fill:var(--lg-canvas-bg);stroke:var(--lg-stroke);stroke-width:1.8;pointer-events:none}.logic-ide .lg-node-hit{fill:transparent;stroke:transparent}.logic-ide[data-mode=edit] .lg-node-hit{cursor:crosshair}.logic-ide[data-mode=edit] .lg-node-hit:hover{fill:color-mix(in srgb,var(--logic-hi) 22%,transparent)}.logic-ide[data-mode=run] .lg-node-hit{pointer-events:none}.logic-ide .lg-snap-glow{fill:color-mix(in srgb,var(--logic-hi) 25%,transparent);stroke:var(--logic-hi);stroke-width:1.6;pointer-events:none}.logic-ide .lg-stub-end.is-selected{stroke:var(--ide-accent);stroke-width:2.2}.logic-ide .lg-junction.is-selected{fill:var(--ide-accent)}.logic-ide .lg-ghost{opacity:.45;pointer-events:none}.logic-ide .lg-ghost *{pointer-events:none}.logic-ide .lg-canvas.is-pan{cursor:grab}.logic-ide .lg-canvas.is-pan:active{cursor:grabbing}.logic-ide .lg-hud{position:absolute;right:.5rem;bottom:.5rem;display:flex;align-items:center;gap:.25rem}.logic-ide .lg-hud .ide-btn{background:var(--ide-panel);box-shadow:0 1px 4px #00000026;min-width:2rem;justify-content:center}.logic-ide .lg-zoomspeed{display:inline-flex;align-items:center;background:var(--ide-panel);border-radius:var(--r-ctrl);padding:0 .35rem;box-shadow:0 1px 4px #00000026;height:1.9rem}.logic-ide .lg-zoomspeed input{width:60px;accent-color:var(--ide-accent);cursor:ew-resize}.logic-ide .lg-palette-bar{position:absolute;top:.5rem;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:.3rem;padding:.35rem .45rem;box-shadow:0 2px 12px #00000038}.logic-ide .lg-swatch{width:20px;height:20px;border-radius:5px;border:1px solid var(--ide-border);cursor:pointer;padding:0;transition:transform .08s}.logic-ide .lg-swatch:hover{transform:scale(1.12)}.logic-ide .lg-swatch.is-active{box-shadow:0 0 0 2px var(--ide-accent);border-color:var(--ide-accent)}.logic-ide .lg-swatch-none{background:linear-gradient(135deg,var(--ide-panel) 44%,var(--logic-x) 44%,var(--logic-x) 56%,var(--ide-panel) 56%)}.logic-ide .lg-empty-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ide-muted);font-size:.85rem;line-height:1.7;pointer-events:none;padding:1rem}.logic-ide .lg-wire-hint{position:absolute;bottom:.6rem;left:50%;transform:translate(-50%);pointer-events:none;background:var(--ide-panel);border:1px solid var(--ide-border);border-radius:999px;padding:.25rem .7rem;font-size:.73rem;color:var(--ide-muted);box-shadow:0 1px 6px #0000002e;white-space:nowrap}.logic-ide .lab-monitor-acts{display:flex;gap:.15rem}.logic-ide .lab-monitor-acts .ide-icon{padding:.2rem .35rem}.logic-ide .lg-monitor-body{flex:1 1 auto;min-height:0;overflow:auto;padding:.55rem .65rem;background:var(--term-bg)}.logic-ide .lg-mono-note{color:var(--ide-muted);font-size:.8rem;padding:.5rem;line-height:1.55}.logic-ide .lg-truth{border-collapse:collapse;font-family:ui-monospace,Menlo,monospace;font-size:.8rem}.logic-ide .lg-truth th,.logic-ide .lg-truth td{border:1px solid var(--ide-border);padding:.18rem .55rem;text-align:center;min-width:1.5rem}.logic-ide .lg-th-in{background:var(--ide-soft)}.logic-ide .lg-th-out{background:color-mix(in srgb,var(--logic-hi) 16%,var(--ide-soft))}.logic-ide .lg-bit{color:var(--ide-muted)}.logic-ide .lg-bit.on{color:var(--ide-text);font-weight:700}.logic-ide .lg-bit-out.on{color:var(--logic-hi)}.logic-ide .lg-analog{margin:.4rem}.logic-ide .lg-analog .lg-analog-name{text-align:left;color:var(--ide-text)}.logic-ide .lg-analog .lg-analog-val{color:var(--ide-text);min-width:4.5rem}.logic-ide .lg-msgs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.logic-ide .lg-msg{font-size:.78rem;line-height:1.4;padding:.35rem .5rem;border-radius:var(--r-ctrl);border:1px solid var(--ide-border)}.logic-ide .lg-msg-error{background:color-mix(in srgb,#dc2626 14%,var(--ide-panel));border-color:color-mix(in srgb,#dc2626 40%,var(--ide-border))}.logic-ide .lg-msg-warn{background:color-mix(in srgb,#f59e0b 16%,var(--ide-panel));border-color:color-mix(in srgb,#f59e0b 40%,var(--ide-border))}.logic-ide .lg-msg-info{color:var(--ide-muted)}.logic-ide .lg-note-box{fill:transparent;stroke:var(--ide-border);stroke-width:1;stroke-dasharray:4 3}.logic-ide[data-mode=run] .lg-note-box{stroke:transparent}.logic-ide .lg-note-text{fill:var(--ide-text);font-family:ui-sans-serif,system-ui}.logic-ide .lg-note-text tspan{white-space:pre}.logic-ide .lg-scope-screen{fill:var(--term-bg);stroke:var(--lg-stroke);stroke-width:1.5}.logic-ide .lg-scope-trace{fill:none;stroke:var(--logic-hi);stroke-width:2;stroke-linejoin:round}.logic-ide .lg-scope{height:100%;min-height:0;display:flex;flex-direction:column}.logic-ide .lg-scope-controls{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;padding:.3rem .45rem;border-bottom:1px solid var(--ide-border);font-size:.72rem;color:var(--ide-muted)}.logic-ide .lg-scope-controls label{display:inline-flex;align-items:center;gap:.3rem}.logic-ide .lg-scope-controls .ide-input{padding:.12rem .3rem;font-size:.72rem}.logic-ide .lg-scope-controls .ide-btn{padding:.12rem .4rem;min-width:1.6rem;justify-content:center}.logic-ide .lg-scope-controls .tb-right{flex:1 1 auto}.logic-ide .lg-scope-status{font-weight:600}.logic-ide .lg-scope-group{display:inline-flex;align-items:center;gap:.3rem;flex-wrap:nowrap;border-left:1px solid var(--ide-border);padding-left:.55rem}.logic-ide .lg-scope-group.is-plain{border-left:0;padding-left:0}.logic-ide .lg-scope-glabel{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--ide-muted)}.logic-ide .lg-scope-num{width:3.4rem}.logic-ide .lg-scope-chans{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:.3rem .55rem;padding:.25rem .45rem;border-bottom:1px solid var(--ide-border)}.logic-ide .lg-scope-chan{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--ide-muted)}.logic-ide .lg-scope-chan .ide-input{padding:.1rem .25rem;font-size:.7rem}.logic-ide .lg-scope-dot{width:.62rem;height:.62rem;border-radius:2px;flex:0 0 auto}.logic-ide .lg-scope-chlabel{max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ide-text)}.logic-ide .lg-scope-canvas-wrap{flex:1 1 auto;min-height:0;position:relative;background:var(--term-bg)}.logic-ide .lg-scope-canvas-wrap canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.logic-ide .lg-scope-seg{display:inline-flex;gap:2px}.logic-ide .lg-bode{height:100%;min-height:0;display:flex;flex-direction:column}.logic-ide .lg-bode-legend{flex:0 0 auto;display:flex;gap:.9rem;padding:.3rem .55rem;font-size:.7rem;color:var(--ide-muted);border-bottom:1px solid var(--ide-border)}.logic-ide .lg-bode-key-gain{color:var(--logic-hi)}.logic-ide .lg-scope-stats{flex:0 0 auto;padding:.3rem .45rem;border-bottom:1px solid var(--ide-border);font-size:.7rem}.logic-ide .lg-scope-stats-head,.logic-ide .lg-scope-stats-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr .7fr .9fr;gap:.4rem;align-items:center}.logic-ide .lg-scope-stats-head{color:var(--ide-muted);padding-bottom:.15rem;margin-bottom:.15rem;border-bottom:1px solid var(--ide-border)}.logic-ide .lg-scope-stats-row{padding:.06rem 0;font-family:ui-monospace,Menlo,monospace;color:var(--ide-text)}.logic-ide .lg-scope-stats-name{display:inline-flex;align-items:center;gap:.3rem;min-width:0;font-family:ui-sans-serif,system-ui;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logic-ide .lg-inspector{position:absolute;top:.5rem;left:.5rem;z-index:5;width:196px;padding:.45rem .55rem;box-shadow:0 2px 12px #0003}.logic-ide .lg-insp-title{font-weight:700;font-size:.78rem;margin-bottom:.4rem}.logic-ide .lg-insp-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.32rem;font-size:.73rem}.logic-ide .lg-insp-row>span{color:var(--ide-muted);white-space:nowrap}.logic-ide .lg-insp-row .ide-input{width:96px}.logic-ide .lg-insp-text{width:100%;resize:vertical;font:inherit;font-size:.75rem;margin-bottom:.32rem}.logic-ide .lg-insp-readout{font-family:ui-monospace,Menlo,monospace;color:var(--logic-hi);font-weight:700;text-align:right;margin-top:.15rem}
