:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#dce8e8;background:#10262c;font-size:16px}*[hidden]{display:none!important}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{cursor:pointer;border:0}button:focus-visible,select:focus-visible,input:focus-visible,.terminal:focus-visible,.part:focus-visible{outline:3px solid #f5ba54;outline-offset:2px}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid #2d484d;background:#10262c}.brand{display:flex;align-items:center;gap:11px;font-size:1.25rem;font-weight:800;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:#f4ae45;color:#173038;border-radius:7px;font-size:1.5rem}.brand-accent{color:#f4ae45}.top-actions{display:flex;align-items:center;gap:18px;font-size:.8rem;color:#99b3b6}.workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 280px;height:calc(100vh - 66px);min-height:620px}.side{overflow-y:auto;padding:22px 18px;background:#173137}.left-panel{border-right:1px solid #315158}.right-panel{border-left:1px solid #315158}.panel-heading{padding:0 2px 12px}.eyebrow{font-size:.7rem;letter-spacing:.14em;color:#eeb85e;font-weight:800}.panel-heading h1{font-size:1.5rem;margin:8px 0;letter-spacing:-.045em}.panel-heading p,.small-note,.inspector p,.challenge-info p,.measurements p{color:#a9c0c2;line-height:1.45}.panel-heading p{font-size:.88rem;margin:0}.section-title{display:flex;align-items:center;justify-content:space-between;margin:23px 0 10px;color:#b3c9cb;font-size:.72rem;letter-spacing:.13em;font-weight:800}.count{letter-spacing:0;color:#f4ae45}.palette{display:grid;grid-template-columns:1fr 1fr;gap:8px}.palette button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-height:67px;padding:10px;border-radius:8px;border:1px solid #3b5a60;background:#213e45;color:#e3eeee;text-align:left;font-weight:650;font-size:.78rem}.palette button:hover{background:#31545b;border-color:#f1b351}.palette .glyph{font-size:1.3rem;color:#f5ba54;line-height:1}.side select{width:100%;padding:11px 9px;border:1px solid #537079;border-radius:6px;background:#233f46;color:white;font-size:.84rem}.small-note{font-size:.74rem;margin:8px 0}.full{width:100%;margin-top:10px}.primary,.secondary,.quiet{border-radius:6px;padding:10px 13px;font-size:.84rem;font-weight:750}.primary{background:#eeb14e;color:#173038}.primary:hover{background:#ffca6a}.secondary{background:#30525a;color:#f3faf9;border:1px solid #56767d}.secondary:hover{background:#3a636a}.quiet{background:transparent;color:#cce0e0}.quiet:hover{background:#294950}.center-panel{min-width:0;display:flex;flex-direction:column;background:#e9f0ed;color:#172f35}.board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:12px 20px;border-bottom:1px solid #bfd0cc}.board-toolbar .eyebrow{display:block;color:#9c6b23;margin-bottom:4px}.board-toolbar strong{font-size:1.08rem}.board-actions{display:flex;gap:8px;align-items:center}.board-toolbar .quiet{color:#386069}.board-toolbar .quiet:hover{background:#d8e7e3}.board-scroller{flex:1;overflow:auto;padding:20px;display:flex;align-items:flex-start;justify-content:center}.board{position:relative;flex:none;width:1000px;height:620px;border:1px solid #b9cfca;border-radius:12px;background-color:#f9fbf8;background-image:radial-gradient(#bfd1ca 1px,transparent 1px);background-size:20px 20px;box-shadow:0 10px 35px #355e6019;overflow:hidden;touch-action:none}.wires,.components{position:absolute;inset:0;width:100%;height:100%}.wires{pointer-events:none}.wire{stroke:#238c9a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;fill:none;pointer-events:stroke;cursor:pointer}.wire:hover{stroke:#d07948;stroke-width:9}.wire.off{stroke:#75939a}.wire-preview{stroke:#e8a741;stroke-width:3;stroke-dasharray:7 7;fill:none;pointer-events:none}.part{position:absolute;width:130px;min-height:72px;background:white;border:2px solid #587980;border-radius:9px;box-shadow:0 5px 12px #12363d1a;user-select:none;touch-action:none;cursor:grab}.part.selected{border-color:#e9a53f;box-shadow:0 0 0 3px #f6c77970,0 5px 12px #12363d1a}.part.live{background:#fff7db}.part.danger{border-color:#cb6b54}.part-inner{display:flex;align-items:center;justify-content:center;gap:7px;padding:13px 6px 5px;min-height:46px}.part-icon{font-weight:800;color:#187b8a;font-size:1.4rem;line-height:1}.part.live .part-icon{color:#e49a14;text-shadow:0 0 12px #ffc545}.part-name{font-size:.75rem;font-weight:800;white-space:nowrap;color:#29464b}.part-detail{text-align:center;padding:0 5px 7px;font-size:.7rem;color:#657c7e;white-space:nowrap}.terminal{position:absolute;z-index:3;width:22px;height:22px;border-radius:50%;border:3px solid white;background:#287a89;box-shadow:0 0 0 2px #326d78;transform:translate(-50%,-50%);cursor:crosshair;touch-action:none}.terminal:hover,.terminal.pending{background:#f5b64f;box-shadow:0 0 0 3px #b17d22}.terminal[data-pin="a"],.terminal[data-pin="l"],.terminal[data-pin="c"]{left:0;top:36px}.terminal[data-pin="b"],.terminal[data-pin="r"],.terminal[data-pin="e"]{left:130px;top:36px}.terminal[data-pin="w"]{left:65px;top:72px}.terminal[data-pin="base"]{left:65px;top:72px}.board-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:8px;color:#668184;text-align:center;pointer-events:none}.board-hint strong{color:#37565c}.hint-symbol{display:grid;place-items:center;width:58px;height:58px;border:2px dashed #a6c2bd;border-radius:50%;font-size:2rem;color:#2b8b94}.status-strip{display:flex;justify-content:space-between;gap:12px;padding:12px 20px;min-height:50px;border-top:1px solid #bfd0cc;color:#526e73;font-size:.83rem}.status-strip #reading{font-weight:750;color:#1b727d;text-align:right}.inspector,.challenge-info,.measurements{padding:15px;border:1px solid #426168;border-radius:9px;background:#203c43}.inspector h2,.challenge-info h2{margin:0 0 8px;font-size:1rem}.inspector p,.challenge-info p,.measurements p{font-size:.86rem;margin:0}.inspector label{display:block;color:#bdd1d2;font-size:.8rem;margin:14px 0 6px}.inspector input[type=range]{width:100%;accent-color:#f5b64f}.inspector input[type=number]{width:100%;padding:9px;border:1px solid #618087;border-radius:5px;background:#132f36;color:white}.value-row{display:flex;justify-content:space-between;align-items:center;margin:6px 0;color:#c7dada;font-size:.8rem}.inspector .secondary{margin-top:12px;width:100%}.inspector .remove{margin-top:6px;width:100%;color:#ffb6a7}.measurements{display:grid;gap:7px}.measure-row{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;color:#bdd1d2}.measure-row strong{color:#f5c979;font-variant-numeric:tabular-nums}.safety{margin-top:22px;padding:12px;border-left:3px solid #e7ab4b;background:#263f44;color:#bfd0cf;font-size:.73rem;line-height:1.45}dialog{max-width:560px;border:1px solid #5c7d83;border-radius:12px;background:#173137;color:#e5eeee;padding:24px;box-shadow:0 30px 100px #0018}dialog::backdrop{background:#07191bc9}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0;font-size:1.3rem}dialog li{margin:10px 0;line-height:1.45}dialog p{color:#b8ced0;line-height:1.5}.board.dragging .part{cursor:grabbing}@media(max-width:1250px){.workspace{grid-template-columns:215px minmax(0,1fr) 235px}.side{padding:18px 13px}.palette button{min-height:64px;padding:7px}.board-scroller{justify-content:flex-start}}@media(max-width:900px){.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.left-panel,.right-panel{border:0}.left-panel{order:1}.center-panel{order:2;min-height:540px}.right-panel{order:3}.palette{grid-template-columns:repeat(4,minmax(0,1fr))}.board-scroller{height:620px}.side{overflow:visible}.right-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.right-panel .section-title,.right-panel .safety{grid-column:1/-1}}@media(max-width:580px){.topbar{padding:0 12px}.top-actions #saveStatus{display:none}.palette{grid-template-columns:repeat(3,minmax(0,1fr))}.board-toolbar{align-items:flex-start;flex-direction:column}.board-actions{width:100%}.board-actions button{flex:1}.right-panel{display:block}.status-strip{flex-direction:column}.board-scroller{padding:10px}.center-panel{min-height:480px}}

.part.live .part-icon{color:var(--led-color,#e49a14);text-shadow:0 0 12px var(--led-color,#ffc545)}

/* Schaltplanansicht: IEC-übliche Funktionszeichen statt Bauteilkarten. */
.flow-legend{padding:8px 20px;background:#d9e8e3;color:#365e65;font-size:.82rem;border-bottom:1px solid #b9d0ca}
.electron-key{font-size:1.2rem;color:#f2a52b;vertical-align:-1px}.legend-sep{margin:0 8px;color:#7e9b9f}
.part.schematic{width:130px;height:120px;min-height:0;background:transparent;border:1px solid transparent;border-radius:7px;box-shadow:none;color:#244b53}
.part.schematic:hover{background:#eaf4f1b8}.part.schematic.selected{background:#f3f7ec;border-color:#e2a84b;box-shadow:0 0 0 2px #f2c77577}
.part.schematic.danger{background:#fff1ec;border-color:#c46954}
.symbol-wrap{height:72px;width:130px;display:block;overflow:visible}.schematic-symbol{display:block;width:130px;height:72px;color:#26494e;overflow:visible;transform-origin:65px 36px}
.part.schematic.live .schematic-symbol{filter:drop-shadow(0 0 5px var(--led-color,#f1b440))}
.schematic-caption{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;width:156px;margin-left:-13px;padding:3px 4px;border:1px solid #c6d6d3;border-radius:5px;background:#ffffffeb;color:#2d5158;font-size:.75rem;line-height:1.25;box-shadow:0 2px 4px #132d3412}
.schematic-caption strong{font-weight:750;overflow-wrap:anywhere}.part-metrics{font-variant-numeric:tabular-nums;color:#0d6373;font-weight:700}
.part.schematic .terminal{width:18px;height:18px;background:#277a88;box-shadow:0 0 0 1px #326d78;border-width:3px}
.part.schematic .terminal:hover,.part.schematic .terminal.pending{background:#f5b64f;box-shadow:0 0 0 3px #b17d22}
.wire{stroke:#385b61;stroke-width:2.5;stroke-linecap:square;stroke-linejoin:miter}.wire.energized{stroke:#285f69}.wire-label{font-size:12px;font-family:inherit;fill:#1b6674;stroke:#f9fbf8;stroke-width:4px;paint-order:stroke;pointer-events:none;font-weight:750;font-variant-numeric:tabular-nums}
.conductor{stroke:#355a60;stroke-width:2.5;stroke-linecap:square;stroke-linejoin:miter;fill:none;pointer-events:none}
.wire-hit,.wire-hit:hover{stroke:transparent;stroke-width:13;fill:none;pointer-events:stroke;cursor:move}
.electron{fill:#f5a629;stroke:#67491b;stroke-width:.6;pointer-events:none;filter:drop-shadow(0 0 3px #ffc245)}
@media(prefers-reduced-motion:reduce){.electron{display:none}}

.palette button{align-items:center;text-align:center;justify-content:center;min-height:97px;gap:2px}
.palette-symbol{display:flex;align-items:center;justify-content:center;width:100%;height:49px}
.palette-symbol .schematic-symbol{width:100%;height:49px;color:#dceeee}
.palette-label{line-height:1.15}
@media(max-width:1250px){.palette button{min-height:95px}}

.board-actions{flex-wrap:wrap;justify-content:flex-end}
.junction-dot{fill:#244b53;stroke:#f9fbf8;stroke-width:1.5;pointer-events:none}
.part.schematic .terminal{background:transparent;border:0;box-shadow:none}
.part.schematic .terminal:hover,.part.schematic .terminal.pending{background:#f5b64f;box-shadow:0 0 0 3px #b17d22}
.part-menu{position:fixed;z-index:20;display:grid;gap:3px;padding:5px;min-width:170px;background:#173137;border:1px solid #6c8b8c;border-radius:7px;box-shadow:0 12px 35px #07191b80}
.part-menu button{background:transparent;color:#f2f7f7;text-align:left;padding:10px;border-radius:4px;font-size:.85rem}
.part-menu button:hover,.part-menu button:focus-visible{background:#31545b}
.part-menu .menu-remove{color:#ffb6a7}
@media(max-width:580px){.board-actions{flex-wrap:wrap}.board-actions button{flex:1 1 42%}}

/* The SVG coordinate system and component boxes share exact pixel origins. */
.board{border:0;outline:1px solid #b9cfca}
.part.schematic{border:0}
.part.schematic.selected{border:0;outline:2px solid #e2a84b}
.part.schematic.danger{border:0;outline:2px solid #c46954}
.part.schematic.demo:not(.demo-battery):not(.caption-below) .schematic-caption{position:absolute;left:95px;top:12px;width:125px;margin:0;padding:3px;font-size:.71rem;line-height:1.17}
.part.schematic.demo.caption-left .schematic-caption{position:absolute;left:-90px;top:12px;width:120px;margin:0;padding:3px;font-size:.71rem;line-height:1.17}
.part.schematic.demo.caption-below .schematic-caption{width:125px;margin-left:3px;font-size:.71rem}
.part.schematic.demo .part-metrics{font-size:.69rem}
.part.schematic.vertical:not(.demo) .schematic-caption{position:absolute;left:142px;top:18px;width:156px;margin:0}
.part.schematic.vertical.caption-left:not(.demo) .schematic-caption{left:-166px}

/* The selection frame follows the symbol and never paints over a conductor. */
.components{pointer-events:none}
.part.schematic{pointer-events:auto;background:transparent}
.part.schematic:hover,.part.schematic.selected,.part.schematic.danger{background:transparent;border:0;outline:0;box-shadow:none}
.symbol-wrap{position:relative}
.part.schematic.selected .symbol-wrap::after,.part.schematic.danger .symbol-wrap::after{content:"";position:absolute;left:-4px;top:-4px;width:138px;height:80px;border:2px solid #d99b32;border-radius:5px;background:transparent;pointer-events:none}
.part.schematic.danger .symbol-wrap::after{border-color:#c46954}
.part.schematic.vertical:not(.demo) .symbol-wrap::after{left:25px;top:-33px;width:80px;height:138px}
.part.schematic.demo .symbol-wrap::after{left:21px;top:10px;width:88px;height:52px}
.part.schematic.demo.vertical .symbol-wrap::after{left:39px;top:-8px;width:52px;height:88px}
.wire-selection{stroke:#db9b2e;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;fill:none;pointer-events:none}
