:root{--bg:#10171d;--panel:#161f25;--panel2:#1b272e;--line:#2a3942;--muted:#91a1a9;--text:#eff4f5;--teal:#55d4c2;--yellow:#ffc857;--red:#ff685e;--blue:#7caefa;--cm:16px;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-width:320px;height:100vh;overflow:hidden;background:radial-gradient(ellipse at 48% -30%,#1d3038 0,transparent 46%),var(--bg);font-size:13px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}.topbar{height:62px;display:flex;align-items:center;gap:28px;padding:0 20px;border-bottom:1px solid #29363d;background:#11191ff2;position:relative;z-index:10}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px;min-width:230px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--teal);color:#10221f;display:grid;place-items:center;font-size:25px;font-weight:800;box-shadow:0 0 20px #55d4c225}.brand strong{display:block;font-size:14px;letter-spacing:-.5px}.brand small{display:block;color:#92a3aa;font:500 9px ui-monospace,monospace;letter-spacing:1.5px;margin-top:2px}.mode-switch{display:flex;align-items:center;gap:4px;padding:4px;background:#1b272d;border:1px solid #2c3b42;border-radius:8px}.mode-tab{border:0;background:transparent;color:#8ea0a6;padding:8px 12px;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.55px}.mode-tab.active{color:#dffff8;background:#2c4d49;box-shadow:inset 0 0 0 1px #3b756d}.top-meta{margin-left:auto}.sim-status{display:flex;gap:8px;align-items:center;color:#98a9ae;font-size:10px}.sim-status i,.ready-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#718187}.sim-status.running i{background:var(--teal);box-shadow:0 0 10px #55d4c2}.help-button{border:1px solid #3b4a53;width:29px;height:29px;background:transparent;border-radius:50%;font-weight:800;color:#bfccd0}.app-shell{height:calc(100vh - 62px);display:grid;grid-template-columns:258px minmax(460px,1fr) 292px;max-width:1900px;margin:auto}.catalog-panel,.inspector-panel{background:#141d23;min-height:0;display:flex;flex-direction:column}.catalog-panel{border-right:1px solid #29363d;padding:18px 13px 12px}.panel-heading{display:flex;justify-content:space-between;align-items:center;padding:0 4px 11px}.eyebrow{display:block;color:#82959c;font:600 9px ui-monospace,monospace;letter-spacing:1.2px}.panel-heading h2{font-size:16px;margin:4px 0 0;letter-spacing:-.5px}.catalog-count{border:1px solid #34444b;border-radius:6px;color:#a8b7bb;padding:3px 7px;font:10px ui-monospace,monospace}.search-wrap{display:flex;align-items:center;gap:7px;height:37px;padding:0 9px;border:1px solid #35474f;background:#1a262c;border-radius:7px;color:#91a4a9}.search-wrap>span{font-size:19px}.search-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#eef4f4;font-size:11px}.search-wrap input::placeholder{color:#71848b}.search-wrap kbd{border:1px solid #405057;border-radius:3px;padding:1px 4px;font:9px ui-monospace,monospace;color:#81939a}.category-list{display:flex;flex-wrap:wrap;gap:5px;padding:11px 0 9px}.category-chip{border:1px solid #2e3e45;background:#1a252b;border-radius:15px;color:#9aabb0;padding:5px 8px;font-size:9px;white-space:nowrap}.category-chip.active{background:#214441;border-color:#34766d;color:#c7fff2}.catalog-results{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:5px;padding-right:2px}.catalog-item{display:flex;align-items:center;text-align:left;gap:8px;padding:7px 7px;background:#19242a;border:1px solid #2a3940;border-radius:7px;min-height:48px;transition:.14s}.catalog-item:hover,.catalog-item.pending{background:#203536;border-color:#4d9b8e}.catalog-icon{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:7px;background:#29383d;color:#b6d2ca;font-size:16px}.catalog-icon.wago3,.catalog-icon.wago5{background:#684c2f;color:#ffd292}.catalog-icon.mcb,.catalog-icon.rcd{background:#343b31;color:#d1d9a8}.catalog-item-copy{min-width:0;flex:1}.catalog-item-copy strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-item-copy small{display:block;color:#8b9ca2;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-add{font-size:17px;color:#6f858b}.catalog-item.pending .catalog-add{color:var(--teal)}.no-results{padding:16px 8px;color:#d2dbdc;font-size:11px;line-height:1.6}.no-results small{color:#8fa0a6}.catalog-tip{display:flex;gap:8px;padding:9px 8px;margin:9px 0;background:#1b292d;border:1px solid #2c4445;border-radius:7px;color:#a7c9c2}.catalog-tip>span{color:var(--teal);font-size:14px}.catalog-tip p{margin:0;font-size:9px;line-height:1.5}.catalog-bottom{margin-top:auto}.starter-board{width:100%;border:1px solid #3a6c63;background:#203c39;color:#c6f5ea;border-radius:7px;padding:8px;font-size:10px;font-weight:700}.safety-note{display:flex;gap:6px;color:#73868d;font-size:9px;line-height:1.4;margin-top:8px;padding:0 3px}.safety-note span{width:14px;height:14px;flex:0 0 14px;display:grid;place-items:center;border:1px solid #65767b;border-radius:50%;font-size:9px}.workspace{min-width:0;min-height:0;padding:15px 17px 13px;display:flex;flex-direction:column}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:63px;margin-bottom:11px}.crumb{display:flex;gap:7px;align-items:center;color:#8c9da3;font:9px ui-monospace,monospace;letter-spacing:.7px}.crumb b{color:#53646b}.workspace-head h1{font-size:20px;letter-spacing:-.7px;margin:5px 0 3px}.workspace-head p{color:#9baab0;font-size:10px;margin:0}.head-actions{display:flex;gap:6px}.small-action{border:1px solid #384850;background:#19252b;color:#bfcbce;border-radius:6px;padding:7px 9px;font-size:9px;white-space:nowrap}.small-action:hover{border-color:#587b79;color:#e3f7f3}.board-toolbar{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#19252b;border:1px solid #304049;border-bottom:0;border-radius:9px 9px 0 0;padding:5px 9px}.board-label{display:flex;align-items:center;gap:7px;color:#cbd6d8;font:9px ui-monospace,monospace;white-space:nowrap}.board-label strong{font-size:9px;letter-spacing:.6px}.board-label>span:last-child{color:#8ea0a5}.toolbar-sep{width:1px;height:13px;background:#435159}.live-indicator{width:7px;height:7px;border-radius:50%;background:#586970}.live-indicator.on{background:var(--teal);box-shadow:0 0 9px #55d4c2}.toolbar-actions{display:flex;align-items:center;gap:5px}.grid-control{display:flex;align-items:center;gap:4px;color:#8fa1a7;font-size:9px;white-space:nowrap}.grid-control select,.toolbar-actions>select{background:#202d34;border:1px solid #394a52;border-radius:5px;padding:5px 6px;font-size:9px;color:#dce5e7}.wire-color-label{display:flex;align-items:center;gap:4px;color:#92a1a6;font-size:9px;white-space:nowrap}.color-sample{width:7px;height:7px;border-radius:50%;background:#925a34}.tool-button{background:transparent;border:1px solid transparent;border-radius:5px;padding:6px 7px;color:#9cacb1;font-size:9px;white-space:nowrap}.tool-button span{font-size:13px;margin-right:2px}.tool-button.selected{background:#244542;border-color:#3e726b;color:#c8f7ed}.board-scroll{flex:1;min-height:245px;position:relative;overflow:auto;border:1px solid #304049;border-radius:0 0 9px 9px;background:#cbd0ca;scrollbar-color:#65716d #d7d9d4;scrollbar-width:thin}.board-surface{position:relative;overflow:hidden;isolation:isolate;background:#d8dbd4;box-shadow:inset 0 0 0 1px #b9c0b9;transform:translateZ(0)}.board-grid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(#17211d45 1px,transparent 1px),linear-gradient(90deg,#17211d45 1px,transparent 1px);background-size:var(--cm) var(--cm);background-position:0 0;pointer-events:none}.board-grid:after{content:"";position:absolute;inset:0;background-image:linear-gradient(#17211d78 1px,transparent 1px),linear-gradient(90deg,#17211d78 1px,transparent 1px);background-size:calc(var(--cm)*10) calc(var(--cm)*10);pointer-events:none}.board-grid:before{content:"";position:absolute;inset:0;border:1px solid #6d7b7445;pointer-events:none}.board-coordinates{position:absolute;left:0;right:0;top:2px;height:14px;pointer-events:none}.ruler-mark{position:absolute;top:0;color:#6f7d76;font:7px ui-monospace,monospace}.ruler-mark:after{content:"";position:absolute;height:4px;width:1px;background:#78837b;left:0;top:11px}.board-surface:after{content:"";position:absolute;inset:0;border:1px solid #77827a5c;pointer-events:none}.board-surface.training-wall{background:#8d9495 url('./assets/training-wall.png') center/cover no-repeat;box-shadow:inset 0 0 0 2px #687174}.wire-layer{position:absolute;z-index:2;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}.wire-shadow,.wire-visible,.wire-hit{fill:none;stroke-linecap:round;stroke-linejoin:round}.wire-shadow{stroke:#10191582;stroke-width:8;transform:translateY(1px)}.wire-visible{stroke-width:4.5;filter:drop-shadow(0 1px 1px #0006)}.wire-visible.brown{stroke:#86522f}.wire-visible.blue{stroke:#2878ad}.wire-visible.green{stroke:#258450}.wire-visible.black{stroke:#24282b}.wire-visible.grey{stroke:#717b82}.wire-hit{stroke:transparent;stroke-width:15;pointer-events:stroke;cursor:pointer}.wire-hit:hover{stroke:#ffffff77}.device{position:absolute;z-index:3;width:calc(var(--w)*var(--cm));height:calc(var(--h)*var(--cm));user-select:none;touch-action:none;cursor:grab}.device.selected{z-index:5}.device.selected .device-shell{outline:2px solid #139c8a;box-shadow:0 0 0 5px #38af9b32,0 8px 18px #13211d50}.device-shell{width:100%;height:calc(100% - 19px);border:1px solid #86918a;border-radius:5px;background:#f0f1eb;box-shadow:0 4px 9px #17251f38;color:#293632;position:relative;overflow:hidden}.device-head{height:28%;min-height:20px;width:100%;border:0;border-bottom:1px solid #c3cac1;background:#e4e9e0;color:#26342f;display:flex;align-items:center;gap:4px;padding:2px 5px;cursor:grab;text-align:left;touch-action:none}.device-symbol{width:17px;height:17px;flex:0 0 17px;border-radius:4px;background:#d0ddd4;display:grid;place-items:center;color:#4b6e5f;font-size:12px}.device-head-label{font:700 7px ui-monospace,monospace;line-height:1.12;overflow:hidden;max-height:18px}.device-state{margin-left:auto;color:#15866c;font:700 7px ui-monospace,monospace}.device-body{height:72%;display:flex;align-items:flex-end;justify-content:space-evenly;gap:1px;padding:2px 3px 5px;position:relative}.terminal{border:0;background:transparent;padding:1px 0;color:#4d5b55;display:flex;align-items:center;flex-direction:column;gap:1px;position:relative;z-index:4;min-width:12px;font:700 6px ui-monospace,monospace}.terminal i{display:block;width:9px;height:9px;border-radius:50%;background:#bec6bd;border:1.5px solid #66736a;box-shadow:inset 0 0 0 1px #edf0e8}.terminal b{font-weight:700;white-space:nowrap}.terminal:hover i,.terminal.pending i{border-color:#098c79;box-shadow:0 0 0 4px #26a89043,inset 0 0 0 1px #edf0e8}.terminal.measuring i{border-color:#dd554d;box-shadow:0 0 0 4px #d9534845,inset 0 0 0 1px #edf0e8}.device-coordinate{position:absolute;left:0;bottom:0;color:#64736c;font:7px ui-monospace,monospace;white-space:nowrap}.device-caption{position:absolute;top:-15px;left:0;color:#405049;font:700 8px ui-monospace,monospace;white-space:nowrap;text-shadow:0 1px #eef1e9}.device-art{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:1}.source-art{font:700 8px ui-monospace,monospace;color:#47766a;flex-direction:column;line-height:1.45}.device-art small{display:block;color:#7d8981;font:6px ui-monospace,monospace}.mcb-art{width:16px;height:27px;top:45%;background:#e6e9e0;border:1px solid #88948a;border-radius:3px;flex-direction:column}.mcb-art i{width:5px;height:11px;background:#88b27f;border-radius:3px}.rcd-art{flex-direction:column;color:#59685d;font:700 6px ui-monospace,monospace;gap:2px}.rcd-art i{font-style:normal;color:#a55b43;border:1px solid #bd9d8b;padding:2px;border-radius:3px}.switch-art{flex-direction:column;color:#66766a}.switch-art i{width:19px;height:2px;background:#6d7d70;transform:rotate(-30deg);border-radius:2px}.switch-art.closed i{transform:rotate(0)}.switch-art small{margin-top:5px}.socket-art{flex-direction:column;width:27px;height:27px;border:1.5px solid #99a39a;border-radius:50%;background:#f7f7f1;color:#69776d;font-size:12px}.socket-art b{font-size:7px}.lamp-art{width:23px;height:23px;border-radius:50%;border:1.5px solid #859186;color:#7e8979;background:#edf0e8;font-size:14px}.lamp-art.lit,.bell-art.lit{background:#fff1a6;border-color:#dfaa3b;color:#d58d28;box-shadow:0 0 24px #ffc857ad,0 0 48px #ffc8576b}.bell-art{font-size:18px;color:#63766c}.wago3 .device-shell,.wago5 .device-shell{background:#f2d8ac;border-color:#b98a48}.wago3 .device-head,.wago5 .device-head{background:#edc984;border-color:#c69d59}.wago-art{gap:2px}.wago-art i{width:6px;height:12px;background:#ed9e36;border:1px solid #a8601b;border-radius:2px 2px 1px 1px}.wago-art small{position:absolute;top:13px;color:#805c31}.contactor-art{gap:3px}.contactor-art i{width:5px;height:19px;background:#d3d9d1;border:1px solid #7f8b82;border-radius:2px}.contactor-art.energized i{background:#8fbe9a}.contactor-art small{position:absolute;top:19px;white-space:nowrap}.motor-art{width:25px;height:25px;border-radius:50%;border:2px solid #73847a;color:#5d6f65;font:700 13px ui-monospace,monospace}.motor-art span{font-size:6px}.motor-art.spinning{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.ac-art{flex-direction:column;color:#667b72;font-size:19px}.panel .device-shell{background:#dfe5df;border-color:#87958c}.panel .device-body{display:grid;grid-template-columns:1fr 1fr;align-content:start;padding:9px}.panel-art{inset:25px 5px auto;width:auto;transform:none;display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.panel-art i{height:17px;border:1px solid #86948a;background:#f4f4ed;border-radius:2px}.board-center-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;z-index:1;color:#54655e;pointer-events:none;width:240px}.hint-mark{width:35px;height:35px;margin:0 auto 8px;border:1px dashed #789187;border-radius:10px;display:grid;place-items:center;color:#40766a;font-size:22px}.board-center-hint strong{font-size:12px}.board-center-hint p{font-size:10px;line-height:1.5;color:#718078}.placement-badge{position:sticky;z-index:9;top:10px;margin:10px auto;width:max-content;padding:7px 12px;border:1px solid #338477;border-radius:20px;background:#1e403d;color:#baf2e7;font:700 9px ui-monospace,monospace;letter-spacing:.5px}.board-origin,.board-scale{position:absolute;z-index:1;color:#63736c;font:7px ui-monospace,monospace;pointer-events:none}.board-origin{top:3px;left:4px}.board-scale{bottom:3px;right:7px}.board-scroll.placing{cursor:crosshair}.board-scroll.placing .board-surface{cursor:crosshair}.connection-bar{margin-top:9px;min-height:60px;border:1px solid #2e3d44;border-radius:8px;background:#172329;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px}.connection-copy{display:flex;align-items:center;gap:8px;min-width:0}.run-icon{width:27px;height:27px;border-radius:50%;background:#213e3e;color:var(--teal);display:grid;place-items:center;flex:0 0 27px;font-size:12px}.connection-copy strong{display:block;font-size:10px}.connection-copy small{display:block;color:#90a1a6;font-size:9px;margin-top:3px;max-width:380px;line-height:1.4}.connection-actions{display:flex;gap:5px;align-items:center}.switch-power{display:flex;align-items:center;gap:6px;background:#1e2b31;border:1px solid #39474d;color:#91a0a5;padding:7px 9px;border-radius:6px;font-size:9px}.switch-power.on{color:#cbf4ed;border-color:#398175}.toggle-dot{width:8px;height:8px;border-radius:50%;background:#728187}.switch-power.on .toggle-dot{background:var(--teal);box-shadow:0 0 9px #55d4c2}.run-button{border:0;background:var(--teal);color:#102221;border-radius:6px;padding:9px 11px;font-size:9px;font-weight:800;white-space:nowrap}.run-button:hover{background:#7ce3d5}.feedback-row{display:flex;align-items:flex-start;gap:8px;margin-top:8px;background:#172329;border:1px solid #2b3c42;border-radius:7px;padding:8px 10px;position:relative;min-height:45px}.feedback-row.success{border-color:#368579;background:#17302e}.feedback-row.warning{border-color:#9b7840;background:#302b21}.feedback-row.danger{border-color:#8f5548;background:#2d2221}.feedback-icon{width:17px;height:17px;flex:0 0 17px;border-radius:50%;display:grid;place-items:center;background:#294d4a;color:var(--teal);font:700 10px ui-monospace,monospace}.feedback-row strong{font-size:9px}.feedback-row p{font-size:9px;line-height:1.4;color:#a5b3b7;margin:2px 22px 0 0}.feedback-close{margin-left:auto;border:0;background:transparent;color:#91a0a5;font-size:14px;position:absolute;right:7px;top:4px}.inspector-panel{border-left:1px solid #29363d;padding:0 13px 12px;overflow:auto}.inspector-tabs{height:49px;display:flex;gap:16px;border-bottom:1px solid #2b383f;flex:0 0 49px}.inspector-tab{height:100%;border:0;border-bottom:2px solid transparent;background:transparent;color:#899ba0;font:700 9px ui-monospace,monospace;letter-spacing:.5px;padding:1px 2px 0}.inspector-tab.active{color:#e5eff0;border-bottom-color:var(--teal)}.inspector-view{padding-top:13px}.selection-empty{padding:19px 8px 16px;text-align:center;border:1px dashed #33434a;border-radius:8px}.empty-icon{display:grid;place-items:center;width:30px;height:30px;margin:0 auto 8px;border-radius:8px;background:#24343a;color:#a1b5b5;font-size:17px}.selection-empty strong{font-size:10px}.selection-empty p{font-size:9px;line-height:1.5;color:#8fa0a5;margin:6px 0 0}.selection-title{display:flex;gap:9px;align-items:center;margin-bottom:11px}.selection-symbol{width:35px;height:35px;flex:0 0 35px;display:grid;place-items:center;background:#283a3e;border-radius:8px;color:#b7d9ce;font-size:18px}.selection-title h2{margin:2px 0;font-size:12px;letter-spacing:-.2px}.selection-title small{display:block;font-size:9px;color:#93a4a8;line-height:1.35}.property-row{display:flex;justify-content:space-between;padding:7px 1px;border-bottom:1px solid #26343b;font-size:9px;color:#94a4a8}.property-row strong{font-weight:600;color:#dae2e2}.terminal-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:10px}.terminal-list>div{display:flex;align-items:center;gap:5px;border:1px solid #2c3b41;background:#19252b;padding:6px;border-radius:5px;min-width:0}.terminal-list strong{font:700 9px ui-monospace,monospace;flex:1}.terminal-list small{font-size:8px;color:#9eaaa8}.terminal-dot{width:7px;height:7px;border-radius:50%;background:#68777b}.terminal-dot.P,.terminal-dot.L1,.terminal-dot.L2,.terminal-dot.L3{background:#dc8b49}.terminal-dot.N{background:#4f9acb}.terminal-dot.E{background:#68b36b}.terminal-dot.SHORT{background:#eb5347}.no-port{grid-column:1/-1;font-size:9px;color:#82959b}.component-description{margin-top:10px;padding:9px;border-left:2px solid #4d8d80;background:#1b292d;color:#b0c3c2;font-size:9px;line-height:1.5}.device-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.device-actions button,.state-action{border:1px solid #374950;background:#202d32;color:#c7d3d3;border-radius:5px;padding:7px 8px;font-size:9px}.device-actions .delete-action{margin-left:auto;color:#e59b90}.state-action{width:100%;margin-top:8px}.inspector-divider{height:1px;background:#2b393f;margin:14px 0}.meter-card{border:1px solid #35474d;background:#19262c;border-radius:8px;overflow:hidden}.meter-header{display:flex;align-items:center;gap:7px;padding:9px;border-bottom:1px solid #2b3a40}.meter-icon{width:24px;height:24px;border-radius:6px;background:#263a3d;color:#80d6c7;display:grid;place-items:center;font:700 12px ui-monospace,monospace}.meter-header strong{display:block;font-size:9px}.meter-header small{display:block;color:#82949a;font-size:8px;margin-top:2px}.meter-display{height:62px;position:relative;display:flex;align-items:center;padding:5px 11px}.meter-display>span{font:500 28px ui-monospace,monospace;color:#d6ede7;letter-spacing:-2px}.meter-display>small{font:10px ui-monospace,monospace;margin-left:4px;color:#96aaa9}.meter-display p{position:absolute;right:7px;bottom:5px;font-size:8px;color:#87999e;margin:0;max-width:135px;text-align:right}.meter-points{display:flex;justify-content:space-between;padding:5px 9px}.probe{display:flex;align-items:center;gap:4px;font:7px ui-monospace,monospace;color:#a9b6b8}.probe b{color:#d6e0e1;font-weight:400;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.red-probe{color:#ef7c74}.meter-clear{width:100%;padding:6px;border:0;border-top:1px solid #2a393f;background:#1b282e;color:#92a4a8;font-size:8px}.project-shelf{margin-top:auto;padding-top:12px}.shelf-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.shelf-head button{border:0;background:transparent;color:var(--teal);font-size:15px}.project-shelf select{width:100%;padding:8px;border:1px solid #33444b;background:#1b272d;border-radius:6px;color:#bdc9cb;font-size:9px}.learning-heading{padding-bottom:9px}.learning-heading h2{font-size:14px;margin:4px 0}.learning-heading p{font-size:9px;line-height:1.4;color:#92a4a8;margin:0}.learning-weeks{display:grid;gap:6px}.week-card{border:1px solid #2e3e44;background:#19252b;border-radius:7px;overflow:hidden}.week-card summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px}.week-card summary::-webkit-details-marker{display:none}.week-number{width:24px;height:24px;display:grid;place-items:center;background:#243b3a;color:#8fdfcf;border-radius:6px;font:700 9px ui-monospace,monospace}.week-title{flex:1;min-width:0}.week-title strong{font-size:9px;display:block}.week-title small{font-size:8px;color:#87999e;display:block;margin-top:3px}.week-progress{width:30px;height:3px;border-radius:4px;background:#34464b;overflow:hidden}.week-progress i{height:100%;display:block;background:var(--teal)}.day-list{padding:0 6px 6px}.day-row{display:flex;align-items:center;gap:3px;padding:3px;border-top:1px solid #29383e}.day-row.active{background:#203a39}.day-select{display:flex;gap:7px;align-items:flex-start;text-align:left;flex:1;min-width:0;padding:3px;border:0;background:transparent}.day-number{font:8px ui-monospace,monospace;color:#75cbb9;margin-top:2px}.day-select strong{display:block;font-size:8px}.day-select small{display:block;color:#82949a;font-size:7px;line-height:1.4;margin-top:2px}.day-done{width:20px;height:20px;border:1px solid #3b4f53;background:#202c31;color:#93a4a8;border-radius:5px;font-size:11px}.day-row.done .day-done{color:var(--teal);border-color:#398073}.learning-foot{margin-top:9px;padding:8px;background:#252b27;border-radius:6px;color:#c7c5a9;font-size:8px;line-height:1.45}.fire-overlay{position:absolute;z-index:20;inset:0;background:#172026c9;backdrop-filter:blur(4px);display:none;place-items:center}.fire-overlay.show{display:grid;animation:fadein .2s}@keyframes fadein{from{opacity:0}to{opacity:1}}.fire-card{width:min(390px,90%);padding:26px 28px 23px;text-align:center;background:#201e21;border:1px solid #a64c42;border-radius:14px;box-shadow:0 20px 80px #0009;position:relative;overflow:hidden}.fire-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#ffaf52,#f14b42,#7d241d)}.fire-symbol{margin:auto;width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#652f2c;color:#ff8b66;font-size:22px;font-weight:800}.fire-card>p{color:#ff9372;font:9px ui-monospace,monospace;letter-spacing:1.2px;margin:13px 0 6px}.fire-card h2{margin:0;font-size:24px;letter-spacing:-.8px}.fire-flames{font-size:32px;margin:7px 0}.fire-reason{color:#d8c6c1;line-height:1.5;font-size:11px}.fire-card button{margin-top:17px;width:100%;border:1px solid #9f5448;border-radius:7px;background:#5a302d;padding:9px;font-size:10px;color:#ffe3da}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,12px);background:#e4f7f1;color:#17312b;padding:9px 13px;border-radius:7px;box-shadow:0 18px 50px #0006;font-size:10px;font-weight:700;opacity:0;pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(440px,calc(100% - 30px));background:#1a252b;color:var(--text);border:1px solid #3b4d55;border-radius:13px;box-shadow:0 18px 60px #0007;padding:23px}dialog::backdrop{background:#081014b8;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:13px;top:10px;background:transparent;border:0;color:#aab8bb;font-size:20px}.dialog-tag{font:9px ui-monospace,monospace;letter-spacing:1px;color:var(--teal)}dialog h2{font-size:20px;margin:9px 0 11px}dialog ol{padding-left:19px;color:#b6c4c7;font-size:11px;line-height:1.7}dialog li{padding:2px 0}.dialog-foot{font-size:9px;color:#91a0a5;line-height:1.5;border-top:1px solid #304047;padding-top:11px;margin-bottom:0}body.dragging{cursor:grabbing;user-select:none}
@media(max-width:1250px){.app-shell{grid-template-columns:230px minmax(420px,1fr) 270px}.workspace{padding:13px 11px}.catalog-panel{padding:14px 10px}.toolbar-actions{gap:3px}.board-label>span:last-child{display:none}.topbar{gap:16px}.brand{min-width:185px}}
@media(max-width:980px){body{height:auto;min-height:100vh;overflow:auto}.topbar{position:sticky;top:0}.app-shell{height:auto;min-height:calc(100vh - 62px);grid-template-columns:210px minmax(0,1fr)}.catalog-panel{grid-row:1/3;min-height:calc(100vh - 62px)}.workspace{min-height:660px}.inspector-panel{grid-column:2;border-left:0;border-top:1px solid #29363d;min-height:420px}.catalog-results{max-height:calc(100vh - 330px)}.project-shelf{margin-top:15px}}
@media(max-width:680px){.topbar{height:56px;padding:0 10px;gap:7px}.brand{min-width:0;gap:7px}.brand-mark{width:30px;height:30px}.brand strong{font-size:12px}.brand small{font-size:7px}.mode-switch{margin-left:auto}.mode-tab{padding:7px 8px;font-size:8px}.top-meta{display:none}.app-shell{display:flex;flex-direction:column}.catalog-panel{order:2;min-height:0;border-right:0;border-top:1px solid #2a373e;padding:10px}.panel-heading{padding-bottom:7px}.panel-heading h2{font-size:14px}.category-list{flex-wrap:nowrap;overflow:auto}.catalog-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:190px}.catalog-item{min-height:45px}.catalog-tip,.safety-note{display:none}.catalog-bottom{margin-top:8px}.workspace{order:1;padding:10px;min-height:590px}.workspace-head{min-height:55px;margin-bottom:8px}.workspace-head h1{font-size:16px}.workspace-head p{font-size:9px;max-width:270px}.head-actions .small-action{padding:6px;font-size:8px}.board-toolbar{align-items:flex-start;min-height:69px;flex-direction:column}.board-label{font-size:8px}.toolbar-actions{width:100%;justify-content:flex-start;overflow:auto}.grid-control,.wire-color-label{font-size:8px}.toolbar-actions select{font-size:8px}.tool-button{padding:5px;font-size:8px}.board-scroll{min-height:300px;max-height:48vh}.connection-bar{align-items:flex-start;flex-direction:column}.connection-actions{width:100%;justify-content:flex-end}.connection-copy small{font-size:8px}.inspector-panel{order:3;min-height:430px}.inspector-tabs{height:42px;flex-basis:42px}.learning-heading h2{font-size:13px}.catalog-count{font-size:9px}}
@media(max-width:390px){.mode-tab{padding:6px 5px;font-size:7px}.board-toolbar{min-height:77px}.toolbar-actions{gap:2px}.grid-control select{padding:4px 3px}.toolbar-actions>select{max-width:72px;padding:4px 3px}.run-button{padding:8px 6px}.connection-actions .small-action{padding:6px}.head-actions{gap:3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.bus-art{gap:3px}.bus-art i{width:5px;height:19px;background:#d4ad6a;border:1px solid #a38750;border-radius:2px}.bus-art.neutralBar i{background:#d6e6f2;border-color:#6490b0}.bus-art small{position:absolute;top:19px;white-space:nowrap;color:#6e7e7c}.jbox-art{width:26px;height:26px;border:1px solid #89968a;border-radius:4px;background:#e4e8de;color:#728177;font-size:17px}.toolbar-actions #wireType{max-width:120px}.toolbar-actions #wireSection{max-width:82px}.toolbar-actions #wireColor{max-width:104px}.device.mcb2p .device-shell{background:#f0f1e8}
.zoom-control-group{display:flex;align-items:center;gap:4px;padding:2px 5px;border:1px solid #33434a;border-radius:7px;background:#192329;color:#c6d2d3;font-size:9px;white-space:nowrap}.zoom-button{width:23px;height:23px;border:1px solid #3a4b51;border-radius:5px;background:#25343a;color:#e4efef;font-size:15px;line-height:1;cursor:pointer}.zoom-button:hover{border-color:var(--teal);color:var(--teal)}.zoom-percent{min-width:34px;text-align:center;color:var(--teal);font:700 10px ui-monospace,monospace}.zoom-control-group select{max-width:57px!important;padding:4px!important}
@media(max-width:680px){.zoom-control-group{font-size:8px;gap:3px;padding:2px 3px}.zoom-button{width:21px;height:21px}.zoom-percent{min-width:30px}.zoom-control-group select{max-width:49px!important}}
.physical-device .device-shell{overflow:visible;border:0;background:transparent;box-shadow:none;border-radius:0}.physical-device .device-head{height:17%;min-height:15px;padding:1px 3px;background:#dce2dd;border:1px solid #9aa49d;border-radius:4px 4px 0 0;position:relative;z-index:3}.physical-device .device-symbol{width:13px;height:13px;flex-basis:13px;font-size:9px}.physical-device .device-head-label{font-size:6px}.physical-device .device-state{font-size:6px}.physical-device .device-body.physical-layout{height:83%;display:block;position:relative;overflow:visible;padding:0}.product-artwork{position:absolute;inset:0;z-index:1;pointer-events:none}.product-illustration{display:block;width:100%;height:100%;overflow:visible}.physical-terminal{position:absolute!important;z-index:5!important;transform:translate(-50%,-50%);width:22px;min-width:22px;height:23px;padding:0!important;display:grid!important;place-items:center;color:#36433e!important;border-radius:3px;background:#ffffff0a!important}.physical-terminal i{width:12px;height:9px;border-radius:3px;background:linear-gradient(180deg,#d7cfbc,#93876e)!important;border:1px solid #665c4b!important;box-shadow:inset 0 1px 1px #f3eee0!important;position:relative}.physical-terminal i:after{content:"";position:absolute;left:2px;right:2px;top:3px;height:1px;background:#544c40;transform:rotate(-16deg)}.physical-terminal b{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding:1px 2px;border-radius:2px;background:#f0f1ebd9;color:#39453e;font-size:5px;line-height:1;white-space:nowrap;text-shadow:0 1px #fff}.physical-device .device-coordinate{z-index:7;background:#eef1e9c9;padding:0 2px;border-radius:2px}.physical-device.mcb .device-caption,.physical-device.mcb2p .device-caption,.physical-device.mcb3p .device-caption,.physical-device.rcd .device-caption,.physical-device.overload3p .device-caption{font-size:8px;text-shadow:0 1px 2px #fff}.physical-device.wago3 .device-shell,.physical-device.wago5 .device-shell{border:0;background:transparent;box-shadow:none}.physical-device.socket .device-head,.physical-device.switch .device-head,.physical-device.twoWay .device-head,.physical-device.cross .device-head,.physical-device.push .device-head{height:15%}.physical-device.socket .device-body.physical-layout,.physical-device.switch .device-body.physical-layout,.physical-device.twoWay .device-body.physical-layout,.physical-device.cross .device-body.physical-layout,.physical-device.push .device-body.physical-layout{height:85%}
.physical-terminal.physical-top b{top:auto;bottom:100%}.physical-terminal.physical-bottom b{top:100%}.physical-terminal.physical-left b{left:100%;top:50%;transform:translateY(-50%)}.physical-terminal.physical-right b{left:auto;right:100%;top:50%;transform:translateY(-50%)}
.physical-device .device-shell{height:calc(100% - 19px)}.physical-device .device-head{display:none}.physical-device .device-body.physical-layout{height:100%}.physical-caption-handle{cursor:grab;touch-action:none}.physical-device.selected .device-shell{outline:none;box-shadow:none}.physical-device.selected .product-artwork{filter:drop-shadow(0 0 5px #36c3ad)}

.wire-color-palette{display:flex;align-items:center;gap:7px;min-height:44px;padding:5px 9px;background:#19252b;border:1px solid #304049;border-bottom:0;overflow-x:auto;flex:0 0 auto}.wire-color-palette>strong{font-size:12px;color:#cbd6d8;white-space:nowrap;margin-right:3px}.wire-color-choice{display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #3a4a50;border-radius:6px;background:#202d33;color:#c6d1d3;font-size:11px;white-space:nowrap}.wire-color-choice:hover{border-color:#6aa398}.wire-color-choice.active{border-color:#55d4c2;background:#24413f;color:#e4fff8;box-shadow:0 0 0 1px #55d4c233}.wire-color-choice i{width:16px;height:16px;border:1px solid #ffffff5c;border-radius:50%;background:var(--wire-swatch);flex:0 0 16px}.wire-color-choice[data-wire-color="green"] i{background:linear-gradient(135deg,#31945b 0 44%,#f2d44e 44% 56%,#31945b 56%)}.wire-color-choice[data-wire-color="black"] i{border-color:#95a0a4}.wire-color-choice[data-wire-color="brown"] i{--wire-swatch:#925a34}.wire-color-choice[data-wire-color="blue"] i{--wire-swatch:#367db2}.wire-color-choice[data-wire-color="black"] i{--wire-swatch:#24272b}.wire-color-choice[data-wire-color="grey"] i{--wire-swatch:#73808a}
@media(max-width:680px){.wire-color-palette{min-height:42px}.wire-color-palette>strong{font-size:11px}.wire-color-choice{font-size:10px;padding:4px 6px}}

.zoom-fit{font-size:12px;min-width:25px;padding:2px}.zoom-fit:hover{color:var(--teal);border-color:var(--teal)}
.board-scroll.panning,.board-scroll.panning *{cursor:grabbing!important;user-select:none!important}
.feedback-copy{min-width:0;flex:1}.feedback-help{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:6px 9px;border:1px solid #55d4c2;border-radius:6px;background:#203c39;color:#d5fff6;font-size:10px;font-weight:700}.feedback-help:hover{background:#2b514b}.feedback-help.hidden{display:none!important}
.assist-summary{padding:9px 11px;border-left:2px solid var(--yellow);border-radius:0 6px 6px 0;background:#252a25;color:#e6e0c7;font-size:11px;line-height:1.55}#assistDialog ol{margin-top:12px}
@media(max-width:680px){.zoom-fit{min-width:23px;padding:2px}.feedback-help{font-size:9px}.assist-summary{font-size:10px}}

.zoom-control-group .focus-board{font-size:13px;min-width:26px;color:#a7cdc4}.zoom-control-group .focus-board[aria-pressed="true"]{background:#27504b;border-color:#55d4c2;color:#e0fff7}.board-focus{overflow:hidden!important}.board-focus .app-shell{display:block!important;max-width:none;height:calc(100vh - 62px)}.board-focus .catalog-panel,.board-focus .inspector-panel{display:none!important}.board-focus .workspace{height:100%;padding:10px 16px;max-width:none}.board-focus .board-scroll{min-height:0;max-height:none}.board-focus .board-toolbar{flex-wrap:wrap}
@media(max-width:680px){.board-focus .app-shell{height:calc(100vh - 56px)}.board-focus .workspace{min-height:0;padding:8px}.board-focus .board-scroll{min-height:0;max-height:none}.zoom-control-group .focus-board{min-width:23px}}

.lesson-detail{margin:0 0 10px}.lesson-empty,.lesson-card{border:1px solid #34524f;background:linear-gradient(145deg,#1b302f,#19252b);border-radius:9px;padding:12px}.lesson-empty strong{font-size:10px;color:#e2f2ef}.lesson-empty p{margin:6px 0 0;color:#95aaa8;font-size:9px;line-height:1.5}.lesson-card-head{display:flex;align-items:center;justify-content:space-between}.lesson-day{color:#82dfce;font:700 8px ui-monospace,monospace;letter-spacing:.8px}.lesson-time{color:#81969a;font:8px ui-monospace,monospace}.lesson-card h3{font-size:13px;margin:7px 0}.lesson-goal,.lesson-success{font-size:9px;line-height:1.5;color:#afc1c0;margin:8px 0}.lesson-goal strong,.lesson-success strong{display:block;color:#c8e7df;font-size:8px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}.lesson-section-title{display:block;color:#c8e7df;font-size:8px;text-transform:uppercase;letter-spacing:.6px;margin:10px 0 3px}.lesson-card ol{padding-left:18px;color:#afc1c0;font-size:9px;line-height:1.5;margin:3px 0}.lesson-card li{padding:2px 0}.lesson-success{padding:7px 8px;background:#202a28;border-left:2px solid #d7b466;border-radius:0 5px 5px 0}.lesson-complete{width:100%;border:1px solid #3c7970;border-radius:6px;background:#214540;color:#d6fff4;font-size:9px;font-weight:700;padding:8px;margin-top:4px}.lesson-complete:hover{background:#2b5b54}.lesson-complete.done{border-color:#4b8060;background:#243c32;color:#c7ebd2}.day-state{color:#758b8d;font:7px ui-monospace,monospace;white-space:nowrap;padding-right:4px}.day-row.done .day-state{color:#7dd4ad}.day-select strong{font-size:9px}.device-coordinate{opacity:0;transition:opacity .12s}.device:hover .device-coordinate,.device.selected .device-coordinate{opacity:1}.device-caption{max-width:130%;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .12s}.device:hover .device-caption,.device.selected .device-caption{opacity:1}.physical-device .device-caption{font-size:8px;font-weight:800;padding:0 2px;border-radius:2px;background:#f1f3eee0}.physical-device.mcb .device-caption,.physical-device.mcb2p .device-caption,.physical-device.mcb3p .device-caption,.physical-device.rcd .device-caption,.physical-device.overload3p .device-caption{font-size:8px}

.wire-draft-preview{stroke-dasharray:7 6;opacity:.78;pointer-events:none}.wire-draft-shadow{opacity:.42;stroke-dasharray:7 6}

.device:focus-within .device-caption{opacity:1}.device-caption{pointer-events:auto}.device-caption:focus-visible{outline:2px solid #098c79;outline-offset:2px}

/* Version 40 interaction and simulation feedback */
.tool-button#wireCutMode.selected{background:#4a302b;border-color:#a26150;color:#ffd3c5}.tool-button#wireCutMode.selected span{color:#ff9b7e}.tool-button.sound-toggle{border-color:#34454b;color:#c2d3d2}.tool-button.sound-toggle[aria-pressed="false"]{color:#89999e;background:#1a2429}.board-scroll.cutting .wire-hit{pointer-events:stroke;cursor:crosshair}.board-scroll.cutting .wire-hit:hover{stroke:#ff705b99;stroke-width:20}.wire-hit{pointer-events:stroke}.device.operating .product-artwork{filter:drop-shadow(0 0 5px #ffd46070)}.bell.operating .product-artwork{animation:bell-ring .32s ease-in-out 3;transform-origin:50% 38%}.bell.operating .product-artwork svg path:first-child{filter:drop-shadow(0 0 8px #ffc857)}@keyframes bell-ring{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.socket .socket-live circle.socket-status-led{filter:drop-shadow(0 0 4px #42dc9a)}.socket .product-artwork.socket-ready{filter:drop-shadow(0 0 6px #36c47b99)}.socket .product-artwork.socket-test{filter:drop-shadow(0 0 8px #ffd665)}.ad-slot{margin-top:12px;min-height:112px;border:1px dashed #46585d;border-radius:8px;background:linear-gradient(140deg,#1b292e,#172126);display:flex;flex-direction:column;justify-content:center;gap:5px;padding:12px}.ad-slot>span{color:#819397;font:700 8px ui-monospace,monospace;letter-spacing:1px}.ad-slot strong{color:#d9e5e4;font-size:11px}.ad-slot small{max-width:220px;color:#8fa1a5;font-size:8px;line-height:1.45}.socket-test-action{border-color:#497f68;color:#c7f0d3}
.motor1.operating .motor-rotor,.motor3.operating .motor-rotor{transform-box:fill-box;transform-origin:center;animation:motor-turn .75s linear infinite}@keyframes motor-turn{to{transform:rotate(360deg)}}

/* Version 41 layout stabilization */
.board-toolbar{align-items:stretch;flex-direction:column;justify-content:flex-start;gap:5px;min-height:0}.board-label{min-height:17px;width:100%;overflow:hidden;text-overflow:ellipsis}.toolbar-actions{width:100%;flex-wrap:wrap;justify-content:flex-start;row-gap:5px;min-width:0}.toolbar-actions>select{min-width:0;max-width:160px}.tool-button{flex:0 0 auto}.physical-device .device-caption{width:max-content;max-width:min(150px,calc(100vw - 24px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:980px){.board-toolbar{gap:5px}.toolbar-actions{column-gap:4px}.toolbar-actions>select{max-width:140px}}
@media(max-width:680px){.board-label{font-size:8px}.toolbar-actions{max-height:none;overflow:visible}.toolbar-actions>select{max-width:125px}.tool-button{font-size:8px;padding:5px}}


/* Version 42: stable, grouped board toolbar */
.board-toolbar{display:flex;align-items:stretch;flex-direction:column;justify-content:flex-start;gap:5px;min-height:0;padding:7px 9px}
.board-label{min-height:17px;width:100%;overflow:hidden;text-overflow:ellipsis}
.toolbar-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"view specs" "modes utility";align-items:center;gap:6px 10px;width:100%;min-width:0}
.view-tools,.wire-spec-tools,.mode-tools,.utility-tools{display:flex;align-items:center;gap:5px;min-width:0}
.view-tools{grid-area:view;flex-wrap:wrap}.wire-spec-tools{grid-area:specs;justify-content:flex-end;flex-wrap:wrap}.mode-tools{grid-area:modes}.utility-tools{grid-area:utility;justify-content:flex-end}
.toolbar-actions .zoom-control-group{flex:0 0 auto}.toolbar-actions .grid-control{flex:0 0 auto}.wire-spec-tools>select{min-width:0;max-width:145px}.mode-tools .tool-button,.utility-tools .tool-button{flex:0 0 auto}
@media(max-width:1250px){.toolbar-actions{grid-template-columns:minmax(0,1fr);grid-template-areas:"view" "specs" "modes" "utility";gap:5px}.wire-spec-tools,.utility-tools{justify-content:flex-start}.view-tools,.wire-spec-tools{flex-wrap:wrap}}
@media(max-width:680px){.board-toolbar{gap:5px;padding:6px}.toolbar-actions{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"view view" "specs specs" "modes utility";column-gap:5px}.view-tools,.wire-spec-tools{flex-wrap:wrap}.wire-spec-tools>select{max-width:min(145px,46vw)}.mode-tools,.utility-tools{gap:3px}.tool-button{font-size:8px;padding:5px}.utility-tools{justify-content:flex-end}}
@media(max-width:390px){.toolbar-actions{grid-template-columns:minmax(0,1fr);grid-template-areas:"view" "specs" "modes" "utility"}.utility-tools{justify-content:flex-start}.wire-spec-tools>select{max-width:calc(50vw - 24px)}}
