:root{font-family:Segoe UI,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;font-size:16px;color:#1d2a33;--panel:#ffffffee;--ink:#1d2a33;--muted:#6b7a85;--accent:#1fb98a;--accent-ink:#083b2c;--danger:#e5484d;--shadow:0 4px 14px #0c22332e;--bg:#e7eef3;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);overscroll-behavior:none}button{font:inherit;color:var(--ink);border:0;background:var(--panel);border-radius:12px;padding:8px 12px;box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);font-weight:700}button.ghost{background:#ffffffb0}button.big{min-height:48px;font-size:16px;padding:10px 20px;border-radius:14px}button:focus-visible{outline:3px solid #ffb84d;outline-offset:2px}.round{width:40px;height:40px;border-radius:50%;padding:0;font-size:18px;display:flex;align-items:center;justify-content:center}.layout{height:100%;display:grid;gap:8px;padding:8px 8px calc(8px + var(--safe-b));grid-template-columns:212px minmax(0,1fr) 168px;grid-template-rows:minmax(0,1fr) 92px;grid-template-areas:"left stage devices" "left bottom bottom"}.side-left{grid-area:left;display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0}.diagram{flex:none;height:168px}.tray-cables{flex:1}.stage{grid-area:stage}.tray-devices{grid-area:devices}.bottom{grid-area:bottom}.panel-title{font-size:12px;font-weight:700;color:var(--muted);margin:0 0 6px;letter-spacing:.04em}.diagram{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;min-height:0}.diagram-open{background:transparent;box-shadow:none;padding:0;border-radius:8px;overflow:hidden;flex:1;min-height:0;display:flex;align-items:flex-start;cursor:zoom-in}.diagram-open img{width:100%;height:100%;object-fit:contain;object-position:top}.diagram-note{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.4}.tray{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:8px 10px;min-width:0;min-height:0;display:flex;flex-direction:column}.tray-items{display:flex;gap:8px;overflow:auto;scrollbar-width:thin;min-height:0;flex:1;align-items:stretch}.tray-item{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#f6f8fa;box-shadow:none;border:1px solid #dfe6ec;border-radius:12px;padding:6px 10px;width:100%;touch-action:none;cursor:grab}.tray-item:active{cursor:grabbing}.tray-item.device{padding:8px 6px}.tray-name{font-size:12px;font-weight:700;white-space:nowrap}.tray-mm{font-size:11px;color:var(--muted);white-space:nowrap}.tray-empty{margin:auto;font-size:12px;color:var(--muted)}.cable-look{position:relative;display:flex;align-items:center;height:18px;width:130px}.cable-look .sheath{flex:1;height:9px;border-radius:3px;background:linear-gradient(#dfe4e7,#b9c2c8);box-shadow:inset 0 -2px #9aa5ac}.cable-look.em .sheath{background:linear-gradient(#6fb0ea,#3f83cc);box-shadow:inset 0 -2px #2c65a3}.cable-look .cores{display:flex;flex-direction:column;gap:2px;margin-left:-2px}.cable-look .core{display:block;width:18px;height:4px;border-radius:2px}.cable-look.three .core{height:3px}.cable-look.three .sheath{height:13px}.core.black{background:#232a31}.core.white{background:#f2eee0;border:1px solid #cfcabc}.core.red{background:#d0463b}.device-look{display:flex;align-items:center;justify-content:center;width:64px;height:44px;border-radius:8px;background:#efeade;box-shadow:inset 0 0 0 2px #d8d2c2;position:relative}.device-look.switch{width:40px;height:52px;border-radius:6px}.device-look.switch .rocker{width:22px;height:30px;border-radius:4px;background:#fff;box-shadow:inset 0 -3px #d8d2c2}.device-look.switch.pilot .rocker:after{content:"";position:absolute;left:50%;top:10px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#7ee3b6}.device-look.mounting-frame{width:34px;height:72px;color:#737b7d;background:#eef0ef;border:3px solid #8c9394;box-shadow:inset 0 0 0 5px #fff;font-size:0}.device-look.lamp{width:54px;height:54px;border-radius:50%;background:#3a3f44;box-shadow:none}.device-look.lamp .socket{width:22px;height:22px;border-radius:50%;background:#d7b35c;box-shadow:inset 0 0 0 5px #f0d68a}.device-look.rose{width:64px;height:40px;gap:14px}.device-look.rose i{width:9px;height:9px;border-radius:50%;background:#3a3f44}.stage{position:relative;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#10181d;min-height:0}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}.scene-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.scene-label{position:absolute;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;padding:3px 8px;border-radius:10px;font-size:12px;font-weight:700;color:#fff;background:#1d2a33b8;border:0;box-shadow:none}.scene-label.terminal{background:#1fb98ad9;color:#083b2c;width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px}.scene-label.wire{background:#ff9f43e6;color:#3b1f00}.scene-label.end{background:#ffffffd9;color:#1d2a33}.scene-tooltip{position:absolute;z-index:3;pointer-events:none;background:#1d2a33e6;color:#fff;font-size:12px;padding:4px 8px;border-radius:8px;white-space:nowrap}.mode{position:absolute;z-index:3;left:12px;top:12px;background:#ffffffd9;color:var(--ink);font-size:12px;font-weight:600;padding:6px 10px;border-radius:10px;pointer-events:none;box-shadow:var(--shadow);max-width:60%}.mode.holding{background:#ff9f43e6;color:#fff}.selection{position:absolute;z-index:4;left:12px;top:46px;display:flex;align-items:center;gap:8px;background:#fffe;border:2px solid var(--accent, #37d6a4);border-radius:14px;padding:6px 8px 6px 12px;box-shadow:var(--shadow);max-width:calc(100% - 24px);flex-wrap:wrap}.sel-name{font-size:13px;font-weight:700;white-space:nowrap}.sel-nudge{display:flex;gap:4px}.nudge{width:36px;height:36px;border-radius:10px;background:#eef3f6;box-shadow:none;font-size:16px;font-weight:700;padding:0}.nudge:disabled{opacity:.35}.sel-snap{height:36px;border-radius:10px;background:#eef3f6;box-shadow:none;font-size:12px;font-weight:700;padding:0 10px}.sel-snap.on{background:var(--accent, #37d6a4);color:#fff}.sel-close{width:36px;height:36px;border-radius:10px;background:transparent;box-shadow:none;font-size:16px;padding:0}.toast{position:absolute;z-index:4;left:50%;top:12px;transform:translate(-50%,-8px);background:#1d2a33e6;color:#fff;padding:9px 16px;border-radius:12px;font-size:14px;max-width:86%;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.toast.error{background:#b42323e6}.tool-ghost{position:fixed;z-index:50;transform:translate(-50%,-140%);background:#1d2a33e6;color:#fff;padding:10px 14px;border-radius:22px;font-size:15px;font-weight:700;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow)}.tool-ghost.ready{background:var(--accent);color:var(--accent-ink)}.actions{position:absolute;z-index:4;right:12px;bottom:12px;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.action{display:flex;align-items:center;gap:8px;min-height:54px;padding:6px 16px 6px 8px;border-radius:30px;font-size:15px;font-weight:600}.action-icon{width:38px;height:38px;border-radius:50%;background:#eef3f6;display:flex;align-items:center;justify-content:center;font-size:19px}.action.primary .action-icon{background:#ffffffb0}.dial{position:absolute;z-index:4;left:50%;bottom:12px;transform:translate(-50%);width:min(92%,420px);background:var(--panel);border-radius:18px;padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}.dial-head{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}.dial-head strong{font-size:30px}.dial-head small{font-size:14px;margin-left:3px;color:var(--muted)}.dial-row{display:flex;gap:6px;align-items:center}.dial-row button{min-height:44px;padding:8px 10px;flex:none;box-shadow:none;background:#eef3f6}.dial-row input[type=range]{flex:1;min-width:0;height:44px;accent-color:var(--accent)}.dial-row .big{flex:1}.dial-presets{display:flex;gap:6px;flex-wrap:wrap}.dial-presets button{box-shadow:none;background:#eef3f6;padding:6px 10px;font-size:13px}.dial-presets button.active{background:var(--accent);color:var(--accent-ink)}.bottom{background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-width:0}.tools{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0}.tools::-webkit-scrollbar{display:none}.tool{flex:none;width:82px;height:72px;border-radius:12px;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#f6f8fa;box-shadow:none;border:1px solid #dfe6ec;touch-action:none}.tool.active{outline:3px solid var(--accent);background:#e4fbf2}.tool-icon{font-size:22px;line-height:1;height:26px;display:flex;align-items:center}.tool-name{font-size:12px;font-weight:700;white-space:nowrap}.tool-sub{font-size:10px;color:var(--muted)}.mat-icon{display:block;width:24px;height:24px;border-radius:6px;background:#c8c8c0}.mat-icon.ring-small{border-radius:50%;width:18px;height:18px;border:4px solid #bdbdb3;background:transparent}.mat-icon.ring-medium{border-radius:50%;width:24px;height:24px;border:5px solid #bdbdb3;background:transparent}.mat-icon.connector2{background:#9fc4ee;width:18px}.mat-icon.connector3{background:#9fc4ee;width:26px}.status{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.status .todo{color:#b45309;font-weight:700}.status .done{color:var(--accent-ink);font-weight:700;background:#c7f5e4;padding:1px 8px;border-radius:10px}.lamp{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#d9d6cd;color:#5a5a5a;font-size:12px;font-weight:700}.lamp.on{background:#ffe27a;color:#5b4300;box-shadow:0 0 12px #ffd53a}.controls{display:flex;gap:6px}.ctrl{width:64px;height:72px;border-radius:12px;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:20px;box-shadow:none;background:#f6f8fa;border:1px solid #dfe6ec}.ctrl span{font-size:11px;font-weight:700}.ctrl.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0c223366;display:flex;align-items:flex-start;justify-content:center;padding:24px 10px 10px;overflow:auto}.menu-card{width:min(96vw,560px);background:#fff;border-radius:18px;padding:14px 16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;font-size:14px}.menu-head{display:flex;justify-content:space-between;align-items:center;font-size:16px}.menu-row{display:flex;gap:8px}.menu-row .big{flex:1}.menu-card details{border-top:1px solid #e3e8ec;padding-top:8px}.menu-card summary{cursor:pointer;font-weight:700;padding:6px 0}.menu-card h3{font-size:13px;color:var(--muted);margin:10px 0 4px}.menu-card ul{list-style:none;margin:0;padding:0}.menu-card li{display:flex;gap:8px;padding:3px 0;line-height:1.5}.menu-card li.ok span{color:var(--accent);font-weight:700}.menu-card li.ng span{color:#b45309;font-weight:700}.menu-card img{width:100%;height:auto;border-radius:8px;margin-top:8px;border:1px solid #e3e8ec}.menu-card table{border-collapse:collapse;width:100%;font-size:13px}.menu-card th,.menu-card td{border-bottom:1px solid #e3e8ec;padding:4px 6px;text-align:left}.howto li{display:list-item;list-style:disc;margin-left:18px}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.6}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0c2233cc;overflow:auto;padding:56px 12px 12px;display:flex;flex-direction:column;gap:12px;align-items:center}.lightbox img{max-width:min(96vw,900px);width:100%;height:auto;background:#fff;border-radius:10px}.lightbox-close{position:fixed;top:10px;right:10px}.finish{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0c223388;display:flex;align-items:center;justify-content:center}.finish-card{position:relative;z-index:2;background:#fff;border-radius:22px;padding:26px 30px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.finish-title{font-size:34px;font-weight:800;color:var(--accent-ink)}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-12px;width:10px;height:16px;border-radius:3px;animation:fall 2.8s linear infinite}@keyframes fall{0%{transform:translateY(-10vh) rotate(0)}to{transform:translateY(110vh) rotate(720deg)}}.graphics-error{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:60px 24px;color:#5b2b2b;line-height:2;background:#fff3f0}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto 84px;grid-template-areas:"left" "stage" "devices" "bottom";gap:6px;padding:6px 6px calc(6px + var(--safe-b))}.side-left{flex-direction:row}.diagram{height:auto;flex:none;flex-direction:row;align-items:center;gap:8px;padding:6px 8px}.diagram .panel-title{margin:0;writing-mode:vertical-rl}.diagram-note{display:none}.diagram-open{flex:none;height:64px;width:96px}.diagram-open img{object-fit:cover;object-position:center}.tray-cables{min-height:96px}.tray-cables .tray-items{flex-direction:row}.tray-cables .tray-item{width:auto;min-width:140px}.tray-devices .tray-items{flex-direction:row}.tray-item.device{width:auto;min-width:96px}.bottom{grid-template-columns:minmax(0,1fr) auto}.status{display:none}.tool{width:66px;height:64px}.ctrl{width:52px;height:64px;font-size:18px}.ctrl span{font-size:10px}}html,body,#app{height:100dvh}.layout{display:grid;padding:0;gap:0;grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) 76px;grid-template-areas:"header" "stage" "bottom"}.workbar{grid-area:header;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 14px;background:#182f38;color:#fff;z-index:8}.workbar strong{white-space:nowrap;font-size:17px}.workbar strong span{color:#8bdbcd;font-size:13px}.workbar nav{display:flex;gap:5px}.workbar button{background:#2b454f;color:#fff;box-shadow:none;min-height:38px;font-size:13px;padding:7px 13px;border-radius:8px}.stage{border-radius:0;box-shadow:none;background:#e6edeb}.bottom{position:relative;border-radius:0;box-shadow:0 -1px #cbd7d6;padding:7px 14px;gap:14px;grid-template-columns:minmax(0,1fr) auto auto;z-index:8;background:#f9fcfb}.tools{overflow:visible;gap:8px}.tool{width:68px;height:60px;border-radius:10px;touch-action:none}.tool.active{outline:2px solid #1a8b76;outline-offset:-2px;background:#d6f4e9}.tool-icon{font-size:22px;height:26px}.ctrl{width:54px;height:56px}.controls{gap:6px}.status{font-size:12px;color:#6b7a85}.material-palette{display:none;position:absolute;left:12px;bottom:82px;gap:8px;padding:10px;background:#fff;border:1px solid #bed1ca;border-radius:16px;box-shadow:0 12px 30px #09292235}.materials-open .material-palette{display:flex}.material-palette .tool{width:94px;height:72px}.side-left,.tray-devices{display:none;position:absolute;left:12px;top:110px;width:240px;bottom:90px;z-index:7;border-radius:0 0 14px 14px;box-shadow:0 8px 26px #122f3640;background:#fff}.side-left .diagram{display:none}.tray-cables{height:100%;flex:1;box-shadow:none;border-radius:0 0 14px 14px}.tray-tabs{display:none;position:absolute;left:12px;top:62px;width:240px;height:48px;z-index:7;padding:4px;gap:3px;background:#fff;border-radius:12px 12px 0 0}.tray-tabs button{box-shadow:none;font-size:12px;padding:6px 9px;flex:1}.tray-tabs button:last-child{flex:none}.tray-open .tray-tabs,.tray-open[data-tray=cables] .side-left,.tray-open[data-tray=devices] .tray-devices{display:flex}.tray-cables .tray-items,.tray-devices .tray-items{flex-direction:column}.tray-item,.tray-item.device{width:100%;min-width:0;touch-action:pan-y}.tray-item{padding:10px}.tray-item .cable-look,.tray-item .device-look{touch-action:none}.mode{position:absolute;top:9px;left:50%;transform:translate(-50%);max-width:calc(100% - 28px);border-radius:20px;padding:8px 14px;font-size:12px;font-weight:500;background:#f7fcf1eb;color:#314c46;pointer-events:none;box-shadow:0 1px 5px #17342615;white-space:normal;text-align:center}.selection{top:auto;bottom:8px;left:10px;right:auto;max-width:calc(100% - 20px);padding:6px 10px;background:#f9fcfbef;border:1px solid #cad9d2;box-shadow:none;gap:8px}.sel-name{font-size:12px;max-width:220px}.sel-nudge{display:none}.actions{bottom:56px;left:10px;right:auto;max-width:calc(100% - 20px);justify-content:flex-start;flex-direction:row;align-items:center;flex-wrap:wrap;gap:5px}.action{min-height:36px;font-size:12px;padding:6px 10px;border-radius:8px;background:#fafff5e8;box-shadow:0 1px 6px #123c2522}.action-icon{font-size:15px}.action:disabled{background:#fff9df;color:#665424;opacity:.95}.scene-label{background:#26483fdd;color:#fff;padding:2px 5px;font-size:11px;font-weight:600;box-shadow:none;border-radius:5px}.scene-label.end{font-size:11px;min-width:18px;background:#edf5ede6;color:#354b44;border:1px solid #9caca5}.action-icon{width:auto;height:auto;background:none;padding:0;border-radius:0}.action:disabled .action-icon:empty{display:none}.dial{top:12px;bottom:auto;right:12px;left:auto;transform:none;width:350px;max-width:calc(100% - 24px);padding:14px;box-shadow:0 8px 24px #112f3640}.dimension-input{width:104px;background:#f0f6f3;border:1px solid #bdcec7;border-radius:8px;padding:6px;font-size:25px;font-weight:700;color:#183d32}.dial-head label{display:flex;align-items:center;gap:5px}.dial-row .primary{background:#1fb98a}.toast{top:auto;bottom:108px;left:50%;transform:translate(-50%);max-width:calc(100% - 24px);font-size:12px;pointer-events:none}.tool-ghost{position:fixed;z-index:50;transform:translate(-50%,-140%);pointer-events:none}.scene-label.joint{pointer-events:auto;cursor:pointer;width:38px;height:38px;border-radius:50%;border:2px solid #64857b;background:#f7fcf6;color:#285547;font-size:17px}.scene-label.device{pointer-events:auto;cursor:pointer;min-height:30px;padding:4px 7px;background:#eaf4ef;color:#294c42;border:1px solid #8faaa1}.inspector .source-notice{background:#ffedc9;color:#714a14;padding:7px;border-radius:6px}.inspector-head{position:sticky;top:-10px;background:#f9fcf9;padding:5px 0;z-index:1}@media(max-width:360px){.workbar strong{display:none}}.inspector{position:absolute;right:12px;bottom:10px;width:264px;max-height:65%;overflow:auto;background:#f9fcf9f5;border:1px solid #bcd0c6;border-radius:12px;padding:10px;z-index:5;box-shadow:0 4px 14px #153b3322}.inspector-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:13px}.inspector-head-buttons{display:flex;gap:4px;flex:none}.inspector-fold{display:none;align-items:center;font-size:12px}.inspector-head button{box-shadow:none;padding:4px 8px;min-height:32px}.inspector p{font-size:11px;margin:5px 0 9px;color:#63796f;line-height:1.5}.wire-row{margin-bottom:9px;border-top:1px solid #dce6df;padding-top:6px}.wire-row>span{display:block;font-size:11px;font-weight:600;margin-bottom:4px}.sheath-action{font-size:11px;padding:4px 8px;min-height:32px;box-shadow:none;border:1px solid #c6d7ce;margin-bottom:4px}.wire-buttons{display:flex;gap:4px}.wire-choice{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 4px;min-height:44px;font-size:12px;box-shadow:none;border:1px solid #c4d6cb}.wire-choice i{width:6px;height:24px;border-radius:3px;background:#282f33}.wire-choice.white i{background:#fff;border:1px solid #909a92}.wire-choice.red i{background:#c84c40}.wire-choice small{font-size:9px}.wire-choice.selected{background:#ffe3b8;border-color:#d9801c;outline:2px solid #e4a95b}.terminal-choice{width:100%;min-height:44px;margin:3px 0;box-shadow:none;border:1px solid #b5cfc1;font-size:13px}.terminal-choice small{color:#768a7d}#guide table{border-collapse:collapse;font-size:12px;width:100%}#guide td{padding:8px 5px;border-bottom:1px solid #dce5dd}#guide td:first-child{font-weight:600}@media(max-width:650px){.inspector{right:8px;bottom:94px;width:236px;max-height:42%;padding:8px}.inspector-fold{display:inline-flex}.inspector.folded{padding:4px 8px;top:48px;bottom:auto}.inspector.folded>:not(.inspector-head){display:none}.inspector.folded .inspector-head{position:static;padding:0}.inspector p{margin:4px 0}.wire-row{margin-bottom:5px}.wire-choice{min-height:40px}.wire-row>span{font-size:10px}}@media(max-height:500px){.inspector{right:8px;bottom:8px;max-height:78%;width:230px}}@media(max-width:900px){.layout{grid-template-rows:48px minmax(0,1fr) calc(74px + env(safe-area-inset-bottom))}.workbar{padding:5px 8px;gap:4px}.workbar strong{font-size:14px}.workbar nav{gap:3px}.workbar button{padding:7px 9px;min-height:38px}.bottom{padding:6px 8px calc(6px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto;gap:6px}.status{display:none}.tools{gap:4px}.tool{width:58px;height:58px}.ctrl{width:46px;height:56px}.side-left{flex-direction:column}.tray-cables{min-height:0}.mode{font-size:11px;padding:6px 10px}}@media(max-width:540px){.workbar strong{font-size:12px}.workbar strong span{display:none}.workbar nav{flex:1;justify-content:flex-end}.workbar button{padding:6px 8px;font-size:12px}.workbar [data-action=zoom-in],.workbar [data-action=zoom-out]{display:none}.tools{flex:1}.tool{width:49px}.tool-name{font-size:11px}.ctrl{width:40px}.controls{gap:2px}.ctrl span{font-size:10px}.selection{max-width:calc(100% - 16px);bottom:8px;left:8px}.sel-name{max-width:165px;font-size:11px}.sel-snap{font-size:10px}.actions{bottom:52px;left:8px;gap:4px}.action{min-height:36px;font-size:11px;padding:6px 8px}.dial{width:calc(100% - 20px);max-width:none;right:10px;top:auto;bottom:8px}.material-palette{bottom:80px;left:8px}.material-palette .tool{width:90px}.mode{top:6px;width:max-content;max-width:calc(100% - 16px)}}@media(max-height:500px)and (min-width:541px){.layout{grid-template-rows:42px minmax(0,1fr) 60px}.workbar{padding:3px 10px}.workbar button{min-height:34px}.bottom{padding:3px 10px}.tool,.ctrl{height:52px}.mode{top:5px;padding:4px 10px}.actions{bottom:45px}.selection{padding:3px 8px;bottom:4px}.dial{width:340px;top:6px;max-height:calc(100% - 12px);overflow:auto}.dial-row{gap:3px}.dial-row button{min-height:36px}.dial-presets button{padding:4px 8px}.side-left,.tray-devices{top:94px;bottom:66px}.tray-tabs{top:48px}}#work-room{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#f2f3ed}#work-room[hidden],#demo-player[hidden]{display:none}.room-shell{height:100%;display:flex;flex-direction:column;color:#203f47}.room-head{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#19343e;color:#fff;gap:12px}.room-head h2{margin:3px 0;font-size:22px}.room-head small{color:#bbd8d8}.room-nav{display:flex;gap:8px;padding:8px 24px;flex-wrap:wrap;border-bottom:1px solid #cdd9d5}.room-shell button,#demo-player button{min-height:44px;border:1px solid #b7ccc5;border-radius:9px;padding:8px 12px;background:#fff;color:#183b45;cursor:pointer}.room-shell button:disabled{cursor:default;opacity:.55}.room-shell button:focus-visible{outline:3px solid #e18b29;outline-offset:2px}.room-body{flex:1;min-height:0;overflow:auto;padding:12px 24px 28px}.room-help{font-size:14px;margin:0 0 14px}.room-empty{padding:24px;background:#fff}.joint-work{display:grid;grid-template-columns:minmax(0,1fr) 260px minmax(0,1fr);gap:18px;align-items:start}.wire-bank,.rear-wires{display:grid;gap:9px}.straight-wire{display:flex;flex-direction:column;width:100%;text-align:left;gap:9px;min-width:0}.wire-origin{font-size:13px;overflow-wrap:anywhere}.wire-origin small{display:block;color:#607473;font-size:11px;margin-top:3px}.straight-insulation{display:block;width:calc(100% - 14px);height:10px;background:#253239;border:1px solid #596567;border-radius:4px 0 0 4px;position:relative;margin-bottom:5px}.straight-insulation i{position:absolute;left:100%;top:1px;height:6px;width:16px;background:#c78b47;border-radius:0 3px 3px 0}.white .straight-insulation{background:#fffdf2}.red .straight-insulation{background:#cf4943}.right-bank .straight-wire{text-align:right}.right-bank .straight-insulation{margin-left:14px;border-radius:0 4px 4px 0}.right-bank .straight-insulation i{left:auto;right:100%;border-radius:3px 0 0 3px}.straight-wire.chosen{background:#fff0cf;border:2px solid #dc8c2c}.straight-wire.wired{opacity:.65;background:#e2ece5}.bundle-zone{background:#e0e9e4;border:1px dashed #6b9386;border-radius:16px;padding:14px;position:sticky;top:0}.bundle-zone h3{margin:0 0 12px}.bundle-preview{min-height:60px}.bundle-core{display:block;border-left:8px solid #26343c;background:#fff;padding:5px;margin:4px 0;font-size:12px}.bundle-core.white{border-color:#c8c7b9}.bundle-core.red{border-color:#c84c43}.room-materials,.room-crimp{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.room-materials small{display:block}.room-materials button[aria-pressed=true]{background:#214e49;color:#fff}.completed-bundles{margin-top:22px}.completed-bundle{display:flex;align-items:center;gap:12px;padding:10px;background:#fff;margin-bottom:6px;border-radius:8px}.completed-bundle span{flex:1;font-size:13px}.rear-work{display:grid;grid-template-columns:minmax(240px,1fr) minmax(280px,1fr);gap:30px;max-width:1000px;margin:auto}.rear-frame{padding:12px 22px;background:#ced1ca;border:8px ridge #adb5af;border-radius:12px}.rear-frame>p{text-align:center}.frame-screw{text-align:center;font-size:24px;color:#65726e}.rear-device{background:#fcfaf0;padding:12px;border:2px solid #b5b4a9;margin:10px 0;border-radius:8px}.rear-device h3{margin:0 0 8px}.rear-terminal{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 0;border-top:1px solid #d9d9cd}.holes{display:flex;gap:8px}.room-shell .hole{border:3px solid #67726c;border-radius:50%;width:46px;font-size:22px;padding:0}.hole.black{background:#27333b;color:#fff}.hole.white{background:#fff}.connected-lead{width:100%;display:flex;align-items:center;justify-content:space-between;border-left:6px solid #27333b;padding-left:7px;font-size:12px}.connected-lead.white{border-color:#b9b8ab}.room-source{background:#fff1d2;padding:8px}#demo-player{position:fixed;bottom:0;left:0;right:0;z-index:200;background:#17363f;color:#fff;padding:14px 24px;display:flex;gap:20px;align-items:center;box-shadow:0 -3px 18px #0003}#demo-player>div{flex:1}#demo-player strong{display:block;margin-top:4px}#demo-player p{margin:5px 0;font-size:13px}#demo-player nav{display:flex;gap:7px}.demonstrating #work-room{bottom:140px}#toast{position:fixed;z-index:300;top:65px;bottom:auto;pointer-events:none}.rear-wires{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.demo-seek{font-size:12px}.demo-seek input{width:65px;height:32px;margin-left:8px;padding:4px;border-radius:5px}.demonstrating #inspector,.demonstrating #selection,.demonstrating #actions,.demonstrating #mode{display:none}.demonstrating #work-room{bottom:var(--demo-height, 180px)!important}.demonstrating .layout{height:calc(100dvh - var(--demo-height, 180px))!important}.demonstrating .layout{height:calc(100dvh - 140px)}@media(max-width:700px){.rear-wires{max-height:190px;overflow:auto;position:sticky;top:0;z-index:2;background:#f2f3ed;padding:4px;border-bottom:3px solid #a8c2b7}.demonstrating .layout{height:calc(100dvh - 175px)}}@media(max-width:700px){.workbar{overflow-x:auto}.workbar nav{flex-shrink:0}.workbar strong{display:none}.room-head{padding:10px 12px}.room-head h2{font-size:18px}.room-nav{padding:6px 10px;gap:4px}.room-nav button{padding:6px 8px}.room-body{padding:10px}.joint-work{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.left-bank{grid-column:1;grid-row:1}.right-bank{grid-column:2;grid-row:1}.bundle-zone{grid-column:1/-1;grid-row:2;position:static}.wire-origin{font-size:12px}.completed-bundle{flex-wrap:wrap}.completed-bundle span{flex-basis:100%}.rear-work{grid-template-columns:1fr;gap:16px}.rear-wires{grid-template-columns:1fr 1fr}.rear-frame{padding:10px}#demo-player{padding:10px;display:block}#demo-player nav{justify-content:center}#demo-player p{max-height:42px;overflow:auto}.demonstrating #work-room{bottom:175px}}.direction-board{width:calc(100% - 290px);float:left;display:grid;grid-template-columns:minmax(100px,1fr) minmax(190px,1.35fr) minmax(100px,1fr);grid-template-rows:170px 150px 170px;gap:8px;padding:8px;background:#e8e7d9;border-radius:18px}.direction-group{min-width:0;text-align:center}.direction-group h3{font-size:14px;margin:0 0 5px}.direction-group h3 small{display:block;font-size:12px}.direction-group.top{grid-area:1/2}.direction-group.left{grid-area:2/1}.direction-group.right{grid-area:2/3}.direction-group.bottom{grid-area:3/2}.direction-cables{display:flex;justify-content:center;gap:8px}.direction-cable{min-width:0;flex:1}.room-shell .flip-cable{min-height:32px;padding:3px 8px;font-size:12px;margin-bottom:4px}.lanes{display:flex;gap:4px;justify-content:center}.room-shell .lane-wire{border:1px solid transparent;background:transparent;box-shadow:none;display:flex;align-items:center;justify-content:center;padding:3px;gap:7px;min-width:44px;min-height:44px;flex:1}.lane-color{font-size:12px;white-space:nowrap}.lane-core{position:relative;display:block;background:#26333a;border:1px solid #626e71;width:11px;height:65px;border-radius:4px}.lane-core i{display:block;position:absolute;background:#c58645;width:7px;height:12px;left:1px;bottom:-11px}.white .lane-core{background:#fffef4}.red .lane-core{background:#cc473e}.top .lane-wire,.bottom .lane-wire{flex-direction:column}.bottom .lane-wire{flex-direction:column-reverse}.bottom .lane-core i{top:-11px;bottom:auto}.bottom .direction-cable{display:flex;flex-direction:column-reverse}.bottom .direction-group h3{order:2}.left .lanes,.right .lanes{flex-direction:column}.left .lane-core,.right .lane-core{height:11px;width:100%}.left .lane-core i{left:auto;right:-11px;top:1px;height:7px;width:12px}.right .lane-wire{flex-direction:row-reverse}.right .lane-core i{left:-11px;top:1px;height:7px;width:12px}.room-shell .lane-wire.chosen{border-color:#dc9127;background:#ffdf94}.room-shell .lane-wire.wired{opacity:.7}.joint-center{grid-area:2/2;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#cedbd3;border:2px dashed #779589;border-radius:50%;margin:8px}.joint-center strong{font-size:30px}.joint-center span{font-size:13px}.joint-controls{margin-left:calc(100% - 276px)}.completed-bundles{clear:both;padding-top:16px}.frame-pair{display:grid;grid-template-columns:85px minmax(0,1fr);gap:10px;align-items:start}.front-reference{position:sticky;top:0;background:#f8f7ee;border:3px ridge #c5c9c0;padding:6px;border-radius:9px;text-align:center}.front-reference h3{font-size:14px}.front-reference small{font-size:10px}.room-shell .front-rocker{width:100%;margin:7px 0;min-height:70px;border:3px outset #eee;font-size:22px}.front-rocker.active,.rear-device.active{outline:3px solid #e5a237;outline-offset:1px}.clear-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:grid;place-items:center;background:#13282b99;padding:20px}.clear-dialog[hidden]{display:none}.clear-dialog section{max-width:480px;background:#fff;padding:24px;border-radius:16px}.clear-dialog button,.practice-clear button{min-height:44px;margin:5px;padding:8px 12px}.demo-speed{margin-left:12px;font-size:13px}.demo-speed select{min-height:36px;border-radius:6px;padding:5px}#demo-player nav{flex-wrap:wrap}#demo-player.collapsed{width:auto;left:auto;padding:6px;border-radius:12px 0 0}#demo-player.collapsed>div{display:none}#demo-player.collapsed [data-step=previous],#demo-player.collapsed [data-step=next],#demo-player.collapsed [data-step=exit]{display:none}@media(max-width:900px){.direction-board{width:100%;float:none}.joint-controls{margin:12px 0 0}.joint-controls .bundle-zone{position:static}.joint-controls .bundle-preview{min-height:0}.frame-pair{grid-template-columns:65px minmax(0,1fr);gap:7px}.rear-frame{padding:8px;border-width:4px}.rear-device{padding:8px}}@media(max-width:450px){.direction-board{grid-template-columns:minmax(75px,1fr) minmax(170px,1.8fr) minmax(75px,1fr);gap:2px;padding:4px;grid-template-rows:170px 185px 170px}.direction-group h3{font-size:12px}.room-shell .lane-wire{min-width:38px;padding:1px;gap:2px}.direction-cables{gap:3px}.left .lane-wire,.right .lane-wire{min-height:44px}.room-body:has(.direction-board){padding:6px}#demo-player nav{gap:4px}#demo-player nav button{padding:6px 9px}}.direction-group.bottom{display:block;padding:0;background:transparent;box-shadow:none;z-index:auto}.direction-board{position:relative}.connections-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.joint-center{color:#426157}.joint-center strong{opacity:.25}.joint-center span{align-self:center;margin-top:40px}.direction-group h3,.flip-cable,.lane-color{position:relative;z-index:1}@media(max-width:700px){.direction-board{grid-template-rows:140px 145px 140px}.lane-core{height:44px}.joint-controls{position:sticky;bottom:0;z-index:12;margin-top:8px}.joint-controls .bundle-zone{padding:8px;border-style:solid;box-shadow:0 -4px 12px #19372d22;display:grid;grid-template-columns:1fr auto;gap:4px}.joint-controls .bundle-zone h3{font-size:14px;margin:0;grid-column:1;align-self:center}.joint-controls .bundle-preview{display:none}.joint-controls .room-materials{grid-column:1/-1;grid-row:2;margin:0}.joint-controls .room-materials button{flex:1;padding:4px;font-size:12px}.joint-controls .room-materials small{display:inline;margin-left:3px}.joint-controls .room-crimp{grid-column:1/-1;grid-row:3;margin:0}.joint-controls .room-crimp button{flex:1;padding:5px}.joint-controls .bundle-zone>button{grid-column:2;grid-row:1;min-height:32px;padding:3px 8px;font-size:12px}}.demonstrating .room-materials,.demonstrating .room-crimp,.demonstrating .bundle-zone>button{display:none}.overlap-picker{position:absolute;z-index:35;left:12px;top:50px;display:flex;flex-wrap:wrap;gap:6px;max-width:min(420px,calc(100% - 24px));max-height:45%;overflow:auto;padding:12px;background:#fffef4f5;border:2px solid #d89a42;border-radius:12px;box-shadow:0 4px 20px #0003}.overlap-picker strong{width:100%;font-size:13px}.overlap-picker button{min-height:44px;padding:8px;border-radius:8px;border:1px solid #adbbb2;background:#fff}.petal-node{pointer-events:all;cursor:pointer}.petal-node:focus{outline:none}.petal-node:focus circle{stroke:#e26e17;stroke-width:4}.joint-trace{font-size:13px;background:#eef3da;padding:9px;margin:0 0 10px calc(100% - 276px);border-radius:8px}.scene-label.wire.bundle-label{pointer-events:auto;cursor:pointer;background:#fffdf0e8;color:#29473e;border:1px solid #a0aca1;font-size:10px;padding:2px 4px;min-height:24px}.material-icon{display:inline-block;width:30px;height:28px;vertical-align:middle;flex-shrink:0;margin-right:3px}.room-materials .material-icon{display:block;margin:auto;height:25px}.scene-label.wire.bundle-label{white-space:pre;line-height:1.2;font-size:10px;padding:3px 5px;text-align:center;max-width:none}.label-guides{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.label-guides line{stroke:#758e80;stroke-width:1}.layout{min-width:0;grid-template-rows:auto minmax(0,1fr) auto}.stage,.workbar,.workbar nav,.bottom,.room-shell,.room-body{min-width:0;max-width:100%}.workbar nav{flex-wrap:wrap;justify-content:flex-end}.workbar{min-height:52px}.rear-simple{width:min(100%,350px)}.rear-direct-assembly{grid-template-columns:44px minmax(0,190px) 80px;gap:8px}.direct-back{padding:6px}.direct-switch{padding:4px}.direct-terminals{gap:3px}.direct-terminals>div{min-width:0}.direct-terminals small{font-size:10px}.room-shell .direct-back .hole{width:36px;height:44px;min-height:44px;font-size:18px}.jumper-select .jumper-u{display:block;width:34px;height:25px;border-width:5px;margin:8px auto}#demo-player{display:block;max-height:48dvh;overflow:auto;padding:8px 14px}.demo-content{display:flex;align-items:center;gap:16px}.demo-content>div{flex:1;min-width:0}.demo-timeline{display:flex;align-items:center;gap:10px;font-size:12px}.demo-timeline input{flex:1;min-width:0;height:32px;accent-color:#7bdec6;touch-action:pan-y}.demo-timeline output{min-width:55px}#demo-player.collapsed{width:min(100%,380px)}.collapsed .demo-content>div{display:none}.collapsed .demo-content nav{width:100%;justify-content:flex-end}.collapsed .demo-timeline{display:flex}@media(max-width:900px){.workbar strong{display:none}.workbar nav{width:100%;justify-content:center}.workbar{overflow:visible}.demo-content{display:block}.demo-content nav{justify-content:center}}@media(max-width:540px){.workbar nav{flex-wrap:wrap}.workbar button{flex:1 0 auto;min-height:36px;padding:5px 7px}.bottom{gap:4px;padding-left:5px;padding-right:5px}.tools{gap:2px}.tool{width:44px}.ctrl{width:35px}.controls{gap:1px}.direction-board{grid-template-columns:minmax(0,1fr) minmax(144px,1.8fr) minmax(0,1fr)}.direction-group{min-width:0}.room-shell .lane-wire{min-width:32px}.rear-direct-assembly{grid-template-columns:36px minmax(0,1fr) 66px;gap:5px}.rear-simple{max-width:304px}.direct-back{padding:4px}.incoming-cores{gap:5px}.room-shell .rear-core{min-width:48px}.demo-timeline{gap:5px}}.direction-board{grid-template-rows:170px 220px 170px}.joint-center{border-radius:50%}.joint-center span{display:none}.rear-simple{max-width:760px;margin:auto}.incoming-rack{text-align:center}.incoming-rack h3,.jumper-rack h3,.direct-back>h3{font-size:14px;margin:5px 0 10px}.incoming-cores{display:flex;justify-content:center;gap:14px}.room-shell .rear-core{display:flex;align-items:center;flex-direction:column;min-width:54px;min-height:80px;background:transparent;border:2px solid transparent;box-shadow:none;padding:4px;gap:7px}.rear-core span{font-size:12px}.rear-core i{display:block;position:relative;width:11px;height:42px;border:1px solid #596b62;border-radius:4px;background:#24333b}.rear-core i:after{content:"";position:absolute;left:1px;bottom:-10px;height:11px;width:7px;background:#c38745}.rear-core.white i{background:#fffdf2}.room-shell .rear-core.chosen{background:#ffe4a5;border-color:#e29b36}.room-shell .rear-core.wired{opacity:.65}.rear-instruction{padding:7px;background:#fff0c9;text-align:center;font-size:13px}.rear-direct-assembly{display:grid;grid-template-columns:70px minmax(0,1fr) 120px;gap:12px;align-items:start}.direct-back{border:5px ridge #b7bdb4;border-radius:10px;padding:10px;background:#d4d8cb}.direct-switch{padding:9px;margin:8px 0;background:#fffef0;border:1px solid #a6b0a0;border-radius:7px}.direct-switch.active{outline:2px solid #dba341}.direct-switch>strong{display:block;text-align:center;margin-bottom:5px}.direct-terminals{display:flex;justify-content:space-between;gap:6px}.direct-terminals small{display:block;margin-bottom:3px;font-size:11px}.direct-back .holes{display:flex;flex-direction:column;gap:5px;align-items:center}.room-shell .direct-back .hole{width:44px;height:44px;min-height:44px;border:3px solid #758377;padding:0;font-size:23px}.hole.white{color:#91886d}.jumper-rack{text-align:center}.jumper-piece{margin:16px 0}.jumper-ends{display:flex;gap:4px;justify-content:center}.jumper-ends .rear-core{min-width:44px;padding:0}.jumper-ends .rear-core i{height:32px}.jumper-u{height:28px;width:64px;margin:-4px auto 10px;border:7px solid #27343c;border-top:0;border-radius:0 0 24px 24px}.rear-note{font-size:11px;color:#60736a}.spare-cores{margin-top:14px}.spare-cores>div{display:flex;flex-wrap:wrap}.rear-direct-assembly .front-reference{position:sticky;top:0;padding:4px}.rear-direct-assembly .front-rocker{margin:10px 0;height:86px;min-height:86px}@media(max-width:900px){.joint-trace{margin:8px 0}}@media(max-width:700px){.direction-board{grid-template-rows:140px 190px 140px}.rear-direct-assembly{grid-template-columns:44px minmax(0,1fr) 82px;gap:5px}.direct-back{padding:5px;border-width:3px}.direct-switch{padding:5px}.room-shell .direct-back .hole{width:36px;height:44px;min-height:44px}.direct-back .holes{gap:3px}.rear-direct-assembly .front-rocker{height:93px;min-height:93px;padding:0}.jumper-ends .rear-core{min-width:36px}.jumper-u{width:50px}.incoming-cores{gap:10px}.room-body:has(.rear-simple){padding:8px}.room-shell:has(.rear-simple) .room-help{font-size:12px}.direct-back>h3{font-size:12px}}.rear-simple{position:relative}.rear-routing{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.rear-simple .rear-core.wired i:after{display:none}.incoming-rack h3{margin:2px 0 5px}.room-shell .incoming-cores .rear-core{min-height:66px}.incoming-cores .rear-core i{height:32px}.rear-instruction{margin:8px 0}.direct-switch{margin:6px 0;padding:6px}.direct-switch>strong{margin-bottom:0}.direct-back>h3{margin:0 0 5px}.rear-direct-assembly .front-rocker{height:77px;min-height:77px}.rear-simple .hole{position:relative;z-index:1}.current-flow{position:absolute;top:8px;left:50%;transform:translate(-50%);max-width:calc(100% - 24px);width:max-content;padding:6px 10px;border-radius:8px;background:#fffef0ee;color:#263b46;font-size:12px;line-height:1.5;white-space:pre-line;pointer-events:none;z-index:5;text-align:center}.stage:has(.current-flow:not([hidden])) .mode{display:none}#demo-player [data-step=practice]{background:#166553;color:#fff;font-weight:700}.current-rear-view{position:absolute;right:10px;bottom:10px;width:auto;height:min(65%,400px);max-width:40%;pointer-events:none;z-index:4;box-shadow:0 3px 12px #1235;border-radius:12px}.current-rear-view[hidden]{display:none}@media(max-width:600px){.current-rear-view{right:6px;bottom:6px;height:min(48%,300px);max-width:44%}}.has-current-rear #scene{width:calc(100% - 320px)}@media(max-width:600px){.has-current-rear #scene{width:100%;height:calc(100% - 220px)}.current-rear-view{height:210px;max-width:none;right:calc(50% - 79px)}}.flow-check-controls{width:100%;text-align:center;padding:4px}.flow-switches{display:flex;gap:6px;justify-content:center}.flow-switches button{flex:1;max-width:180px;min-height:54px;padding:6px}.flow-switches button[aria-pressed=true]{background:#fff1aa;border:2px solid #cc921c}.flow-switches small{display:block;font-size:11px}.flow-check-controls>small{display:block;margin-top:4px;font-size:11px}.mobile-overlay-priority{z-index:20}@media(max-width:900px){.selection,.actions,.dial,.overlap-picker{z-index:20}.bottom{z-index:8}}.core.green{background:#29a64c}.workbar .exam-picker{padding:4px 9px;color:inherit;font:inherit;border:1px solid currentColor;border-radius:8px;background:transparent;cursor:pointer}.room-workspace{display:grid;grid-template-columns:240px minmax(0,1fr);flex:1;min-height:0}.room-overview{padding:12px;background:#e1e8e3;border-right:1px solid #bacac2;overflow:auto}.room-overview svg{display:block;width:100%;max-height:40vh}.room-overview p{font-size:12px;line-height:1.4;margin:5px 0;overflow-wrap:anywhere}.overview-map{display:contents}.room-overview .room-nav{padding:8px 0 0;border:0;gap:4px}.room-shell .room-overview .room-nav button{min-height:44px;padding:5px 8px;font-size:12px}.room-reset{position:relative}.room-reset summary,.rear-details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;padding:4px 8px;font-size:12px;border-radius:8px}.room-reset summary{border:1px solid #b7ccc5;background:#fff}.room-reset[open]>div{position:absolute;z-index:5;top:100%;right:0;padding:8px;width:180px;background:#fff;border:1px solid #b7ccc5;box-shadow:0 5px 20px #152c3033;border-radius:8px}.room-reset[open]>div button{display:block;width:100%;margin:4px 0}.room-shell:has(.rear-simple) .room-help{display:none}.room-shell:has(.rear-simple) .room-head{padding:6px 12px;min-height:56px}.room-shell:has(.rear-simple) .room-head small{display:none}.room-shell:has(.rear-simple) .room-head h2{font-size:18px}.room-shell:has(.rear-simple) .room-head button{flex-shrink:0;padding:6px 10px}.room-body:has(.rear-simple){padding:6px 12px}.room-body:has(.rear-simple) .room-empty{margin:0 0 4px;padding:6px;font-size:12px;line-height:1.4}.rear-simple{width:100%;max-width:430px;position:relative;margin:auto}.incoming-rack h3{margin:0;font-size:12px}.incoming-cores{gap:8px}.room-shell .incoming-cores .rear-core{min-width:52px;min-height:48px;padding:2px;gap:2px}.incoming-cores .rear-core i{height:18px;width:10px}.rear-instruction{margin:4px 0;min-height:44px;padding:3px 7px;display:flex;align-items:center;justify-content:center;gap:4px;background:#fff0cf;border-radius:7px;font-size:12px}.rear-instruction>span{min-width:0;overflow-wrap:anywhere}.room-shell .rear-instruction button{min-height:38px;padding:4px 8px;flex-shrink:0;font-size:12px}.rear-direct-assembly{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(64px,82px);gap:6px;align-items:start}.rear-direct-assembly .front-reference{position:static;padding:2px;border:2px ridge #c5c9c0}.front-reference h3,.direct-back>h3,.jumper-rack h3{font-size:12px;line-height:16px;margin:0 0 4px}.rear-direct-assembly .front-rocker{height:106px;min-height:106px;margin:2px 0;padding:0;font-size:18px;border-radius:5px;background:linear-gradient(#fffef7,#e4e0d5)}.direct-back{padding:2px 4px;border:2px ridge #b6bdb8;border-radius:7px;background:linear-gradient(110deg,#a5aba5,#e0e4db 40%,#b3bab1)}.direct-switch{position:relative;margin:2px 0;padding:2px 4px;border-radius:5px;background:linear-gradient(105deg,#f4f0df,#fffdf0 48%,#dfdecd)}.direct-switch>strong{position:absolute;top:42%;left:50%;transform:translate(-50%);font-size:13px;pointer-events:none}.direct-terminals{gap:8px;justify-content:space-between}.direct-terminals>div{min-width:44px}.direct-terminals small{font-size:10px;line-height:12px;margin:0;text-align:center;white-space:nowrap}.direct-back .holes{gap:2px}.room-shell .direct-back .hole{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;display:grid;place-items:center;opacity:1}.hole>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:3px solid #737b70;background:radial-gradient(circle at 45% 35%,#465249,#18201b);color:#b7bcae;box-shadow:inset 1px 2px 3px #0008,0 1px 1px #fff;font-size:18px}.hole.black>span{color:#20282b;background:#3b4447;border-color:#899289}.hole.white>span{color:#fffdf1;background:#e2e3d9}.hole.red>span{color:#cb4b3c;background:#b85847}.hole:disabled>span{opacity:.5}.hole.ready{box-shadow:inset 0 0 0 2px #24876b}.hole.blocked{box-shadow:inset 0 0 0 2px #c36548}.hole.inspected{box-shadow:inset 0 0 0 3px #d89021;background:#ffe4a5!important}.jumper-rack{min-width:0;overflow-wrap:anywhere}.jumper-rack>small{display:block;font-size:11px}.jumper-piece{margin:10px 0}.jumper-select{width:100%;padding:6px 2px!important;font-size:12px}.jumper-select small{display:block}.jumper-select .jumper-u{display:block;width:32px;height:24px;border-width:5px;margin:6px auto}.rear-note{font-size:12px;line-height:1.5}.spare-cores{margin:0}.rear-details{position:relative;z-index:2}.rear-details>summary{color:#53665c}.rear-routing{z-index:0}.rear-simple .rear-core,.rear-simple .jumper-select,.rear-instruction{position:relative;z-index:1}.scene-label.wire.bundle-label{white-space:pre;max-width:none;font-size:10px}.scene-tooltip{max-width:260px;white-space:normal}@media(max-width:760px){.room-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:100px minmax(0,1fr)}.room-overview{display:grid;grid-template-columns:100px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:1px 8px;padding:3px 8px;border-right:0;border-bottom:1px solid #bacac2;overflow:visible;z-index:3}.room-overview svg{grid-column:1;grid-row:1/4;width:100px;height:92px}.room-overview strong,.room-overview p{grid-column:2;font-size:11px;line-height:1.25;margin:0;min-width:0}.room-overview p{max-height:28px;overflow:auto}.room-overview .room-nav{grid-column:2;grid-row:3;padding:0;gap:4px;flex-wrap:nowrap}.room-reset{margin-left:auto}.room-shell:has(.rear-simple) .room-workspace{grid-template-rows:94px minmax(0,1fr)}.room-shell:has(.rear-simple) .room-overview svg{height:86px}.room-shell:has(.rear-simple) .room-head h2{font-size:16px}.rear-direct-assembly{grid-template-columns:44px minmax(0,1fr) 66px;gap:4px}.room-body:has(.rear-simple){padding:4px 8px}}@media(max-width:540px){.direction-board{grid-template-columns:minmax(0,1fr) minmax(144px,1.8fr) minmax(0,1fr)}.room-shell .lane-wire{min-width:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.demonstrating .layout{grid-template-areas:"stage";grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding:0;gap:0}.demonstrating .workbar,.demonstrating .bottom,.demonstrating .side-left,.demonstrating .tray-devices{display:none}#demo-player.collapsed{left:0;right:0;width:100%;border-radius:0;padding:6px 10px}#demo-player.collapsed .demo-content nav{justify-content:center}#demo-player.collapsed [data-action=export-video]{display:none}#demo-player.collapsed [data-step=exit]{display:block}#demo-player button{min-height:44px}.demo-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;height:100dvh!important}@media(min-width:900px){#demo-player.collapsed{display:flex;gap:12px}#demo-player.collapsed .demo-timeline{flex:1}#demo-player.collapsed .demo-content{flex:0 1 auto}}#screw-work{position:fixed;top:0;right:0;bottom:0;left:0;z-index:450;display:grid;place-items:center;background:#112f35b8;padding:8px}.screw-card{width:min(100%,520px);max-height:100%;overflow:auto;border-radius:16px;background:#f9faf5;padding:12px;box-shadow:0 12px 40px #001b3355}.screw-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}.screw-card button{min-height:44px;font-size:14px}.screw-card p{margin:8px 0;font-size:13px;line-height:1.5}.screw-context,.screw-steps{font-size:12px;text-align:center}.screw-figure{display:block;width:100%;height:clamp(140px,30dvh,260px)}.screw-feedback{min-height:40px;padding:8px;background:#fff0cc;border-radius:8px}.screw-controls{display:flex;gap:6px;flex-wrap:wrap}.screw-controls button{flex:1 1 42%;border:1px solid #a8c4b8}.screw-card a,.screw-card .screw-note{font-size:11px;color:#526b63}.loop-copper{stroke-dasharray:1;animation:loop-draw .65s ease-out}.tightened .screw-slot{transform-origin:0 0;animation:screw-turn .6s}.wrong .loop-copper{stroke:#d34b2c}@keyframes loop-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes screw-turn{to{transform:rotate(180deg)}}@media(prefers-reduced-motion:reduce){.loop-copper,.screw-slot{animation:none!important}}#demo-player:not(.collapsed) .demo-content{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr)}#demo-player:not(.collapsed) nav{justify-content:flex-end;align-content:center}@media(max-width:700px){#demo-player:not(.collapsed) .demo-content{display:block}#demo-player:not(.collapsed) nav{justify-content:center}}@media(max-width:700px){#demo-player.collapsed [data-action=view],#demo-player.collapsed [data-step=exit]{display:none}}.socket-work-host{height:210px;min-height:120px}.socket-work-model{width:100%;height:100%;display:block;border-radius:8px}.screw-figure{height:130px}.screw-card .screw-polarity{font-weight:700;text-align:center}.demonstrating #screw-work{position:absolute;inset:0 0 var(--demo-height,160px);z-index:100;background:#e6eeeb}.demonstrating .screw-card{box-shadow:none}.demonstrating .screw-controls,.demonstrating .screw-card a{display:none}@media(max-height:750px){.socket-work-host{height:150px}.screw-figure{height:90px}.screw-card{padding:8px}.screw-card p{margin:4px 0}}.video-screw-room .screw-card{max-height:none;width:100%;box-shadow:none}.video-screw-room .screw-controls,.video-screw-room a{display:none}.socket-work-host{height:220px}@media(max-width:600px){.socket-work-host{height:190px}.screw-figure{height:90px}}@media(max-height:650px){.socket-work-host{height:140px}}.device-look.mr2301{width:72px;height:72px;object-fit:contain;background:transparent;box-shadow:none}.screw-colors{display:flex;gap:6px;margin:6px 0}.screw-colors button{flex:1;border:1px solid #a8c4b8}.screw-colors [aria-pressed=true]{background:#d0f3e9;border:2px solid #00877b;font-weight:700}@media(max-height:750px){.screw-card .socket-work-host{height:160px}}.device-look.authored-device{width:72px;height:72px;object-fit:contain;background:none;border:0;box-shadow:none;border-radius:0}.rear-direct-assembly .front-rocker{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(110deg,#bbc1b9,#f0f2e9,#939d97)}.front-rocker .authored-device{width:42px;height:64px;object-fit:contain;pointer-events:none}.front-rocker>span{font-size:14px}.direct-switch{min-height:106px;box-sizing:border-box;border:2px solid #276847;border-radius:7px;background:linear-gradient(100deg,#226342,#4a9365 45%,#226b4b);box-shadow:inset 3px 0 #75ab82,inset -3px 0 #174c37;color:#fffde5}.direct-switch>strong{background:#1c563b;border:1px solid #77a887;border-radius:3px;padding:1px 5px}.direct-terminals>div{position:relative}.direct-terminals>div:after{content:"";position:absolute;width:17px;height:5px;background:linear-gradient(#e4dfc7 40%,#555c49 45%,#ddd9bd 60%);border:1px solid #e9e4cf;top:48%;left:50%;transform:translate(-50%);pointer-events:none}.direct-back .hole{background:radial-gradient(circle,#172b21 0,#172b21 21%,#9d985b 22%,#9d985b 26%,#183c2b 27%,#183c2b 37%,#5e9a70 39%,#5e9a70 53%,#2a6749 55%);color:#f6f3d3;border-color:#80a98b}.direct-back .hole.ready{outline:2px solid #f0be4a}.direct-switch.wn5051-switch{padding:0;min-height:0;background:#e1e9e2;color:#153b2c;box-shadow:none}.wn5051-back-preview{position:relative;width:100%;aspect-ratio:2;overflow:hidden;pointer-events:none}.wn5051-back-preview img{position:absolute;top:50%;width:100%;height:auto;display:block;transform:translateY(-50%)}.wn5051-switch>strong{top:3px;left:3px;transform:none;z-index:1}.wn5051-switch .direct-terminals{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.wn5051-switch .direct-terminals>div,.wn5051-switch .holes{position:static}.wn5051-switch .direct-terminals>div:after{display:none}.wn5051-switch .direct-terminals small{position:absolute;top:0;transform:translate(-50%);font-size:10px}.wn5051-switch .direct-terminals>div:first-child small{left:25.5%}.wn5051-switch .direct-terminals>div:last-child small{left:74.5%}.room-shell .wn5051-switch .hole{position:absolute;width:44px;height:44px;min-height:44px;padding:0;margin:0;transform:translate(-50%,-50%);background:transparent;border:0;box-shadow:none;opacity:1}.wn5051-switch .hole[data-terminal=common]{left:25.5%}.wn5051-switch .hole[data-terminal=load]{left:74.5%}.wn5051-switch .hole[data-port="0"]{top:32.8%}.wn5051-switch .hole[data-port="1"]{top:67.2%}.wn5051-switch .hole span{opacity:0}.wn5051-switch .hole.black span,.wn5051-switch .hole.white span,.wn5051-switch .hole.red span{opacity:1;font-size:17px;text-shadow:0 0 2px #fff}.wn5051-switch .hole.black{color:#182321}.wn5051-switch .hole.white{color:#fff}.wn5051-switch .hole.red{color:#df493c}.wn5051-switch .hole.ready,.wn5051-switch .hole.inspected{outline:2px solid #f0be4a;border-radius:50%}.model-terminal-preview{color:#173d35;background:#edf3ee;border-radius:8px;padding:6px}.model-terminal-image{position:relative;width:100%;max-width:420px;margin:auto;aspect-ratio:1;overflow:hidden}.model-terminal-image img{display:block;width:100%;height:100%;object-fit:contain}.model-terminal-image .model-hole{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;min-height:22px;padding:0;margin:0;border:2px solid #298d72;border-radius:50%;background:#def8df80;color:#153b2c;box-shadow:0 0 0 1px #fff;font-size:11px;line-height:18px;z-index:2}.model-terminal-image .model-hole:disabled{opacity:.65}.model-terminal-image .model-hole.ready,.model-terminal-image .model-hole.inspected{border-color:#de7d05;background:#ffe17cab}.model-terminal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.model-terminal-list .model-terminal-choice{width:100%;min-height:44px;padding:6px;margin:0;font-size:12px;white-space:normal;color:#173d35;background:#fff;border:1px solid #9abdb0;border-radius:6px}.model-terminal-list .model-terminal-choice.ready,.model-terminal-list .model-terminal-choice.inspected{border:2px solid #de7d05}.model-terminal-note{margin:6px 0 0;font-size:11px;line-height:1.5}.direct-switch.model-backed-switch{padding:0;border-color:#739b85;background:#edf3ee;color:#173d35;box-shadow:none}.direct-switch.model-backed-switch>strong{position:static;display:block;transform:none;padding:4px;text-align:center;background:transparent;color:#173d35;border:0}.model-terminal-preview .model-hole.green,.model-terminal-choice.green{color:#127241}.room-shell .direct-back .model-terminal-image .model-hole{width:22px;height:22px;min-width:22px;min-height:22px;border:2px solid #298d72;background:#def8df80;display:block}.video-export{color:#18353e;background:#f9fcfa;border:1px solid #b8d3ce;border-radius:18px;padding:20px;width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}.video-export::backdrop{background:#071b25aa}.video-export h2{margin-top:0}.video-export p{line-height:1.5}.video-export video{width:100%;max-height:45dvh;background:#142f38}.video-export progress{width:100%;accent-color:#20aa93}.video-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.video-export button,.video-export select,.video-download{min-height:44px;border:1px solid #9bbcb5;border-radius:10px;padding:10px 16px;background:#fff;color:#18353e;font:inherit}.video-download{display:inline-flex;align-items:center;text-decoration:none;box-sizing:border-box}.video-export [hidden]{display:none!important}:root{--hud:#0d171cdb;--hud-solid:#0f1b21;--hud-line:#ffffff1c;--hud-line-strong:#ffffff33;--hud-ink:#e8f3f0;--hud-muted:#93a8a3;--tile:#ffffff0f;--tile-hover:#ffffff1f;--neon:#3ef0b4;--neon-soft:#3ef0b42e;--amber:#ffc24a;--hud-shadow:0 10px 30px #0000006b;--glass:blur(12px) saturate(140%)}html,body,#app{background:#0b1215}.stage{background:radial-gradient(ellipse at 50% 40%,#1c2a31,#10181d 60%,#0a1013)}.workbar{background:linear-gradient(180deg,#0f1c22,#0b1519);border-bottom:1px solid var(--hud-line);box-shadow:0 2px 16px #0008}.workbar strong{letter-spacing:.06em;font-weight:800;display:inline-flex;align-items:center;gap:6px}.workbar strong:before{content:"";width:22px;height:22px;flex:none;border-radius:6px;background:linear-gradient(135deg,var(--amber),#ff8a3d);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2 4 14h6l-1 8 9-12h-6z'/%3E%3C/svg%3E") center/80% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13 2 4 14h6l-1 8 9-12h-6z'/%3E%3C/svg%3E") center/80% no-repeat;filter:drop-shadow(0 0 6px #ffb34a88)}.workbar strong span{color:var(--neon);font-weight:700;padding:1px 7px;border-radius:6px;background:var(--neon-soft)}.workbar button{background:var(--tile);color:var(--hud-ink);border:1px solid var(--hud-line);font-weight:600;letter-spacing:.02em;transition:background .15s,border-color .15s,box-shadow .15s}.workbar button:hover{background:var(--tile-hover);border-color:var(--hud-line-strong)}.workbar button:active{background:var(--neon-soft);border-color:var(--neon)}.bottom{background:linear-gradient(0deg,#0b1519,#0f1c22);box-shadow:0 -2px 16px #0008;border-top:1px solid var(--hud-line);color:var(--hud-ink)}.tool,.ctrl{background:var(--tile);color:var(--hud-ink);border:1px solid var(--hud-line);transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.tool:hover:not(:disabled),.ctrl:hover:not(:disabled){background:var(--tile-hover);border-color:var(--hud-line-strong)}.tool:active:not(:disabled),.ctrl:active:not(:disabled){transform:scale(.96)}.tool.active{outline:none;background:linear-gradient(180deg,#3ef0b433,#3ef0b414);border-color:var(--neon);box-shadow:0 0 0 1px var(--neon) inset,0 0 14px #3ef0b455;color:#fff}.tool.active .tool-name{color:var(--neon)}.tool-sub{color:var(--hud-muted)}.ctrl.primary{background:linear-gradient(180deg,#3ef0b4,#1fb98a);border-color:#3ef0b4;color:#062b20;box-shadow:0 0 14px #3ef0b44d}.ctrl:disabled{opacity:.35}.status{color:var(--hud-muted)}.status .todo{color:var(--amber)}.status .done{background:var(--neon-soft);color:var(--neon)}.lamp{background:#ffffff14;color:var(--hud-muted);border:1px solid var(--hud-line)}.lamp.on{background:#ffe27a;color:#5b4300;border-color:#ffe27a;box-shadow:0 0 14px #ffd53a}.material-palette{background:var(--hud);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--hud-line-strong);box-shadow:var(--hud-shadow)}.tray-tabs,.side-left,.tray-devices{background:var(--hud);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--hud-line);color:var(--hud-ink);box-shadow:var(--hud-shadow)}.tray-tabs{border-bottom:0}.side-left,.tray-devices{border-top:0}.tray,.tray-cables{background:transparent;color:var(--hud-ink)}.tray-tabs button{background:transparent;color:var(--hud-muted);border-radius:8px}.tray-tabs button:hover{background:var(--tile);color:var(--hud-ink)}.tray-open[data-tray=cables] .tray-tabs button:first-child,.tray-open[data-tray=devices] .tray-tabs button:nth-child(2){background:var(--neon-soft);color:var(--neon)}.panel-title{color:var(--hud-muted);text-transform:uppercase}.tray-item{background:linear-gradient(180deg,#ffffff12,#ffffff08);border:1px solid var(--hud-line);color:var(--hud-ink);transition:border-color .15s,background .15s}.tray-item:hover{border-color:var(--neon);background:#3ef0b414}.tray-mm,.tray-empty{color:var(--hud-muted)}.mode{background:var(--hud);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);color:var(--hud-ink);border:1px solid var(--hud-line);box-shadow:0 4px 16px #0006}.mode.holding{background:#ff9f43e6;color:#1c0d00;border-color:#ffc27a}.toast{background:#0d171cf0;border:1px solid var(--hud-line-strong);color:var(--hud-ink);box-shadow:var(--hud-shadow)}.toast.error{background:#6d1a1af0;border-color:#ff6b6b88}.selection{background:var(--hud);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--neon);color:var(--hud-ink);box-shadow:0 0 16px #3ef0b433}.selection button{color:var(--hud-ink)}.nudge,.sel-snap{background:var(--tile);color:var(--hud-ink);border:1px solid var(--hud-line)}.sel-snap.on{background:var(--neon);color:#062b20}.action{background:var(--hud);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);color:var(--hud-ink);border:1px solid var(--hud-line-strong);box-shadow:0 4px 14px #0007}.action:hover:not(:disabled){border-color:var(--neon)}.action.primary{background:linear-gradient(180deg,#3ef0b4,#1fb98a);color:#062b20;border-color:#3ef0b4;box-shadow:0 0 16px #3ef0b44d}.action:disabled{background:#2a2410e6;color:#ffe3a3;border-color:#ffc24a55}.dial{background:#0f1b21f2;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);color:var(--hud-ink);border:1px solid var(--hud-line-strong);box-shadow:var(--hud-shadow)}.dial-head small{color:var(--hud-muted)}.dial-row button,.dial-presets button{background:var(--tile);color:var(--hud-ink);border:1px solid var(--hud-line)}.dial-presets button.active,.dial-row .primary{background:var(--neon);color:#062b20;border-color:var(--neon)}.dimension-input{background:#00000040;border-color:var(--hud-line-strong);color:#fff}.scene-tooltip{background:#0d171cf0;border:1px solid var(--hud-line)}.scene-label.joint{background:#0d171ce6;color:var(--neon);border-color:var(--neon);box-shadow:0 0 10px #3ef0b455}.scene-label.device,.scene-label.end{background:#0d171cd9;color:var(--hud-ink);border-color:var(--hud-line-strong)}.current-flow{background:#0d171cee;color:var(--hud-ink);border:1px solid var(--hud-line-strong)}.tool-ghost{background:#0d171cf0;border:1px solid var(--hud-line-strong)}.tool-ghost.ready{background:var(--neon);color:#062b20}.menu,.finish,.clear-dialog,.lightbox{background:#050b0eb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.menu-card,.finish-card{border:1px solid #ffffff;box-shadow:0 24px 60px #000a}.finish-title{background:linear-gradient(90deg,#1fb98a,#12836a);-webkit-background-clip:text;background-clip:text;color:transparent}html .device-inspection{background:#0f1b21;color:var(--hud-ink);border:1px solid var(--hud-line-strong);box-shadow:0 30px 80px #000c}html .device-inspection::backdrop{background:#050b0ed9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html .device-inspection button,html .device-inspection select{background:var(--tile);color:var(--hud-ink);border-color:var(--hud-line-strong)}html .device-inspection select option{background:#0f1b21;color:var(--hud-ink)}html .device-inspection button:hover{border-color:var(--neon)}html .device-inspection button[aria-pressed=true]{background:var(--neon-soft);color:var(--neon);border-color:var(--neon)}html .inspection-stage{background:radial-gradient(ellipse at 50% 42%,#33464f,#1a262c 55%,#0c1316);box-shadow:inset 0 0 0 1px var(--hud-line)}html .inspection-help,html .inspection-status{color:var(--hud-muted)}.layout{grid-template-rows:calc(56px + env(safe-area-inset-top,0px)) minmax(0,1fr) calc(76px + env(safe-area-inset-bottom,0px))}.workbar{min-height:0;padding:calc(4px + env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) 4px max(8px,env(safe-area-inset-left,0px));gap:6px;overflow:hidden}.workbar nav{width:auto;flex-wrap:nowrap;flex-shrink:0;gap:4px}.workbar button{min-height:44px;min-width:44px;flex:none}.workbar .exam-picker{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:44px;font-size:13px}.bottom{padding-bottom:calc(7px + env(safe-area-inset-bottom,0px))}.bottom .tool,.bottom .ctrl{min-width:44px;min-height:44px}.aux-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.aux-actions button,.start-card button,.start-card summary{min-height:44px}.start-card{width:min(100%,480px)}.entry{display:flex;flex-direction:column;gap:5px;text-align:left;width:100%;padding:12px;margin:8px 0;white-space:normal}.entry span{font-size:12px;font-weight:400;line-height:1.5}#start,#menu,#guide{padding:max(8px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}.menu-head{position:sticky;top:0;background:#fff;z-index:2;padding:4px 0}.menu-head button,.inspector-head button,.tray-tabs button{min-width:44px;min-height:44px}.mode{max-width:calc(100% - 16px);line-height:1.5}button:focus-visible,summary:focus-visible{outline:3px solid #dc8612;outline-offset:2px}@media(max-width:700px){.workbar{gap:4px}.workbar nav{flex:0 0 auto;width:auto}.workbar button{padding:6px;font-size:12px}.workbar .exam-picker{flex:1 1 auto;padding:6px}.bottom{display:flex;gap:4px;padding:4px max(4px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px))}.bottom .tools{display:flex;flex:1;gap:0;min-width:0;justify-content:space-around}.bottom .tool{width:44px;flex:0 0 44px;height:60px;padding:3px 0}.bottom .tool-icon{font-size:22px}.bottom .tool-name{font-size:11px}.bottom .controls{display:flex;gap:0;flex:none}.bottom .ctrl{width:44px;height:60px;padding:3px 0}.bottom .status,.bottom [data-action=redo],.bottom [data-action=checks]{display:none}.material-palette{max-width:calc(100vw - 16px);flex-wrap:wrap;bottom:76px}.material-palette .tool{width:72px;flex-basis:72px}.side-left,.tray-devices{top:calc(110px + env(safe-area-inset-top,0px));bottom:auto;height:min(45dvh,320px);max-width:calc(100% - 16px)}.tray-tabs{top:calc(62px + env(safe-area-inset-top,0px));max-width:calc(100% - 16px)}.inspector{bottom:8px;max-height:45%;max-width:calc(100% - 16px)}.inspector.folded{top:60px}.inspector .wire-choice,.inspector .sheath-action{min-height:44px}}@media(max-height:500px){.layout{grid-template-rows:calc(48px + env(safe-area-inset-top,0px)) minmax(0,1fr) calc(60px + env(safe-area-inset-bottom,0px))}.bottom .tool,.bottom .ctrl{height:48px}.tool-icon{font-size:18px}.inspector{max-height:65%}.tray-tabs{top:calc(50px + env(safe-area-inset-top,0px))}.side-left,.tray-devices{top:calc(98px + env(safe-area-inset-top,0px));height:calc(100dvh - 168px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}}#clear-dialog{z-index:600}.bench-zoom{position:absolute;right:8px;top:70px;display:flex;flex-direction:column;gap:6px;z-index:3}.bench-zoom button{width:46px;height:46px;padding:0;font-size:26px;color:var(--hud-ink);background:var(--hud-solid);border:1px solid var(--hud-line-strong)}.stage:has(.inspector:not([hidden])) .bench-zoom,.demonstrating .bench-zoom{display:none}.release-tools{border-block:1px solid #d9e6df;padding:8px 0;margin:12px 0}.release-tools button,.release-tools summary{min-height:44px}.beta-note{color:#376852;font-size:12px}.menu-card,.room-body,.inspector{overscroll-behavior:contain}#work-room{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}#screw-work{padding:max(8px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}#demo-player{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}@media(pointer:coarse){.tray-item,.tray-item *{touch-action:pan-y}.tray-items{overscroll-behavior:contain}input[type=number],select{font-size:16px}.room-shell button,.inspector button,.dial button{min-height:44px}}@media(max-width:700px){#demo-player.collapsed .demo-content nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#demo-player.collapsed .demo-content nav button{display:none;min-width:0}#demo-player.collapsed .demo-content nav [data-step=play],#demo-player.collapsed .demo-content nav [data-step=pause],#demo-player.collapsed .demo-content nav [data-step=collapse],#demo-player.collapsed .demo-content nav [data-step=exit]{display:block}#demo-player:not(.collapsed) nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}#demo-player nav button{font-size:12px;padding:6px}#demo-player .demo-speed select{min-height:44px}.lightbox{padding-top:calc(62px + env(safe-area-inset-top,0px));padding-bottom:env(safe-area-inset-bottom,0px)}.lightbox-close{top:calc(8px + env(safe-area-inset-top,0px));min-width:44px;min-height:44px}}
