:root{--bench-bg:#1c241f;--case:#caa24a;--pcb:#0b6a45;--pcb-dark:#06472f;--pcb-line:rgba(195,240,206,0.18);--silk:#dff9e8;--muted:#9fd2b2;--button:#efefea;--button-edge:#b9b9b0;--yellow:#ffd23f;--red:#ef3428;--off-led:#24312a;--display:#07170f}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(circle at 20% 0,rgba(255,255,255,0.08),transparent 30%),linear-gradient(145deg,#151b18,var(--bench-bg));color:#17221b;font-family:Arial,"Microsoft YaHei",sans-serif}button,input{font:inherit}.bench-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 0;color:#f7fff9;max-width:1380px;margin:0 auto}.bench-header h1{margin:0;font-size:22px;font-weight:700}.app-reset{flex:0 0 auto;min-height:38px;border:1px solid rgba(255,255,255,0.34);border-radius:5px;background:rgba(7,23,15,0.86);color:#ffeb7a;cursor:pointer;font-weight:700;padding:7px 14px}.app-reset:hover{border-color:rgba(255,235,122,0.72)}.bench{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:16px;max-width:1380px;margin:0 auto}.board{position:relative;min-width:0;min-height:0;overflow:hidden;border:10px solid var(--case);border-radius:8px;color:var(--silk);background:linear-gradient(90deg,var(--pcb-line) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(var(--pcb-line) 1px,transparent 1px) 0 0 / 22px 22px,radial-gradient(circle at 26% 24%,rgba(255,255,255,0.12),transparent 12%),linear-gradient(145deg,var(--pcb),var(--pcb-dark));box-shadow:0 14px 32px rgba(0,0,0,0.32),inset 0 0 0 1px rgba(255,255,255,0.24);padding:18px}.a-board{min-height:0}.board::before{content:"";position:absolute;inset:12px;pointer-events:none;border:1px solid rgba(224,255,234,0.18)}.board-title{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.board-title h2{margin:0;color:#ffffff;font-size:26px;letter-spacing:0.08em}.board-title span{color:#b8dfc5;font-size:13px}.indicator-grid{position:relative;z-index:1;display:grid;gap:14px}.c-only,.b-only{grid-template-columns:repeat(3,minmax(180px,1fr));margin-top:0}.b-only{grid-template-columns:repeat(2,minmax(220px,1fr))}.readout{border:1px solid rgba(218,255,227,0.22);border-radius:6px;background:rgba(3,29,18,0.78);padding:12px}.readout-label{color:#ccebd6;font-size:13px;letter-spacing:0.08em}.digit-display{margin-top:7px;color:#ffeb7a;background:var(--display);border:1px solid rgba(255,238,142,0.32);border-radius:4px;padding:9px 10px;font-family:Consolas,"Courier New",monospace;font-size:22px;letter-spacing:0.08em;text-align:center;box-shadow:inset 0 0 18px rgba(255,224,88,0.1)}.bit-leds{display:grid;gap:7px;margin-top:12px}.bit-leds-8{grid-template-columns:repeat(8,1fr)}.bit-leds-6{grid-template-columns:repeat(6,1fr)}.round-led{display:block;aspect-ratio:1;border-radius:50%;background:var(--off-led);border:1px solid rgba(255,255,255,0.2);box-shadow:inset 0 2px 4px rgba(0,0,0,0.55)}.round-led.on,.panel-lamp.on span{background:var(--red);border-color:#ff8a7d;box-shadow:0 0 12px rgba(239,52,40,0.95),inset 0 1px 2px rgba(255,255,255,0.45)}.connector-panel{position:relative;z-index:1;display:grid;gap:8px;margin-top:12px;border:1px solid rgba(217,255,225,0.18);border-radius:6px;background:rgba(4,46,30,0.58);padding:12px}.connector-panel span{color:#c7e8d2;font-size:12px;line-height:1.45}.connector-key{min-height:48px;border:2px solid #b8b8ad;border-radius:6px;background:linear-gradient(#fbfbf7,#dcdcd4);color:#1c261f;cursor:pointer;font-weight:700;letter-spacing:0.04em}.connector-key.on{border-color:#ffd23f;background:linear-gradient(#fff7c8,#ffd23f);box-shadow:0 0 14px rgba(255,210,63,0.32)}.a-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,3.5fr) minmax(280px,1fr);gap:14px;align-items:start}.a-main-column,.a-side-column{display:grid;gap:14px;align-content:start;min-width:0}.switch-section,.bus-actions{border:1px solid rgba(217,255,225,0.18);border-radius:6px;background:rgba(4,46,30,0.58);padding:12px}.bus-actions{display:grid;gap:10px}.bus-actions .readout{margin:0}.bus-actions .machine-buttons{margin:0}.switch-section h3,.section-head h3{margin:0;color:#ffffff;font-size:15px}.lamp-row{display:grid;gap:8px;margin-top:10px}.source-lamps{grid-template-columns:repeat(3,minmax(0,1fr))}.ld-lamps{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-lamp{display:grid;grid-template-columns:18px 1fr;gap:7px;align-items:center;min-width:0;color:#c4e4cf;font-size:12px}.panel-lamp span{display:block;width:16px;height:16px;border-radius:50%;background:var(--off-led);border:1px solid rgba(255,255,255,0.18)}.panel-lamp strong{min-width:0;overflow-wrap:anywhere}.switch-grid{display:grid;gap:9px;margin-top:11px}.s-group,.sw-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.ld-control-group{grid-template-columns:repeat(4,minmax(0,1fr))}.l-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.l-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.toggle-switch{min-width:0;min-height:70px;border:1px solid rgba(255,255,255,0.16);border-radius:5px;background:rgba(8,56,37,0.82);color:#f4fff7;cursor:pointer;padding:7px 6px}.toggle-switch:hover{border-color:rgba(255,255,255,0.42)}.switch-label,.toggle-switch strong{display:block;text-align:center}.switch-label{color:#dbf5e3;font-size:12px;font-weight:700}.toggle-switch strong{margin-top:5px;color:#fefefe;font-family:Consolas,"Courier New",monospace}.switch-body{position:relative;display:block;width:34px;height:36px;margin:6px auto 0;border-radius:4px;background:#d0a419;border:1px solid #8f7110;box-shadow:inset 0 0 0 2px rgba(255,255,255,0.18)}.switch-body i{position:absolute;left:5px;right:5px;bottom:5px;height:13px;border-radius:3px;background:var(--button);border:1px solid var(--button-edge);box-shadow:0 2px 2px rgba(0,0,0,0.28)}.toggle-switch.on .switch-body i{top:5px;bottom:auto}.toggle-switch.on .switch-body{background:var(--yellow);box-shadow:0 0 10px rgba(255,210,63,0.35),inset 0 0 0 2px rgba(255,255,255,0.18)}.toggle-switch.isolated{opacity:0.58}.toggle-switch.isolated::after{content:"隔离";display:block;margin-top:3px;color:#ffd23f;font-size:10px;text-align:center}.data-switch .switch-body{background:#c99b13}.l-switch .switch-body{background:#cca820}.section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.section-tools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-width:0}.section-head label{color:#cdebd7;font-size:12px}.section-reset{min-height:30px;border:1px solid rgba(255,255,255,0.26);border-radius:4px;background:rgba(7,23,15,0.9);color:#ffeb7a;cursor:pointer;font-size:12px;font-weight:700;padding:5px 9px}.section-reset:hover{border-color:rgba(255,235,122,0.72)}.binary-input{width:86px;margin-left:5px;border:1px solid rgba(255,255,255,0.25);border-radius:4px;background:#07170f;color:#ffeb7a;padding:5px 6px;font-family:Consolas,"Courier New",monospace;letter-spacing:0.08em}.binary-input.invalid{border-color:#ff786e;color:#ffb0aa}.selector-bank{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(210px,0.9fr) minmax(210px,0.9fr);gap:12px;align-items:stretch}.selector-group{display:grid;gap:10px;align-content:start;min-width:0}.selector-lamps{min-width:0}.selector-lamps h4{margin:0;color:#dff9e8;font-size:12px;font-weight:700}.selector-lamps .lamp-row{margin-top:7px}.machine-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.machine-key{min-height:62px;border:2px solid #b8b8ad;border-radius:7px;background:linear-gradient(#fbfbf7,#dcdcd4);color:#1c261f;cursor:pointer;font-size:20px;font-weight:700;letter-spacing:0.08em;box-shadow:0 5px 0 #9a9a91,0 9px 16px rgba(0,0,0,0.24)}.machine-key:active{transform:translateY(3px);box-shadow:0 2px 0 #9a9a91,0 5px 10px rgba(0,0,0,0.22)}.clr{color:#8c1b14}noscript{display:block;margin:16px;padding:12px;background:#fff4ca}@media (max-width:1180px){.bench{gap:12px;padding:12px}.board{border-width:8px;padding:14px}.board-title{margin-bottom:12px}.board-title h2{font-size:22px}.a-layout{grid-template-columns:minmax(0,2.7fr) minmax(220px,0.9fr);gap:12px}.a-main-column,.a-side-column{gap:12px}.switch-section,.bus-actions{padding:10px}.selector-bank{grid-template-columns:minmax(220px,1.1fr) repeat(2,minmax(170px,0.9fr));gap:10px}.source-lamps,.ld-lamps{grid-template-columns:repeat(2,minmax(0,1fr))}.toggle-switch{min-height:64px;padding:6px 5px}.switch-body{width:30px;height:32px}.digit-display{font-size:20px}.machine-key{min-height:56px;font-size:18px}}@media (max-width:960px){.a-layout{grid-template-columns:1fr}.s-group,.ld-control-group,.sw-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:900px){.selector-bank{grid-template-columns:1fr}}@media (max-width:680px){.bench-header{align-items:flex-start;flex-direction:column;padding:12px 10px 0}.bench-header h1{font-size:19px;line-height:1.28}.bench{padding:10px}.board{border-width:6px;padding:12px}.board-title{flex-direction:column;gap:3px}.s-group,.ld-control-group,.sw-grid,.c-only,.b-only,.source-lamps,.ld-lamps{grid-template-columns:repeat(2,minmax(0,1fr))}.bus-actions{grid-template-columns:1fr}.machine-buttons{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.section-tools{justify-content:flex-start;width:100%}}