/* Scoped visual treatment: no DIN geometry or terminal hitbox changes. */
body.s20-terminals-preview .cabinet-inner .wire-terminal[data-terminal]{outline:2px solid transparent;outline-offset:2px;transition:outline-color .15s,filter .15s}
body.s20-terminals-preview .cabinet-inner .wire-terminal[data-terminal]:not(.used-terminal):not(.bad-terminal){outline-color:rgba(34,197,94,.55)}
body.s20-terminals-preview .cabinet-inner .wire-terminal.used-terminal{outline-color:rgba(245,158,11,.8)}
body.s20-terminals-preview .cabinet-inner .wire-terminal.bad-terminal{outline-color:#ef4444}
body.s20-terminals-preview .cabinet-inner .wire-terminal.s20-selected,
body.s20-terminals-preview .cabinet-inner .wire-terminal:focus-visible{outline:3px solid #38bdf8;outline-offset:3px;filter:drop-shadow(0 0 5px #38bdf8)}
body.s20-terminals-preview .s20-inspector{position:relative;margin:12px 8px;padding:12px 16px;border:1px solid #334155;border-radius:12px;background:#101d30;color:#e2e8f0;font:inherit}
body.s20-terminals-preview .s20-inspector strong{display:block;letter-spacing:.06em;color:#7dd3fc}
body.s20-terminals-preview .s20-inspector p{margin:8px 0 0;overflow-wrap:anywhere;font-size:.9rem}
@media(max-width:650px){body.s20-terminals-preview .s20-inspector{margin:8px 4px;padding:10px}}
@media(prefers-reduced-motion:reduce){body.s20-terminals-preview .cabinet-inner .wire-terminal[data-terminal]{transition:none}}

/* Magnifier: a schematic close-up, not a physically scaled or electrically validated connector. */
body.s20-terminals-preview .s20-magnifier[hidden]{display:none}
body.s20-terminals-preview .s20-magnifier{display:grid;grid-template-columns:minmax(100px,148px) minmax(0,1fr);align-items:center;gap:18px;margin-top:14px}
body.s20-terminals-preview .s20-terminal-face{position:relative;display:grid;place-items:center;aspect-ratio:1;background:linear-gradient(135deg,#dce6f1,#8a9eb5);border:5px solid #53657b;border-radius:13px;box-shadow:inset 0 0 0 5px #c7d2df,0 6px 18px #0005}
body.s20-terminals-preview .s20-terminal-face:before{content:'';position:absolute;width:40%;aspect-ratio:1;border-radius:50%;border:7px solid #4a5b70;background:radial-gradient(circle,#243449 0 32%,#8090a5 34% 62%,#35465b 64%);box-shadow:inset 0 2px 7px #0008}
body.s20-terminals-preview .s20-terminal-face-role{position:absolute;right:7px;bottom:6px;padding:2px 6px;border-radius:4px;background:#13243c;color:#fff;font-weight:800;font-size:1rem}
body.s20-terminals-preview .s20-terminal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}
body.s20-terminals-preview .s20-terminal-meta div{min-width:0}
body.s20-terminals-preview .s20-terminal-meta dt{font-size:.75rem;color:#9fb3cc}
body.s20-terminals-preview .s20-terminal-meta dd{margin:2px 0 0;font-size:.9rem;font-weight:650;overflow-wrap:anywhere}
body.s20-terminals-preview .s20-magnifier[data-s20-state="occupied"] .s20-terminal-face{border-color:#f59e0b}
body.s20-terminals-preview .s20-magnifier[data-s20-state="warning"] .s20-terminal-face{border-color:#ef4444}
@media(max-width:650px){body.s20-terminals-preview .s20-magnifier{grid-template-columns:96px minmax(0,1fr);gap:10px}body.s20-terminals-preview .s20-terminal-meta{grid-template-columns:1fr}}
