:root{--bg:#0b0f14;--bg-1:#131923;--bg-2:#1a2230;--bg-3:#232d3d;--border:#2a3546;--border-hi:#3d4a60;--fg:#e6edf3;--fg-dim:#8b96a5;--fg-mute:#5b6878;--accent:#58a6ff;--accent-2:#1f6feb;--green:#2ecc71;--green-dim:#1e8449;--amber:#f39c12;--red:#e74c3c;--purple:#a371f7;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--shadow:0 10px 30px rgba(0,0,0,.6);--bank-X:#22d3a7;--bank-Y:#fbbf24;--bank-M:#60a5fa;--bank-D:#c084fc;--bank-T:#fb7185;--bank-C:#fb923c;--bank-S:#22d3ee;--bank-K:#94a3b8;--bank-P:#818cf8;--bank-I:#a3e635;--bank-F:#e879f9;--NODE_W:112px}[data-theme=light]{--bg:#f6f8fa;--bg-1:#ffffff;--bg-2:#eef1f5;--bg-3:#e1e6ec;--border:#d0d7de;--border-hi:#aeb6c0;--fg:#1f2328;--fg-dim:#57606a;--fg-mute:#8c95a0;--accent:#0969da;--accent-2:#0550ae;--green:#1a7f37;--green-dim:#2da44e;--amber:#9a6700;--red:#cf222e;--shadow:0 10px 30px rgba(140,149,159,.2);--bank-X:#059669;--bank-Y:#b45309;--bank-M:#1d4ed8;--bank-D:#7c3aed;--bank-T:#be123c;--bank-C:#c2410c;--bank-S:#0e7490;--bank-K:#475569;--bank-P:#3730a3;--bank-I:#4d7c0f;--bank-F:#a21caf;--bank-A:#0d9488}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--fg);font-size:14px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:6px;border:2px solid var(--bg)}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);color:var(--fg);cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--border-hi)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--green-dim);border-color:var(--green-dim);color:#fff}.btn.primary:hover:not(:disabled){background:var(--green)}.btn.danger{background:#6e1c1c;border-color:#8b2c2c;color:#ffd7d5}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--bg-3)}.btn.sm{padding:4px 9px;font-size:12px}.btn.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.shell{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg-1);flex:0 0 auto;overflow-x:auto}.brand{font-weight:700;font-size:14px;letter-spacing:.3px;display:flex;align-items:center;gap:8px;margin-right:8px;flex:0 0 auto}.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.spacer{flex:1}.topbar .user{font-size:12px;color:var(--fg-dim);padding:4px 10px;border:1px solid var(--border);border-radius:999px;flex:0 0 auto}.workspace{display:flex;flex:1;min-height:0;position:relative}.sidebar{width:250px;flex:0 0 auto;border-right:1px solid var(--border);background:var(--bg-1);display:flex;flex-direction:column;min-height:0;transition:margin-left .18s ease}.sidebar.hidden{display:none}.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.rightbar{width:340px;flex:0 0 auto;border-left:1px solid var(--border);background:var(--bg-1);display:flex;flex-direction:column;min-height:0;transition:margin-right .18s ease}.rightbar.hidden{display:none}.panel-toggle{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:46px;padding:0;z-index:55;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;border-radius:4px;transition:background .12s,color .12s,border-color .12s}.panel-toggle:hover{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.panel-toggle-left{left:0;transform:translate(-50%,-50%)}.panel-toggle-right{right:0;transform:translate(50%,-50%)}.search-wrap{padding:10px;border-bottom:1px solid var(--border);background:var(--bg-1);z-index:5}.search-wrap input{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:13px;outline:none}.palette{flex:1;overflow-y:auto;padding:4px 0 20px}.pal-group{margin-bottom:4px}.pal-head{display:flex;align-items:center;gap:6px;padding:6px 12px 6px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;cursor:pointer;user-select:none;border-left:3px solid transparent}.pal-head .arrow{font-size:9px;transition:transform .15s}.pal-group.collapsed .arrow{transform:rotate(-90deg)}.pal-group.collapsed .pal-items{display:none}.pal-item{padding:6px 12px 6px 22px;font-size:12.5px;cursor:grab;border-left:3px solid transparent;color:var(--fg-dim);user-select:none;display:flex;align-items:center;gap:8px}.pal-item:hover{background:var(--bg-2);color:var(--fg)}.pal-item svg{flex:0 0 auto}.pal-item.bank-X{border-left-color:var(--bank-X)}.pal-item.bank-Y{border-left-color:var(--bank-Y)}.pal-item.bank-M{border-left-color:var(--bank-M)}.pal-item.bank-D{border-left-color:var(--bank-D)}.pal-item.bank-T{border-left-color:var(--bank-T)}.pal-item.bank-C{border-left-color:var(--bank-C)}.pal-item.bank-S{border-left-color:var(--bank-S)}.pal-item.bank-K{border-left-color:var(--bank-K)}.pal-item.bank-P{border-left-color:var(--bank-P)}.pal-item.bank-I{border-left-color:var(--bank-I)}.pal-item.bank-F{border-left-color:var(--bank-F)}.pal-item.gate{border-left-color:var(--border-hi)}.editor-tabs{display:flex;align-items:center;gap:2px;padding:6px 10px 0;background:var(--bg-1);border-bottom:1px solid var(--border);flex:0 0 auto;overflow-x:auto}.tab{padding:6px 14px;font-size:12px;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;color:var(--fg-dim);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px}.tab.active{background:var(--bg);border-color:var(--border);color:var(--fg);margin-bottom:-1px}.tab:hover:not(.active){color:var(--fg)}.tab.disabled{opacity:.5;text-decoration:line-through}.tab .tab-lock{font-size:10px;opacity:.8}.view-toggle{display:flex;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bg-1);align-items:center;flex-wrap:wrap}.tool-sep{width:1px;height:22px;background:var(--border);margin:0 4px}.tool-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);cursor:pointer;font-size:12px;color:var(--fg-dim);transition:background .12s,color .12s,border-color .12s}.tool-btn:hover{background:var(--bg-3);color:var(--fg)}.tool-btn.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.tool-color{width:30px;height:26px;border:1px solid var(--border);border-radius:6px;cursor:pointer;background:var(--bg-2);padding:2px}.tool-select{padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-2);color:var(--fg);font-size:12px;cursor:pointer}.canvas-wrap{flex:1;position:relative;overflow:hidden;min-height:0;background:var(--bg);display:flex;flex-direction:column}.graph-canvas{position:relative;flex:1;min-height:200px;overflow:auto;-webkit-overflow-scrolling:touch;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:20px 20px;outline:none}[data-theme=light] .graph-canvas{background-image:linear-gradient(rgba(0,0,0,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.05) 1px,transparent 1px)}.canvas-scroll{position:relative}.canvas-surface{position:absolute;top:0;left:0;transform-origin:0 0}.graph-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1}.graph-node-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.graph-node-layer>*{pointer-events:auto}.zone-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none}.tab-lock-overlay{position:absolute;inset:0;z-index:80;backdrop-filter:blur(8px) saturate(.6);-webkit-backdrop-filter:blur(8px) saturate(.6);background:#0b0f1459;display:flex;align-items:flex-start;justify-content:flex-start;padding:24px;pointer-events:auto}.tab-lock-card{pointer-events:auto;width:100%;max-width:320px;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:10px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}.tab-lock-card h3{margin:0;font-size:13px}.tab-lock-card p{margin:0;font-size:12px;color:var(--fg-dim)}.tab-lock-card input{width:100%;padding:9px 11px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-family:var(--mono);outline:none}.tab-lock-card input:focus{border-color:var(--accent)}.tab-lock-card .err{margin-top:0}.marquee-count{position:absolute;padding:4px 10px;background:var(--accent-2);color:#fff;font-size:11px;font-weight:700;border-radius:999px;pointer-events:none;z-index:100;font-family:var(--mono);box-shadow:0 4px 12px #00000080}.zone{position:absolute;border-radius:12px;background:color-mix(in oklab,var(--zone-color) 14%,transparent);border:2px dashed var(--zone-color);pointer-events:none;transition:background .15s}.zone-header{position:absolute;top:-14px;left:10px;display:flex;align-items:center;gap:6px;padding:2px 10px;background:var(--bg-1);border:1px solid var(--zone-color);border-radius:6px;font-size:11px;font-weight:600;color:var(--zone-color);cursor:grab;white-space:nowrap;pointer-events:auto;box-shadow:0 2px 6px #00000059;user-select:none}.zone-header:active{cursor:grabbing}.zone-actions{display:flex;gap:2px;margin-left:4px}.zone-btn{width:16px;height:16px;padding:0;border:0;border-radius:3px;background:transparent;color:var(--zone-color);cursor:pointer;font-size:11px;line-height:1}.zone-btn.danger:hover{background:var(--red);color:#fff}.zone-resize{position:absolute;width:12px;height:12px;background:var(--bg-1);border:2px solid var(--zone-color, var(--accent));border-radius:3px;z-index:10;pointer-events:auto;opacity:0;transition:opacity .15s,background .15s,border-color .15s}.zone:hover .zone-resize{opacity:1}.zone-resize:hover{background:var(--accent);border-color:var(--accent)}.zone-resize-nw{top:-6px;left:-6px;cursor:nwse-resize}.zone-resize-ne{top:-6px;right:-6px;cursor:nesw-resize}.zone-resize-sw{bottom:-6px;left:-6px;cursor:nesw-resize}.zone-resize-se{bottom:-6px;right:-6px;cursor:nwse-resize}.marquee-box{position:absolute;pointer-events:none;z-index:40;border:1.5px dashed var(--accent);background:#58a6ff0f;border-radius:4px}.marquee-box.filter-blocks{border-color:var(--green);background:#2ecc710f}.marquee-box.filter-wires{border-color:var(--amber);background:#f39c120f}.graph-wire{fill:none;stroke:#5c7cfa;stroke-width:2.5;stroke-linecap:round;transition:stroke .15s,stroke-width .15s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.graph-wire-hit{fill:none;stroke:transparent;stroke-width:14;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.graph-wire.selected{stroke:#f0a020!important;stroke-width:3.5;filter:drop-shadow(0 0 6px #f0a020)}.graph-wire.temp{stroke:var(--accent);stroke-dasharray:6 4}.graph-wire.live{stroke:#2ecc71;stroke-width:3;stroke-dasharray:8 5;animation:currentFlow .7s linear infinite;filter:drop-shadow(0 0 6px rgba(46,204,113,.95))}@keyframes currentFlow{to{stroke-dashoffset:-26}}.graph-wire.magnet{stroke:#2ecc71;stroke-width:3;stroke-dasharray:6 5;opacity:.9;filter:drop-shadow(0 0 8px #2ecc71);animation:magnetPulse 1s infinite}@keyframes magnetPulse{0%,to{opacity:.6}50%{opacity:1}}.wire-end{fill:#5c7cfa}.wire-end.selected{fill:#f0a020}.wire-end.live{fill:#2ecc71}.guide-line{stroke:#f0a020;stroke-width:1;stroke-dasharray:5 5;opacity:.9}.rung-rail{position:absolute;left:22px;top:15px;bottom:15px;width:6px;background:linear-gradient(180deg,#4c8bf5,#1f6feb);border-radius:3px;box-shadow:0 0 14px #58a6ff73,inset 0 0 6px #ffffff40;z-index:2;pointer-events:none;transition:background .25s,box-shadow .25s}.rung-rail:after{content:"";position:absolute;inset:-3px;border:1px solid rgba(88,166,255,.25);border-radius:6px;transition:border-color .25s}.rung-rail.state-run{background:linear-gradient(180deg,#2ecc71,#1e8449);box-shadow:0 0 22px #2ecc71d9}.rung-rail.state-pause{background:linear-gradient(180deg,#f39c12,#b8770a);box-shadow:0 0 18px #f39c12a6}.rung-rail.state-monitor{background:linear-gradient(180deg,#a371f7,#6b3dbf);box-shadow:0 0 18px #a371f7a6}.rung-connector{fill:none;stroke:#2ecc71;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(46,204,113,.7))}.rung-connector.idle{stroke:#2a3546;filter:none}.graph-node.on-rail{border-color:#2ecc71!important;box-shadow:0 0 0 2px #2ecc7159,0 2px 8px #0006}.graph-node{position:absolute;width:var(--NODE_W);min-height:46px;padding:2px 7px;background:var(--bg-2);border:2px solid var(--border-hi);border-radius:8px;cursor:grab;user-select:none;font-size:12px;box-shadow:0 2px 6px #00000059;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:border-color .12s,background .12s}.graph-node:hover{border-color:var(--accent)}.graph-node.selected{outline:2px dashed var(--accent);outline-offset:2px}.graph-node.type-coil{border-radius:14px}.graph-node.type-AND,.graph-node.type-OR,.graph-node.type-NOT,.graph-node.type-XOR,.graph-node.type-NAND,.graph-node.type-NOR,.graph-node.type-XNOR{border-radius:4px}.graph-node.bank-X{border-color:var(--bank-X);background:color-mix(in oklab,var(--bank-X) 10%,var(--bg-2))}.graph-node.bank-Y{border-color:var(--bank-Y);background:color-mix(in oklab,var(--bank-Y) 10%,var(--bg-2))}.graph-node.bank-M{border-color:var(--bank-M);background:color-mix(in oklab,var(--bank-M) 10%,var(--bg-2))}.graph-node.bank-D{border-color:var(--bank-D);background:color-mix(in oklab,var(--bank-D) 10%,var(--bg-2))}.graph-node.bank-T{border-color:var(--bank-T);background:color-mix(in oklab,var(--bank-T) 10%,var(--bg-2))}.graph-node.bank-C{border-color:var(--bank-C);background:color-mix(in oklab,var(--bank-C) 10%,var(--bg-2))}.graph-node.bank-S{border-color:var(--bank-S);background:color-mix(in oklab,var(--bank-S) 10%,var(--bg-2))}.graph-node.bank-K{border-color:var(--bank-K);background:color-mix(in oklab,var(--bank-K) 10%,var(--bg-2))}.graph-node.bank-P{border-color:var(--bank-P);background:color-mix(in oklab,var(--bank-P) 10%,var(--bg-2))}.graph-node.bank-I{border-color:var(--bank-I);background:color-mix(in oklab,var(--bank-I) 10%,var(--bg-2))}.graph-node.bank-F{border-color:var(--bank-F);background:color-mix(in oklab,var(--bank-F) 10%,var(--bg-2))}.graph-node.is-on{box-shadow:0 0 0 2px currentColor,0 0 20px -2px currentColor}.gnode-name{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.2px;text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--accent);line-height:1.15}.graph-node.bank-X .gnode-name{color:var(--bank-X)}.graph-node.bank-Y .gnode-name{color:var(--bank-Y)}.graph-node.bank-M .gnode-name{color:var(--bank-M)}.graph-node.bank-D .gnode-name{color:var(--bank-D)}.graph-node.bank-T .gnode-name{color:var(--bank-T)}.graph-node.bank-C .gnode-name{color:var(--bank-C)}.graph-node.bank-S .gnode-name{color:var(--bank-S)}.graph-node.bank-K .gnode-name{color:var(--bank-K)}.graph-node.bank-P .gnode-name{color:var(--bank-P)}.graph-node.bank-I .gnode-name{color:var(--bank-I)}.graph-node.bank-F .gnode-name{color:var(--bank-F)}.gnode-icon{display:flex;justify-content:center;align-items:center;margin:1px 0;min-height:0;width:100%;color:var(--fg)}.gnode-icon svg{display:block;height:22px;width:44px}.gnode-comment{font-size:8px;color:var(--fg-mute);font-style:italic;text-align:center;width:100%;min-height:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gnode-out-value{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:9px;font-weight:800;padding:1px 4px;border-radius:3px;background:var(--bg-1);color:var(--fg-mute);pointer-events:none;z-index:5;border:1px solid var(--border);min-width:24px;text-align:center;letter-spacing:.3px}.gnode-out-value.on{color:#0a2a12;background:var(--green);border-color:var(--green);box-shadow:0 0 8px #2ecc7199}.gnode-out-value.off{color:var(--fg-mute)}.gnode-out-value.word{color:#0a2a12;background:var(--green);border-color:var(--green);box-shadow:0 0 8px #2ecc7199}.force-badge{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-1);cursor:pointer;z-index:20;box-shadow:0 0 10px #e74c3ce6}.force-badge:hover{transform:scale(1.2)}.port{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--bg-3);border:2px solid var(--border-hi);cursor:crosshair;transition:transform .1s,background .1s,border-color .1s,box-shadow .15s}.port:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-50%) scale(1.35)}.port.connected{background:var(--green);border-color:var(--green)}.port.in{left:-8px;top:50%;transform:translateY(-50%)}.port.out{right:-8px;top:50%;transform:translateY(-50%)}.port.magnet-target{background:#2ecc71!important;border-color:#2ecc71!important;transform:translateY(-50%) scale(1.55)!important;box-shadow:0 0 14px #2ecc71,0 0 26px #2ecc71a6}.port.snap-target{background:var(--accent)!important;border-color:var(--accent)!important;transform:translateY(-50%) scale(1.45)!important;box-shadow:0 0 14px var(--accent)}.port.plus{background:transparent;border:1.5px dashed var(--border-hi);width:12px;height:12px;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--fg-mute);font-weight:700}.port.plus:hover{background:var(--green-dim);border-color:var(--green);color:#fff;transform:translateY(-50%) scale(1.4)}.palette-ghost{position:fixed;z-index:9999;pointer-events:none;padding:6px 12px;background:var(--bg-1);border:2px dashed var(--accent);border-radius:8px;font-size:12px;color:var(--fg-dim);box-shadow:0 8px 24px #00000080;opacity:.9;transform:translate(-50%,-50%)}.graph-node.palette-preview{pointer-events:none;opacity:.75;border-style:dashed!important}.sim-toolbar{display:flex;gap:6px;padding:8px 12px;align-items:center;border-top:1px solid var(--border);background:var(--bg-1);flex:0 0 auto;flex-wrap:wrap}.sim-toolbar .speed-group{display:flex;align-items:center;gap:8px;padding:4px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2)}.sim-toolbar input[type=range]{width:180px;accent-color:var(--accent)}.sim-toolbar .speed-val{font-family:var(--mono);font-size:12px;color:var(--accent);min-width:56px;text-align:right}.sim-state-badge{padding:5px 14px;border-radius:999px;font-weight:800;font-size:12px;font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border-hi)}.sim-state-badge{font-size:13px;padding:7px 18px;letter-spacing:2px;box-shadow:0 0 0 1px #ffffff0f inset}.sim-state-badge.state-RUN{background:var(--green);color:#001a0d;border-color:var(--green);box-shadow:0 0 18px #2ecc718c}.sim-state-badge.state-STOP{background:var(--bg-3);color:var(--fg-dim)}.sim-state-badge.state-PAUSE{background:var(--amber);color:#1a0f00;border-color:var(--amber);box-shadow:0 0 18px #f39c128c}.sim-btn-run{background:#2ecc7124;border-color:var(--green);color:var(--green);font-weight:700}.sim-btn-run:hover:not(:disabled){background:#2ecc7147}.sim-btn-run.active{background:var(--green);color:#001a0d;box-shadow:0 0 12px #2ecc7199}.sim-btn-pause{background:#f39c1224;border-color:var(--amber);color:var(--amber);font-weight:700}.sim-btn-pause:hover:not(:disabled){background:#f39c1247}.sim-btn-pause.active{background:var(--amber);color:#1a0f00;box-shadow:0 0 12px #f39c1299}.sim-btn-stop{background:#e74c3c24;border-color:var(--red);color:var(--red);font-weight:700}.sim-btn-stop:hover:not(:disabled){background:#e74c3c47}.sim-btn-stop.active{background:var(--red);color:#fff;box-shadow:0 0 12px #e74c3c99}.mon-btn-refresh,.mon-btn-run,.mon-btn-pause,.mon-btn-stop{border-radius:5px;padding:5px 12px 5px 10px;border-left-width:3px;border-left-style:solid;font-weight:700;letter-spacing:.3px;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.mon-btn-refresh{background:#a371f724;border-color:var(--border);border-left-color:var(--purple);color:var(--purple)}.mon-btn-refresh:hover:not(:disabled){background:#a371f742}.mon-btn-refresh:active:not(:disabled){background:var(--purple);color:#0d0817;box-shadow:0 0 12px #a371f7a6}.mon-btn-run{background:#2ecc7124;border-color:var(--border);border-left-color:var(--green);color:var(--green)}.mon-btn-run:hover:not(:disabled){background:#2ecc7142}.mon-btn-run.active{background:var(--green);color:#001a0d;border-left-color:var(--green);box-shadow:0 0 12px #2ecc71a6}.mon-btn-pause{background:#f39c1224;border-color:var(--border);border-left-color:var(--amber);color:var(--amber)}.mon-btn-pause:hover:not(:disabled){background:#f39c1242}.mon-btn-pause.active{background:var(--amber);color:#1a0f00;border-left-color:var(--amber);box-shadow:0 0 12px #f39c12a6}.mon-btn-stop{background:#e74c3c24;border-color:var(--border);border-left-color:var(--red);color:var(--red)}.mon-btn-stop:hover:not(:disabled){background:#e74c3c42}.mon-btn-stop.active{background:var(--red);color:#fff;border-left-color:var(--red);box-shadow:0 0 12px #e74c3ca6}.mon-btn-refresh:disabled,.mon-btn-run:disabled,.mon-btn-pause:disabled,.mon-btn-stop:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.mon-live-badge{padding:5px 12px;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:1.2px;border:1px solid var(--border);transition:background .2s,color .2s,border-color .2s}.mon-live-badge.live{background:#2ecc7126;color:var(--green);border-color:#2ecc7173;animation:monLivePulse 1.6s ease-in-out infinite}.mon-live-badge.offline{background:var(--bg-3);color:var(--fg-dim);border-color:var(--border-hi)}@keyframes monLivePulse{0%,to{box-shadow:0 0 #2ecc7173}50%{box-shadow:0 0 0 6px #2ecc7100}}.mon-dev-label{font-size:12px;color:var(--fg-dim);font-family:var(--mono);padding-left:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}.sim-stats{font-size:12px;color:var(--fg-dim);font-family:var(--mono)}.sim-io-bar{display:flex;gap:14px;padding:10px 12px;overflow-x:auto;border-top:1px solid var(--border);background:var(--bg-1);flex:0 0 auto;min-height:52px;align-items:center;flex-wrap:wrap}.sim-io-group{display:flex;gap:4px;align-items:center;padding:4px 8px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);flex:0 0 auto;flex-wrap:wrap}.sim-io-group .sim-io-label{font-family:var(--mono);font-size:11px;font-weight:800;padding-right:8px;border-right:1px solid var(--border);margin-right:4px;letter-spacing:.5px}.sim-io-group.bank-X .sim-io-label{color:var(--bank-X)}.sim-io-group.bank-Y .sim-io-label{color:var(--bank-Y)}.sim-io-group.bank-M .sim-io-label{color:var(--bank-M)}.sim-io-group.bank-T .sim-io-label{color:var(--bank-T)}.sim-io-group.bank-C .sim-io-label{color:var(--bank-C)}.sim-io-group.bank-S .sim-io-label{color:var(--bank-S)}.sim-io-btn{padding:5px 9px;font-family:var(--mono);font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:5px;cursor:pointer;color:var(--fg-dim);transition:background .1s,color .1s,border-color .1s,box-shadow .1s;position:relative}.sim-io-btn:hover{border-color:var(--border-hi);color:var(--fg)}.sim-io-btn.active{background:var(--green);color:#001a0d;border-color:var(--green);font-weight:800;box-shadow:0 0 10px #2ecc71a6}.sim-io-btn.forced{border-color:var(--red)!important;color:var(--red)}.sim-io-btn.forced.active{background:var(--red);color:#fff;border-color:var(--red)}.sim-io-btn.forced:after{content:"\25cf";position:absolute;top:-6px;right:-4px;color:var(--red);font-size:10px}.panel{border-bottom:1px solid var(--border)}.panel-head{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);background:var(--bg-1);cursor:pointer;user-select:none}.panel-body{padding:10px 12px;max-height:340px;overflow-y:auto}.device-card{position:relative;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer}.device-card:hover{border-color:var(--border-hi)}.device-card.active{border-color:var(--accent)}.device-card .row1{display:flex;align-items:center;gap:8px;margin-bottom:4px;padding-right:26px}.device-card .name{font-weight:600;font-size:13px}.device-card .uid{font-family:var(--mono);font-size:11px;color:var(--fg-mute)}.device-card .meta{font-size:11px;color:var(--fg-dim);display:flex;gap:10px;flex-wrap:wrap}.device-card .gear-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;padding:0;border-radius:6px;background:var(--bg-1);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}.device-card .gear-btn:hover{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.state-pill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}.state-pill.online{background:#2ecc7126;color:var(--green)}.state-pill.offline{background:#8b96a526;color:var(--fg-dim)}.state-pill.RUN{background:#2ecc7126;color:var(--green)}.state-pill.STOP{background:#8b96a526;color:var(--fg-dim)}.state-pill.PAUSE{background:#f39c1226;color:var(--amber)}.state-pill.FAULT{background:#e74c3c26;color:var(--red)}.watch-table{width:100%;border-collapse:collapse;font-size:12.5px}.watch-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--fg-mute);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--border)}.watch-table td{padding:5px 6px;font-family:var(--mono);border-bottom:1px solid var(--bg-2)}.watch-table .val-true{color:var(--green);font-weight:700}.watch-table .val-false{color:var(--fg-mute)}.watch-table .val-word{color:var(--green);font-weight:700}.watch-empty{color:var(--fg-mute);font-size:12px;padding:8px 2px}.log-list{font-family:var(--mono);font-size:11.5px;line-height:1.7}.log-line{display:flex;gap:8px;padding:1px 0}.log-line .t{color:var(--fg-mute);flex:0 0 auto}.log-line.info .m{color:var(--fg-dim)}.log-line.warn .m{color:var(--amber)}.log-line.error .m,.log-line.critical .m{color:var(--red)}.log-line.ok .m{color:var(--green)}.auth-wrap{display:flex;align-items:center;justify-content:center;height:100vh;background:radial-gradient(circle at 50% 0%,#16202f 0%,var(--bg) 55%);padding:16px}.auth-card{width:100%;max-width:400px;background:var(--bg-1);border:1px solid var(--border);border-radius:14px;padding:34px 30px;box-shadow:var(--shadow)}.auth-card h1{font-size:22px;margin:0 0 4px;letter-spacing:-.3px}.auth-card .sub{color:var(--fg-dim);font-size:13px;margin:0 0 24px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--fg-dim);margin-bottom:5px;font-weight:500}.field input,.field textarea,.field select{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:14px;outline:none;transition:border-color .12s;font-family:var(--mono)}.field textarea{resize:vertical;min-height:60px;font-size:13px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #58a6ff1f}.auth-card .btn{width:100%;justify-content:center;padding:11px;margin-top:8px}.auth-alt{text-align:center;margin-top:18px;font-size:13px;color:var(--fg-dim)}.err{color:var(--red);font-size:13px;margin-top:12px;padding:8px 12px;background:#e74c3c1a;border-radius:6px;border:1px solid rgba(231,76,60,.25)}.info{color:var(--accent);font-size:13px;margin-top:12px;padding:8px 12px;background:#58a6ff1a;border-radius:6px;border:1px solid rgba(88,166,255,.25)}.ok-msg{color:var(--green);font-size:13px;margin-top:12px;padding:8px 12px;background:#2ecc711a;border-radius:6px;border:1px solid rgba(46,204,113,.25)}.modal-back{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;animation:fade .15s;padding:16px}@keyframes fade{0%{opacity:0}}.modal{background:var(--bg-1);border:1px solid var(--border);border-radius:12px;width:100%;max-width:520px;max-height:82vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow)}.modal.wide{max-width:720px}.modal-head{padding:16px 20px;border-bottom:1px solid var(--border);font-weight:600;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.modal-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-2);overflow-x:auto}.modal-tab{flex:0 0 auto;padding:10px 18px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:transparent;border:0;cursor:pointer;color:var(--fg-mute);border-bottom:2px solid transparent}.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 16px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);font-size:13px;box-shadow:var(--shadow);animation:slide .2s;max-width:380px}@keyframes slide{0%{transform:translateY(8px);opacity:0}}.toast.ok{border-color:var(--green-dim)}.toast.error{border-color:var(--red)}.toast.warn{border-color:var(--amber)}.banner{padding:8px 14px;background:#f39c121f;border-bottom:1px solid rgba(243,156,18,.35);color:var(--amber);font-size:12.5px;display:flex;align-items:center;gap:10px}.empty{color:var(--fg-mute);font-size:12.5px;text-align:center;padding:24px 12px}.ctx-menu{position:fixed;z-index:9999;min-width:200px;padding:4px;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:8px;box-shadow:0 12px 32px #0000008c}.ctx-item{padding:7px 12px;border-radius:6px;font-size:13px;cursor:pointer;color:var(--fg)}.ctx-item:hover{background:var(--accent-2);color:#fff}.ctx-item.danger{color:var(--red)}.ctx-item.danger:hover{background:var(--red);color:#fff}.ctx-sep{height:1px;background:var(--border);margin:4px 6px}.node-tooltip{position:fixed;z-index:9999;pointer-events:none;max-width:280px;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:8px;font-size:12px;color:var(--fg);box-shadow:0 6px 20px #00000080}.node-tooltip .tt-title{font-size:10px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.file-list{display:flex;flex-direction:column;gap:6px}.file-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap}.file-row .fname{font-family:var(--mono);font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:100px}.file-row .fmeta{font-size:11px;color:var(--fg-mute);flex:0 0 auto}.qr-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:14px;background:#fff;border-radius:10px;margin-bottom:16px}.qr-wrap img{display:block;width:220px;height:220px}.secret-box{font-family:var(--mono);font-size:12px;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;word-break:break-all}.mobile-only{display:none}.sidebar-backdrop{position:fixed;inset:0;background:#00000080;z-index:140;opacity:0;pointer-events:none;transition:opacity .2s}.sidebar-backdrop.show{opacity:1;pointer-events:auto}@media(max-width:900px){.shell.mobile{height:100vh;height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.sidebar{position:fixed;top:0;left:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:150;width:86vw;max-width:340px;transform:translate(-100%);transition:transform .22s ease;box-shadow:6px 0 24px #0000008c;border-right:1px solid var(--border-hi)}.sidebar.open{transform:translate(0)}.rightbar{position:fixed;top:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:150;width:92vw;max-width:380px;transform:translate(100%);transition:transform .22s ease;box-shadow:-6px 0 24px #0000008c;border-left:1px solid var(--border-hi)}.rightbar.open{transform:translate(0)}.sidebar-backdrop{z-index:140}.panel-toggle{display:none!important}.mobile-only{display:inline-flex}.topbar{padding:6px 10px calc(6px + env(safe-area-inset-top,0px));gap:6px;min-height:48px}.topbar .user{display:none}.topbar .btn.ghost{padding:8px 10px;font-size:15px;min-height:38px}.brand{font-size:13px}.editor-tabs{padding:8px 10px 0;gap:4px}.tab{padding:10px 14px;font-size:13px}.view-toggle{padding:8px 10px;gap:8px;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.view-toggle::-webkit-scrollbar{display:none}.tool-btn{min-height:38px;padding:8px 12px;font-size:13px;flex:0 0 auto}.btn{min-height:38px;padding:9px 14px;font-size:13px}.btn.sm{min-height:34px;padding:7px 12px;font-size:12px}.tool-select{min-height:38px;font-size:13px}.tool-sep{display:none}:root{--NODE_W: 118px}.graph-node{width:118px;min-height:50px;padding:4px 8px}.gnode-name{font-size:12px}.gnode-icon svg{height:20px;width:40px}.port{width:20px;height:20px}.port.in{left:-11px}.port.out{right:-11px}.port.plus{width:18px;height:18px;font-size:13px}.graph-wire-hit{stroke-width:26}.graph-canvas{touch-action:pan-x pan-y}.sim-toolbar{padding:8px 10px;gap:6px;flex-wrap:wrap;row-gap:8px}.sim-toolbar .btn{flex:1 1 auto;min-width:66px;min-height:40px}.sim-toolbar .speed-group{flex:1 1 100%}.sim-toolbar input[type=range]{width:100%}.sim-io-bar{padding:8px 10px;gap:8px}.sim-io-group{padding:6px 8px;gap:6px}.sim-io-btn{padding:8px 10px;min-width:44px;min-height:36px;font-size:12px}.panel-body{max-height:240px}.modal-back{align-items:flex-end!important;padding:0!important;z-index:220!important}.modal,.modal.wide{max-width:100%!important;max-height:92dvh;border-radius:16px 16px 0 0;border-bottom:none;margin:0;width:100%!important}.modal-head{padding:14px 16px;font-size:15px}.modal-body{padding:14px 16px}.modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.modal-foot .btn{flex:1 1 auto;min-width:110px}.modal-tabs{overflow-x:auto;scrollbar-width:none}.modal-tabs::-webkit-scrollbar{display:none}.modal-tab{padding:12px 14px;font-size:12px}input,select,textarea{font-size:16px!important}.field input,.field textarea,.field select{padding:11px 13px}.field label{font-size:12.5px}.watch-table th,.watch-table td{padding:10px 8px;font-size:12.5px}.file-row{flex-direction:column;align-items:stretch;gap:6px;padding:10px}.file-row .fname{white-space:normal;word-break:break-all}.file-row .btn{width:100%;justify-content:center}.search-wrap{padding:8px 10px}.search-wrap input{padding:11px 12px;font-size:16px}.pal-item{padding:12px 12px 12px 22px;font-size:14px}.pal-head{padding:10px 12px 10px 14px;font-size:12px}.btn,.tool-btn,.mobile-nav-item,.tab,.pal-item,.sim-io-btn,input,select,textarea,button{touch-action:manipulation}}.device-info-table{width:100%;border-collapse:collapse;font-size:13px}.device-info-table td{padding:6px 8px;border-bottom:1px solid var(--bg-2);font-family:var(--mono)}.device-info-table td.k{color:var(--fg-mute);font-family:var(--sans);width:45%}.info-chip{display:inline-block;padding:3px 8px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);font-family:var(--mono);font-size:11.5px;margin:2px 4px 2px 0}.mobile-nav{position:fixed;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-1);border-top:1px solid var(--border-hi);display:flex;align-items:stretch;z-index:180;box-shadow:0 -4px 16px #00000059;user-select:none;-webkit-user-select:none}.mobile-nav-item{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px;background:transparent;border:0;color:var(--fg-dim);cursor:pointer;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-nav-item:active{background:var(--bg-2)}.mobile-nav-item.active{color:var(--accent)}.mobile-nav-item.disabled,.mobile-nav-item:disabled{opacity:.35;cursor:not-allowed}.mobile-nav-item.active:before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;background:var(--accent);border-radius:0 0 3px 3px;box-shadow:0 0 8px var(--accent)}.mnav-icon{font-size:22px;line-height:1;font-weight:500}.mnav-label{font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;line-height:1}.node-menu-btn{position:absolute;top:-10px;right:-10px;width:26px;height:26px;padding:0;border-radius:50%;background:var(--bg-1);border:1.5px solid var(--border-hi);color:var(--fg-dim);font-size:15px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:15;box-shadow:0 2px 6px #00000059;touch-action:manipulation}.node-menu-btn:active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}@media(max-width:900px)and (orientation:landscape){.shell.mobile{padding-bottom:calc(44px + env(safe-area-inset-bottom,0px))}.mobile-nav{height:calc(44px + env(safe-area-inset-bottom,0px))}.mnav-icon{font-size:16px}.mnav-label{display:none}.topbar{padding:4px 8px;min-height:40px}.brand span:not(.dot){display:none}.editor-tabs{padding:4px 8px 0}.tab{padding:6px 10px}.view-toggle{padding:4px 8px;gap:4px}.tool-btn{min-height:32px;padding:5px 8px;font-size:12px}.btn{min-height:32px;padding:6px 10px;font-size:12px}.btn.sm{min-height:28px;padding:4px 8px;font-size:11px}.panel-body{max-height:160px}.sim-io-bar{padding:4px 8px}.sim-io-btn{padding:6px 8px;min-width:34px;min-height:30px}.sim-toolbar .btn{min-height:32px}.port{width:16px;height:16px}}@media(max-width:420px){:root{--NODE_W: 108px}.graph-node{width:108px}.topbar .btn.ghost{padding:6px 8px;font-size:14px}.tab{padding:8px 10px;font-size:12px}.tool-btn{padding:7px 9px;font-size:12px}.mnav-label{font-size:9px}.mnav-icon{font-size:20px}.brand{font-size:12px}.modal{max-height:95dvh}}@media(max-width:900px)and (hover:none){.modal-head button[title=Close]{display:none}}@media(max-width:900px){.graph-node,.port{touch-action:none}.node-menu-btn{touch-action:manipulation;width:32px;height:32px;font-size:18px}.pal-item{touch-action:manipulation}}.mobile-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mobile-more-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;color:var(--fg);cursor:pointer;font-size:12px;font-weight:600;min-height:76px;font-family:inherit;touch-action:manipulation}.mobile-more-item:active{background:var(--bg-3)}.mobile-more-item.danger{color:var(--red);border-color:#e74c3c66}.mmi-icon{font-size:22px;line-height:1}.mmi-label{text-align:center}@media(max-width:420px){.mobile-more-grid{grid-template-columns:repeat(3,1fr);gap:8px}}@media(max-width:900px){.watch-add-btn{min-width:40px;min-height:40px;padding:0 12px;font-size:22px;line-height:1;touch-action:manipulation}.sidebar.open,.rightbar.open,.sidebar,.rightbar{pointer-events:auto}.sidebar-backdrop{z-index:140}}@media(max-width:900px){.device-card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.device-card .uid,.device-card .name{-webkit-user-select:none;user-select:none}}.topbar-menu-btn{font-size:13px;padding:6px 10px}.topbar-menu .ctx-item{padding:9px 12px}.topbar-menu .ctx-item.disabled{opacity:.45;cursor:not-allowed}.topbar-menu .ctx-item.disabled:hover{background:transparent;color:var(--fg)}@media(max-width:900px){.toast-wrap{bottom:auto;top:calc(54px + env(safe-area-inset-top,0px));left:10px;right:auto;align-items:flex-start;max-width:calc(100vw - 20px)}.toast{max-width:calc(100vw - 20px)}.topbar-menu-btn{padding:6px 8px;font-size:12px;min-height:36px}}@media print{.topbar,.sidebar,.rightbar,.sim-toolbar,.sim-io-bar,.view-toggle,.mobile-nav,.panel-toggle,.toast-wrap{display:none!important}.canvas-wrap{position:static;height:auto}.graph-canvas{overflow:visible;height:auto}}.sim-io-group.bank-A .sim-io-label{color:var(--bank-A)}.sim-io-analog{width:74px;padding:5px 6px;font-family:var(--mono);font-size:12px;background:var(--bg);color:var(--bank-A);font-weight:700;border:1px solid var(--border);border-radius:5px;text-align:center;outline:none}.sim-io-analog:focus{border-color:var(--bank-A)}.graph-node.bank-A{border-color:var(--bank-A);background:color-mix(in oklab,var(--bank-A) 10%,var(--bg-2))}.graph-node.bank-A .gnode-name{color:var(--bank-A)}.pal-group[data-group*=analog] .pal-head{color:var(--bank-A)!important;border-left-color:var(--bank-A)!important}.pal-item.bank-A{border-left-color:var(--bank-A)}.graph-node.type-applied.bank-A{border-color:var(--bank-A);background:color-mix(in oklab,var(--bank-A) 12%,var(--bg-2))}.pal-group[data-group*=input] .pal-head,.pal-item.bank-X{border-left-color:var(--bank-X)!important}.pal-group[data-group*=output] .pal-head,.pal-item.bank-Y{border-left-color:var(--bank-Y)!important}.pal-group[data-group*=internal] .pal-head,.pal-item.bank-M{border-left-color:var(--bank-M)!important}.pal-group[data-group*=analog] .pal-head,.pal-item.bank-A{border-left-color:var(--fg)!important}.pal-group[data-group*=analog] .pal-head{color:var(--fg)!important}.pal-group[data-group*=timer] .pal-head,.pal-item.bank-T{border-left-color:var(--bank-T)!important}.pal-group[data-group*=counter] .pal-head,.pal-item.bank-C{border-left-color:var(--bank-C)!important}.pal-group[data-group*=math] .pal-head,.pal-group[data-group*=data] .pal-head,.pal-group[data-group*=compare] .pal-head,.pal-item.bank-D{border-left-color:var(--bank-D)!important}.pal-group[data-group*=logic] .pal-head,.pal-item.gate{border-left-color:var(--border-hi)!important}.pal-group .pal-head{color:var(--fg-mute)}.saved-indicator{font-family:var(--mono);font-size:11px;color:var(--fg-mute);white-space:nowrap;margin-right:6px;letter-spacing:.3px;padding:4px 8px;border-radius:4px;background:color-mix(in oklab,var(--fg) 4%,transparent)}.saved-indicator:empty{display:none}.btn-deploy-run{border-color:var(--green)!important;color:var(--green)!important}.btn-deploy-run:hover:not(:disabled){background:color-mix(in oklab,var(--green) 18%,transparent)!important}@media(max-width:900px){.saved-indicator,.btn-deploy-run{display:none!important}}.project-name-display{cursor:pointer;user-select:none;flex:0 0 auto;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--fg);padding:4px 12px;border-radius:6px;background:color-mix(in oklab,var(--fg) 5%,transparent);border:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw;letter-spacing:.3px}.project-name-display:empty{display:none}.topbar-btn{font-weight:600;border-width:1px;border-style:solid;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.topbar-btn-compile{background:#58a6ff1f;border-color:#58a6ff73;color:var(--accent)}.topbar-btn-compile:hover:not(:disabled){background:#58a6ff38;border-color:var(--accent);box-shadow:0 0 8px #58a6ff4d}.topbar-btn-deploy{background:#f39c121f;border-color:#f39c1273;color:var(--amber)}.topbar-btn-deploy:hover:not(:disabled){background:#f39c1238;border-color:var(--amber);box-shadow:0 0 8px #f39c124d}.topbar-btn-deploy-run{background:#2ecc7124;border-color:var(--green);color:var(--green);font-weight:700}.topbar-btn-deploy-run:hover:not(:disabled){background:#2ecc7142;border-color:var(--green);box-shadow:0 0 10px #2ecc7166}.btn-deploy-run{background:transparent;border-color:var(--border);color:inherit}@media(max-width:900px){.project-name-display{display:none}.topbar-btn{padding:6px 8px}}.project-name-display{touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.project-name-display.editing{background:var(--bg-1)!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px #58a6ff33;padding:0!important}.project-name-input{width:100%;padding:3px 10px;margin:0;border:0;background:transparent;color:inherit;font:inherit;font-family:var(--mono);font-weight:600;text-align:center;outline:none;box-sizing:border-box}.topbar-btn-compile{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media(max-width:900px){.project-name-display{display:inline-block!important;font-size:11px;padding:3px 8px;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.modal{max-height:min(82vh,900px);min-height:0}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.modal-tabs,.modal-head,.modal-foot{flex:0 0 auto}.modal-body>div{min-height:0}.device-info-table td{word-break:break-word;vertical-align:top}.device-info-table tr:last-child td{border-bottom:none}@media(max-width:900px){.modal,.modal.wide{max-height:92dvh;min-height:0}.modal-body{min-height:0}}.health-sec{margin:10px 0 4px;padding:2px 0 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);border-bottom:1px solid var(--border)}.health-sec:first-child{margin-top:0}.health-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;font-size:12px;line-height:1.5}.health-label{color:var(--fg-dim);flex:0 0 auto}.health-value{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--fg);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.health-row.health-warn .health-value{color:var(--amber)}.health-row.health-bad .health-value{color:var(--red)}.rightbar{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.panel-body{max-height:none;overflow-y:visible}.panel-body.capped{max-height:40vh;overflow-y:auto}.panel.collapsed .panel-body{display:none}.panel.collapsed .panel-head{color:var(--fg-mute)}.panel-chevron{display:inline-block;width:10px;font-size:10px;line-height:1;color:var(--fg-mute);transition:transform .12s ease;transform-origin:50% 50%;text-align:center}.panel.collapsed .panel-chevron{transform:rotate(-90deg)}.panel-head{user-select:none;-webkit-user-select:none}.panel-head:hover{background:var(--bg-2)}@media(max-width:900px){.panel-body.capped{max-height:32vh}}.manager-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.manager-topbar{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--bg-1);flex:0 0 auto}.manager-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;letter-spacing:.3px}.manager-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}.manager-body{flex:1 1 auto;overflow-y:auto;padding:28px 24px 60px;max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.manager-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.manager-header h1{font-size:24px;margin:0 0 2px;font-weight:700;letter-spacing:-.3px}.manager-sub{margin:0;color:var(--fg-dim);font-size:13px}.manager-add-btn{padding:10px 18px;font-weight:600}.manager-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.stat-card{background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-hi)}.stat-card.stat-green:before{background:var(--green)}.stat-card.stat-blue:before{background:var(--accent)}.stat-card.stat-red:before{background:var(--red)}.stat-value{font-size:26px;font-weight:700;font-family:var(--mono);line-height:1;color:var(--fg)}.stat-green .stat-value{color:var(--green)}.stat-blue .stat-value{color:var(--accent)}.stat-red .stat-value{color:var(--red)}.stat-label{font-size:11px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.6px;font-weight:600}.manager-filters{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.manager-search{flex:1 1 280px;min-width:200px;padding:10px 14px;background:var(--bg-1);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:14px;outline:none}.manager-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px #58a6ff1f}.filter-chips{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:7px 14px;border-radius:999px;background:var(--bg-1);border:1px solid var(--border);color:var(--fg-dim);font-size:12.5px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.chip:hover{background:var(--bg-2);color:var(--fg)}.chip.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.mgr-card{background:var(--bg-1);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;transition:border-color .12s,box-shadow .12s;position:relative}.mgr-card.online:hover{border-color:var(--border-hi);box-shadow:0 4px 20px #00000059}.mgr-card.unpaired{opacity:.85}.mgr-card-head{display:flex;align-items:center;gap:10px}.mgr-status-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:var(--fg-mute);box-shadow:0 0 0 3px color-mix(in oklab,var(--fg-mute) 20%,transparent)}.mgr-status-dot.run{background:var(--green);box-shadow:0 0 0 3px #2ecc7140,0 0 12px #2ecc718c}.mgr-status-dot.stop,.mgr-status-dot.pause{background:var(--amber);box-shadow:0 0 0 3px #f39c1240}.mgr-status-dot.fault{background:var(--red);box-shadow:0 0 0 3px #e74c3c4d}.mgr-status-dot.offline{background:var(--fg-mute)}.mgr-status-dot.unpaired{background:var(--accent);box-shadow:0 0 0 3px #58a6ff40}.mgr-card-title{flex:1 1 auto;min-width:0}.mgr-card-name{font-size:15px;font-weight:600;cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mgr-card-uid{font-family:var(--mono);font-size:11px;color:var(--fg-mute);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mgr-card-menu{width:30px;height:30px;padding:0;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--fg-dim);cursor:pointer;font-size:20px;line-height:1}.mgr-card-menu:hover{background:var(--bg-2);border-color:var(--border);color:var(--fg)}.mgr-card-info{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--fg-dim)}.mgr-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;overflow:hidden}.mgr-sep,.mgr-label{color:var(--fg-mute)}.mgr-program span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.mgr-online-dot{font-size:11px}.mgr-online-dot.on{color:var(--green)}.mgr-online-dot.off{color:var(--fg-mute)}.mgr-detail-line{color:var(--fg-mute);font-size:12px}.mgr-detail-line .info-chip{margin:0}.mgr-card-actions{display:flex;gap:6px;margin-top:2px}.mgr-btn{flex:1 1 0;justify-content:center;font-size:12.5px;padding:8px 10px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg);border-radius:6px;font-weight:500}.mgr-btn:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:#fff}.mgr-unpaired-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;background:#58a6ff1a;border:1px solid rgba(88,166,255,.3);color:var(--accent);font-size:12.5px}.manager-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 20px;border:2px dashed var(--border-hi);border-radius:12px;color:var(--fg-dim);text-align:center}.manager-empty .empty-icon{font-size:42px;color:var(--fg-mute);line-height:1}.manager-empty h2{font-size:18px;margin:4px 0 0;color:var(--fg)}.manager-empty p{margin:0 0 10px;font-size:13px}.topbar-back-btn{margin-right:4px;font-weight:600}.topbar-device-name{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--fg-dim);padding:4px 2px;white-space:nowrap;overflow:hidden;max-width:220px;flex:0 1 auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:default}.topbar-device-name-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--fg-mute);box-shadow:0 0 0 2px color-mix(in oklab,var(--fg-mute) 25%,transparent)}.topbar-device-name-dot.online{background:var(--green);box-shadow:0 0 0 2px #2ecc7140}.topbar-device-name-dot.run{background:var(--green);box-shadow:0 0 0 2px #2ecc714d,0 0 7px #2ecc71b3}.topbar-device-name-dot.stop,.topbar-device-name-dot.pause{background:var(--amber);box-shadow:0 0 0 2px #f39c124d}.topbar-device-name-dot.fault{background:var(--red);box-shadow:0 0 0 2px #e74c3c4d}.topbar-device-name-dot.offline{background:var(--fg-mute)}.topbar-device-name-dot.unpaired{background:var(--accent);box-shadow:0 0 0 2px #58a6ff4d}.topbar-device-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}.topbar-device-name-sep{color:var(--border-hi);font-weight:400;margin-left:2px}@media(max-width:900px){.topbar-device-name{max-width:120px;font-size:12px}.topbar-device-name-sep{display:none}}@media(max-width:420px){.topbar-device-name{max-width:84px}.topbar-device-name-text{display:none}}@media(max-width:900px){.manager-body{padding:14px 10px calc(24px + env(safe-area-inset-bottom,0px))}.manager-topbar{padding:10px 12px calc(8px + env(safe-area-inset-top,0px))}.manager-topbar .btn.ghost{min-height:40px;min-width:40px;padding:8px 10px;font-size:15px;touch-action:manipulation}.manager-brand{font-size:13px}.manager-header{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:16px}.manager-header h1{font-size:19px}.manager-sub{font-size:12.5px}.manager-stats{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.stat-card{padding:10px 12px}.stat-value{font-size:20px}.manager-grid{grid-template-columns:1fr;gap:12px}.manager-filters{flex-direction:column;align-items:stretch;gap:10px}.manager-search{flex-basis:auto;width:100%;min-height:42px;font-size:16px;touch-action:manipulation}.manager-add-btn{width:100%;justify-content:center;min-height:44px;font-size:14px}.filter-chips{display:flex;overflow-x:auto;gap:8px;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x}.filter-chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:9px 14px;font-size:12.5px;min-height:36px;touch-action:manipulation}.mgr-card{padding:14px;gap:10px;border-radius:14px;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mgr-card-name{font-size:16px}.mgr-card-menu{width:40px;height:40px;font-size:22px;touch-action:manipulation}.mgr-card-info{font-size:13px;gap:8px}.mgr-program span:last-child{max-width:60vw}.mgr-card-state{gap:8px}.mgr-state-btn{min-height:44px;font-size:12.5px;touch-action:manipulation}.mgr-card-actions{gap:8px}.mgr-btn{min-height:42px;font-size:13px;touch-action:manipulation}.mgr-unpaired-banner{flex-direction:column;align-items:stretch;text-align:center;gap:8px}.mgr-unpaired-banner .btn{min-height:40px}.manager-empty{padding:40px 16px}.manager-empty .btn{min-height:44px;width:100%;justify-content:center}}@media(max-width:420px){.manager-stats{grid-template-columns:repeat(2,1fr)}.mgr-card-actions{flex-wrap:wrap}.mgr-btn{flex:1 1 45%}}.mgr-card-state{display:flex;gap:6px;margin-top:4px}.mgr-state-btn{flex:1 1 0;justify-content:center;font-size:11.5px;padding:7px 8px;font-weight:700;letter-spacing:.3px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim);font-family:var(--mono)}.mgr-state-btn.run:hover:not(:disabled){background:#2ecc7133;border-color:var(--green);color:var(--green)}.mgr-state-btn.run.active{background:var(--green);color:#001a0d;border-color:var(--green);box-shadow:0 0 10px #2ecc7173}.mgr-state-btn.stop:hover:not(:disabled){background:#e74c3c33;border-color:var(--red);color:var(--red)}.mgr-state-btn.stop.active{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 0 10px #e74c3c73}.mgr-state-btn.reset:hover:not(:disabled){background:#f39c1233;border-color:var(--amber);color:var(--amber)}.mgr-state-btn:disabled{opacity:.4;cursor:not-allowed}.ctx-item.disabled{opacity:.45;cursor:not-allowed}.ctx-item.disabled:hover{background:transparent;color:var(--fg-dim)}@media(max-width:900px){.ctx-menu{min-width:220px;padding:6px;max-width:calc(100vw - 24px)}.ctx-item{padding:12px 14px;font-size:14px;min-height:44px;display:flex;align-items:center;touch-action:manipulation}}.topbar-device-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;transition:background .12s,border-color .12s,box-shadow .12s;white-space:nowrap;flex:0 0 auto;font-family:var(--sans);letter-spacing:.2px}.topbar-device-pill:hover{background:var(--bg-3);border-color:var(--border-hi)}.topbar-device-pill:active{transform:translateY(1px)}.topbar-device-pill .device-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-mute);box-shadow:0 0 0 2px color-mix(in oklab,var(--fg-mute) 25%,transparent);transition:background .2s,box-shadow .2s}.topbar-device-pill .device-pill-dot.online{background:var(--green);box-shadow:0 0 0 2px #2ecc7140}.topbar-device-pill .device-pill-dot.run{background:var(--green);box-shadow:0 0 0 2px #2ecc714d,0 0 8px #2ecc71b3}.topbar-device-pill .device-pill-dot.stop,.topbar-device-pill .device-pill-dot.pause{background:var(--amber);box-shadow:0 0 0 2px #f39c124d}.topbar-device-pill .device-pill-dot.fault{background:var(--red);box-shadow:0 0 0 2px #e74c3c4d}.topbar-device-pill .device-pill-dot.offline{background:var(--fg-mute)}.topbar-device-pill .device-pill-dot.unpaired{background:var(--accent);box-shadow:0 0 0 2px #58a6ff4d}.topbar-device-pill .device-pill-label{letter-spacing:.2px}.topbar-device-pill .device-pill-chevron{display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;line-height:1;color:var(--fg-dim);margin-left:3px;min-width:26px;min-height:26px;padding:0;border-radius:6px;background:color-mix(in oklab,var(--fg) 6%,transparent);border:1px solid transparent;transition:transform .15s ease,color .12s,background .12s,border-color .12s}.topbar-device-pill .device-pill-chevron:hover{color:#fff;background:var(--accent-2);border-color:var(--accent-2)}@media(max-width:900px){.topbar-device-pill .device-pill-chevron{min-width:32px;min-height:32px;font-size:17px;touch-action:manipulation}}.device-switcher{position:fixed;z-index:9998;min-width:300px;max-width:380px;max-height:60vh;overflow-y:auto;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:10px;box-shadow:0 12px 40px #0000008c;padding:6px;animation:switcherIn .12s ease}@keyframes switcherIn{0%{opacity:0;transform:translateY(-4px)}}.device-switcher-header{padding:8px 12px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--fg-mute);font-weight:700;border-bottom:1px solid var(--border);margin-bottom:4px}.device-switcher-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .1s}.device-switcher-item:hover{background:var(--bg-2)}.device-switcher-item.current{background:color-mix(in oklab,var(--accent) 12%,transparent)}.device-switcher-item.current .sw-name{color:var(--accent)}.device-switcher-item.current:after{content:"\2713";color:var(--accent);font-weight:700;margin-left:auto;font-size:14px}.device-switcher-item .sw-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--fg-mute);box-shadow:0 0 0 2px color-mix(in oklab,var(--fg-mute) 22%,transparent)}.device-switcher-item .sw-dot.online{background:var(--green);box-shadow:0 0 0 2px #2ecc7140}.device-switcher-item .sw-dot.run{background:var(--green);box-shadow:0 0 0 2px #2ecc714d,0 0 6px #2ecc71a6}.device-switcher-item .sw-dot.stop,.device-switcher-item .sw-dot.pause{background:var(--amber);box-shadow:0 0 0 2px #f39c1247}.device-switcher-item .sw-dot.fault{background:var(--red);box-shadow:0 0 0 2px #e74c3c4d}.device-switcher-item .sw-dot.offline{background:var(--fg-mute)}.device-switcher-item .sw-main{flex:1 1 auto;min-width:0}.device-switcher-item .sw-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}.device-switcher-item .sw-uid{font-family:var(--mono);font-size:10.5px;color:var(--fg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.device-switcher-item .sw-state{font-size:10px;font-weight:700;letter-spacing:.6px;padding:2px 6px;border-radius:4px;background:var(--bg-3);color:var(--fg-dim);text-transform:uppercase;flex:0 0 auto}.device-switcher-item.current .sw-state{background:color-mix(in oklab,var(--accent) 20%,transparent);color:var(--accent)}.device-switcher-sep{height:1px;background:var(--border);margin:4px 6px}.device-switcher-action{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:12.5px;color:var(--fg-dim);transition:background .1s,color .1s}.device-switcher-action:hover{background:var(--bg-2);color:var(--fg)}.device-switcher-empty{padding:24px 16px;text-align:center;color:var(--fg-mute);font-size:12px;line-height:1.5}@media(max-width:900px){.topbar-device-pill{padding:5px 8px;font-size:12px}.topbar-device-pill .device-pill-label{display:none}.topbar-device-pill .device-pill-chevron{margin-left:0}.device-switcher{min-width:260px;max-width:calc(100vw - 24px);max-height:50vh}.device-switcher-item{padding:12px 10px;min-height:48px;touch-action:manipulation}.device-switcher-action{padding:12px 10px;min-height:46px;touch-action:manipulation}.sw-name{font-size:14px}}.bound-device-card{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.bound-device-card.offline{opacity:.82}.bd-head{display:flex;align-items:center;gap:10px}.bd-title{min-width:0;flex:1 1 auto}.bd-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bd-uid{font-family:var(--mono);font-size:10.5px;color:var(--fg-mute);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bd-info{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--fg-dim)}.bd-row{display:flex;align-items:center;gap:6px;overflow:hidden}.bd-program{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.bd-actions{display:flex;gap:6px}.bd-actions .btn{flex:1 1 0;justify-content:center;padding:6px 8px;font-size:11.5px}.bd-actions .btn.danger{background:#e74c3c1f;border-color:#e74c3c59;color:var(--red)}.bd-actions .btn.danger:hover:not(:disabled){background:var(--red);color:#fff;border-color:var(--red)}.mgr-card.quiet,.bound-device-card.quiet{border-left:3px solid var(--amber)}.mgr-card.quiet:after{content:"QUIET";position:absolute;top:10px;right:48px;font-size:9px;font-weight:700;letter-spacing:.6px;color:var(--amber);background:#f39c1226;border:1px solid rgba(243,156,18,.4);padding:2px 6px;border-radius:3px;pointer-events:none;z-index:2}.bound-device-card.quiet .bd-head:after{content:"QUIET";margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--amber);background:#f39c1226;border:1px solid rgba(243,156,18,.4);padding:2px 5px;border-radius:3px}.monitor-quiet-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f39c121a;border-top:1px solid rgba(243,156,18,.35);border-bottom:1px solid rgba(243,156,18,.35);color:var(--amber);font-size:12.5px;flex:0 0 auto}.monitor-quiet-banner .mqb-icon{font-size:16px}.monitor-quiet-banner .mqb-text{flex:1 1 auto}.monitor-quiet-banner .btn{flex:0 0 auto}.monitor-diverged-pill{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#f39c121a;border-bottom:1px solid rgba(243,156,18,.35);color:var(--amber);font-size:12.5px;flex:0 0 auto}.monitor-diverged-pill .mdp-icon{font-size:16px}.monitor-diverged-pill .mdp-text{flex:1 1 auto}[data-theme=dracula]{--bg:#191a21;--bg-1:#21222c;--bg-2:#282a36;--bg-3:#343746;--border:#44475a;--border-hi:#6272a4;--fg:#f8f8f2;--fg-dim:#c8cad6;--fg-mute:#6272a4;--accent:#bd93f9;--accent-2:#9d6fdb;--green:#50fa7b;--green-dim:#2ea84b;--amber:#ffb86c;--red:#ff5555;--purple:#bd93f9;--bank-X:#50fa7b;--bank-Y:#ffb86c;--bank-M:#8be9fd;--bank-D:#bd93f9;--bank-T:#ff79c6;--bank-C:#ffb86c;--bank-S:#8be9fd;--bank-K:#6272a4;--bank-P:#ff79c6;--bank-I:#50fa7b;--bank-F:#bd93f9;--bank-A:#8be9fd;--shadow:0 10px 30px rgba(0,0,0,.65)}[data-theme=nord]{--bg:#242933;--bg-1:#2e3440;--bg-2:#3b4252;--bg-3:#434c5e;--border:#4c566a;--border-hi:#5e6a7d;--fg:#eceff4;--fg-dim:#d8dee9;--fg-mute:#7a889c;--accent:#88c0d0;--accent-2:#5e81ac;--green:#a3be8c;--green-dim:#6c8f56;--amber:#ebcb8b;--red:#bf616a;--purple:#b48ead;--bank-X:#a3be8c;--bank-Y:#ebcb8b;--bank-M:#81a1c1;--bank-D:#b48ead;--bank-T:#bf616a;--bank-C:#d08770;--bank-S:#88c0d0;--bank-K:#7a889c;--bank-P:#b48ead;--bank-I:#a3be8c;--bank-F:#b48ead;--bank-A:#88c0d0;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=monokai]{--bg:#1e1f1c;--bg-1:#272822;--bg-2:#3e3d32;--bg-3:#49483e;--border:#49483e;--border-hi:#75715e;--fg:#f8f8f2;--fg-dim:#cfcfc2;--fg-mute:#75715e;--accent:#a6e22e;--accent-2:#7eb320;--green:#a6e22e;--green-dim:#5f8f12;--amber:#e6db74;--red:#f92672;--purple:#ae81ff;--bank-X:#a6e22e;--bank-Y:#e6db74;--bank-M:#66d9ef;--bank-D:#ae81ff;--bank-T:#f92672;--bank-C:#fd971f;--bank-S:#66d9ef;--bank-K:#75715e;--bank-P:#ae81ff;--bank-I:#a6e22e;--bank-F:#ae81ff;--bank-A:#66d9ef;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=solarized]{--bg:#00252e;--bg-1:#002b36;--bg-2:#073642;--bg-3:#094552;--border:#0d4f5f;--border-hi:#586e75;--fg:#eee8d5;--fg-dim:#93a1a1;--fg-mute:#586e75;--accent:#268bd2;--accent-2:#1a6ea8;--green:#859900;--green-dim:#5f6d00;--amber:#b58900;--red:#dc322f;--purple:#6c71c4;--bank-X:#859900;--bank-Y:#b58900;--bank-M:#268bd2;--bank-D:#6c71c4;--bank-T:#dc322f;--bank-C:#cb4b16;--bank-S:#2aa198;--bank-K:#586e75;--bank-P:#6c71c4;--bank-I:#859900;--bank-F:#6c71c4;--bank-A:#2aa198;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=catppuccin]{--bg:#11111b;--bg-1:#1e1e2e;--bg-2:#313244;--bg-3:#45475a;--border:#45475a;--border-hi:#585b70;--fg:#cdd6f4;--fg-dim:#bac2de;--fg-mute:#7f849c;--accent:#89b4fa;--accent-2:#74c7ec;--green:#a6e3a1;--green-dim:#4caf50;--amber:#f9e2af;--red:#f38ba8;--purple:#cba6f7;--bank-X:#a6e3a1;--bank-Y:#f9e2af;--bank-M:#89b4fa;--bank-D:#cba6f7;--bank-T:#f38ba8;--bank-C:#fab387;--bank-S:#94e2d5;--bank-K:#7f849c;--bank-P:#cba6f7;--bank-I:#a6e3a1;--bank-F:#cba6f7;--bank-A:#94e2d5;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=gruvbox]{--bg:#1d2021;--bg-1:#282828;--bg-2:#32302f;--bg-3:#3c3836;--border:#504945;--border-hi:#665c54;--fg:#ebdbb2;--fg-dim:#d5c4a1;--fg-mute:#928374;--accent:#d79921;--accent-2:#b57614;--green:#98971a;--green-dim:#6d6c13;--amber:#d79921;--red:#cc241d;--purple:#b16286;--bank-X:#98971a;--bank-Y:#d79921;--bank-M:#458588;--bank-D:#b16286;--bank-T:#cc241d;--bank-C:#d65d0e;--bank-S:#689d6a;--bank-K:#928374;--bank-P:#b16286;--bank-I:#98971a;--bank-F:#b16286;--bank-A:#689d6a;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=rosepine]{--bg:#16141f;--bg-1:#191724;--bg-2:#1f1d2e;--bg-3:#26233a;--border:#26233a;--border-hi:#403d52;--fg:#e0def4;--fg-dim:#908caa;--fg-mute:#6e6a86;--accent:#eb6f92;--accent-2:#c4a7e7;--green:#9ccfd8;--green-dim:#56949f;--amber:#f6c177;--red:#eb6f92;--purple:#c4a7e7;--bank-X:#9ccfd8;--bank-Y:#f6c177;--bank-M:#31748f;--bank-D:#c4a7e7;--bank-T:#eb6f92;--bank-C:#f6c177;--bank-S:#9ccfd8;--bank-K:#6e6a86;--bank-P:#c4a7e7;--bank-I:#9ccfd8;--bank-F:#c4a7e7;--bank-A:#9ccfd8;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=github]{--bg:#010409;--bg-1:#0d1117;--bg-2:#161b22;--bg-3:#21262d;--border:#30363d;--border-hi:#484f58;--fg:#c9d1d9;--fg-dim:#8b949e;--fg-mute:#6e7681;--accent:#58a6ff;--accent-2:#1f6feb;--green:#3fb950;--green-dim:#2da44e;--amber:#d29922;--red:#f85149;--purple:#a371f7;--bank-X:#3fb950;--bank-Y:#d29922;--bank-M:#58a6ff;--bank-D:#a371f7;--bank-T:#f85149;--bank-C:#db6d28;--bank-S:#33b3ae;--bank-K:#6e7681;--bank-P:#a371f7;--bank-I:#3fb950;--bank-F:#a371f7;--bank-A:#33b3ae;--shadow:0 10px 30px rgba(0,0,0,.65)}[data-theme=tokyonight]{--bg:#16161e;--bg-1:#1a1b26;--bg-2:#24283b;--bg-3:#2f334d;--border:#2f334d;--border-hi:#565f89;--fg:#c0caf5;--fg-dim:#a9b1d6;--fg-mute:#565f89;--accent:#7aa2f7;--accent-2:#2ac3de;--green:#9ece6a;--green-dim:#5c8b3e;--amber:#e0af68;--red:#f7768e;--purple:#bb9af7;--bank-X:#9ece6a;--bank-Y:#e0af68;--bank-M:#7aa2f7;--bank-D:#bb9af7;--bank-T:#f7768e;--bank-C:#ff9e64;--bank-S:#73daca;--bank-K:#565f89;--bank-P:#bb9af7;--bank-I:#9ece6a;--bank-F:#bb9af7;--bank-A:#73daca;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=ayu]{--bg:#171b24;--bg-1:#1f2430;--bg-2:#242936;--bg-3:#2d3343;--border:#2d3343;--border-hi:#3d4354;--fg:#cbccc6;--fg-dim:#a0a6b3;--fg-mute:#6c7380;--accent:#ffcc66;--accent-2:#ffb454;--green:#bae67e;--green-dim:#7fa848;--amber:#ffcc66;--red:#f07178;--purple:#d4bfff;--bank-X:#bae67e;--bank-Y:#ffcc66;--bank-M:#73d0ff;--bank-D:#d4bfff;--bank-T:#f07178;--bank-C:#ffb454;--bank-S:#95e6cb;--bank-K:#6c7380;--bank-P:#d4bfff;--bank-I:#bae67e;--bank-F:#d4bfff;--bank-A:#95e6cb;--shadow:0 10px 30px rgba(0,0,0,.55)}[data-theme=obsidiangold]{--bg:#08080a;--bg-1:#111114;--bg-2:#1b1b1f;--bg-3:#26262b;--border:#333338;--border-hi:#4d4d55;--fg:#f3efe4;--fg-dim:#b3ad9d;--fg-mute:#726c5f;--accent:#e0b84b;--accent-2:#c79a2e;--green:#8fbf7a;--green-dim:#5f8a4d;--amber:#e0a458;--red:#d9636f;--purple:#b494e0;--bank-X:#8fbf7a;--bank-Y:#e0a458;--bank-M:#6fa8d6;--bank-D:#b494e0;--bank-T:#d9636f;--bank-C:#e0824b;--bank-S:#5fc4c0;--bank-K:#8a8577;--bank-P:#b494e0;--bank-I:#8fbf7a;--bank-F:#e0b84b;--bank-A:#5fc4c0;--shadow:0 12px 34px rgba(0,0,0,.7)}[data-theme=aurora]{--bg:#080c18;--bg-1:#0e1526;--bg-2:#152038;--bg-3:#1d2c4a;--border:#2a3c60;--border-hi:#3e5580;--fg:#e7eefb;--fg-dim:#a3b6d6;--fg-mute:#657897;--accent:#2dd4bf;--accent-2:#22b8a3;--green:#4ade80;--green-dim:#2f9e5a;--amber:#fbbf24;--red:#fb7185;--purple:#a78bfa;--bank-X:#4ade80;--bank-Y:#fbbf24;--bank-M:#60a5fa;--bank-D:#a78bfa;--bank-T:#fb7185;--bank-C:#fb923c;--bank-S:#2dd4bf;--bank-K:#7186ac;--bank-P:#a78bfa;--bank-I:#4ade80;--bank-F:#f472b6;--bank-A:#2dd4bf;--shadow:0 12px 34px rgba(4,10,30,.7)}[data-theme=crimsonsteel]{--bg:#0d0e10;--bg-1:#16181b;--bg-2:#1f2226;--bg-3:#292d32;--border:#3a3f45;--border-hi:#53595f;--fg:#edeff1;--fg-dim:#aab0b6;--fg-mute:#6f757b;--accent:#f43f5e;--accent-2:#be123c;--green:#22c55e;--green-dim:#178a44;--amber:#f59e0b;--red:#f43f5e;--purple:#c084fc;--bank-X:#22c55e;--bank-Y:#f59e0b;--bank-M:#38bdf8;--bank-D:#c084fc;--bank-T:#f43f5e;--bank-C:#fb7a3c;--bank-S:#2dd4bf;--bank-K:#7b8288;--bank-P:#c084fc;--bank-I:#22c55e;--bank-F:#f43f5e;--bank-A:#38bdf8;--shadow:0 12px 34px rgba(0,0,0,.65)}[data-theme=cybervoid]{--bg:#07040d;--bg-1:#0f0919;--bg-2:#181026;--bg-3:#221836;--border:#382a54;--border-hi:#503c76;--fg:#f1ecff;--fg-dim:#b6a6df;--fg-mute:#79699e;--accent:#00e5ff;--accent-2:#00b8cc;--green:#39ff88;--green-dim:#25a85c;--amber:#ffd166;--red:#ff2ec4;--purple:#c77dff;--bank-X:#39ff88;--bank-Y:#ffd166;--bank-M:#00e5ff;--bank-D:#c77dff;--bank-T:#ff2ec4;--bank-C:#ff8f3c;--bank-S:#5cf2e6;--bank-K:#8b7ab0;--bank-P:#c77dff;--bank-I:#39ff88;--bank-F:#ff2ec4;--bank-A:#5cf2e6;--shadow:0 12px 36px rgba(0,0,0,.75), 0 0 40px rgba(0,229,255,.06)}[data-theme=porcelain]{--bg:#f7f4ee;--bg-1:#ffffff;--bg-2:#f0eae0;--bg-3:#e5dccb;--border:#ddd0b8;--border-hi:#c3b291;--fg:#292319;--fg-dim:#6c6250;--fg-mute:#9a8f78;--accent:#1e3a5f;--accent-2:#16304e;--green:#3f7d4f;--green-dim:#2e5e3a;--amber:#b7791f;--red:#b03a2e;--purple:#6c4f8c;--bank-X:#3f7d4f;--bank-Y:#b7791f;--bank-M:#2a5d8c;--bank-D:#6c4f8c;--bank-T:#b03a2e;--bank-C:#c1622f;--bank-S:#1f7d7a;--bank-K:#7a7160;--bank-P:#6c4f8c;--bank-I:#3f7d4f;--bank-F:#a3376b;--bank-A:#1f7d7a;--shadow:0 10px 28px rgba(90,76,45,.18)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}.theme-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);cursor:pointer;transition:border-color .12s,transform .08s,box-shadow .12s;position:relative}.theme-card:hover{border-color:var(--border-hi);transform:translateY(-1px);box-shadow:0 4px 14px #00000059}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 35%,transparent)}.theme-label{font-size:12px;font-weight:600;color:var(--fg);text-align:center}.theme-active-badge{position:absolute;top:6px;right:6px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--accent);color:#000;letter-spacing:.3px}.theme-swatch{height:56px;border-radius:6px;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.25)}.theme-swatch:before,.theme-swatch:after{content:"";position:absolute;border-radius:50%}.theme-swatch:before{width:26px;height:26px;left:12px;top:10px}.theme-swatch:after{width:14px;height:14px;right:14px;top:12px;box-shadow:0 22px 0 -2px currentColor}.theme-swatch-sm{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.35)}.theme-swatch-dark{background:#0b0f14;color:#58a6ff}.theme-swatch-dark:before{background:#e6edf3}.theme-swatch-dark:after{background:#58a6ff;color:#58a6ff}.theme-swatch-light{background:#f6f8fa;color:#0969da}.theme-swatch-light:before{background:#1f2328}.theme-swatch-light:after{background:#0969da;color:#0969da}.theme-swatch-dracula{background:#282a36;color:#bd93f9}.theme-swatch-dracula:before{background:#f8f8f2}.theme-swatch-dracula:after{background:#bd93f9;color:#bd93f9}.theme-swatch-nord{background:#2e3440;color:#88c0d0}.theme-swatch-nord:before{background:#eceff4}.theme-swatch-nord:after{background:#88c0d0;color:#88c0d0}.theme-swatch-monokai{background:#272822;color:#a6e22e}.theme-swatch-monokai:before{background:#f8f8f2}.theme-swatch-monokai:after{background:#a6e22e;color:#a6e22e}.theme-swatch-solarized{background:#002b36;color:#268bd2}.theme-swatch-solarized:before{background:#eee8d5}.theme-swatch-solarized:after{background:#268bd2;color:#268bd2}.theme-swatch-catppuccin{background:#1e1e2e;color:#89b4fa}.theme-swatch-catppuccin:before{background:#cdd6f4}.theme-swatch-catppuccin:after{background:#89b4fa;color:#89b4fa}.theme-swatch-gruvbox{background:#282828;color:#d79921}.theme-swatch-gruvbox:before{background:#ebdbb2}.theme-swatch-gruvbox:after{background:#d79921;color:#d79921}.theme-swatch-rosepine{background:#191724;color:#eb6f92}.theme-swatch-rosepine:before{background:#e0def4}.theme-swatch-rosepine:after{background:#eb6f92;color:#eb6f92}.theme-swatch-github{background:#0d1117;color:#58a6ff}.theme-swatch-github:before{background:#c9d1d9}.theme-swatch-github:after{background:#58a6ff;color:#58a6ff}.theme-swatch-tokyonight{background:#1a1b26;color:#7aa2f7}.theme-swatch-tokyonight:before{background:#c0caf5}.theme-swatch-tokyonight:after{background:#7aa2f7;color:#7aa2f7}.theme-swatch-ayu{background:#1f2430;color:#fc6}.theme-swatch-ayu:before{background:#cbccc6}.theme-swatch-ayu:after{background:#fc6;color:#fc6}.theme-swatch-obsidiangold{background:linear-gradient(135deg,#08080a,#1b1611);color:#e0b84b}.theme-swatch-obsidiangold:before{background:#f3efe4}.theme-swatch-obsidiangold:after{background:#e0b84b;color:#e0b84b}.theme-swatch-aurora{background:linear-gradient(135deg,#080c18,#123326);color:#2dd4bf}.theme-swatch-aurora:before{background:#e7eefb}.theme-swatch-aurora:after{background:#a78bfa;color:#a78bfa;box-shadow:0 22px 0 -2px #2dd4bf}.theme-swatch-crimsonsteel{background:linear-gradient(135deg,#0d0e10,#2a1216);color:#f43f5e}.theme-swatch-crimsonsteel:before{background:#edeff1}.theme-swatch-crimsonsteel:after{background:#f43f5e;color:#f43f5e}.theme-swatch-cybervoid{background:linear-gradient(135deg,#07040d,#1c0a2e);color:#00e5ff}.theme-swatch-cybervoid:before{background:#f1ecff}.theme-swatch-cybervoid:after{background:#ff2ec4;color:#ff2ec4;box-shadow:0 22px 0 -2px #00e5ff}.theme-swatch-porcelain{background:linear-gradient(135deg,#f7f4ee,#ede1c8);color:#1e3a5f}.theme-swatch-porcelain:before{background:#292319}.theme-swatch-porcelain:after{background:#1e3a5f;color:#1e3a5f}.theme-card.pro{border-color:color-mix(in oklab,var(--accent) 30%,var(--border))}.theme-card .theme-pro-badge{position:absolute;top:6px;left:6px;font-size:9px;font-weight:800;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:linear-gradient(135deg,#e0b84b,#b8912c);color:#1a1400;text-transform:uppercase}.theme-swatch-sm.theme-swatch-dark{background:#58a6ff}.theme-swatch-sm.theme-swatch-light{background:#0969da}.theme-swatch-sm.theme-swatch-dracula{background:#bd93f9}.theme-swatch-sm.theme-swatch-nord{background:#88c0d0}.theme-swatch-sm.theme-swatch-monokai{background:#a6e22e}.theme-swatch-sm.theme-swatch-solarized{background:#268bd2}.theme-swatch-sm.theme-swatch-catppuccin{background:#89b4fa}.theme-swatch-sm.theme-swatch-gruvbox{background:#d79921}.theme-swatch-sm.theme-swatch-rosepine{background:#eb6f92}.theme-swatch-sm.theme-swatch-github{background:#58a6ff}.theme-swatch-sm.theme-swatch-tokyonight{background:#7aa2f7}.theme-swatch-sm.theme-swatch-ayu{background:#fc6}.theme-swatch-sm.theme-swatch-obsidiangold{background:#e0b84b}.theme-swatch-sm.theme-swatch-aurora{background:#2dd4bf}.theme-swatch-sm.theme-swatch-crimsonsteel{background:#f43f5e}.theme-swatch-sm.theme-swatch-cybervoid{background:#00e5ff}.theme-swatch-sm.theme-swatch-porcelain{background:#1e3a5f}.banner-dismiss,.mdp-close,.mqb-close{flex:0 0 auto;width:26px;height:26px;padding:0;margin-left:4px;border:0;border-radius:6px;background:transparent;font-size:16px;line-height:1;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.75;transition:background .12s,opacity .12s}.banner-dismiss,.mdp-close,.mqb-close{color:var(--amber)}.banner-dismiss:hover,.mdp-close:hover,.mqb-close:hover{opacity:1;background:#f39c1233}.banner-dismiss:active,.mdp-close:active,.mqb-close:active{background:#f39c1259}@media(max-width:900px){.banner-dismiss,.mdp-close,.mqb-close{width:34px;height:34px;font-size:18px;touch-action:manipulation}}html.wlc-manager-view,body.wlc-manager-view{height:auto!important;min-height:100vh;min-height:100dvh;overflow:visible!important}body.wlc-manager-view{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}body.wlc-manager-view .manager-shell{display:block!important;height:auto!important;min-height:0!important;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}body.wlc-manager-view .manager-topbar{position:sticky!important;top:0;z-index:50;background:var(--bg-1);border-bottom:1px solid var(--border)}body.wlc-manager-view .manager-body{overflow:visible!important;height:auto!important;max-height:none!important;min-height:0!important}@media(max-width:900px){body.wlc-manager-view .manager-topbar{padding-top:max(8px,env(safe-area-inset-top,0px));padding-bottom:8px}body.wlc-manager-view .manager-body{padding:14px 10px calc(24px + env(safe-area-inset-bottom,0px))!important}body.wlc-manager-view .mgr-card,body.wlc-manager-view .manager-grid{touch-action:pan-y!important}}.monitor-badge{position:absolute;top:-10px;right:-10px;width:20px;height:20px;border-radius:50%;box-sizing:border-box;border:2px solid var(--bg-1);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:26;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:background .1s linear,opacity .1s linear,color .1s linear,border-color .1s linear}.monitor-badge-glyph{width:11px;height:11px;display:block;pointer-events:none}.monitor-badge.off{background:var(--bg-3);color:var(--fg-mute);opacity:.6;box-shadow:0 1px 3px #00000059}.monitor-badge.off:hover{opacity:1;background:var(--bg-2);color:var(--fg-dim);border-color:var(--border-hi);transform:scale(1.18)}.monitor-badge.off:active{transform:scale(.98)}.monitor-badge.on{background:var(--green);color:#062a15;opacity:1}.monitor-badge.on:hover{transform:scale(1.18);box-shadow:0 0 14px #2ecc71e6,0 0 4px #2ecc71e6}.monitor-badge.on:active{transform:scale(.98)}.graph-node .force-badge{top:-9px;left:-9px;right:auto}@media(max-width:900px){.monitor-badge{top:-12px;right:-12px;width:24px;height:24px;touch-action:manipulation}.monitor-badge-glyph{width:13px;height:13px}.graph-node .node-menu-btn{top:auto;bottom:-12px;right:-12px}}.wlc-inline-set{position:absolute;z-index:900;min-width:200px;max-width:280px;padding:10px 12px;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:8px;box-shadow:0 10px 28px #0000008c;font-size:12px;display:flex;flex-direction:column;gap:6px;font-family:var(--sans)}.wlc-is-row{display:flex;flex-direction:column;gap:2px}.wlc-is-row label{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--fg-dim);display:flex;justify-content:space-between;gap:8px}.wlc-is-cur{color:var(--fg-mute);font-weight:400;font-family:var(--mono)}.wlc-is-row input{width:100%;box-sizing:border-box;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:5px;font-family:var(--mono);font-size:12px;color:var(--fg);outline:none}.wlc-is-row input:focus{border-color:var(--accent)}.wlc-is-err{color:var(--red);font-size:11px;min-height:0}.wlc-is-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}.wlc-is-actions .btn.sm{padding:4px 10px;font-size:11px}.graph-node .gnode-name{overflow:visible;text-overflow:clip}.gnode-special{font-size:8.5px;font-weight:700;color:var(--amber);text-align:center;width:100%;padding:0 2px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.1px}.wlc-is-hold{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--fg-dim);margin:6px 0 2px;cursor:pointer;user-select:none;-webkit-user-select:none}.wlc-is-hold.disabled{opacity:.55;cursor:default}.wlc-is-hold input{width:auto;margin:0;accent-color:var(--accent);cursor:pointer}.wlc-is-hold.disabled input{cursor:default}.mon-holds-badge{padding:5px 12px;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:1.2px;background:#f39c122e;color:var(--amber);border:1px solid rgba(243,156,18,.45);white-space:nowrap}.wlc-is-hint{font-size:10.5px;color:var(--amber);background:#f39c121a;border:1px solid rgba(243,156,18,.35);border-radius:4px;padding:4px 8px;line-height:1.35;margin:4px 0 2px}.monitor-badge.held{box-shadow:0 0 0 1.2px #ff1a1a!important;border-color:#ff1a1a!important;outline:none!important}.monitor-badge{position:absolute}.wlc-is-strip-label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);font-weight:700;margin:6px 0 2px}.wlc-is-strip{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 2px}.wlc-is-strip-item{font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim);white-space:nowrap}.wlc-is-strip-item.is-on{background:#2ecc712e;border-color:#2ecc7180;color:var(--green);font-weight:700}.wlc-is-strip-item.is-off{background:var(--bg-3);color:var(--fg-mute)}.wlc-is-strip-item.is-const{opacity:.7}.shell,.workspace,.main,.canvas-wrap{overflow:hidden}.canvas-wrap,.main,.workspace{min-height:0}.graph-canvas{overflow:auto}.graph-canvas::-webkit-scrollbar{width:10px;height:10px}.canvas-scroll{overflow:visible}.graph-canvas{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mgr-card>.wifi-rail{top:auto;bottom:68px}.mgr-card.quiet>.wifi-rail{bottom:64px}.bound-device-card{position:relative}.bound-device-card>.wifi-rail{top:auto;bottom:56px}.bound-device-card.quiet>.wifi-rail{bottom:52px}.wifi-rail-seg{width:var(--seg-w);height:var(--seg-h);border-radius:2px;background:var(--bg-3);box-shadow:inset 0 0 0 1px #00000038;transition:background .25s ease,opacity .25s ease,height .2s ease,width .2s ease;flex:0 0 auto}.wifi-rail.sig-5 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="4"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="5"]{background:var(--green);box-shadow:inset 0 0 0 1px #00000026,0 0 4px #2ecc7159}.wifi-rail.sig-4 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="4"]{background:var(--green);box-shadow:inset 0 0 0 1px #00000026,0 0 3px #2ecc7140}.wifi-rail.sig-3 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-3 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-3 .wifi-rail-seg[data-seg="3"]{background:var(--amber);box-shadow:inset 0 0 0 1px #00000026,0 0 3px #f39c124d}.wifi-rail.sig-2 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-2 .wifi-rail-seg[data-seg="2"]{background:var(--amber);box-shadow:inset 0 0 0 1px #00000026,0 0 3px #f39c1240}.wifi-rail.sig-1 .wifi-rail-seg[data-seg="1"]{background:var(--red);box-shadow:inset 0 0 0 1px #00000026,0 0 3px #e74c3c59}.wifi-rail.sig-0 .wifi-rail-seg{background:var(--red);opacity:.5;box-shadow:none}.wifi-rail.offline .wifi-rail-seg{background:var(--fg-mute);opacity:.28;box-shadow:none}.wifi-rail-readout{display:flex;flex-direction:column;align-items:center;line-height:1;margin-top:3px;gap:0}.wifi-rail-dbm{font-family:var(--mono);font-size:9px;font-weight:800;color:var(--fg-dim);letter-spacing:-.3px;white-space:nowrap}.wifi-rail-unit{font-family:var(--mono);font-size:6.5px;font-weight:600;color:var(--fg-mute);margin-top:1px;letter-spacing:.2px}.wifi-rail.offline .wifi-rail-dbm,.wifi-rail.offline .wifi-rail-unit{color:var(--fg-mute);opacity:.75}.wifi-rail.compact .wifi-rail-unit{font-size:6px}@media(max-width:900px){.wifi-rail{--seg-h: 15px;--seg-w: 12px;min-width:26px}.wifi-rail.compact{--seg-h: 11px;--seg-w: 10px}.wifi-rail-dbm{font-size:10px}.wifi-rail-unit{font-size:7px}.mgr-card>.wifi-rail{bottom:72px}.mgr-card.quiet>.wifi-rail{bottom:68px}.bound-device-card>.wifi-rail{bottom:60px}.bound-device-card.quiet>.wifi-rail{bottom:56px}}.wifi-rail{position:absolute;right:0;display:flex;flex-direction:column;justify-content:space-evenly;align-items:flex-end;gap:3px;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;z-index:4;pointer-events:none;user-select:none;-webkit-user-select:none}.wifi-rail-seg{width:100%;height:14px;border-radius:0;background:var(--bg-3);box-shadow:none;transition:background .25s ease,opacity .25s ease,height .2s ease,width .2s ease;flex:0 0 auto}.wifi-rail-readout{display:flex;flex-direction:column;align-items:flex-end;line-height:1;margin-top:3px;gap:0;min-width:100%;white-space:nowrap}.mgr-card>.wifi-rail{top:46px;bottom:96px;width:14px}.mgr-card.quiet>.wifi-rail{top:46px;bottom:96px}.bound-device-card>.wifi-rail{top:40px;bottom:52px;width:10px}.bound-device-card.quiet>.wifi-rail{top:40px;bottom:52px}.wifi-rail.compact .wifi-rail-seg{width:65%;height:11px}.wifi-rail.compact .wifi-rail-dbm{font-size:8px}.wifi-rail.compact .wifi-rail-unit{font-size:5.5px}.wifi-rail.sig-5 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="4"],.wifi-rail.sig-5 .wifi-rail-seg[data-seg="5"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-4 .wifi-rail-seg[data-seg="4"]{background:var(--green)}.wifi-rail.sig-4 .wifi-rail-seg[data-seg="5"]{background:var(--bg-3)}.wifi-rail.sig-3 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-3 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-3 .wifi-rail-seg[data-seg="3"]{background:var(--amber)}.wifi-rail.sig-3 .wifi-rail-seg[data-seg="4"],.wifi-rail.sig-3 .wifi-rail-seg[data-seg="5"]{background:var(--bg-3)}.wifi-rail.sig-2 .wifi-rail-seg[data-seg="1"],.wifi-rail.sig-2 .wifi-rail-seg[data-seg="2"]{background:var(--amber)}.wifi-rail.sig-2 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-2 .wifi-rail-seg[data-seg="4"],.wifi-rail.sig-2 .wifi-rail-seg[data-seg="5"]{background:var(--bg-3)}.wifi-rail.sig-1 .wifi-rail-seg[data-seg="1"]{background:var(--red)}.wifi-rail.sig-1 .wifi-rail-seg[data-seg="2"],.wifi-rail.sig-1 .wifi-rail-seg[data-seg="3"],.wifi-rail.sig-1 .wifi-rail-seg[data-seg="4"],.wifi-rail.sig-1 .wifi-rail-seg[data-seg="5"]{background:var(--bg-3)}@media(max-width:900px){.mgr-card>.wifi-rail{top:50px;bottom:104px;width:16px}.bound-device-card>.wifi-rail{top:44px;bottom:58px;width:12px}.wifi-rail-seg{height:15px}.wifi-rail.compact .wifi-rail-seg{height:12px;width:65%}.wifi-rail-dbm{font-size:10px}.wifi-rail-unit{font-size:6.5px}}.wifi-rail-seg{flex:1 1 0;min-height:3px;max-height:16px;width:100%;border-radius:0;background:var(--bg-3);transition:background .25s ease,opacity .25s ease,width .2s ease}.wifi-rail-dbm{font-family:var(--mono);font-size:9px;font-weight:800;color:var(--fg-dim);letter-spacing:-.4px}.wifi-rail-unit{font-family:var(--mono);font-size:6px;font-weight:600;color:var(--fg-mute);letter-spacing:.2px;margin-top:1px}.bound-device-card .wifi-rail.compact .wifi-rail-seg{width:65%;min-width:3px}.bound-device-card .wifi-rail.compact .wifi-rail-dbm{font-size:8px}.bound-device-card .wifi-rail.compact .wifi-rail-unit{font-size:5.5px}@media(max-width:900px){.mgr-card>.wifi-rail{top:50px;bottom:130px;width:7px}.bound-device-card>.wifi-rail{top:44px;bottom:80px;width:5px}.wifi-rail-dbm{font-size:10px}.wifi-rail-unit{font-size:6.5px}.bound-device-card .wifi-rail.compact .wifi-rail-dbm{font-size:8.5px}.bound-device-card .wifi-rail.compact .wifi-rail-unit{font-size:5.5px}}.wifi-rail{position:absolute;right:0;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;gap:0;margin:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;z-index:4;pointer-events:none;user-select:none;-webkit-user-select:none;overflow:visible}.wifi-rail-body{flex:1 1 auto;display:flex;flex-direction:row;align-items:stretch;gap:3px;min-height:0}.wifi-rail-segs{margin-left:auto;flex:0 0 auto;width:6px;display:flex;flex-direction:column;justify-content:space-between;gap:2px;min-height:0}.bound-device-card .wifi-rail-segs{width:4px}.wifi-rail-seg{flex:1 1 0;min-height:3px;max-height:16px;width:100%;border-radius:0;background:var(--bg-3);transition:background .25s ease,opacity .25s ease}.wifi-rail-pct{writing-mode:horizontal-tb;text-orientation:mixed;transform:none;align-self:flex-start;text-align:right;flex:0 0 auto;margin:0;padding:0;font-family:var(--mono);font-size:15px;font-weight:800;letter-spacing:-.4px;color:var(--fg-dim);line-height:1;white-space:nowrap;overflow:visible;text-overflow:clip;transition:color .25s ease,opacity .25s ease}.bound-device-card .wifi-rail-pct{font-size:14px}.mgr-card>.wifi-rail{top:46px;bottom:100px;width:26px}.bound-device-card>.wifi-rail{top:40px;bottom:58px;width:24px}.wifi-rail.sig-8 .wifi-rail-pct,.wifi-rail.sig-7 .wifi-rail-pct,.wifi-rail.sig-6 .wifi-rail-pct{color:var(--green)}.wifi-rail.sig-5 .wifi-rail-pct,.wifi-rail.sig-4 .wifi-rail-pct,.wifi-rail.sig-3 .wifi-rail-pct{color:var(--amber)}.wifi-rail.sig-2 .wifi-rail-pct,.wifi-rail.sig-1 .wifi-rail-pct{color:var(--red)}.wifi-rail.sig-0 .wifi-rail-pct{color:var(--red);opacity:.6}.wifi-rail.offline .wifi-rail-pct{color:var(--fg-mute);opacity:.6}@media(max-width:900px){.mgr-card>.wifi-rail{top:50px;bottom:130px}.bound-device-card>.wifi-rail{top:44px;bottom:80px}}.wifi-rail-body>.wifi-rail-segs{margin-left:auto}.wifi-rail{position:absolute;right:0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:2px;margin:0;padding:0;background:transparent;border:0;box-shadow:none;z-index:4;pointer-events:none;user-select:none;-webkit-user-select:none;overflow:visible}.wifi-rail-seg{flex:1 1 0;min-height:3px;max-height:16px;width:65%;min-width:3px;border-radius:0;background:var(--bg-3);transition:background .25s ease,opacity .25s ease}.wifi-rail-readout{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1;margin-top:3px;white-space:nowrap}.wifi-rail-dbm{font-family:var(--mono);font-size:8px;font-weight:800;color:var(--fg-dim);letter-spacing:-.4px}.wifi-rail-unit{font-family:var(--mono);font-size:5.5px;font-weight:600;color:var(--fg-mute);letter-spacing:.2px;margin-top:1px}.wifi-rail.offline .wifi-rail-dbm,.wifi-rail.offline .wifi-rail-unit{color:var(--fg-mute);opacity:.7}.mgr-card>.wifi-rail{top:46px;bottom:100px;width:6px}.bound-device-card>.wifi-rail{top:40px;bottom:58px;width:4px}.wifi-rail.sig-8 .wifi-rail-seg{background:var(--green)}.wifi-rail.sig-7 .wifi-rail-seg:nth-child(n+2){background:var(--green)}.wifi-rail.sig-6 .wifi-rail-seg:nth-child(n+3){background:var(--green)}.wifi-rail.sig-5 .wifi-rail-seg:nth-child(n+4){background:var(--amber)}.wifi-rail.sig-4 .wifi-rail-seg:nth-child(n+5){background:var(--amber)}.wifi-rail.sig-3 .wifi-rail-seg:nth-child(n+6){background:var(--amber)}.wifi-rail.sig-2 .wifi-rail-seg:nth-child(n+7){background:var(--red)}.wifi-rail.sig-1 .wifi-rail-seg:nth-child(n+8){background:var(--red)}.wifi-rail.sig-0 .wifi-rail-seg{background:var(--red);opacity:.5}.wifi-rail.offline .wifi-rail-seg{background:var(--fg-mute);opacity:.28}@media(max-width:900px){.mgr-card>.wifi-rail{top:50px;bottom:130px;width:7px}.bound-device-card>.wifi-rail{top:44px;bottom:80px;width:5px}}.mgr-card-grip{width:30px;height:30px;padding:0;margin:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--fg-mute);cursor:grab;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none;transition:background .12s,color .12s,border-color .12s}.mgr-card-grip:hover{background:var(--bg-2);border-color:var(--border);color:var(--fg)}.mgr-card-grip:active{cursor:grabbing}.mgr-card-dragging{opacity:.4}.mgr-card-ghost{box-shadow:0 12px 40px #0009!important;border-color:var(--accent)!important;border-style:dashed!important;transition:none!important}@media(max-width:900px){.mgr-card-grip{width:38px;height:38px;font-size:20px;touch-action:none}}mark.mgr-match{background:#f39c1259;color:inherit;padding:0 1px;border-radius:2px;font-weight:inherit}[data-theme=light] mark.mgr-match{background:#f39c1273}.mon-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.mon-btn-row{display:flex;align-items:center;gap:6px;flex:0 0 auto}.mon-icon-btn{flex:0 0 auto;width:40px;height:40px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;background:var(--bg-2);border:1px solid var(--border);color:var(--fg);cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .1s linear,border-color .1s linear,color .1s linear}.mon-icon-btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--border-hi)}.mon-icon-btn:active:not(:disabled){background:var(--bg-3)}.mon-icon-btn:disabled{opacity:.4;cursor:not-allowed}.mon-icon-btn.active{background:var(--accent-2);border-color:var(--accent-2);color:#fff;box-shadow:0 0 8px #1f6feb73}.mon-stats{flex:0 0 auto;font-family:var(--mono);font-size:12px;color:var(--fg-dim);white-space:nowrap}.mon-live-badge,.mon-dev-label,.mon-holds-badge{display:none!important}@media(max-width:900px){.mon-toolbar{padding:6px 8px;gap:6px}.mon-icon-btn{width:42px;height:42px;font-size:20px;touch-action:manipulation}.mon-btn-row{gap:5px}.mon-stats{font-size:11px}}@media(max-width:900px){.sim-toolbar:not(.mon-toolbar){flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:6px 8px!important;gap:6px!important;row-gap:0!important}.sim-toolbar:not(.mon-toolbar) .btn{flex:0 0 auto!important;min-width:0!important;min-height:36px!important;padding:6px 10px!important;font-size:13px!important;white-space:nowrap}.sim-toolbar:not(.mon-toolbar) .speed-group{flex:0 0 auto!important;padding:4px 10px!important;gap:8px!important;min-height:36px;white-space:nowrap}.sim-toolbar:not(.mon-toolbar) input[type=range]{width:110px!important}.sim-toolbar:not(.mon-toolbar) .speed-val{min-width:48px}.sim-toolbar:not(.mon-toolbar) .sim-state-badge{font-size:11px;padding:5px 12px;flex:0 0 auto}.sim-toolbar:not(.mon-toolbar) .sim-stats{flex:0 0 auto;white-space:nowrap;font-size:11px}.sim-toolbar:not(.mon-toolbar) .spacer{flex:0 0 6px!important}}.view-toggle{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.view-toggle::-webkit-scrollbar{height:6px}.view-toggle::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:3px}.view-toggle>*{flex:0 0 auto}.view-toggle>span[style*="margin-left:auto"]{margin-left:12px!important}@media(max-width:900px){.view-toggle{padding:6px 8px;gap:6px}.view-toggle .tool-btn,.view-toggle .btn.ghost.sm{padding:6px 10px;font-size:12px;min-height:34px}.view-toggle .tool-select{font-size:12px;min-height:34px}.view-toggle .tool-color{width:34px;height:34px}}.io-view{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;background:var(--bg);overflow:hidden}.io-modebar{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-1);border-bottom:1px solid var(--border);flex-wrap:nowrap;overflow-x:auto}.io-mode-btn{padding:6px 14px;border:1px solid var(--border);background:var(--bg-2);color:var(--fg-dim);border-radius:6px;cursor:pointer;font-size:12.5px;font-weight:600;white-space:nowrap;flex:0 0 auto}.io-mode-btn.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.io-hint{font-size:12px;color:var(--fg-mute);white-space:nowrap;flex:0 0 auto}.io-grid{flex:1 1 auto;overflow-y:auto;padding:14px 16px 40px;display:flex;flex-direction:column;gap:18px}.io-group{display:flex;flex-direction:column;gap:8px}.io-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);border-bottom:1px solid var(--border);padding-bottom:4px}.io-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.io-tile-wrap{display:flex;flex-direction:column;gap:2px}.io-tile-wrap .io-tile-label{font-size:11px;color:var(--fg-mute)}.io-tile{min-height:56px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);color:var(--fg);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--mono);transition:background .1s linear,border-color .1s linear}.io-tile:hover:not(:disabled){background:var(--bg-3)}.io-tile-label{font-size:11px;color:var(--fg-mute)}.io-tile-value{font-size:15px;font-weight:700;color:var(--fg-dim)}.io-tile.on{background:var(--green);border-color:var(--green);color:#001a0d}.io-tile.on .io-tile-value{color:#001a0d}.io-tile.on .io-tile-label{color:#001a0db3}.io-bank-X .io-tile.on{background:var(--bank-X);border-color:var(--bank-X)}.io-bank-Y .io-tile.on{background:var(--bank-Y);border-color:var(--bank-Y)}.io-bank-M .io-tile.on{background:var(--bank-M);border-color:var(--bank-M)}.io-bank-T .io-tile.on{background:var(--bank-T);border-color:var(--bank-T)}.io-bank-C .io-tile.on{background:var(--bank-C);border-color:var(--bank-C)}.io-tile.io-word{cursor:text;text-align:center;font-size:15px;font-weight:700;color:var(--fg);font-family:var(--mono)}.io-tile.io-word:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #58a6ff40}.io-empty{padding:40px 20px;text-align:center;color:var(--fg-mute);font-size:13px}.io-hmi-wrap{flex:1 1 auto;display:grid;grid-template-columns:160px 1fr 240px;min-height:0;overflow:hidden}.io-hmi-palette{border-right:1px solid var(--border);background:var(--bg-1);padding:10px;overflow-y:auto}.io-hmi-pal-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--fg-mute);margin-bottom:8px}.io-hmi-pal-item{padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;font-size:12.5px;font-weight:600;cursor:grab;margin-bottom:6px;user-select:none;-webkit-user-select:none}.io-hmi-pal-item:hover{background:var(--bg-3);border-color:var(--border-hi)}.io-hmi-canvas{position:relative;overflow:auto;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:20px 20px;min-height:0}[data-theme=light] .io-hmi-canvas{background-image:linear-gradient(rgba(0,0,0,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.055) 1px,transparent 1px)}.io-hmi-side{border-left:1px solid var(--border);background:var(--bg-1);padding:12px 14px;overflow-y:auto}.io-hmi-side-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--fg-mute);margin-bottom:10px}.io-hmi-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.io-hmi-field label{font-size:11px;color:var(--fg-mute)}.io-hmi-field input{padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-family:var(--mono);font-size:13px;outline:none}.io-hmi-field input:focus{border-color:var(--accent)}.io-hmi-hint{font-size:12px;color:var(--fg-dim);line-height:1.5}.io-hmi-obj{position:absolute;background:var(--bg-2);border:2px solid var(--border-hi);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;padding:6px;box-shadow:0 2px 8px #00000059;transition:border-color .1s linear}.io-hmi-obj.selected{border-color:var(--accent);box-shadow:0 0 0 2px #58a6ff59}.io-obj-label{font-size:11px;color:var(--fg-dim);text-align:center}.io-obj-addr{font-size:10px;color:var(--fg-mute);font-family:var(--mono)}.io-lamp-light{width:46px;height:46px;border-radius:50%;background:var(--bg-3);border:3px solid var(--border-hi);transition:background .1s linear,box-shadow .1s linear}.io-lamp-light.on{background:radial-gradient(circle at 35% 30%,#a7ffb6,var(--green) 65%);box-shadow:0 0 16px #2ecc71d9,inset 0 0 8px #ffffff73}.io-switch-btn{min-width:78px;padding:8px 12px;font-family:var(--mono);font-size:14px;font-weight:800;letter-spacing:1px;color:var(--fg-dim);background:var(--bg-3);border:2px solid var(--border-hi);border-radius:8px;cursor:pointer}.io-switch-btn.on{background:var(--green);color:#001a0d;border-color:var(--green);box-shadow:0 0 12px #2ecc718c}.io-num-value{font-family:var(--mono);font-size:22px;font-weight:800;color:var(--green);padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;min-width:90px;text-align:center}.io-slider-row{width:100%}@media(max-width:900px){.io-hmi-wrap{grid-template-columns:120px 1fr}.io-hmi-side{grid-column:1 / -1;border-left:0;border-top:1px solid var(--border);max-height:34vh}.io-tiles{grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}.io-tile{min-height:52px}.io-hmi-pal-item{padding:12px 10px;font-size:12px}}.gnode-out-value.pending{background:var(--bg-3);color:var(--fg-mute);border-color:var(--border);box-shadow:none}.panel-toggle.collapsed{background:var(--accent-2);border-color:var(--accent);color:#fff;box-shadow:0 0 12px #58a6ffbf,0 0 4px #58a6ff80 inset;animation:wlcTogglePulse 1.6s ease-in-out infinite}.panel-toggle.collapsed:hover{background:var(--accent);border-color:var(--accent);box-shadow:0 0 18px #58a6ff;animation:none}.panel-toggle.collapsed:after{content:"";position:absolute;inset:-3px;border:1px solid rgba(88,166,255,.35);border-radius:inherit;pointer-events:none}@keyframes wlcTogglePulse{0%,to{box-shadow:0 0 12px #58a6ffbf}50%{box-shadow:0 0 18px #58a6ff,0 0 4px #58a6ffcc inset}}.panel-toggle.hmi-pos{transition:left .18s ease,background .12s,border-color .12s}.io-hmi-obj{background:transparent;border:none;border-radius:0;padding:2px;box-shadow:none;transition:box-shadow .12s,outline-color .12s}.io-hmi-obj.selected{outline:2px dashed var(--accent);outline-offset:3px;background:#58a6ff0a}.io-lamp-light{width:46px;height:46px;border-radius:50%;background:#1a1f29;border:2px solid #3a3f45;box-shadow:inset 0 2px 6px #0000008c;transition:background .12s,box-shadow .12s,border-color .12s;align-self:center}.io-btn{font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-2);color:var(--fg);cursor:pointer;min-width:60px;align-self:center;box-shadow:0 1px 3px #00000059;transition:background .12s,color .12s,border-color .12s;touch-action:manipulation}.io-btn:hover{background:var(--bg-3)}.io-btn:active{transform:translateY(1px)}.io-btn-word{background:#58a6ff24;border-color:#58a6ff66;color:var(--accent)}.io-num-value{font-family:var(--mono);font-size:20px;font-weight:800;color:var(--green);padding:2px 10px;background:var(--bg);border-radius:6px;border:1px solid var(--border);text-align:center;min-width:70px;align-self:center}.io-char-value{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--accent);padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;text-align:center;align-self:center;min-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.io-color-swatch{width:42px;height:42px;border-radius:50%;background:var(--bg-3);border:2px solid var(--border-hi);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:800;color:#fff;align-self:center;transition:background .12s}.io-range-bar{width:100%;height:12px;border-radius:6px;background:var(--bg-3);overflow:hidden;border:1px solid var(--border)}.io-range-fill{height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green));transition:width .15s}.io-meter{width:90px;height:90px;position:relative;align-self:center;border-radius:50%;background:radial-gradient(circle at 50% 80%,var(--bg-2),var(--bg));border:3px solid var(--border-hi);overflow:hidden}.io-meter-needle{position:absolute;left:50%;bottom:50%;width:2px;height:40px;background:var(--red);transform-origin:50% 100%;transition:transform .18s ease-out;border-radius:2px}.io-bar{width:100%;height:100%;background:var(--bg-3);border-radius:6px;position:relative;overflow:hidden;border:1px solid var(--border)}.io-bar-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,var(--green),var(--green-dim));transition:height .15s}.io-pipe{width:100%;height:100%;background:var(--bg-3);border-radius:4px 4px 8px 8px;position:relative;overflow:hidden;border:1px solid var(--border)}.io-pipe-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,#58a6ff,#1f6feb);transition:height .15s}.io-pie{display:block}.io-dyn-line{align-self:center;border-radius:3px;transition:width .15s,background .15s}.io-dyn-rect,.io-dyn-ellipse{width:100%;height:100%;background:var(--accent-2);opacity:.85;transition:transform .15s;align-self:center}.io-dyn-rect{border-radius:6px}.io-dyn-ellipse{border-radius:50%}.io-state-graphic{width:60px;height:60px;border-radius:50%;background:var(--bg-2);border:2px dashed var(--border-hi);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:22px;font-weight:800;color:var(--accent);align-self:center}.io-slider-row{width:100%;padding:0 4px}.io-slider-input{width:100%;accent-color:var(--accent)}.io-entry-input{width:100%;padding:6px 8px;box-sizing:border-box;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:13px;border:1px solid var(--border);border-radius:6px;align-self:stretch}.io-select{width:100%;padding:6px 8px;box-sizing:border-box;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;align-self:stretch}.io-hmi-pal-group{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--fg-mute);padding:10px 4px 4px;border-bottom:1px solid var(--border);margin-bottom:4px}.io-hmi-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.io-hmi-color-row{display:flex;flex-direction:row!important;align-items:center;gap:10px}.io-hmi-color-row label{flex:1}.io-hmi-color-row input[type=color]{width:42px;height:30px;padding:2px;border-radius:6px;background:var(--bg-2);border:1px solid var(--border);cursor:pointer}.io-hmi-marquee{pointer-events:none}.io-hmi-obj svg{display:block;margin:0 auto}.io-hmi-obj.io-obj-rect>svg,.io-hmi-obj.io-obj-circle>svg,.io-hmi-obj.io-obj-line>svg,.io-hmi-obj.io-obj-diamond>svg,.io-hmi-obj.io-obj-triangle>svg,.io-hmi-obj.io-obj-rightTri>svg,.io-hmi-obj.io-obj-pentagon>svg,.io-hmi-obj.io-obj-hexagon>svg,.io-hmi-obj.io-obj-star>svg,.io-hmi-obj.io-obj-polygon>svg,.io-hmi-obj.io-obj-arc>svg,.io-hmi-obj.io-obj-scale>svg,.io-hmi-obj.io-obj-table>svg,.io-hmi-obj.io-obj-hollowCircle>svg{position:static;inset:auto}@media(max-width:900px){.io-hmi-pal-item{min-height:40px;padding:12px;font-size:13px}.io-hmi-pal-group{font-size:11px}.io-btn{min-height:40px;font-size:13px}.panel-toggle.collapsed{width:22px;height:58px;font-size:15px}}.toolbar-view-btn{flex:0 0 auto!important}.editor-tabs .tab{position:relative;transition:background .12s,color .12s}.editor-tabs .tab[style*=--tab-color]{background:color-mix(in oklab,var(--tab-color) 22%,transparent);border-color:color-mix(in oklab,var(--tab-color) 50%,var(--border))}.editor-tabs .tab[style*=--tab-color]:hover{background:color-mix(in oklab,var(--tab-color) 32%,transparent)}.editor-tabs .tab[style*=--tab-color].active{background:color-mix(in oklab,var(--tab-color) 38%,transparent);border-color:var(--tab-color);box-shadow:0 -1px 0 0 var(--tab-color) inset}.editor-tabs .tab-name{display:inline-block}.editor-tabs .tab-name-input{vertical-align:middle}.io-hmi-canvas{position:relative;overflow:auto}.io-hmi-canvas-scale{position:relative;min-width:100%;min-height:100%}.io-hmi-area{position:absolute;box-sizing:border-box;z-index:1;pointer-events:auto;cursor:move;touch-action:none;transition:box-shadow .12s}.io-hmi-area:hover{box-shadow:0 0 0 1px #58a6ff59}.io-hmi-area.selected{box-shadow:0 0 0 1px var(--accent),0 0 14px #58a6ff73}.io-hmi-area-resize{z-index:90}.io-hmi-wrap{display:grid;grid-template-columns:180px 1fr 340px;min-height:0;overflow:hidden}.io-hmi-wrap.hmi-view-only{grid-template-columns:0 1fr 0}.io-hmi-palette{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--bg-1);border-right:1px solid var(--border)}.io-hmi-pal-fixed{flex:0 0 auto;background:var(--bg-1);border-bottom:1px solid var(--border);padding-bottom:6px}.io-hmi-pal-title{padding:10px 12px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;color:var(--fg-mute)}.io-hmi-pal-search{width:calc(100% - 16px);margin:0 8px 4px;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:12px;outline:none;box-sizing:border-box}.io-hmi-pal-search:focus{border-color:var(--accent)}.io-hmi-pal-list{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-gutter:stable;scrollbar-width:thin}.io-hmi-pal-list::-webkit-scrollbar{width:6px}.io-hmi-pal-list::-webkit-scrollbar-thumb{background:#8b96a54d;border-radius:3px}.io-hmi-side{width:340px!important;min-width:340px;max-width:340px;overflow-y:auto;overflow-x:hidden;padding:14px 16px 24px;background:var(--bg-1);border-left:1px solid var(--border);scrollbar-gutter:stable;scrollbar-width:thin;box-sizing:border-box}.io-hmi-side::-webkit-scrollbar{width:6px}.io-hmi-side::-webkit-scrollbar-thumb{background:#8b96a54d;border-radius:3px}.io-hmi-side-title{font-size:13px;font-weight:700;color:var(--fg);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.io-hmi-field{display:flex;flex-direction:column;margin-bottom:12px;gap:4px}.io-hmi-field-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.io-hmi-field-head>label:first-child{font-size:11px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.4px;flex:1 1 auto}.io-hmi-check{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--fg-mute);text-transform:none;letter-spacing:0;cursor:pointer;user-select:none}.io-hmi-check input[type=checkbox]{margin:0;accent-color:var(--accent);cursor:pointer}.io-hmi-field>label{font-size:11px;color:var(--fg-mute);text-transform:uppercase;letter-spacing:.4px}.io-hmi-field>input,.io-hmi-field>select{width:100%;padding:6px 9px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-family:var(--mono);font-size:12px;outline:none;box-sizing:border-box}.io-hmi-field>input:focus,.io-hmi-field>select:focus{border-color:var(--accent)}.io-hmi-field.io-hmi-color-row{flex-direction:row!important;align-items:center}.io-hmi-field.io-hmi-color-row>label{flex:1}.io-hmi-field.io-hmi-color-row>input[type=color]{width:48px;height:30px;padding:2px;cursor:pointer}.io-hmi-obj{overflow:visible!important}.io-hmi-obj-resize{position:absolute;width:14px;height:14px;background:var(--bg-1);border:2px solid var(--accent);border-radius:3px;z-index:60;box-shadow:0 1px 4px #0006;touch-action:none}.io-hmi-resize-nw{top:-7px;left:-7px;cursor:nwse-resize}.io-hmi-resize-ne{top:-7px;right:-7px;cursor:nesw-resize}.io-hmi-resize-sw{bottom:-7px;left:-7px;cursor:nesw-resize}.io-hmi-resize-se{bottom:-7px;right:-7px;cursor:nwse-resize}.io-hmi-obj.selected .io-hmi-obj-resize{display:block}.io-hmi-obj .io-hmi-obj-resize{display:none}.io-hmi-guides{position:absolute;top:0;left:0;width:0;height:0;pointer-events:none;z-index:500}.io-hmi-guide{position:absolute;background:var(--amber);pointer-events:none;box-shadow:0 0 4px #f39c12cc}.io-hmi-guide-v{width:1px;top:0;height:8000px}.io-hmi-guide-h{height:1px;left:0;width:8000px}.io-hmi-obj>*:not(.io-hmi-obj-resize):not(.io-hmi-guides){max-width:100%;max-height:100%}.io-hmi-obj .io-btn,.io-hmi-obj .io-lamp-light,.io-hmi-obj .io-num-value,.io-hmi-obj .io-char-value,.io-hmi-obj .io-color-swatch,.io-hmi-obj .io-range-bar,.io-hmi-obj .io-bar,.io-hmi-obj .io-pipe,.io-hmi-obj .io-meter,.io-hmi-obj .io-entry-input,.io-hmi-obj .io-select{width:100%;height:100%;min-width:0;min-height:0;box-sizing:border-box}.io-hmi-obj .io-num-value,.io-hmi-obj .io-char-value,.io-hmi-obj .io-color-swatch{display:flex;align-items:center;justify-content:center}.io-hmi-obj .io-slider-row{width:100%;padding:0}.io-hmi-obj svg{display:block;max-width:100%;max-height:100%}.io-hmi-obj .io-pie,.io-hmi-obj .io-trend{width:100%!important;height:100%!important}.panel-toggle.hmi-pos{z-index:300}@media(max-width:900px){.io-hmi-wrap{grid-template-columns:140px 1fr 280px}.io-hmi-side{width:280px!important;min-width:280px;padding:12px}}@media(max-width:640px){.io-hmi-wrap{grid-template-columns:1fr;grid-template-rows:130px 1fr 1fr}.io-hmi-palette{border-right:none;border-bottom:1px solid var(--border)}.io-hmi-side{width:100%!important;min-width:0;border-left:none;border-top:1px solid var(--border)}}.view-toggle{height:42px;min-height:42px;max-height:42px;align-items:center;padding:6px 10px;box-sizing:border-box;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}.view-toggle>*{flex-shrink:0}.view-toggle .tool-btn,.view-toggle .btn.ghost.sm,.view-toggle .tool-select,.view-toggle .tool-color{height:30px;min-height:30px;max-height:30px;box-sizing:border-box;display:inline-flex;align-items:center;line-height:1}.view-toggle .tool-color{padding:2px}.view-toggle .tool-sep{height:24px;align-self:center}.io-hmi-wrap.hmi-view-only{grid-template-columns:1fr}.io-hmi-wrap.hmi-view-only .io-hmi-palette,.io-hmi-wrap.hmi-view-only .io-hmi-side{display:none!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;overflow:hidden!important}.io-hmi-area{z-index:1!important}.io-hmi-obj{z-index:10!important}.io-hmi-area.locked{cursor:default!important;box-shadow:0 0 0 1px var(--amber)!important;opacity:.96}.io-hmi-area.locked:hover{box-shadow:0 0 0 2px var(--amber)!important}.io-hmi-canvas{overflow:auto;scrollbar-gutter:stable}.io-hmi-canvas::-webkit-scrollbar{width:10px;height:10px}.io-hmi-canvas::-webkit-scrollbar-thumb{background:#8b96a559;border-radius:6px;border:2px solid var(--bg)}.editor-tabs .tab{position:relative;padding-right:24px!important}.editor-tabs .tab-close{position:absolute;top:2px;right:2px;width:16px;height:16px;line-height:1;text-align:center;font-size:13px;font-weight:700;border-radius:50%;color:var(--fg-mute);cursor:pointer;opacity:.4;transition:background .12s,color .12s,opacity .12s;display:flex;align-items:center;justify-content:center;pointer-events:auto;user-select:none;-webkit-user-select:none}.editor-tabs .tab:hover .tab-close{opacity:1}.editor-tabs .tab-close:hover{background:var(--red);color:#fff;opacity:1}.wlc-inline-confirm-back{animation:wlcInlineFade .12s ease}@keyframes wlcInlineFade{0%{opacity:0}}.io-hmi-wrap.hmi-view-only{grid-template-columns:1fr!important;grid-template-rows:1fr!important}.io-hmi-wrap.hmi-view-only>.io-hmi-palette,.io-hmi-wrap.hmi-view-only>.io-hmi-side{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;overflow:hidden!important;border:0!important}.io-hmi-wrap.hmi-view-only>.io-hmi-canvas{grid-column:1 / -1}#wlcTabCloseConfirm button:focus{outline:2px solid var(--accent);outline-offset:1px}.io-hmi-pal-list{scrollbar-gutter:auto;scrollbar-width:thin}body.wlc-hmi-view-only .io-hmi-wrap{grid-template-columns:1fr!important;grid-template-rows:1fr!important}body.wlc-hmi-view-only .io-hmi-palette,body.wlc-hmi-view-only .io-hmi-side{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important}body.wlc-hmi-view-only .io-hmi-canvas{grid-column:1 / -1!important;grid-row:1 / -1!important}.panel-toggle.hmi-pos{z-index:300;width:14px;height:52px;border-radius:4px;font-size:12px;font-weight:800;line-height:1;box-shadow:0 2px 8px #00000073}.panel-toggle.hmi-pos.collapsed{background:var(--accent-2);border-color:var(--accent);color:#fff}.io-hmi-pal-list::-webkit-scrollbar{width:4px}.io-hmi-pal-list::-webkit-scrollbar-track{background:transparent}.io-hmi-pal-list::-webkit-scrollbar-thumb{background:#8b96a559;border-radius:2px}.topbar,.editor-tabs{scrollbar-width:none;-ms-overflow-style:none}.topbar::-webkit-scrollbar,.editor-tabs::-webkit-scrollbar{width:0;height:0;display:none}.hmi-file-name-display{font-family:var(--mono);font-size:12px;font-weight:600;padding:4px 12px;border-radius:6px;background:color-mix(in oklab,var(--fg) 5%,transparent);border:1px solid var(--border);color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw;cursor:pointer;user-select:none;-webkit-user-select:none;transition:border-color .12s,background .12s}.hmi-file-name-display:hover{border-color:var(--border-hi);background:color-mix(in oklab,var(--fg) 9%,transparent)}.hmi-file-name-input{width:100%;min-width:140px;padding:3px 8px;font:inherit;font-family:var(--mono);font-weight:600;text-align:center;background:var(--bg);border:1px solid var(--accent);border-radius:4px;outline:none;color:var(--fg);box-sizing:border-box}.io-hmi-ctx .ctx-item.active{background:var(--accent-2);color:#fff}.io-hmi-ctx .io-hmi-search-row{cursor:pointer}body.wlc-hmi-screen-active>.toast-wrap,body.wlc-hmi-screen-active>.ctx-menu:not(.io-hmi-ctx),body.wlc-hmi-screen-active>.device-switcher,body.wlc-hmi-screen-active>.node-tooltip,body.wlc-hmi-screen-active>.mobile-nav,body.wlc-hmi-screen-active>.sidebar-backdrop{display:none!important}body.wlc-hmi-screen-active,body.wlc-hmi-screen-active #app{overflow:hidden!important;background:#000!important}.io-hmi-obj .io-hmi-obj-hitpad{position:absolute;inset:-6px;border-radius:8px;background:transparent;z-index:0;pointer-events:auto}.io-hmi-obj:hover:after{content:"";position:absolute;inset:-3px;border-radius:8px;border:1px dashed var(--accent);opacity:.55;pointer-events:none;z-index:30}.io-hmi-obj.selected:hover:after{border-color:var(--accent);border-style:solid;opacity:.85}.io-hmi-area-hotzone{background:transparent;z-index:200!important}.io-hmi-area,.io-hmi-area-hotzone{touch-action:none}.hmi-fullscreen-header{font-family:var(--sans)}#hmiFsHeaderCenter{color:#e6edf3}#hmiFsHeaderRight{font-variant-numeric:tabular-nums}.hmi-fullscreen-frame{box-shadow:0 0 40px #000000d9}.io-hmi-obj-resize{width:18px!important;height:18px!important;border-width:3px!important}.io-hmi-obj>.io-hmi-obj-hitpad{position:absolute;inset:-9px;background:transparent;border-radius:12px;z-index:0;pointer-events:auto}.io-hmi-obj>*:not(.io-hmi-obj-hitpad):not(.io-hmi-obj-resize){z-index:1}.io-hmi-obj.selected{outline:2px dashed var(--accent);outline-offset:4px}.io-hmi-obj .io-hmi-obj-resize{width:20px!important;height:20px!important;border-width:3px!important}.io-hmi-area.locked,.io-hmi-area.locked>*{pointer-events:none!important}.hmi-fullscreen-header{background:linear-gradient(180deg,#000000a6,#00000040)!important;border-bottom:1px solid rgba(255,255,255,.06)!important}.io-modebar .io-tool-btn{padding:6px 10px;border:1px solid var(--border);background:var(--bg-2);color:var(--fg);border-radius:6px;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:4px;min-height:30px;white-space:nowrap}.io-modebar .io-tool-btn:hover{background:var(--bg-3);border-color:var(--border-hi)}.io-modebar .io-tool-btn:active{transform:translateY(1px)}.io-modebar .io-tool-btn:disabled{opacity:.4;cursor:not-allowed}.io-hmi-setvalue{position:fixed;z-index:2147483647;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:8px;padding:10px 12px;box-shadow:0 12px 32px #0009;display:flex;flex-direction:column;gap:8px;min-width:200px;color:var(--fg);font-family:var(--sans)}.io-hmi-setvalue input{width:100%;padding:6px 8px;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--fg);font-family:var(--mono);font-size:13px;outline:none}.io-hmi-setvalue .err{color:var(--red);font-size:11.5px;min-height:14px}.io-modebar>div{display:none!important}.hmi-fs-header{display:flex;align-items:center;gap:8px;padding:0 10px;background:#0000008c;border-bottom:1px solid rgba(255,255,255,.08);color:#e6edf3;font-family:var(--sans);font-size:13px;box-sizing:border-box}.hmi-fs-exit-btn{flex:0 0 auto;background:transparent;color:#e6edf3;border:1px solid rgba(255,255,255,.18);border-radius:5px;padding:4px 10px;cursor:pointer;font-size:12px;display:inline-flex;align-items:center;gap:4px;transition:background .12s,border-color .12s,color .12s}.hmi-fs-exit-btn:hover{background:#e74c3c59;border-color:#e74c3ca6;color:#fff}.hmi-fs-center{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden}.hmi-fs-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:#8b96a5;box-shadow:0 0 0 2px #ffffff1a;transition:background .2s,box-shadow .2s}.hmi-fs-text{overflow:hidden;text-overflow:ellipsis}.hmi-fs-wifi{flex:0 0 auto;font-family:var(--mono);font-weight:700;letter-spacing:.3px;color:#5b6878;transition:color .2s}.io-hmi-canvas{overflow-anchor:none}.panel-body#watchBody{max-height:none!important;overflow:visible!important}.view-toggle,.editor-tabs,.topbar{overflow-anchor:none}.io-hmi-ctx{min-width:280px!important;max-width:340px!important}@media(max-width:900px){.mobile-nav-item{padding:6px 1px;min-width:0}.mobile-nav-item .mnav-label{font-size:9px;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 1px;box-sizing:border-box}.mobile-nav-item .mnav-icon{font-size:18px}.mobile-nav-item.active .mnav-label{font-weight:700}}@media(max-width:420px){.mobile-nav-item .mnav-label{font-size:8.5px}.mobile-nav-item .mnav-icon{font-size:17px}}@media(max-width:900px){.io-hmi-wrap.mobile-hmi{display:block!important;position:relative!important;width:100%!important;height:100%!important;grid-template-columns:none!important;grid-template-rows:none!important;padding:0!important;overflow:hidden!important}.io-hmi-wrap.mobile-hmi .io-hmi-canvas{width:100%!important;height:100%!important;border:0!important;grid-column:auto!important;grid-row:auto!important}.io-hmi-wrap.mobile-hmi .io-hmi-palette{position:fixed!important;top:0!important;left:0!important;bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;width:88vw!important;max-width:340px!important;min-width:0!important;z-index:150!important;background:var(--bg-1)!important;border-right:1px solid var(--border-hi)!important;border-bottom:0!important;display:flex!important;flex-direction:column!important;padding:0!important;transform:translate(-100%);transition:transform .22s ease,box-shadow .22s ease;box-shadow:none}.io-hmi-wrap.mobile-hmi.mobile-palette-open .io-hmi-palette{transform:translate(0);box-shadow:6px 0 24px #0000008c}.io-hmi-wrap.mobile-hmi .io-hmi-side{position:fixed!important;top:0!important;right:0!important;bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;left:auto!important;width:90vw!important;max-width:360px!important;min-width:0!important;z-index:150!important;background:var(--bg-1)!important;border-left:1px solid var(--border-hi)!important;border-top:0!important;display:block!important;padding:12px 14px 24px!important;overflow-y:auto!important;transform:translate(100%);transition:transform .22s ease,box-shadow .22s ease;box-shadow:none}.io-hmi-wrap.mobile-hmi.mobile-side-open .io-hmi-side{transform:translate(0);box-shadow:-6px 0 24px #0000008c}.io-hmi-wrap.mobile-hmi .io-hmi-pal-item{min-height:42px;padding:11px 12px;font-size:13.5px}.io-hmi-wrap.mobile-hmi .io-hmi-pal-group{font-size:11px;padding:10px 6px 4px}.io-hmi-wrap.mobile-hmi .io-hmi-side-title{font-size:13.5px;padding-bottom:8px}.io-hmi-wrap.mobile-hmi .io-hmi-field{margin-bottom:10px}.io-hmi-wrap.mobile-hmi .io-hmi-field>input,.io-hmi-wrap.mobile-hmi .io-hmi-field>select{min-height:40px;font-size:15px;padding:8px 10px}}@media(max-width:900px){.mobile-nav{z-index:180!important}}@media(max-width:900px){.io-hmi-wrap.mobile-hmi .io-hmi-side{width:92vw!important;max-width:380px!important;min-width:0!important;padding:0!important;background:var(--bg-1)!important;border-left:1px solid var(--border-hi)!important;box-shadow:none;transform:translate(100%);transition:transform .22s ease,box-shadow .22s ease;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.io-hmi-wrap.mobile-hmi.mobile-side-open .io-hmi-side{transform:translate(0);box-shadow:-6px 0 24px #0000008c}.io-hmi-wrap.mobile-hmi .io-hmi-side>*{padding-left:14px;padding-right:14px}.io-hmi-wrap.mobile-hmi .io-hmi-side-title{padding:12px 14px 10px!important;margin:0!important;background:var(--bg-1);border-bottom:1px solid var(--border);font-size:13px;font-weight:600}.mobile-nav-item .mnav-icon{font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;min-height:22px}.io-hmi-obj .io-hmi-obj-resize{z-index:120!important}.io-hmi-obj>[data-part=btn]{cursor:pointer}}.io-hmi-obj .io-hmi-obj-resize{z-index:120!important}.io-hmi-obj>[data-part=btn]{cursor:pointer}@media(max-width:900px){.io-hmi-wrap.mobile-hmi>.io-hmi-side,body .io-hmi-wrap.mobile-hmi>.io-hmi-side{position:fixed!important;inset:0 0 64px auto!important;bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;height:auto!important;min-height:0!important;max-height:none!important;width:92vw!important;max-width:380px!important;min-width:0!important;box-sizing:border-box!important;display:block!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;z-index:150!important;background:var(--bg-1)!important;border-left:1px solid var(--border-hi)!important;padding:0!important;transform:translate(100%);transition:transform .22s ease,box-shadow .22s ease}.io-hmi-wrap.mobile-hmi.mobile-side-open>.io-hmi-side{transform:translate(0)!important;box-shadow:-6px 0 24px #0000008c}.io-hmi-wrap.mobile-hmi .io-hmi-side-title{margin:0!important;padding:12px 14px!important;border-bottom:1px solid var(--border);background:var(--bg-1);font-size:13.5px;font-weight:600;position:sticky;top:0;z-index:2}.io-hmi-wrap.mobile-hmi .io-hmi-side>.io-hmi-tabs{padding:0 8px!important;background:var(--bg-1);border-bottom:1px solid var(--border);position:sticky;top:48px;z-index:2}.io-hmi-wrap.mobile-hmi .io-hmi-side>.io-hmi-tab-content{padding:12px 14px 24px!important}.io-hmi-wrap.mobile-hmi .io-hmi-field>input,.io-hmi-wrap.mobile-hmi .io-hmi-field>select,.io-hmi-wrap.mobile-hmi .io-hmi-field input[type=text],.io-hmi-wrap.mobile-hmi .io-hmi-field input[type=number]{min-height:42px!important;font-size:15px!important;padding:9px 11px!important}.io-hmi-wrap.mobile-hmi .io-hmi-field>label{font-size:11.5px;margin-bottom:4px}.io-hmi-wrap.mobile-hmi .io-hmi-field{margin-bottom:12px}.io-hmi-wrap.mobile-hmi .io-hmi-field.io-hmi-color-row>input[type=color],.io-hmi-wrap.mobile-hmi .io-hmi-field [data-color-key]{min-width:56px!important;min-height:40px!important}}.io-hmi-sync-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;z-index:90;pointer-events:none;font-family:var(--sans);font-size:13px;color:var(--fg)}.io-hmi-sync-overlay span{padding:8px 14px;background:var(--bg-1);border:1px solid var(--border-hi);border-radius:8px;box-shadow:0 8px 24px #00000080}.inline-file-picker{min-width:280px;max-width:360px;max-height:60vh;overflow-y:auto;padding:6px;-webkit-overflow-scrolling:touch;animation:inlinePickerIn .12s ease}@keyframes inlinePickerIn{0%{opacity:0;transform:translateY(-4px)}}.inline-file-picker .ifp-header{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);padding:6px 10px 4px;font-weight:700;border-bottom:1px solid var(--border);margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;gap:6px}.inline-file-picker .ifp-count{font-family:var(--mono);font-size:10.5px;color:var(--fg-mute);text-transform:none;letter-spacing:0;font-weight:400}.inline-file-picker .ifp-row{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .1s}.inline-file-picker .ifp-row:hover{background:var(--bg-2)}.inline-file-picker .ifp-row.current{background:color-mix(in oklab,var(--accent) 10%,transparent)}.inline-file-picker .ifp-row.current .ifp-name{color:var(--accent)}.inline-file-picker .ifp-name-row{display:flex;align-items:baseline;gap:6px}.inline-file-picker .ifp-name{font-size:13px;font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.inline-file-picker .ifp-current{font-size:12px;font-weight:700;color:var(--accent);flex:0 0 auto}.inline-file-picker .ifp-meta{font-size:10.5px;color:var(--fg-mute);font-family:var(--mono);padding-left:0}.inline-file-picker .ifp-empty{padding:16px 12px;text-align:center;color:var(--fg-mute);font-size:12px;line-height:1.5}.inline-file-picker .ifp-actions{border-top:1px solid var(--border);margin-top:6px;padding-top:4px}@media(max-width:900px){.inline-file-picker{min-width:260px;max-width:calc(100vw - 24px)}.inline-file-picker .ifp-row{padding:12px 10px;min-height:46px}.inline-file-picker .ifp-name{font-size:14px}}.mgr-card-actions .mgr-btn.hmi-btn-pending{opacity:.55}@media(max-width:900px){.io-hmi-wrap.mobile-hmi .io-hmi-canvas{padding:0!important}}@media(max-width:900px){.io-modebar .io-mode-btn .io-mode-text{display:none!important}.io-modebar .io-mode-btn{padding:6px 8px!important;min-width:0!important}}.io-hmi-wrap.io-hmi-palette-hidden>.io-hmi-palette{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important}.io-hmi-wrap.io-hmi-side-hidden>.io-hmi-side{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important}.io-hmi-wrap.hmi-view-only:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden){grid-template-columns:180px 1fr 340px!important}.io-hmi-wrap.hmi-view-only:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden)>.io-hmi-palette,.io-hmi-wrap.hmi-view-only:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden)>.io-hmi-side{display:block!important;visibility:visible!important;width:auto!important;min-width:0!important;max-width:none!important;padding:12px 14px 24px!important;border:0!important;overflow-y:auto!important}.io-hmi-wrap.hmi-view-only:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden)>.io-hmi-palette{border-right:1px solid var(--border)!important;padding:0!important}.io-hmi-wrap.hmi-view-only:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden)>.io-hmi-side{border-left:1px solid var(--border)!important}#panelToggleLeft.hmi-pos,#panelToggleRight.hmi-pos{z-index:300;touch-action:manipulation}:root{color-scheme:dark}[data-theme=light],[data-theme=porcelain]{color-scheme:light}.io-hmi-side,.io-hmi-palette,.io-hmi-pal-list,.io-hmi-pal-search,.io-hmi-side *,.io-hmi-palette *{color-scheme:dark}[data-theme=light] .io-hmi-side,[data-theme=light] .io-hmi-palette,[data-theme=light] .io-hmi-side *,[data-theme=light] .io-hmi-palette *,[data-theme=porcelain] .io-hmi-side,[data-theme=porcelain] .io-hmi-palette,[data-theme=porcelain] .io-hmi-side *,[data-theme=porcelain] .io-hmi-palette *{color-scheme:light}.io-hmi-side-title,.io-hmi-field>label,.io-hmi-field label,.io-hmi-check,.io-hmi-hint,.io-hmi-tab,.io-hmi-tab-content{color:var(--fg)!important}.io-hmi-field>input,.io-hmi-field>select,.io-hmi-field>textarea,.io-hmi-pal-search,.io-hmi-side input[type=text],.io-hmi-side input[type=number],.io-hmi-side input[type=color],.io-hmi-side select,.io-hmi-side textarea{background:var(--bg)!important;color:var(--fg)!important;border:1px solid var(--border)!important;-moz-appearance:none;appearance:none}.io-hmi-side input[type=color]{-moz-appearance:auto;appearance:auto;padding:2px}.io-hmi-side input:focus,.io-hmi-side select:focus,.io-hmi-side textarea:focus{border-color:var(--accent)!important;outline:none}.io-hmi-side input::placeholder,.io-hmi-pal-search::placeholder{color:var(--fg-mute)!important;opacity:1}.io-hmi-tabs{background:var(--bg-1)!important;border-bottom:1px solid var(--border)!important}.io-hmi-tab{background:var(--bg-1)!important;color:var(--fg-dim)!important;border-bottom:2px solid transparent!important}.io-hmi-tab:hover{background:var(--bg-2)!important;color:var(--fg)!important}.io-hmi-tab.active{color:var(--accent)!important;border-bottom-color:var(--accent)!important;background:var(--bg-2)!important}.io-hmi-field-section{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-mute);font-weight:700;padding:10px 2px 4px;border-bottom:1px solid var(--border);margin-bottom:6px}.io-hmi-check{display:flex;align-items:center;gap:6px;font-size:12px;padding:3px 0;cursor:pointer;user-select:none}.io-hmi-check input[type=checkbox]{accent-color:var(--accent);margin:0;cursor:pointer}@media(min-width:901px){.io-hmi-side{width:200px!important;min-width:200px!important;max-width:200px!important;padding:10px 10px 20px!important}.io-hmi-wrap{grid-template-columns:180px 1fr 200px}.io-hmi-side-title{font-size:12px;padding-bottom:6px;margin-bottom:8px}.io-hmi-field{margin-bottom:6px;gap:2px}.io-hmi-field>label,.io-hmi-field label{font-size:10px;letter-spacing:.3px}.io-hmi-field>input,.io-hmi-field>select,.io-hmi-side input[type=text],.io-hmi-side input[type=number]{padding:4px 6px!important;font-size:11px!important;min-height:0!important}.io-hmi-side .io-hmi-field.io-hmi-color-row>input[type=color]{width:38px;height:24px;min-width:0}}.io-hmi-canvas{cursor:grab}.io-hmi-canvas.u_22_2_panning{cursor:grabbing}.io-hmi-canvas.u_22_2_panning *{cursor:grabbing!important}.io-hmi-wrap{position:relative}#hmiPropsToggle{position:absolute;top:8px;right:200px;z-index:320;width:14px;height:46px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border:1px solid var(--border);border-radius:4px 0 0 4px;color:var(--fg-dim);font-size:11px;font-weight:700;line-height:1;cursor:pointer;transition:background .12s,color .12s,border-color .12s,right .18s ease}#hmiPropsToggle:hover{background:var(--accent-2);border-color:var(--accent-2);color:#fff}#hmiPropsToggle.collapsed{right:0;border-radius:4px;background:var(--accent-2);border-color:var(--accent);color:#fff;box-shadow:0 0 10px #58a6ff99}.io-hmi-wrap.io-hmi-side-hidden #hmiPropsToggle{right:0}@media(max-width:900px){#hmiPropsToggle{top:6px;right:6px;width:34px;height:34px;font-size:16px;border-radius:8px;touch-action:manipulation}#hmiPropsToggle.collapsed{right:6px}}#panelToggleRight{z-index:320}.io-hmi-wrap.io-hmi-palette-hidden.io-hmi-side-hidden{grid-template-columns:1fr!important}.io-hmi-wrap.io-hmi-palette-hidden:not(.io-hmi-side-hidden){grid-template-columns:1fr 200px!important}.io-hmi-wrap.io-hmi-side-hidden:not(.io-hmi-palette-hidden){grid-template-columns:180px 1fr!important}.io-hmi-wrap:not(.io-hmi-palette-hidden):not(.io-hmi-side-hidden){grid-template-columns:180px 1fr 200px!important}.io-hmi-wrap.io-hmi-side-hidden>.io-hmi-side{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important;flex:0 0 0!important}.io-hmi-wrap.io-hmi-palette-hidden>.io-hmi-palette{display:none!important;visibility:hidden!important;width:0!important;min-width:0!important;max-width:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important;flex:0 0 0!important}#hmiPropsToggle{top:40px!important}.io-hmi-obj-display{padding:2px;box-sizing:content-box}body.wlc-hmi-pan .io-hmi-obj-resize{cursor:nwse-resize!important}#hmiToolToggle.active{background:var(--accent-2)!important;border-color:var(--accent-2)!important;color:#fff!important;box-shadow:0 0 8px #1f6feb8c}#panelToggleRight.u_22_4-owned{transition:none}.io-hmi-canvas,.io-hmi-canvas.u_22_2_panning{cursor:default!important}.io-hmi-canvas *{cursor:default}.io-hmi-canvas input,.io-hmi-canvas button,.io-hmi-canvas select,.io-hmi-canvas textarea{cursor:auto}body.wlc-hmi-pan .io-hmi-canvas,body.wlc-hmi-pan .io-hmi-canvas *{cursor:grab!important}body.wlc-hmi-pan .io-hmi-canvas input,body.wlc-hmi-pan .io-hmi-canvas button,body.wlc-hmi-pan .io-hmi-canvas select,body.wlc-hmi-pan .io-hmi-canvas textarea{cursor:auto!important}body.wlc-hmi-pan .io-hmi-canvas.u_22_2_panning,body.wlc-hmi-pan .io-hmi-canvas.u_22_2_panning *{cursor:grabbing!important}body.wlc-hmi-pan .io-hmi-obj-resize,body.wlc-hmi-pan .io-hmi-area-hotzone{cursor:nwse-resize!important}body.wlc-hmi-view-only:not(.wlc-hmi-palette-hidden) .io-hmi-palette{display:flex!important;visibility:visible!important;overflow:hidden!important;width:180px!important;min-width:180px!important;max-width:180px!important;padding:0!important;border-right:1px solid var(--border)!important}body.wlc-hmi-view-only:not(.wlc-hmi-side-hidden) .io-hmi-side{display:block!important;visibility:visible!important;overflow-y:auto!important;width:200px!important;min-width:200px!important;max-width:200px!important;padding:10px 10px 20px!important;border-left:1px solid var(--border)!important}.io-hmi-obj,.io-hmi-obj-display{padding:0!important;box-sizing:border-box!important}#hmiPropsToggle{top:62px!important}@media(max-width:900px){#hmiPropsToggle{top:6px!important}}@media(max-width:900px){#hmiPropsToggle{display:none!important;visibility:hidden!important;pointer-events:none!important}}@media(max-width:900px){.io-hmi-wrap.mobile-hmi>.io-hmi-side,body .io-hmi-wrap.mobile-hmi>.io-hmi-side,.io-hmi-wrap.mobile-hmi .io-hmi-side{width:34vw!important;max-width:150px!important;min-width:120px!important}.io-hmi-wrap.mobile-hmi .io-hmi-side>*{padding-left:8px!important;padding-right:8px!important}.io-hmi-wrap.mobile-hmi .io-hmi-side-title{padding:10px 8px!important;font-size:12px!important}.io-hmi-wrap.mobile-hmi .io-hmi-field>label,.io-hmi-wrap.mobile-hmi .io-hmi-field label{font-size:10.5px!important}.io-hmi-wrap.mobile-hmi .io-hmi-field>input,.io-hmi-wrap.mobile-hmi .io-hmi-field>select,.io-hmi-wrap.mobile-hmi .io-hmi-field input[type=text],.io-hmi-wrap.mobile-hmi .io-hmi-field input[type=number]{min-height:32px!important;font-size:12.5px!important;padding:5px 7px!important}.io-hmi-wrap.mobile-hmi .io-hmi-tab{padding:8px 6px!important;font-size:11px!important}.io-hmi-wrap.mobile-hmi .io-hmi-field-section{font-size:9px;padding:8px 2px 3px}}[data-theme=espresso]{--bg:#14100c;--bg-1:#1c1712;--bg-2:#26201a;--bg-3:#332a22;--border:#3d3126;--border-hi:#5a4835;--fg:#f5ead6;--fg-dim:#bfb098;--fg-mute:#7d6f5a;--accent:#d4a24e;--accent-2:#a87a2a;--green:#8fbf5a;--green-dim:#5c8a34;--amber:#e0b257;--red:#d96d5a;--purple:#c9a0e8;--bank-X:#8fbf5a;--bank-Y:#e0b257;--bank-M:#6fa8d6;--bank-D:#c9a0e8;--bank-T:#d96d5a;--bank-C:#e08a4e;--bank-S:#5fc4b8;--bank-K:#8a7a62;--bank-P:#c9a0e8;--bank-I:#8fbf5a;--bank-F:#d4a24e;--bank-A:#5fc4b8;--shadow:0 12px 34px rgba(20,10,0,.78)}[data-theme=sage]{--bg:#f2f5ee;--bg-1:#fbfdf8;--bg-2:#e8ede0;--bg-3:#dae1cc;--border:#c9d2b8;--border-hi:#a4b090;--fg:#2a3420;--fg-dim:#5e6b4d;--fg-mute:#8b9878;--accent:#5f8a3a;--accent-2:#3f6020;--green:#5f8a3a;--green-dim:#3f6020;--amber:#a87a2a;--red:#b04a3f;--purple:#7a5a9e;--bank-X:#5f8a3a;--bank-Y:#a87a2a;--bank-M:#2e6f96;--bank-D:#7a5a9e;--bank-T:#b04a3f;--bank-C:#c1622f;--bank-S:#3d8a80;--bank-K:#7d8a6b;--bank-P:#7a5a9e;--bank-I:#5f8a3a;--bank-F:#a3376b;--bank-A:#3d8a80;--shadow:0 10px 28px rgba(80,90,60,.2)}[data-theme=sage] .graph-canvas,[data-theme=sage] .io-hmi-canvas{background-image:linear-gradient(rgba(42,52,32,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(42,52,32,.06) 1px,transparent 1px)}[data-theme=sakura]{--bg:#161320;--bg-1:#1e1a2c;--bg-2:#2a233c;--bg-3:#3a3050;--border:#3f3355;--border-hi:#5a4a75;--fg:#f0e7f5;--fg-dim:#b8a9c9;--fg-mute:#7a6d8f;--accent:#e8a8be;--accent-2:#b26882;--green:#8fd4a8;--green-dim:#5ea078;--amber:#e8c890;--red:#e88a92;--purple:#c4a8e8;--bank-X:#8fd4a8;--bank-Y:#e8c890;--bank-M:#a8b8e8;--bank-D:#c4a8e8;--bank-T:#e88a92;--bank-C:#e8a878;--bank-S:#88c4d4;--bank-K:#8a7da0;--bank-P:#c4a8e8;--bank-I:#8fd4a8;--bank-F:#e8a8be;--bank-A:#88c4d4;--shadow:0 12px 34px rgba(20,10,30,.72)}[data-theme=sage]{color-scheme:light}[data-theme=espresso],[data-theme=sakura]{color-scheme:dark}.theme-swatch-espresso{background:linear-gradient(135deg,#14100c,#2c1e10);color:#d4a24e}.theme-swatch-espresso:before{background:#f5ead6}.theme-swatch-espresso:after{background:#d4a24e;color:#d4a24e}.theme-swatch-sage{background:linear-gradient(135deg,#f2f5ee,#dae1cc);color:#5f8a3a}.theme-swatch-sage:before{background:#2a3420}.theme-swatch-sage:after{background:#5f8a3a;color:#5f8a3a}.theme-swatch-sakura{background:linear-gradient(135deg,#161320,#3a1f36);color:#e8a8be}.theme-swatch-sakura:before{background:#f0e7f5}.theme-swatch-sakura:after{background:#e8a8be;color:#e8a8be;box-shadow:0 22px 0 -2px #c4a8e8}.theme-swatch-sm.theme-swatch-espresso{background:#d4a24e}.theme-swatch-sm.theme-swatch-sage{background:#5f8a3a}.theme-swatch-sm.theme-swatch-sakura{background:#e8a8be}.io-hmi-tabs{display:flex!important;flex-wrap:wrap!important;gap:4px!important;padding:8px 8px 6px!important;background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 7%,var(--bg-2)),var(--bg-1))!important;border-bottom:1px solid var(--border)!important;border-top-left-radius:8px;border-top-right-radius:8px;position:relative;overflow:hidden}.io-hmi-tabs:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--accent) 55%,transparent) 50%,transparent);pointer-events:none}.io-hmi-tab{display:inline-flex!important;align-items:center;justify-content:center;padding:4px 10px!important;border-radius:999px!important;font-size:10px!important;font-weight:700!important;letter-spacing:.5px!important;text-transform:uppercase!important;background:transparent!important;color:var(--fg-mute)!important;border:1px solid transparent!important;cursor:pointer;white-space:nowrap;flex:0 1 auto;min-height:22px;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease!important}.io-hmi-tab:hover{background:color-mix(in oklab,var(--fg) 8%,transparent)!important;color:var(--fg)!important;border-color:color-mix(in oklab,var(--border-hi) 55%,transparent)!important}.io-hmi-tab:active{transform:translateY(1px)}.io-hmi-tab.active{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%)!important;color:#fff!important;border-color:transparent!important;text-shadow:0 1px 2px rgba(0,0,0,.42);box-shadow:0 2px 10px color-mix(in oklab,var(--accent) 48%,transparent),0 1px 2px #0000004d,inset 0 1px #ffffff47!important;font-weight:800!important}.io-hmi-tab-content{padding:12px 4px 6px!important}@media(max-width:900px){.io-hmi-wrap.mobile-hmi>.io-hmi-side,body .io-hmi-wrap.mobile-hmi>.io-hmi-side,.io-hmi-wrap.mobile-hmi .io-hmi-side{width:41vw!important;max-width:180px!important;min-width:144px!important}}.io-hmi-obj.u238-blink,.io-hmi-obj-display.u238-blink{animation:u238-blink 1s steps(2,start) infinite}@keyframes u238-blink{0%,49%{opacity:1}50%,to{opacity:.12}}.io-hmi-obj.u238-smooth,.io-hmi-obj-display.u238-smooth{transition:background-color .25s ease,color .25s ease,border-color .25s ease,opacity .25s ease}.io-hmi-obj.u238-invisible,.io-hmi-obj-display.u238-invisible{visibility:hidden!important}.io-hmi-obj.u238-raised,.io-hmi-obj-display.u238-raised{box-shadow:0 3px 6px #0000008c,inset 0 1px #ffffff1a}.io-hmi-obj.u238-round,.io-hmi-obj-display.u238-round{border-radius:14px!important}.wlc-tab-close-pop{animation:wlcSignoutIn .12s ease}@keyframes wlcSignoutIn{0%{opacity:0;transform:translateY(-4px)}}.editor-tabs .tab{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.editor-tabs .tab *{user-select:none;-webkit-user-select:none}.editor-tabs .tab.dragging{opacity:.45;cursor:grabbing}.editor-tabs .tab.u239-drag-ready{cursor:grab}.tab-drag-ghost{position:fixed;z-index:10050;pointer-events:none;padding:6px 14px;background:var(--bg-1);border:1px solid var(--accent);border-radius:6px;font-size:12px;font-weight:600;color:var(--fg);box-shadow:0 8px 20px #0000008c;white-space:nowrap;transform:translate(-50%,-50%);opacity:.94}.tab-drop-indicator{position:fixed;width:2px;background:var(--accent);box-shadow:0 0 10px var(--accent),0 0 4px #ffffff59;pointer-events:none;z-index:10040;border-radius:1px}.modal-back.u239-challenge{z-index:10060}.editor-tabs .tab.u2310-dragging{cursor:grabbing;z-index:20;opacity:.94;box-shadow:0 8px 22px #0000008c,0 0 0 2px var(--accent),inset 0 1px #fff3}.wlc-user-tooltip{position:fixed;z-index:20000;background:var(--bg-1);color:var(--fg);border:1px solid var(--border-hi);border-radius:8px;padding:10px 12px;font-family:var(--sans);font-size:12px;line-height:1.55;box-shadow:0 10px 30px #0000008c;max-width:340px;white-space:pre-line;pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}.wlc-user-tooltip.show{opacity:1;transform:translateY(0)}.wlc-user-tooltip strong{color:var(--accent);font-weight:700}.wlc-user-tooltip .tt-sub{color:var(--fg-mute);font-size:11px}.u2310-uname-status{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;margin-top:6px;min-height:15px;color:var(--fg-mute);transition:color .15s}.u2310-uname-status .icon{display:inline-flex;width:14px;justify-content:center;font-weight:800;font-size:13px;line-height:1}.u2310-uname-status.checking{color:var(--fg-mute)}.u2310-uname-status.checking .icon{animation:u2310-spin 1s linear infinite;transform-origin:50% 50%}.u2310-uname-status.ok{color:var(--green)}.u2310-uname-status.bad{color:var(--red)}@keyframes u2310-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.u2310-pw-checklist{margin-top:8px;padding:8px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;gap:4px;font-size:11.5px}.u2310-pw-rule{display:flex;align-items:center;gap:6px;color:var(--fg-mute);transition:color .15s}.u2310-pw-rule .icon{display:inline-flex;width:14px;justify-content:center;font-weight:800}.u2310-pw-rule.ok{color:var(--green)}.u2310-pw-rule.ok .icon:before{content:"\2713"}.u2310-pw-rule:not(.ok) .icon:before{content:"\2717"}.topbar .user .u2312-role,.manager-topbar .user .u2312-role{margin-left:6px;font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.8px;padding:1px 6px;border-radius:4px;background:color-mix(in oklab,var(--accent) 22%,transparent);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 45%,transparent)}.admin-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.admin-topbar{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--bg-1);border-bottom:1px solid var(--border);flex:0 0 auto;position:sticky;top:0;z-index:50}.admin-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;letter-spacing:.3px}.admin-brand .admin-badge{font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:1px;padding:2px 8px;border-radius:4px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 0 10px color-mix(in oklab,var(--accent) 55%,transparent)}.admin-body{display:flex;flex:1 1 auto;min-height:0}.admin-nav{width:200px;flex:0 0 auto;background:var(--bg-1);border-right:1px solid var(--border);padding:14px 0;display:flex;flex-direction:column;gap:2px;position:sticky;top:54px;height:calc(100vh - 54px);overflow-y:auto}.admin-nav-item{display:flex;align-items:center;gap:10px;padding:10px 18px;color:var(--fg-dim);cursor:pointer;font-size:13px;font-weight:500;border-left:3px solid transparent;transition:background .12s,color .12s,border-color .12s}.admin-nav-item:hover{background:var(--bg-2);color:var(--fg)}.admin-nav-item.active{background:color-mix(in oklab,var(--accent) 12%,transparent);color:var(--accent);border-left-color:var(--accent);font-weight:700}.admin-nav-item .an-icon{display:inline-flex;width:18px;justify-content:center;font-size:15px}.admin-nav-item .an-count{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--fg-mute)}.admin-main{flex:1 1 auto;padding:22px 26px 60px;min-width:0;overflow-x:hidden}.admin-h1{font-size:20px;margin:0 0 6px;font-weight:700;letter-spacing:-.3px}.admin-sub{color:var(--fg-dim);font-size:13px;margin:0 0 20px}.admin-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.admin-kpi{position:relative;background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.admin-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-hi)}.admin-kpi.kpi-accent:before{background:var(--accent)}.admin-kpi.kpi-green:before{background:var(--green)}.admin-kpi.kpi-amber:before{background:var(--amber)}.admin-kpi.kpi-red:before{background:var(--red)}.admin-kpi.kpi-purple:before{background:var(--purple)}.admin-kpi-value{font-size:26px;font-weight:700;font-family:var(--mono);line-height:1;color:var(--fg)}.admin-kpi.kpi-accent .admin-kpi-value{color:var(--accent)}.admin-kpi.kpi-green .admin-kpi-value{color:var(--green)}.admin-kpi.kpi-amber .admin-kpi-value{color:var(--amber)}.admin-kpi.kpi-red .admin-kpi-value{color:var(--red)}.admin-kpi.kpi-purple .admin-kpi-value{color:var(--purple)}.admin-kpi-label{font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--fg-mute)}.admin-kpi-sub{font-size:11.5px;color:var(--fg-dim);margin-top:2px}.admin-card{background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:20px}.admin-card-title{font-size:13px;font-weight:700;letter-spacing:.3px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}.admin-card-title .spacer{flex:1}.admin-card-title .hint{font-size:11.5px;color:var(--fg-mute);font-weight:400;letter-spacing:0}.admin-table{width:100%;border-collapse:collapse;font-size:12.5px}.admin-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--fg-mute);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:8px;border-bottom:1px solid var(--bg-2);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:color-mix(in oklab,var(--accent) 5%,transparent)}.admin-table .mono{font-family:var(--mono);font-size:11.5px}.admin-table .dim{color:var(--fg-dim)}.admin-table .mute{color:var(--fg-mute);font-size:11.5px}.admin-role-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.admin-role-pill.r-admin{background:color-mix(in oklab,var(--red) 22%,transparent);color:var(--red);border:1px solid color-mix(in oklab,var(--red) 45%,transparent)}.admin-role-pill.r-engineer{background:color-mix(in oklab,var(--accent) 22%,transparent);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 45%,transparent)}.admin-role-pill.r-operator{background:color-mix(in oklab,var(--amber) 22%,transparent);color:var(--amber);border:1px solid color-mix(in oklab,var(--amber) 45%,transparent)}.admin-role-pill.r-viewer{background:color-mix(in oklab,var(--fg-mute) 22%,transparent);color:var(--fg-dim);border:1px solid var(--border-hi)}.admin-row-actions{display:flex;flex-wrap:wrap;gap:4px}.admin-btn{padding:4px 9px;border-radius:5px;border:1px solid var(--border);background:var(--bg-2);color:var(--fg);font-size:11px;cursor:pointer;font-weight:500;transition:background .12s,border-color .12s,color .12s}.admin-btn:hover:not(:disabled){background:var(--bg-3);border-color:var(--border-hi)}.admin-btn:disabled{opacity:.45;cursor:not-allowed}.admin-btn.danger{background:#e74c3c24;border-color:#e74c3c66;color:var(--red)}.admin-btn.danger:hover:not(:disabled){background:var(--red);color:#fff;border-color:var(--red)}.admin-btn.primary{background:color-mix(in oklab,var(--accent) 18%,transparent);border-color:color-mix(in oklab,var(--accent) 50%,transparent);color:var(--accent)}.admin-btn.primary:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.admin-filter-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.admin-filter-row input[type=text]{flex:1 1 240px;min-width:160px;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:12.5px;outline:none}.admin-filter-row input[type=text]:focus{border-color:var(--accent)}.admin-empty{padding:30px 20px;text-align:center;color:var(--fg-mute);font-size:13px}.admin-load-more{display:flex;justify-content:center;padding:12px 0 0}@media(max-width:900px){.admin-nav{width:100%;height:auto;position:relative;top:0;flex-direction:row;overflow-x:auto;padding:8px 6px;border-right:0;border-bottom:1px solid var(--border);gap:4px}.admin-nav-item{border-left:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:12.5px;flex:0 0 auto;white-space:nowrap}.admin-nav-item.active{border-left:0;border-bottom-color:var(--accent)}.admin-nav-item .an-count{display:none}.admin-body{flex-direction:column}.admin-main{padding:14px 12px calc(30px + env(safe-area-inset-bottom,0px))}.admin-topbar{padding:8px 12px calc(8px + env(safe-area-inset-top,0px))}.admin-topbar .btn.ghost{min-height:40px;min-width:40px;padding:8px 10px;font-size:15px}.admin-kpis{grid-template-columns:repeat(2,1fr);gap:8px}.admin-kpi{padding:10px 12px}.admin-kpi-value{font-size:20px}.admin-table{font-size:12px}.admin-table th,.admin-table td{padding:7px 5px}.admin-table .mono{font-size:11px}.admin-row-actions{gap:3px}.admin-btn{padding:5px 8px;font-size:10.5px}}.u2316-scope{display:flex;align-items:center;gap:6px;padding-right:10px;margin-right:4px;border-right:1px solid var(--border)}.u2316-scope-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--fg-mute)}.u2316-scope .chip{padding:5px 12px;font-size:11.5px;font-weight:600}.u2316-scope .chip.active{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.u2316-owner-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;font-size:11.5px;font-weight:600;cursor:pointer;margin-top:6px;width:fit-content;transition:filter .12s,transform .12s;user-select:none;-webkit-user-select:none}.u2316-owner-pill:hover{filter:brightness(1.18)}.u2316-owner-pill:active{transform:translateY(1px)}.u2316-owner-pill .u2316-op-label{opacity:.72;font-weight:500}.u2316-owner-pill.mine{background:color-mix(in oklab,var(--green) 14%,transparent);border:1px solid color-mix(in oklab,var(--green) 42%,transparent);color:var(--green)}.u2316-owner-pill.other{background:color-mix(in oklab,var(--accent) 12%,transparent);border:1px solid color-mix(in oklab,var(--accent) 42%,transparent);color:var(--accent)}.u2316-owner-pill.unowned{background:var(--bg-3);border:1px solid var(--border-hi);color:var(--fg-mute)}.u2316-owner-pill .u2316-you-tag{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--green);color:#001a0d;font-weight:800;letter-spacing:.5px}.u2316-owner-pill .u2316-filter-hint{font-size:9.5px;opacity:.55;margin-left:2px}.u2316-empty-hint{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px 16px;background:color-mix(in oklab,var(--accent) 10%,transparent);border:1px solid color-mix(in oklab,var(--accent) 35%,transparent);border-radius:8px;color:var(--fg-dim);font-size:12.5px;line-height:1.5}.u2316-empty-hint .btn{flex:0 0 auto}@media(max-width:900px){.u2316-scope{border-right:0;padding-right:0;margin-right:0;flex:0 0 auto}.u2316-scope .chip{padding:8px 14px;min-height:36px}.u2316-owner-pill{padding:5px 10px;font-size:12px}}.device-switcher.u2317-switcher{padding:8px;max-height:78vh;overflow:hidden;display:flex;flex-direction:column}.u2317-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 8px;border-bottom:1px solid var(--border);margin-bottom:8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--fg-mute);font-weight:700;flex:0 0 auto}.u2317-scope-pill{font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.8px;padding:2px 8px;border-radius:4px;background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 45%,transparent);cursor:pointer;transition:background .12s,color .12s,border-color .12s;user-select:none;-webkit-user-select:none}.u2317-scope-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.u2317-search-wrap{padding:0 4px 8px;flex:0 0 auto}.u2317-search{width:100%;box-sizing:border-box;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:12.5px;outline:none;transition:border-color .12s}.u2317-search:focus{border-color:var(--accent)}.u2317-search::placeholder{color:var(--fg-mute)}.u2317-list{flex:1 1 auto;overflow-y:auto;max-height:56vh;min-height:60px;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:2px;-webkit-overflow-scrolling:touch}.u2317-list .device-switcher-item{padding:8px 10px;border-radius:5px;margin-bottom:1px}.u2317-list .device-switcher-item.current{background:color-mix(in oklab,var(--accent) 12%,transparent)}.u2317-list .sw-main{flex:1 1 auto;min-width:0}.u2317-list .sw-name,.u2317-list .sw-uid{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u2317-list mark.mgr-match,mark.mgr-match.u2317-hl{background:color-mix(in oklab,var(--amber) 62%,transparent);color:inherit;padding:0 2px;border-radius:2px;font-weight:inherit;box-shadow:inset 0 -1px color-mix(in oklab,var(--amber) 90%,transparent)}.u2317-footer{border-top:1px solid var(--border);margin-top:8px;padding-top:4px;flex:0 0 auto}.u2317-switcher .device-switcher-empty{padding:18px 12px;font-size:12.5px;line-height:1.5}@media(max-width:900px){.device-switcher.u2317-switcher{max-height:82vh}.u2317-list{max-height:52vh}.u2317-search{font-size:16px;padding:9px 11px}.u2317-list .device-switcher-item{padding:11px 10px;min-height:52px}}.bound-device-card .bd-uid{display:flex;align-items:center;gap:8px;min-width:0;overflow:visible;white-space:normal;text-overflow:clip}.bound-device-card .bd-uid>.u2318-uid-text{font-family:var(--mono);font-size:10.5px;color:var(--fg-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.u2318-owner-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:999px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.3px;line-height:1.4;white-space:nowrap;cursor:default;user-select:none;-webkit-user-select:none;transition:filter .12s;background:color-mix(in oklab,var(--accent) 16%,transparent);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 42%,transparent)}.u2318-owner-badge:hover{filter:brightness(1.15)}.u2318-owner-badge.mine{background:color-mix(in oklab,var(--green) 16%,transparent);color:var(--green);border-color:color-mix(in oklab,var(--green) 42%,transparent)}.u2318-owner-badge .u2318-icon{display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1;opacity:.9}.u2318-owner-badge .u2318-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u2318-owner-badge .u2318-you{font-size:8.5px;font-weight:900;letter-spacing:.6px;padding:0 4px;border-radius:2px;background:var(--green);color:#001a0d;margin-left:2px}@media(max-width:900px){.u2318-owner-badge{font-size:10.5px;padding:3px 9px 3px 7px}.u2318-owner-badge .u2318-name{max-width:90px}}.u2319-bulkbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:linear-gradient(90deg,color-mix(in oklab,var(--accent) 16%,var(--bg-1)),var(--bg-1));border:1px solid color-mix(in oklab,var(--accent) 45%,var(--border));border-radius:8px;margin-bottom:12px;font-size:12.5px}.u2319-bulkbar .u2319-bulk-count{font-weight:700;font-family:var(--mono);color:var(--accent);letter-spacing:.3px}.u2319-bulkbar .u2319-bulk-spacer{flex:1}.u2319-bulkbar select{padding:5px 9px;background:var(--bg-2);border:1px solid var(--border);border-radius:5px;color:var(--fg);font-size:12px;outline:none}.u2319-bulkbar select:focus{border-color:var(--accent)}.u2319-cbcol{width:32px;text-align:center}.u2319-cb{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}.u2319-live-list{max-height:70vh;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg);padding:4px}.u2319-live-row{display:grid;grid-template-columns:84px 130px 1fr;gap:8px;padding:7px 10px;border-bottom:1px solid var(--bg-2);font-size:12px;align-items:baseline}.u2319-live-row:last-child{border-bottom:none}.u2319-live-row .lr-ts{font-family:var(--mono);font-size:10.5px;color:var(--fg-mute)}.u2319-live-row .lr-user{font-weight:600;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u2319-live-row .lr-body{min-width:0;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.u2319-live-row .lr-kind{font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:3px;letter-spacing:.3px}.u2319-live-row.src-audit .lr-kind{background:color-mix(in oklab,var(--accent) 16%,transparent);color:var(--accent)}.u2319-live-row.src-login .lr-kind{background:color-mix(in oklab,var(--purple) 16%,transparent);color:var(--purple)}.u2319-live-row.src-device .lr-kind{background:color-mix(in oklab,var(--green) 16%,transparent);color:var(--green)}.u2319-live-row .lr-target{font-family:var(--mono);font-size:11px;color:var(--fg-mute)}.u2319-live-row .lr-message{color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.u2319-live-row.sev-error .lr-message,.u2319-live-row.sev-fail .lr-message{color:var(--red)}.u2319-live-row.sev-warn .lr-message{color:var(--amber)}.u2319-live-empty{padding:30px;text-align:center;color:var(--fg-mute);font-size:13px}.u2319-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:u2319-pulse 1.4s ease-in-out infinite;margin-left:6px}@keyframes u2319-pulse{0%,to{opacity:1}50%{opacity:.35}}.u2319-metric{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--bg-2);font-size:12.5px}.u2319-metric:last-child{border-bottom:none}.u2319-metric .m-label{color:var(--fg-dim)}.u2319-metric .m-value{font-family:var(--mono);font-weight:700}.u2319-bar{height:6px;border-radius:3px;background:var(--bg-3);overflow:hidden;margin-top:6px;width:100%}.u2319-bar-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--green-dim));transition:width .3s ease}.u2319-bar-fill.warn{background:linear-gradient(90deg,var(--amber),#b57614)}.u2319-bar-fill.bad{background:linear-gradient(90deg,var(--red),#8b1a1a)}.u2319-kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.u2319-kv{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:12px}.u2319-kv .k{color:var(--fg-mute);font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.u2319-kv .v{font-family:var(--mono);margin-top:2px;word-break:break-all}.u2319-pending-card{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-2);margin-bottom:10px}.u2319-pending-card .pc-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.u2319-pending-card .pc-uid{font-family:var(--mono);font-weight:700;font-size:13px}.u2319-pending-card .pc-meta{font-size:11.5px;color:var(--fg-mute);font-family:var(--mono)}.u2319-pending-card .pc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.u2319-pending-card select{padding:5px 9px;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--fg);font-size:12px;outline:none;min-width:160px}.u2319-maint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:20px}.u2319-maint-tile{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-1);display:flex;flex-direction:column;gap:8px}.u2319-maint-tile h4{margin:0 0 4px;font-size:13px;font-weight:700}.u2319-maint-tile p{margin:0;font-size:11.5px;color:var(--fg-mute);line-height:1.5;flex:1}.u2319-export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.u2319-export-tile{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-1);display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:border-color .12s,background .12s,transform .08s}.u2319-export-tile:hover{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 8%,var(--bg-1))}.u2319-export-tile:active{transform:translateY(1px)}.u2319-export-tile .et-title{font-size:13px;font-weight:700}.u2319-export-tile .et-sub{font-size:11.5px;color:var(--fg-mute);line-height:1.5}.u2319-export-tile .et-icon{font-size:22px}@media(max-width:900px){.u2319-live-row{grid-template-columns:74px 1fr}.u2319-live-row .lr-user{grid-column:2}.u2319-live-row .lr-body{grid-column:1 / -1}.u2319-bulkbar{padding:8px 10px;gap:6px}.u2319-bulkbar select{min-height:34px;font-size:13px}}.u2321-avatar{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:color-mix(in oklab,currentColor 22%,transparent);color:currentColor;font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:0;text-transform:uppercase;line-height:1;flex:0 0 auto}.bound-device-card .bd-head,.bound-device-card .bd-info,.bound-device-card .bd-actions{padding-right:24px}.bound-device-card .u2318-owner-badge{border-radius:3px;padding:2px 7px 2px 3px;gap:6px;font-size:10.5px;max-width:130px}.bound-device-card .u2318-owner-badge .u2318-icon{display:none!important}.bound-device-card .u2318-owner-badge:before{content:attr(data-avatar);display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:color-mix(in oklab,currentColor 22%,transparent);color:currentColor;font-family:var(--mono);font-size:9px;font-weight:800;text-transform:uppercase;line-height:1;flex:0 0 auto}.bound-device-card .u2318-owner-badge .u2318-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}.mgr-card .mgr-card-info{padding-right:26px}.mgr-card .u2316-owner-pill{border-radius:3px;padding:2px 8px 2px 3px;gap:6px;font-size:11px;font-weight:600;max-width:200px}.mgr-card .u2316-owner-pill .u2316-op-label,.mgr-card .u2316-owner-pill .u2316-filter-hint{display:none!important}.mgr-card .u2316-owner-pill:before{content:attr(data-avatar);display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:color-mix(in oklab,currentColor 22%,transparent);color:currentColor;font-family:var(--mono);font-size:9px;font-weight:800;text-transform:uppercase;line-height:1;flex:0 0 auto}.mgr-card .u2316-owner-pill>span:not([class]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u2321-owner-cell{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 3px;border-radius:3px;font-family:var(--mono);font-size:11px;font-weight:600;white-space:nowrap;max-width:160px;overflow:hidden}.u2321-owner-cell.mine{background:color-mix(in oklab,var(--green) 14%,transparent);color:var(--green);border:1px solid color-mix(in oklab,var(--green) 38%,transparent)}.u2321-owner-cell.other{background:color-mix(in oklab,var(--accent) 12%,transparent);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 38%,transparent)}.u2321-owner-cell .u2321-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.bound-device-card .bd-head,.bound-device-card .bd-info,.bound-device-card .bd-actions{padding-right:26px}.mgr-card .mgr-card-info{padding-right:28px}.bound-device-card .u2318-owner-badge{font-size:11px;max-width:140px}.mgr-card .u2316-owner-pill{font-size:11.5px;max-width:220px}}.modal-back.u2324-modal{z-index:10060}.u2324-pick-row{transition:background .1s}.u2324-pick-row:hover{background:var(--bg-2)}.u2324-pick-row.selected{background:var(--accent-2);color:#fff}.ctx-menu{scrollbar-width:thin}.ctx-menu::-webkit-scrollbar{width:8px;height:8px}.ctx-menu::-webkit-scrollbar-thumb{background:#8b96a559;border-radius:4px}.u2326-status-line{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--fg-mute);font-family:var(--mono);margin-top:2px}.u2326-status-line .u2326-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;background:var(--bg-3);border:1px solid var(--border)}.u2326-status-line .u2326-chip.ok{border-color:color-mix(in oklab,var(--green) 45%,transparent);color:var(--green)}.u2326-status-line .u2326-chip.warn{border-color:color-mix(in oklab,var(--amber) 45%,transparent);color:var(--amber)}.u2326-status-line .u2326-chip.bad{border-color:color-mix(in oklab,var(--red) 45%,transparent);color:var(--red)}@media(max-width:900px){.u2319-bulkbar{padding:10px 12px;gap:8px}.u2319-bulkbar .u2319-bulk-spacer{flex:1 1 100%;height:0}.u2319-bulkbar .admin-btn{flex:1 1 calc(50% - 4px);min-width:120px;min-height:38px;font-size:12px}.admin-filter-row{gap:6px}.admin-filter-row input[type=text]{flex:1 1 100%;min-width:0;font-size:16px;padding:9px 11px;min-height:40px}.admin-filter-row .admin-btn{flex:1 1 auto;min-height:38px}.admin-table.u2327-cards{display:block;width:100%}.admin-table.u2327-cards thead{display:none}.admin-table.u2327-cards tbody{display:block}.admin-table.u2327-cards tr{display:block;position:relative;background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:14px 46px 12px 14px;margin-bottom:10px}.admin-table.u2327-cards tr:hover td{background:transparent}.admin-table.u2327-cards td{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:3px 0;border:none;font-size:12.5px;text-align:left;vertical-align:baseline}.admin-table.u2327-cards td:before{content:attr(data-label);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--fg-mute);flex:0 0 auto;min-width:78px}.admin-table.u2327-cards td.u2327-cbcol{position:absolute;top:14px;right:14px;padding:0;margin:0;display:block;width:24px;height:24px;border:none}.admin-table.u2327-cards td.u2327-cbcol:before{display:none}.admin-table.u2327-cards td.u2327-cbcol .u2319-cb{width:20px;height:20px;cursor:pointer}.admin-table.u2327-cards td.u2327-primary{display:block;padding:0 0 2px;font-size:15px;font-weight:700;color:var(--fg);letter-spacing:-.1px;font-family:var(--sans)}.admin-table.u2327-cards td.u2327-primary:before{display:none}.admin-table.u2327-cards td.u2327-secondary{display:block;padding:0 0 10px;font-size:12px;font-family:var(--mono);color:var(--fg-mute);border-bottom:1px dashed var(--border);margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-table.u2327-cards td.u2327-secondary:before{display:none}.admin-table.u2327-cards td.u2327-actions{display:block;padding:10px 0 0;border-top:1px solid var(--border);margin-top:8px}.admin-table.u2327-cards td.u2327-actions:before{display:none}.admin-table.u2327-cards td.u2327-actions .admin-row-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-table.u2327-cards td.u2327-actions .admin-row-actions>*{flex:1 1 auto;min-width:110px}.admin-table.u2327-cards td.u2327-actions .admin-btn{min-height:38px;font-size:12.5px;justify-content:center;display:inline-flex;align-items:center}.admin-table.u2327-cards td.u2327-actions select{min-height:38px;font-size:13px}@media(max-width:480px){.admin-table.u2327-cards td{flex-direction:column;align-items:flex-start;gap:2px}.admin-table.u2327-cards td:before{min-width:0}.admin-table.u2327-cards td.u2327-actions .admin-row-actions>*{flex:1 1 100%;min-width:0}}}.u2328-area{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}.u2328-searchbar{display:flex;align-items:center;gap:10px;padding:0 0 14px;flex-wrap:wrap}.u2328-searchbar .u2328-field{position:relative;flex:1 1 320px;min-width:200px}.u2328-searchbar input.u2328-input{width:100%;box-sizing:border-box;padding:9px 34px 9px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:13px;outline:none;transition:border-color .12s,box-shadow .12s}.u2328-searchbar input.u2328-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent)}.u2328-searchbar input.u2328-input::placeholder{color:var(--fg-mute)}.u2328-clear{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--fg-mute);font-size:14px;font-weight:700;cursor:pointer;transition:background .1s,color .1s}.u2328-clear:hover{background:var(--bg-3);color:var(--fg)}.u2328-clear[hidden]{display:none}.u2328-count{font-family:var(--mono);font-size:11px;color:var(--fg-mute);white-space:nowrap}.u2328-count b{color:var(--accent);font-weight:700}mark.u2328-hl{background:color-mix(in oklab,var(--amber) 60%,transparent);color:inherit;padding:0 2px;border-radius:2px;font-weight:inherit;box-shadow:inset 0 -1px color-mix(in oklab,var(--amber) 90%,transparent)}[data-theme=light] mark.u2328-hl,[data-theme=sage] mark.u2328-hl,[data-theme=porcelain] mark.u2328-hl{background:color-mix(in oklab,var(--amber) 55%,transparent)}.admin-table tbody tr.u2328-hidden,.u2319-pending-card.u2328-hidden,.u2319-live-row.u2328-hidden{display:none!important}.u2328-empty{padding:30px 20px;text-align:center;color:var(--fg-mute);font-size:13px;line-height:1.6}.u2328-empty b{color:var(--fg)}@media(max-width:900px){.u2328-searchbar{padding:0 0 10px;gap:8px}.u2328-searchbar .u2328-field{flex:1 1 100%}.u2328-searchbar input.u2328-input{font-size:16px;padding:11px 40px 11px 12px;min-height:44px}.u2328-clear{width:32px;height:32px;right:6px;font-size:16px}.u2328-count{font-size:11px}}.u2328-area>.u2328-searchbar{min-height:50px;padding-top:0;padding-bottom:12px;box-sizing:border-box}.u2328-area>.u2328-searchbar{padding-left:26px;padding-right:26px}@media(max-width:900px){.u2328-area>.u2328-searchbar{min-height:56px;padding-left:12px;padding-right:12px;padding-bottom:10px}}.u2330-row .u2330-count{font-family:var(--mono);font-size:11px;color:var(--fg-mute);white-space:nowrap;padding:0 4px}.u2330-row .u2330-count b{color:var(--accent);font-weight:700}.u2330-row .u2330-count:empty{display:none}@media(max-width:900px){.u2330-row{gap:8px}.u2330-row input[type=text]{flex:1 1 100%;font-size:16px;padding:10px 12px;min-height:42px}.u2330-row .admin-btn{flex:1 1 auto;min-height:40px}.u2330-row .u2330-count{flex:1 1 auto;text-align:right;font-size:11.5px}}.u2328-area>.u2328-searchbar{display:none!important}.admin-main>.u2330-row{display:none!important}.u2331-row .u2331-count{font-family:var(--mono);font-size:11px;color:var(--fg-mute);white-space:nowrap;padding:0 4px}.u2331-row .u2331-count b{color:var(--accent);font-weight:700}.u2331-row .u2331-count:empty{display:none}@media(max-width:900px){.u2331-row input[type=text]{flex:1 1 100%;font-size:16px;padding:10px 12px;min-height:42px}.u2331-row .admin-btn{flex:1 1 auto;min-height:40px}.u2331-row .u2331-count{flex:1 1 auto;text-align:right;font-size:11.5px}}.field input[type=checkbox],.field input[type=radio]{width:auto;min-width:0;max-width:none;height:auto;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;font-family:inherit;font-size:inherit;line-height:inherit;accent-color:var(--accent);cursor:pointer;flex:0 0 auto}.field label:has(>input[type=checkbox]),.field label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:8px;margin-bottom:0;padding:2px 0;font-weight:500;font-size:13px;line-height:1.4;color:var(--fg);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.wlc-webhook-events-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;padding:4px 0}.wlc-webhook-events-grid>label{min-width:0}.wlc-webhook-events-grid>label.wlc-webhook-event-all{grid-column:1 / -1;font-weight:600;font-size:13.5px;padding-bottom:4px;margin-bottom:2px;border-bottom:1px solid var(--border)}@media(max-width:900px){.field input[type=checkbox],.field input[type=radio]{font-size:13px!important;width:auto!important;padding:0!important;border:0!important;background:transparent!important}.wlc-webhook-events-grid{grid-template-columns:1fr;gap:4px}.field label:has(>input[type=checkbox]),.field label:has(>input[type=radio]){padding:8px 0;min-height:36px;font-size:14px}}.topbar,.manager-topbar,.admin-topbar{position:relative}.topbar:after,.manager-topbar:after,.admin-topbar:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s ease;background:var(--alarm-tint, transparent);z-index:5}.topbar.has-alarm-critical,.manager-topbar.has-alarm-critical,.admin-topbar.has-alarm-critical{border-bottom-color:var(--red);box-shadow:inset 0 -2px 0 0 var(--red),0 0 22px -8px var(--red)}.topbar.has-alarm-critical:after,.manager-topbar.has-alarm-critical:after,.admin-topbar.has-alarm-critical:after{--alarm-tint: linear-gradient(180deg, rgba(231,76,60,.38) 0%, rgba(231,76,60,.1) 55%, rgba(231,76,60,0) 100%);animation:alarmPulseOverlay 1.6s ease-in-out infinite}.topbar.has-alarm-warning,.manager-topbar.has-alarm-warning,.admin-topbar.has-alarm-warning{border-bottom-color:var(--amber);box-shadow:inset 0 -2px 0 0 var(--amber),0 0 22px -8px var(--amber)}.topbar.has-alarm-warning:after,.manager-topbar.has-alarm-warning:after,.admin-topbar.has-alarm-warning:after{--alarm-tint: linear-gradient(180deg, rgba(243,156,18,.34) 0%, rgba(243,156,18,.08) 55%, rgba(243,156,18,0) 100%);animation:alarmPulseOverlay 2s ease-in-out infinite}.topbar.has-alarm-info,.manager-topbar.has-alarm-info,.admin-topbar.has-alarm-info{border-bottom-color:var(--accent);box-shadow:inset 0 -2px 0 0 var(--accent),0 0 22px -8px var(--accent)}.topbar.has-alarm-info:after,.manager-topbar.has-alarm-info:after,.admin-topbar.has-alarm-info:after{--alarm-tint: linear-gradient(180deg, rgba(88,166,255,.28) 0%, rgba(88,166,255,.06) 55%, rgba(88,166,255,0) 100%);animation:alarmPulseOverlay 3s ease-in-out infinite}@keyframes alarmPulseOverlay{0%,to{opacity:.3}50%{opacity:1}}.topbar>*,.manager-topbar>*,.admin-topbar>*{position:relative;z-index:10}.alarm-topbar-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.3px;cursor:pointer;border:1px solid var(--border);background:var(--bg-2);color:var(--fg);flex:0 0 auto;white-space:nowrap;transition:filter .12s ease,transform .08s ease;outline:none}.alarm-topbar-badge:hover{filter:brightness(1.15)}.alarm-topbar-badge:active{transform:translateY(1px)}.alarm-topbar-badge.critical{background:#e74c3c33;border-color:#e74c3ca6;color:var(--red);animation:alarmBadgeBreathe 1.6s ease-in-out infinite}.alarm-topbar-badge.warning{background:#f39c1233;border-color:#f39c12a6;color:var(--amber);animation:alarmBadgeBreathe 2s ease-in-out infinite}.alarm-topbar-badge.info{background:#58a6ff33;border-color:#58a6ffa6;color:var(--accent)}@keyframes alarmBadgeBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media(max-width:900px){.alarm-topbar-badge{font-size:10.5px;padding:3px 8px}}@media(prefers-reduced-motion:reduce){.topbar:after,.manager-topbar:after,.admin-topbar:after{animation:none!important;opacity:.55!important}.alarm-topbar-badge.critical,.alarm-topbar-badge.warning{animation:none!important}}.io-hmi-obj [data-part=btn],.io-hmi-obj-display [data-part=btn]{transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease}.state-pill.OFFLINE{background:#8b96a52e;color:var(--fg-dim)}[data-theme=light] .state-pill.OFFLINE,[data-theme=sage] .state-pill.OFFLINE,[data-theme=porcelain] .state-pill.OFFLINE{background:#57606a24;color:#57606a}.pal-group{--pal-color: #8b96a5;position:relative;margin:3px 8px 6px 0;border-left:3px solid var(--pal-color);border-radius:0 8px 8px 0;overflow:hidden;background:linear-gradient(90deg,color-mix(in oklab,var(--pal-color) 7%,transparent) 0%,color-mix(in oklab,var(--pal-color) 2%,transparent) 45%,transparent 75%);box-shadow:inset 1px 0 color-mix(in oklab,var(--pal-color) 40%,transparent),inset -1px 0 color-mix(in oklab,var(--pal-color) 8%,transparent);transition:background .15s ease,box-shadow .15s ease,border-left-color .15s ease}.pal-group:hover{background:linear-gradient(90deg,color-mix(in oklab,var(--pal-color) 14%,transparent) 0%,color-mix(in oklab,var(--pal-color) 4%,transparent) 50%,transparent 80%);box-shadow:inset 1px 0 color-mix(in oklab,var(--pal-color) 70%,transparent),inset -1px 0 color-mix(in oklab,var(--pal-color) 12%,transparent)}.pal-group:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;pointer-events:none;background:linear-gradient(90deg,color-mix(in oklab,var(--pal-color) 85%,transparent) 0%,color-mix(in oklab,var(--pal-color) 20%,transparent) 35%,transparent 90%)}.pal-group .pal-head{position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px 8px 14px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;cursor:pointer;user-select:none;color:var(--pal-color)!important;border-left:0!important;background:linear-gradient(90deg,color-mix(in oklab,var(--pal-color) 16%,transparent) 0%,color-mix(in oklab,var(--pal-color) 5%,transparent) 55%,transparent 100%);text-shadow:0 0 14px color-mix(in oklab,var(--pal-color) 40%,transparent)}.pal-group .pal-head .arrow{color:var(--pal-color)!important;opacity:.85;transition:transform .15s ease,opacity .15s ease}.pal-group:hover .pal-head .arrow{opacity:1}.pal-group .pal-head:after{content:"";width:7px;height:7px;border-radius:50%;margin-left:auto;flex:0 0 auto;background:var(--pal-color);box-shadow:0 0 8px var(--pal-color),0 0 0 2px color-mix(in oklab,var(--pal-color) 25%,transparent);transition:opacity .2s ease,box-shadow .2s ease}.pal-group.collapsed .pal-head:after{opacity:.35;box-shadow:0 0 0 2px color-mix(in oklab,var(--pal-color) 25%,transparent)}.pal-group .pal-items{padding-bottom:4px}.pal-group .pal-item{border-left-color:transparent!important}.pal-group[data-group="inputs (x)"]{--pal-color: #22d3a7}.pal-group[data-group="outputs (y)"]{--pal-color: #fbbf24}.pal-group[data-group="internal (m)"]{--pal-color: #60a5fa}.pal-group[data-group="analogs (ana)"]{--pal-color: #2dd4bf}.pal-group[data-group="timers (t)"]{--pal-color: #fb7185}.pal-group[data-group="counters (c)"]{--pal-color: #fb923c}.pal-group[data-group="math (d)"]{--pal-color: #c084fc}.pal-group[data-group="data (d)"]{--pal-color: #a78bfa}.pal-group[data-group=compare]{--pal-color: #38bdf8}.pal-group[data-group=logic]{--pal-color: #94a3b8}.pal-group[data-group="modbus / network"]{--pal-color: #14b8a6}.pal-group[data-group="i2c communication"]{--pal-color: #22d3ee}.pal-group[data-group="1-wire"]{--pal-color: #2dd4bf}.pal-group[data-group="pt100 / rtd"]{--pal-color: #f43f5e}.pal-group[data-group="ir remote"]{--pal-color: #e879f9}.pal-group[data-group=encoder]{--pal-color: #a3e635}.pal-group[data-group="servo / pwm"]{--pal-color: #fb923c}.pal-group[data-group="can / canopen / j1939"]{--pal-color: #fbbf24}.pal-group[data-group="modbus rtu"]{--pal-color: #f472b6}.pal-group[data-group="analog i/o & scaling"]{--pal-color: #60a5fa}.pal-group[data-group="temperature / process inputs"]{--pal-color: #38bdf8}.pal-group[data-group="weighing / load cell"]{--pal-color: #94a3b8}.pal-group[data-group="pid & process control"]{--pal-color: #a78bfa}.pal-group[data-group="hmi / scada logic"]{--pal-color: #c4b5fd}.pal-group[data-group="alarms & events"]{--pal-color: #f472b6}.pal-group[data-group="safety & interlocks"]{--pal-color: #ef4444}.pal-group[data-group="diagnostics & system"]{--pal-color: #64748b}.pal-group[data-group="modbus tcp master"]{--pal-color: #06b6d4}.pal-group[data-group="mqtt / iot"]{--pal-color: #10b981}.pal-group[data-group=udfb-params]{--pal-color: #f59e0b}.pal-group[data-group=udfb-functions],.pal-group[data-group^=udfb]{--pal-color: #a371f7}@media(max-width:900px){.pal-group{border-left-width:4px;margin:4px 6px 8px 0}.pal-group .pal-head{padding:10px 12px 10px 14px;font-size:12px}.pal-group .pal-head:after{width:8px;height:8px}}@media(prefers-reduced-motion:reduce){.pal-group,.pal-group .pal-head,.pal-group .pal-head .arrow,.pal-group .pal-head:after{transition:none!important}}.modal-back{z-index:1100}.toast-wrap{z-index:1200}body:has(.modal-back) #panelToggleLeft,body:has(.modal-back) #panelToggleRight,body:has(.modal-back) #hmiPropsToggle{pointer-events:none!important}@media(max-width:900px){.topbar #projectNameDisplay{position:static!important;left:auto!important;top:auto!important;transform:none!important;z-index:auto!important;flex:0 1 auto!important;min-width:0!important;max-width:40vw!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11.5px!important;line-height:1.2!important;padding:4px 10px!important;margin:0 4px!important;letter-spacing:0!important;box-sizing:border-box}}@media(max-width:500px){.topbar #projectNameDisplay{font-size:11px!important}}@media(max-width:420px){.topbar #projectNameDisplay{font-size:10.5px!important}}@media(max-width:360px){.topbar #projectNameDisplay{font-size:10px!important}}@media(min-width:901px){.topbar #projectNameDisplay.u50e9-fallback{position:static!important;left:auto!important;top:auto!important;transform:none!important;flex:0 1 auto!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;max-width:40vw!important}}@media(prefers-reduced-motion:reduce){.topbar #projectNameDisplay{transition:none!important}}#u50i3Nav{display:inline-flex!important;visibility:visible!important;opacity:1!important;position:static!important;width:auto!important;height:30px!important;margin:0 0 0 8px!important;padding:0!important;align-items:center!important;flex:0 0 auto!important;background:var(--bg-2)!important;border:1px solid var(--border)!important;border-radius:6px!important;overflow:hidden!important;box-sizing:border-box!important;pointer-events:auto!important;z-index:5!important}#u50i3Nav>button.u50i3-nav-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:28px!important;height:100%!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:var(--fg-dim)!important;cursor:pointer!important;font-size:11px!important;line-height:1!important;flex:0 0 auto!important;visibility:visible!important;opacity:1!important;position:static!important}#u50i3Nav>button.u50i3-nav-btn:hover:not(:disabled){background:var(--bg-3)!important;color:var(--fg)!important}#u50i3Nav>button.u50i3-nav-btn:disabled{opacity:.32!important;cursor:not-allowed!important}#u50i3Nav>button.u50i3-page-label{display:inline-flex!important;align-items:center!important;gap:8px!important;height:100%!important;padding:0 12px!important;margin:0!important;border:0!important;border-left:1px solid var(--border)!important;border-right:1px solid var(--border)!important;background:transparent!important;color:var(--fg)!important;cursor:pointer!important;font-family:var(--mono)!important;font-size:11.5px!important;font-weight:600!important;white-space:nowrap!important;max-width:220px!important;flex:0 0 auto!important;visibility:visible!important;opacity:1!important}#u50i3Nav>button.u50i3-page-label:hover{background:var(--bg-3)!important}#u50i3Nav .u50i3-page-num{color:var(--accent)!important;font-weight:800!important;letter-spacing:.3px!important;display:inline!important}#u50i3Nav .u50i3-page-name{color:var(--fg-dim)!important;max-width:130px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-weight:500!important;display:inline!important}#u50i3Nav>button.u50i3-add-btn{color:var(--green)!important;border-left:1px solid var(--border)!important;font-size:15px!important;font-weight:700!important}#u50i3Nav>button.u50i3-add-btn:hover:not(:disabled){background:#2ecc7133!important;color:var(--green)!important}#u50i3Nav>button.u50i3-del-btn{color:var(--red)!important;border-left:1px solid var(--border)!important;font-size:13px!important}#u50i3Nav>button.u50i3-del-btn:hover:not(:disabled){background:#e74c3c33!important;color:var(--red)!important}.u50i3-confirm{display:inline-flex!important;align-items:center!important;gap:8px!important;height:30px!important;margin:0 0 0 8px!important;padding:0 8px 0 12px!important;background:#f39c121f!important;border:1px solid rgba(243,156,18,.5)!important;border-radius:6px!important;flex:0 0 auto!important;visibility:visible!important;opacity:1!important}.u50i3-confirm-text{font-size:11.5px!important;color:var(--fg)!important;white-space:nowrap!important;max-width:280px!important;overflow:hidden!important;text-overflow:ellipsis!important}.u50i3-confirm-yes,.u50i3-confirm-no{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:22px!important;height:22px!important;padding:0!important;border:1px solid var(--border)!important;border-radius:4px!important;background:var(--bg-1)!important;font-size:12px!important;font-weight:800!important;line-height:1!important;cursor:pointer!important}.u50i3-confirm-yes{color:var(--green)!important;border-color:#2ecc718c!important}.u50i3-confirm-yes:hover{background:var(--green)!important;color:#001a0d!important}.u50i3-confirm-no{color:var(--red)!important;border-color:#e74c3c8c!important}.u50i3-confirm-no:hover{background:var(--red)!important;color:#fff!important}.u50i3-picker{position:fixed!important;z-index:10040!important;min-width:260px!important;max-width:340px!important;max-height:50vh!important;overflow-y:auto!important;background:var(--bg-1)!important;border:1px solid var(--border-hi)!important;border-radius:8px!important;padding:4px!important;box-shadow:0 12px 32px #0000008c!important}.u50i3-picker-header{font-size:10px!important;text-transform:uppercase!important;letter-spacing:.6px!important;color:var(--fg-mute)!important;font-weight:700!important;padding:8px 12px 6px!important;border-bottom:1px solid var(--border)!important;margin-bottom:3px!important}.u50i3-picker-row{display:flex!important;align-items:center!important;gap:8px!important;padding:8px 10px!important;border-radius:5px!important;cursor:pointer!important}.u50i3-picker-row:hover{background:var(--bg-2)!important}.u50i3-picker-row.current{background:#58a6ff24!important}.u50i3-picker-name{flex:1 1 auto!important;font-size:12.5px!important;font-weight:600!important;color:var(--fg)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.u50i3-picker-count{flex:0 0 auto!important;font-family:var(--mono)!important;font-size:10.5px!important;font-weight:700!important;color:var(--fg-mute)!important;background:var(--bg-3)!important;padding:1px 6px!important;border-radius:3px!important;min-width:20px!important;text-align:center!important}.u50i3-picker-rename{flex:0 0 auto!important;width:22px!important;height:22px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--fg-mute)!important;border-radius:4px!important;cursor:pointer!important;font-size:11px!important;line-height:1!important}.u50i3-picker-rename:hover{background:var(--bg-3)!important;color:var(--fg)!important}@media(max-width:900px){#u50i3Nav{margin-left:6px!important;height:28px!important}#u50i3Nav>button.u50i3-nav-btn{width:32px!important;font-size:13px!important}#u50i3Nav>button.u50i3-page-label{padding:0 10px!important;font-size:11px!important;max-width:160px!important}#u50i3Nav .u50i3-page-name{max-width:80px!important}}
