.landing[data-v-0103f7f4]{background:#080e18;flex-direction:column;align-items:center;min-height:100vh;padding:48px 24px 32px;display:flex;position:relative;overflow:hidden}.bg-glow[data-v-0103f7f4]{filter:blur(120px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.g1[data-v-0103f7f4]{background:radial-gradient(circle,#d4a04012 0%,#0000 70%);width:600px;height:600px;top:-200px;left:50%;transform:translate(-50%)}.g2[data-v-0103f7f4]{background:radial-gradient(circle,#00e5ff0d 0%,#0000 70%);width:400px;height:400px;bottom:0;right:-100px}.bg-grid[data-v-0103f7f4]{z-index:0;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.hero[data-v-0103f7f4]{z-index:1;width:100%;max-width:760px;margin-bottom:12px;position:relative}.logo-wrap[data-v-0103f7f4]{align-items:center;gap:24px;margin-bottom:28px;display:flex}.logo-icon[data-v-0103f7f4]{background:linear-gradient(145deg,#0d1e35,#0a1626);border:1.5px solid #d4a04040;border-radius:20px;flex-shrink:0;justify-content:center;align-items:flex-end;width:80px;height:80px;padding:14px 12px;display:flex;box-shadow:0 8px 32px #00000080,inset 0 1px #d4a0401a}.bars[data-v-0103f7f4]{align-items:flex-end;gap:5px;width:100%;height:36px;display:flex}.bar[data-v-0103f7f4]{border-radius:3px 3px 0 0;flex:1;display:block}.logo-text[data-v-0103f7f4]{flex-direction:column;gap:4px;display:flex}.brand-name[data-v-0103f7f4]{letter-spacing:-1px;background:linear-gradient(135deg,#e8a020 0%,#f0c060 50%,#d4a040 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:60px;font-weight:900;line-height:1}.brand-sub[data-v-0103f7f4]{letter-spacing:3.5px;color:#546e7a;text-transform:uppercase;font-size:11px;font-weight:600}.company-row[data-v-0103f7f4]{border-top:1px solid #ffffff0f;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;margin-bottom:28px;padding:16px 0;display:flex}.company-info[data-v-0103f7f4]{flex-direction:column;gap:3px;display:flex}.company-by[data-v-0103f7f4]{letter-spacing:2px;color:#37474f;font-size:9px;font-weight:700}.company-name[data-v-0103f7f4]{color:#c8d8e8;font-size:18px;font-weight:700}.company-tag[data-v-0103f7f4]{color:#546e7a;font-size:12px}.ae2r-badge[data-v-0103f7f4]{letter-spacing:1px;color:#d4a040;background:#d4a0400f;border:2px solid #d4a04059;border-radius:12px;padding:12px 20px;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:800}.hero-divider[data-v-0103f7f4]{display:none}.philosophy[data-v-0103f7f4]{margin-bottom:4px}.phil-label[data-v-0103f7f4]{align-items:center;gap:10px;margin-bottom:12px;display:flex}.phil-line[data-v-0103f7f4]{background:linear-gradient(90deg,#27ae60,#1abc9c);width:28px;height:2px;display:block}.phil-tag[data-v-0103f7f4]{letter-spacing:2.5px;color:#546e7a;text-transform:uppercase;font-size:9px;font-weight:700}.phil-quote[data-v-0103f7f4]{color:#90a4ae;border:none;padding:0;font-size:20px;font-weight:600;line-height:1.65}.brand-inline[data-v-0103f7f4]{background:linear-gradient(135deg,#e8a020,#f0c060);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-right:6px;font-size:20px;font-weight:800}.mqtt-pill[data-v-0103f7f4]{z-index:1;background:#0000004d;border:1px solid #ffffff12;border-radius:20px;align-self:flex-start;align-items:center;gap:7px;margin-bottom:36px;padding:6px 14px;display:flex;position:relative}.mp-dot[data-v-0103f7f4]{background:#546e7a;border-radius:50%;flex-shrink:0;width:8px;height:8px}.mqtt-pill.connected .mp-dot[data-v-0103f7f4]{background:#00e676;animation:2s infinite pulse-0103f7f4;box-shadow:0 0 6px #00e676b3}.mqtt-pill.connecting .mp-dot[data-v-0103f7f4]{background:#ffa726;animation:1s infinite pulse-0103f7f4}.mqtt-pill.disconnected .mp-dot[data-v-0103f7f4]{background:#ef5350}.mp-txt[data-v-0103f7f4]{letter-spacing:1px;color:#546e7a;font-size:10px;font-weight:700}.mqtt-pill.connected .mp-txt[data-v-0103f7f4]{color:#00e676}.mqtt-pill.connecting .mp-txt[data-v-0103f7f4]{color:#ffa726}.sections[data-v-0103f7f4]{z-index:1;grid-template-columns:repeat(4,1fr);gap:16px;width:100%;max-width:920px;margin-bottom:24px;display:grid;position:relative}.sec-card[data-v-0103f7f4]{border:1px solid var(--c-brd);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08101cd9;border-radius:16px;flex-direction:column;gap:10px;padding:22px 18px 18px;transition:all .22s;display:flex;position:relative;overflow:hidden}.sec-card[data-v-0103f7f4]:hover{border-color:var(--c);background:var(--c-dim);box-shadow:0 12px 40px #0006, 0 0 0 1px var(--c-brd);transform:translateY(-4px)}.sec-accent[data-v-0103f7f4]{background:var(--c);opacity:.7;border-radius:16px 16px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.sec-card:hover .sec-accent[data-v-0103f7f4]{opacity:1}.sec-num[data-v-0103f7f4]{letter-spacing:1.5px;color:#ffffff1f;font-family:monospace;font-size:11px;font-weight:700}.sec-icon-wrap[data-v-0103f7f4]{background:var(--c-dim);border:1px solid var(--c-brd);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}.sec-card:hover .sec-icon-wrap[data-v-0103f7f4]{box-shadow:0 0 16px var(--c-brd);background:#0003}.sec-icon[data-v-0103f7f4]{color:var(--c);font-size:22px}.sec-label[data-v-0103f7f4]{letter-spacing:2px;color:var(--c);text-transform:uppercase;font-size:9px;font-weight:700}.sec-title[data-v-0103f7f4]{color:#cfd8dc;font-size:15px;font-weight:700;line-height:1.2}.sec-desc[data-v-0103f7f4]{color:#546e7a;flex:1;font-size:11px;line-height:1.6}.sec-tags[data-v-0103f7f4]{flex-wrap:wrap;gap:5px;display:flex}.sec-tag[data-v-0103f7f4]{letter-spacing:.5px;color:#546e7a;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;padding:2px 8px;font-size:9px;font-weight:600}.sec-arrow[data-v-0103f7f4]{color:#ffffff1a;justify-content:flex-end;font-size:20px;transition:all .2s;display:flex}.sec-card:hover .sec-arrow[data-v-0103f7f4]{color:var(--c);transform:translate(4px)}.dash-row[data-v-0103f7f4]{z-index:1;margin-bottom:32px;position:relative}.dash-btn[data-v-0103f7f4]{color:#78909c;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;padding:12px 28px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.dash-btn[data-v-0103f7f4]:hover{color:#00e5ff;background:#00e5ff0f;border-color:#00e5ff40}.dash-btn i[data-v-0103f7f4]{font-size:18px}.lnd-footer[data-v-0103f7f4]{z-index:1;color:#263238;align-items:center;gap:10px;margin-top:auto;font-size:11px;display:flex;position:relative}.dot[data-v-0103f7f4]{color:#1e3a52}@keyframes pulse-0103f7f4{0%,to{opacity:1}50%{opacity:.5}}.ov-root[data-v-e21a282d]{flex-direction:column;gap:14px;display:flex}.status-bar[data-v-e21a282d]{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.sb-block[data-v-e21a282d]{background:#00000040;border:1px solid #ffffff12;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;padding:10px 14px;display:flex}.sb-block.clock[data-v-e21a282d]{margin-left:auto}.sb-dot[data-v-e21a282d]{background:#546e7a;border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:background .3s}.mqtt.connected .sb-dot[data-v-e21a282d]{background:#00e676;animation:2s infinite pulse-e21a282d;box-shadow:0 0 8px #00e676b3}.mqtt.connecting .sb-dot[data-v-e21a282d]{background:#ffa726;animation:1s infinite pulse-e21a282d}.mqtt.disconnected .sb-dot[data-v-e21a282d]{background:#ef5350}.sb-icon[data-v-e21a282d]{color:#546e7a;font-size:18px}.sb-lines[data-v-e21a282d]{flex-direction:column;gap:1px;display:flex}.sb-title[data-v-e21a282d]{letter-spacing:1.5px;color:#37474f;text-transform:uppercase;font-size:8px;font-weight:700}.sb-val[data-v-e21a282d]{color:#90a4ae;font-size:12px;font-weight:700}.sb-val.mono[data-v-e21a282d]{font-family:var(--font-mono)}.sb-block.mqtt.connected .sb-val[data-v-e21a282d]{color:#00e676}.sb-block.mqtt.connecting .sb-val[data-v-e21a282d]{color:#ffa726}.sb-block.mqtt.disconnected .sb-val[data-v-e21a282d]{color:#ef5350}.sb-block.auth.web .sb-val[data-v-e21a282d]{color:#00e676}.sb-block.auth.hmi .sb-val[data-v-e21a282d]{color:#ffa726}.sb-block.auth.local .sb-val[data-v-e21a282d]{color:#78909c}.ov-grid[data-v-e21a282d]{grid-template-columns:repeat(3,1fr);align-content:start;gap:14px;display:grid}.panel[data-v-e21a282d]{background:#050f1cb3;border:1px solid #ffffff12;border-radius:14px;padding:16px}.panel-hdr[data-v-e21a282d]{border-bottom:1px solid #ffffff0d;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:10px;display:flex}.ph-icon[data-v-e21a282d]{font-size:18px}.panel-title[data-v-e21a282d]{color:#b0bec5;letter-spacing:.5px;font-size:13px;font-weight:700}.panel-sub[data-v-e21a282d]{color:#37474f;margin-left:4px;font-size:10px}.lamp-scan[data-v-e21a282d]{color:#37474f;font-size:10px;font-family:var(--font-mono);margin-left:auto}.sensor-cards[data-v-e21a282d]{flex-direction:column;gap:8px;display:flex}.sensor-card[data-v-e21a282d]{background:#0003;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sc-label[data-v-e21a282d]{letter-spacing:1px;color:#78909c;flex-shrink:0;width:60px;font-size:10px;font-weight:700}.sc-val[data-v-e21a282d]{font-size:22px;font-weight:700;font-family:var(--font-mono);flex:1}.sc-val.cyan[data-v-e21a282d]{color:#00e5ff;text-shadow:0 0 10px #00e5ff59}.sc-unit[data-v-e21a282d]{color:#90a4ae;margin-left:2px;font-size:13px}.sc-tag[data-v-e21a282d]{color:#37474f;font-size:9px;font-family:var(--font-mono);text-align:right}.big-metric[data-v-e21a282d]{align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.bm-val[data-v-e21a282d]{font-size:52px;font-weight:700;font-family:var(--font-mono);line-height:1}.bm-val.teal[data-v-e21a282d]{color:#64ffda;text-shadow:0 0 20px #64ffda4d}.bm-unit[data-v-e21a282d]{color:#90a4ae;font-size:22px}.bm-tag[data-v-e21a282d]{color:#37474f;font-size:10px;font-family:var(--font-mono);margin-bottom:12px}.rh-bar-wrap[data-v-e21a282d]{background:#ffffff0f;border-radius:3px;height:6px;overflow:hidden}.rh-bar-fill[data-v-e21a282d]{background:linear-gradient(90deg,#26c6da,#64ffda);border-radius:3px;height:100%;transition:width .4s}.reg-grid[data-v-e21a282d]{grid-template-columns:1fr 1fr;gap:8px;display:grid}.reg-card[data-v-e21a282d]{background:#0003;border:1px solid #ffffff0d;border-radius:8px;padding:10px 12px}.rc-key[data-v-e21a282d]{color:#ce93d8;letter-spacing:1px;margin-bottom:4px;font-size:10px;font-weight:700}.rc-val[data-v-e21a282d]{font-size:26px;font-weight:700;font-family:var(--font-mono);color:#b39ddb}.lamp-grid[data-v-e21a282d]{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:10px;display:grid}.lamp-card[data-v-e21a282d]{background:#0003;border:1.5px solid #ffffff0f;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;transition:all .25s;display:flex}.lamp-card.on[data-v-e21a282d]{background:#f9a8251a;border-color:#f9a825}.lc-bulb[data-v-e21a282d]{background:radial-gradient(circle at 35% 30%,#2d3e50,#141f2a);border:2px solid #ffffff12;border-radius:50%;width:34px;height:34px;transition:all .3s}.lc-bulb.on[data-v-e21a282d]{background:radial-gradient(circle at 35% 30%,#fff9c4,#f9a825);border-color:#f9a825;box-shadow:0 0 16px #f9a825cc,0 0 32px #f9a82533}.lc-no[data-v-e21a282d]{color:#78909c;font-size:10px;font-weight:700}.lc-state[data-v-e21a282d]{color:#37474f;font-size:10px;font-weight:700}.lc-state.on[data-v-e21a282d]{color:#f9a825}.lamp-note[data-v-e21a282d]{color:#37474f;text-align:center;border-top:1px solid #ffffff0a;padding-top:8px;font-size:11px}.info-list[data-v-e21a282d]{flex-direction:column;gap:6px;display:flex}.info-row[data-v-e21a282d]{background:#00000026;border-radius:6px;justify-content:space-between;align-items:center;padding:7px 10px;font-size:11px;display:flex}.ir-lbl[data-v-e21a282d]{color:#546e7a;letter-spacing:.5px;font-weight:600}.ir-val[data-v-e21a282d]{color:#90a4ae;text-align:right}.ir-val.mono[data-v-e21a282d]{font-family:var(--font-mono);color:#64b5f6;font-size:10px}.ir-val.ok[data-v-e21a282d]{color:#00e676}.ir-val.warn[data-v-e21a282d]{color:#ffa726}.ir-val.dim[data-v-e21a282d]{color:#546e7a}@keyframes pulse-e21a282d{0%,to{opacity:1}50%{opacity:.5}}.page-grid[data-v-216a1bd9]{grid-template-columns:repeat(3,1fr);gap:16px;display:grid;position:relative}.toast[data-v-216a1bd9]{color:#e0f0ff;z-index:1000;pointer-events:none;background:#0a1826f5;border:1px solid #00e5ff59;border-radius:24px;padding:10px 24px;font-size:13px;font-weight:600;position:fixed;bottom:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.toast-enter-active[data-v-216a1bd9],.toast-leave-active[data-v-216a1bd9]{transition:opacity .25s,transform .25s}.toast-enter-from[data-v-216a1bd9],.toast-leave-to[data-v-216a1bd9]{opacity:0;transform:translate(-50%)translateY(10px)}.status-dot[data-v-216a1bd9]{border-radius:50%;width:9px;height:9px;display:inline-block}.status-dot.ok[data-v-216a1bd9]{background:#00e676;box-shadow:0 0 6px #00e67699}.status-dot.off[data-v-216a1bd9]{background:#37474f}.lamp-grid[data-v-216a1bd9]{grid-template-columns:repeat(7,1fr);gap:12px;margin-top:8px;display:grid}.lamp-card[data-v-216a1bd9]{cursor:pointer;background:#0000004d;border:1.5px solid #ffffff12;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:16px 6px;transition:all .2s;display:flex;position:relative}.lamp-card[data-v-216a1bd9]:hover{background:#00e5ff0a;border-color:#00e5ff4d}.lamp-card.on[data-v-216a1bd9]{background:#f9a8251a;border-color:#f9a825}.lamp-card.pending[data-v-216a1bd9]{border-color:#42a5f5!important}.lamp-card.commanded[data-v-216a1bd9]{box-shadow:0 0 8px #00e5ff33}.bulb[data-v-216a1bd9]{background:radial-gradient(circle at 35% 30%,#37474f,#1a2530);border:2px solid #ffffff1a;border-radius:50%;width:44px;height:44px;transition:all .3s}.bulb.on[data-v-216a1bd9]{background:radial-gradient(circle at 35% 30%,#fff9c4,#f9a825);border-color:#f9a825;box-shadow:0 0 20px #f9a825cc,0 0 40px #f9a8254d}.lamp-name[data-v-216a1bd9]{color:#90a4ae;font-size:11px;font-weight:700}.lamp-state[data-v-216a1bd9]{color:#546e7a;letter-spacing:1px;font-size:11px;font-weight:700}.lamp-state.active[data-v-216a1bd9]{color:#f9a825}.pending-dot[data-v-216a1bd9]{background:#42a5f5;border-radius:50%;width:8px;height:8px;animation:1s infinite pulse;position:absolute;top:6px;right:6px;box-shadow:0 0 6px #42a5f5b3}.pending-dot.inline[data-v-216a1bd9]{margin-right:4px;display:inline-block;position:static}.source-tag[data-v-216a1bd9]{letter-spacing:1px;color:#00e5ff;background:#00e5ff26;border:1px solid #00e5ff4d;border-radius:8px;padding:1px 5px;font-size:8px;font-weight:800}.source-tag.plc[data-v-216a1bd9]{color:#78909c;background:#78909c26;border-color:#78909c4d}.ctrl-btn[data-v-216a1bd9]{cursor:pointer;border:none;border-radius:7px;padding:7px 16px;font-size:11px;font-weight:700}.ctrl-btn.on[data-v-216a1bd9]{color:#fff;background:linear-gradient(135deg,#2e7d32,#00e676)}.ctrl-btn.off[data-v-216a1bd9]{color:#fff;background:linear-gradient(135deg,#b71c1c,#ef9a9a)}.legend[data-v-216a1bd9]{border-top:1px solid var(--border);color:#546e7a;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;padding-top:10px;font-size:10px;display:flex}.leg-item[data-v-216a1bd9]{align-items:center;gap:5px;display:flex}.leg-dot[data-v-216a1bd9]{border-radius:3px;width:10px;height:10px}.leg-dot.cmd[data-v-216a1bd9]{background:#00e5ff33;border:1px solid #00e5ff66}.leg-dot.plc[data-v-216a1bd9]{background:#78909c33;border:1px solid #78909c4d}.reg-grid[data-v-216a1bd9]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.reg-item[data-v-216a1bd9]{background:var(--bg-item);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.reg-val[data-v-216a1bd9]{font-size:22px;font-weight:700;font-family:var(--font-mono);color:#80cbc4;margin-top:4px}.stat-lbl[data-v-216a1bd9]{letter-spacing:1.5px;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700}.stat-item[data-v-216a1bd9]{background:var(--bg-item);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.big-val[data-v-216a1bd9]{font-size:22px;font-weight:800;font-family:var(--font-mono)}.ok[data-v-216a1bd9]{color:#00e676}.err[data-v-216a1bd9]{color:#ef5350}.warn[data-v-216a1bd9]{color:#ffa726}.page-grid[data-v-36910218]{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.blo-grid[data-v-36910218]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.blo-card[data-v-36910218]{border:1px solid var(--border);background:#00000040;border-radius:12px;padding:14px}.blo-head[data-v-36910218]{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.blo-name[data-v-36910218]{font-size:15px;font-weight:700}.blo-tag[data-v-36910218]{font-size:10px;font-family:var(--font-mono);color:#546e7a;letter-spacing:1px}.blo-metrics[data-v-36910218]{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.blo-metric[data-v-36910218]{background:var(--bg-item);text-align:center;border:1px solid var(--border);border-radius:8px;padding:8px}.blo-m-lbl[data-v-36910218]{color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;font-size:9px}.blo-m-val[data-v-36910218]{font-size:20px;font-weight:700;font-family:var(--font-mono);color:#00e676}.blo-m-unit[data-v-36910218]{color:#90a4ae;font-size:10px}.blo-auto-row[data-v-36910218]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.blo-sp-row[data-v-36910218]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.blo-safety[data-v-36910218]{color:#ef9a9a;background:#ef53502e;border:1px solid #ef535066;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:9px;font-weight:700}.blo-slider[data-v-36910218]{-webkit-appearance:none;cursor:pointer;background:#ffffff1f;border-radius:3px;outline:none;width:100%;height:6px;margin:8px 0}.blo-slider[data-v-36910218]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:18px;height:18px;box-shadow:0 0 8px #00e5ff99}.blo-cap[data-v-36910218]{background:#0006;border-radius:3px;height:5px;margin-bottom:12px;position:relative;overflow:hidden}.blo-cap-fill[data-v-36910218]{background:linear-gradient(90deg,#00e676,#ffa726);border-radius:3px;transition:width .2s;position:absolute;top:0;bottom:0;left:0}.blo-cap-max[data-v-36910218]{background:#ef5350;width:2px;position:absolute;top:-2px;bottom:-2px;left:95%}.blo-btns[data-v-36910218]{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.blo-btn[data-v-36910218]{border:1px solid var(--border);color:#cfd8dc;cursor:pointer;background:#ffffff0a;border-radius:8px;padding:9px 0;font-size:11px;font-weight:700;transition:all .15s}.blo-btn[data-v-36910218]:hover{filter:brightness(1.2)}.blo-btn.start[data-v-36910218]{color:#00e676;background:#00e67626;border-color:#00e676}.blo-btn.stop[data-v-36910218]{color:#ef9a9a;background:#ef535026;border-color:#ef5350}.blo-btn.stby[data-v-36910218]{color:#ffa726;background:#ffa7261f;border-color:#ffa726}.blo-btn.apply[data-v-36910218]{color:#fff;background:linear-gradient(135deg,#1565c0,#00e5ff);border:none}.auto-badge[data-v-36910218]{color:#90a4ae;border:1px solid var(--border);background:#78909c33;border-radius:10px;padding:2px 8px;font-size:9px;font-weight:700}.auto-badge.auto-active[data-v-36910218]{color:#ce93d8;background:#ce93d82e;border-color:#ce93d8;box-shadow:0 0 8px #ce93d84d}.fault-btn[data-v-36910218]{cursor:pointer;color:#00e676;background:#00e6761f;border:1px solid #00e6764d;border-radius:6px;padding:5px 10px;font-size:10px;font-weight:700}.fault-btn.fault[data-v-36910218]{color:#ef9a9a;background:#ef53502e;border-color:#ef5350}.page-grid[data-v-8390c295]{grid-template-columns:repeat(3,1fr);align-content:start;gap:16px;display:grid}.table-header[data-v-8390c295]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.table-wrap[data-v-8390c295]{overflow-x:auto}.pp-table[data-v-8390c295]{border-collapse:collapse;width:100%;font-size:12px}.pp-table th[data-v-8390c295]{letter-spacing:1px;text-transform:uppercase;color:#78909c;text-align:left;white-space:nowrap;background:#0003;border-bottom:1px solid #ffffff14;padding:8px 10px;font-size:10px;font-weight:700}.pp-table td[data-v-8390c295]{vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:8px 10px}.pp-table tbody tr[data-v-8390c295]:hover{background:#ffffff05}.lamp-pill[data-v-8390c295]{cursor:pointer;-webkit-user-select:none;user-select:none;color:#546e7a;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700;transition:all .12s}.lamp-pill.on[data-v-8390c295]{color:#ffa726;background:#ffa72633;border-color:#ffa726}.pp-actual-grid[data-v-8390c295]{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.pp-actual-card[data-v-8390c295]{background:var(--bg-item);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.page-grid[data-v-ab59ace5]{grid-template-columns:repeat(3,1fr);align-content:start;gap:16px;display:grid}.ap-header[data-v-ab59ace5]{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.ap-title[data-v-ab59ace5]{letter-spacing:1.5px;color:#ffb300;font-size:13px;font-weight:800}.ap-badge[data-v-ab59ace5]{color:#ffb300;letter-spacing:1px;background:#ffb30026;border:1px solid #ffb300;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:800}.ap-sub[data-v-ab59ace5]{color:#78909c;flex:1;font-size:11px}.ap-onoff[data-v-ab59ace5]{color:#546e7a;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #37474f;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;transition:all .2s}.ap-onoff.active[data-v-ab59ace5]{color:#00e676;background:#00e67614;border-color:#00e676}.ap-orp-row[data-v-ab59ace5]{background:#00000040;border-left:3px solid #37474f;border-radius:8px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;transition:border-color .3s;display:flex}.orpb-LL[data-v-ab59ace5]{border-color:#9c27b0}.orpb-L[data-v-ab59ace5]{border-color:#66bb6a}.orpb-ZERO[data-v-ab59ace5]{border-color:#26a69a}.orpb-H[data-v-ab59ace5]{border-color:#ef6c00}.orpb-HH[data-v-ab59ace5]{border-color:#e53935}.ap-orp-icon[data-v-ab59ace5]{color:#78909c;font-size:14px}.ap-orp-label[data-v-ab59ace5]{color:#90a4ae;letter-spacing:1px;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.ap-orp-val[data-v-ab59ace5]{font-size:18px;font-weight:800;font-family:var(--font-mono,monospace);color:#e0f0ff;flex:1}.orpv-LL[data-v-ab59ace5]{color:#ce93d8}.orpv-L[data-v-ab59ace5]{color:#a5d6a7}.orpv-ZERO[data-v-ab59ace5]{color:#80cbc4}.orpv-H[data-v-ab59ace5]{color:#ffcc80}.orpv-HH[data-v-ab59ace5]{color:#ef9a9a}.ap-band-chip[data-v-ab59ace5]{letter-spacing:1px;color:#546e7a;border:1.5px solid #37474f;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:800}.bc-HH[data-v-ab59ace5]{color:#ef9a9a;background:#e539352e;border-color:#e53935}.bc-H[data-v-ab59ace5]{color:#ffcc80;background:#ef6c0026;border-color:#ef6c00}.bc-ZERO[data-v-ab59ace5]{color:#80cbc4;background:#26a69a26;border-color:#26a69a}.bc-L[data-v-ab59ace5]{color:#a5d6a7;background:#66bb6a26;border-color:#66bb6a}.bc-LL[data-v-ab59ace5]{color:#ce93d8;background:#9c27b02e;border-color:#9c27b0}.tag-badge[data-v-ab59ace5]{letter-spacing:.5px;color:#00e5ff;font-size:9px;font-weight:700;font-family:var(--font-mono,monospace);background:#00e5ff1f;border:1px solid #00e5ff4d;border-radius:4px;padding:1px 6px;display:inline-block}.tag-badge.sm[data-v-ab59ace5]{padding:1px 4px;font-size:8px}.ap-table-wrap[data-v-ab59ace5]{margin-bottom:12px;overflow-x:auto}.ap-table[data-v-ab59ace5]{border-collapse:collapse;width:100%;font-size:12px}.ap-table thead th[data-v-ab59ace5]{text-align:center;letter-spacing:1px;color:#546e7a;white-space:nowrap;border-bottom:1px solid #ffffff12;padding:8px 12px;font-size:10px;font-weight:700}.th-tag[data-v-ab59ace5]{color:#00e5ff;opacity:.7;font-size:9px;font-weight:600;font-family:var(--font-mono,monospace);margin-top:2px}.ap-table tbody td[data-v-ab59ace5]{text-align:center;vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:8px 12px}.ap-row-active td[data-v-ab59ace5]{background:#ffffff0a}.ap-row-active[data-v-ab59ace5]{box-shadow:inset 3px 0 #00e67680}.zone-chip[data-v-ab59ace5]{letter-spacing:1px;text-align:center;border-radius:6px;min-width:52px;padding:4px 12px;font-size:11px;font-weight:800;display:inline-block}.zc-HH[data-v-ab59ace5]{color:#ef5350;background:#e5393540;border:1px solid #c62828}.zc-H[data-v-ab59ace5]{color:#ff8a65;background:#ef6c0038;border:1px solid #bf360c}.zc-ZERO[data-v-ab59ace5]{color:#4db6ac;background:#26a69a33;border:1px solid #00695c}.zc-L[data-v-ab59ace5]{color:#81c784;background:#66bb6a33;border:1px solid #2e7d32}.zc-LL[data-v-ab59ace5]{color:#ba68c8;background:#9c27b040;border:1px solid #4a148c}.band-in[data-v-ab59ace5]{color:#e0f0ff;width:80px;font-size:13px;font-family:var(--font-mono,monospace);text-align:center;background:#00000059;border:1px solid #ffffff1a;border-radius:6px;outline:none;padding:5px 8px;transition:border-color .2s}.band-in[data-v-ab59ace5]:focus{border-color:#00e5ff80}.cmm-in[data-v-ab59ace5]{color:#00e5ff;font-weight:700}.cmm-rt[data-v-ab59ace5]{font-size:13px;font-family:var(--font-mono,monospace);color:#37474f}.cmm-live[data-v-ab59ace5]{color:#00e676;font-weight:700}.dot-g[data-v-ab59ace5]{color:#00e676;margin-right:2px}.st-chip[data-v-ab59ace5]{letter-spacing:.8px;border-radius:20px;padding:3px 10px;font-size:10px;font-weight:700;display:inline-block}.st-idle[data-v-ab59ace5]{color:#546e7a;background:#ffffff0d;border:1px solid #37474f}.st-active[data-v-ab59ace5]{color:#00e676;background:#00e67626;border:1px solid #00e67666}.ap-band-bar[data-v-ab59ace5]{border-radius:8px;min-height:52px;margin-bottom:14px;display:flex;overflow:hidden}.bbar-seg[data-v-ab59ace5]{opacity:.55;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px;transition:opacity .3s;display:flex}.bbar-on[data-v-ab59ace5]{opacity:1}.bbar-LL[data-v-ab59ace5]{background:linear-gradient(135deg,#4a148c,#7b1fa2)}.bbar-L[data-v-ab59ace5]{background:linear-gradient(135deg,#1b5e20,#388e3c)}.bbar-ZERO[data-v-ab59ace5]{background:linear-gradient(135deg,#004d40,#00695c)}.bbar-H[data-v-ab59ace5]{background:linear-gradient(135deg,#bf360c,#e64a19)}.bbar-HH[data-v-ab59ace5]{background:linear-gradient(135deg,#b71c1c,#e53935)}.bbar-id[data-v-ab59ace5]{color:#fff;letter-spacing:1px;font-size:13px;font-weight:800}.bbar-rng[data-v-ab59ace5]{color:#ffffffa6;font-size:9px;font-family:var(--font-mono,monospace)}.ap-footer[data-v-ab59ace5]{border-top:1px solid #ffffff12;justify-content:space-between;align-items:center;padding-top:12px;display:flex}.ap-tog-lbl[data-v-ab59ace5]{letter-spacing:1px;color:#546e7a;font-size:11px;font-weight:700;transition:color .2s}.ap-tog-lbl.active[data-v-ab59ace5]{color:#00e676}.page-grid[data-v-521e8827]{grid-template-columns:repeat(3,1fr);align-content:start;gap:16px;display:grid}.row-between[data-v-521e8827]{justify-content:space-between;align-items:center;display:flex}.field-lbl[data-v-521e8827]{letter-spacing:1.5px;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700}.stat-grid[data-v-521e8827]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-item[data-v-521e8827]{background:var(--bg-item);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.stat-lbl[data-v-521e8827]{letter-spacing:1.5px;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700}.big-val[data-v-521e8827]{font-size:22px;font-weight:800;font-family:var(--font-mono)}.big-val.sm[data-v-521e8827]{font-size:16px}.sub-txt[data-v-521e8827]{color:#546e7a;margin-top:2px;font-size:10px}.ok[data-v-521e8827]{color:#00e676}.warn[data-v-521e8827]{color:#ffa726}.err[data-v-521e8827]{color:#ef5350}.result-badge[data-v-521e8827]{letter-spacing:.5px;color:#546e7a;border:1px solid var(--border);background:#ffffff0f;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.result-badge.ok[data-v-521e8827]{color:#00e676;background:#00e6761f;border-color:#00e6764d}.result-badge.blocked[data-v-521e8827]{color:#ef9a9a;background:#ef53501f;border-color:#ef53504d}.result-badge.no-mqtt[data-v-521e8827]{color:#ffa726;background:#ffa7261f;border-color:#ffa7264d}.result-badge.RUN[data-v-521e8827]{color:#00e676;background:#00e6761f;border-color:#00e6764d}.result-badge.STBY[data-v-521e8827]{color:#ffa726;background:#ffa7261f;border-color:#ffa7264d}.dot-lg[data-v-521e8827]{background:#ef5350;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:background .4s}.dot-lg.connected[data-v-521e8827]{background:#00e676;box-shadow:0 0 8px #00e67699}.dot-lg.connecting[data-v-521e8827]{background:#ffa726;animation:1s infinite pulse}.err-note[data-v-521e8827]{color:#ef9a9a!important;background:#ef535014!important;border-color:#ef535040!important}.warn-note[data-v-521e8827]{color:#ffa726!important;background:#ffa72614!important;border-color:#ffa72640!important}.lamp-grid[data-v-521e8827]{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.lamp-btn[data-v-521e8827]{background:var(--bg-item);border:1.5px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;transition:all .2s;display:flex}.lamp-btn[data-v-521e8827]:hover{border-color:#00e5ff4d}.lamp-btn.on[data-v-521e8827]{background:#f9a82514;border-color:#f9a825}.bulb-sm[data-v-521e8827]{background:radial-gradient(circle at 35% 30%,#37474f,#1a2530);border:2px solid #ffffff1a;border-radius:50%;width:30px;height:30px;transition:all .25s}.bulb-sm.on[data-v-521e8827]{background:radial-gradient(circle at 35% 30%,#fff59d,#f9a825);border-color:#f9a825;box-shadow:0 0 14px #f9a825b3}.lamp-lbl[data-v-521e8827]{color:#90a4ae;font-size:10px;font-weight:700}.lamp-state[data-v-521e8827]{color:#546e7a;font-size:9px;font-weight:700}.lamp-state.on[data-v-521e8827]{color:#f9a825}.ov-row[data-v-521e8827]{border-bottom:1px solid var(--border-sub);align-items:center;gap:10px;padding:5px 0;display:flex}.ov-lbl[data-v-521e8827]{color:var(--text-muted);flex-shrink:0;width:66px;font-size:10px;font-weight:700}.ov-slider[data-v-521e8827]{cursor:pointer;height:4px;accent-color:var(--accent);background:#ffffff1f;border-radius:2px;outline:none;flex:1}.ov-slider[data-v-521e8827]:disabled{opacity:.35;cursor:not-allowed}.ov-val[data-v-521e8827]{font-size:12px;font-family:var(--font-mono);color:var(--accent);text-align:right;min-width:48px}.reg-grid[data-v-521e8827]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.reg-item[data-v-521e8827]{background:var(--bg-item);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.blo-btn[data-v-521e8827]{border:1px solid var(--border);color:#cfd8dc;cursor:pointer;background:#ffffff0a;border-radius:7px;padding:8px 0;font-size:11px;font-weight:700;transition:all .15s}.blo-btn[data-v-521e8827]:hover{filter:brightness(1.2)}.blo-btn.run[data-v-521e8827]{color:#00e676;background:#00e67626;border-color:#00e676}.blo-btn.stop[data-v-521e8827]{color:#ef9a9a;background:#ef535026;border-color:#ef5350}.blo-btn.stby[data-v-521e8827]{color:#ffa726;background:#ffa7261f;border-color:#ffa726}.log-box[data-v-521e8827]{font-family:var(--font-mono);background:#0006;border:1px solid #00e5ff1a;border-radius:8px;padding:8px 10px;font-size:11px;overflow-y:auto}.log-empty[data-v-521e8827]{text-align:center;color:#37474f;padding:16px}.log-ts[data-v-521e8827]{color:#37474f;margin-right:6px}.log-row[data-v-521e8827]{color:#78909c;word-break:break-all;border-bottom:1px solid #ffffff08;padding:2px 0}.log-row.ok[data-v-521e8827]{color:#a5d6a7}.log-row.err[data-v-521e8827]{color:#ef9a9a}.log-row.warn[data-v-521e8827]{color:#ffa726}.log-row.payload[data-v-521e8827]{color:#80cbc4;padding-left:12px}.cam-page[data-v-e1de70f9]{flex-direction:column;gap:16px;height:100%;display:flex}.cam-toolbar[data-v-e1de70f9]{background:#00000040;border:1px solid #ffffff0f;border-radius:10px;flex-shrink:0;align-items:center;gap:14px;padding:8px 14px;display:flex}.tb-title[data-v-e1de70f9]{letter-spacing:1.5px;color:#00e5ff;text-transform:uppercase;align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.tb-title i[data-v-e1de70f9]{font-size:16px}.tb-layouts[data-v-e1de70f9]{gap:4px;display:flex}.layout-btn[data-v-e1de70f9]{color:#546e7a;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700;transition:all .18s}.layout-btn.active[data-v-e1de70f9]{color:#00e5ff;background:#00e5ff1f;border-color:#00e5ff59}.tb-right[data-v-e1de70f9]{margin-left:auto}.tb-note[data-v-e1de70f9]{color:#37474f;align-items:center;gap:5px;font-size:10px;display:flex}.tb-note i[data-v-e1de70f9]{font-size:13px}.tb-link[data-v-e1de70f9]{color:#00e5ff;text-decoration:none}.tb-link[data-v-e1de70f9]:hover{text-decoration:underline}.cam-grid[data-v-e1de70f9]{flex:1;gap:10px;min-height:0;display:grid}.grid-1-1[data-v-e1de70f9]{grid-template-rows:1fr;grid-template-columns:1fr}.grid-2-1[data-v-e1de70f9]{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.grid-2-2[data-v-e1de70f9]{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.cam-slot[data-v-e1de70f9]{background:#071424;border:1px solid #ffffff12;border-radius:12px;min-height:160px;transition:border-color .2s;position:relative;overflow:hidden}.cam-slot.live[data-v-e1de70f9]{border-color:#00e5ff33}.cam-slot.error[data-v-e1de70f9]{border-color:#ef53504d}.cam-slot.fullscreen[data-v-e1de70f9]{z-index:200;border:none;border-radius:0;position:fixed;inset:0}.cam-video-area[data-v-e1de70f9]{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.cam-video[data-v-e1de70f9]{object-fit:cover;width:100%;height:100%;display:block}.cam-placeholder[data-v-e1de70f9]{color:#263238;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;padding:20px;display:flex}.cam-placeholder i[data-v-e1de70f9]{opacity:.5;font-size:36px}.cam-placeholder span[data-v-e1de70f9]{color:#37474f;font-size:11px}.cfg-btn-sm[data-v-e1de70f9]{color:#00e5ff;cursor:pointer;background:#00e5ff14;border:1px solid #00e5ff33;border-radius:6px;align-items:center;gap:5px;padding:5px 14px;font-size:11px;font-weight:700;display:flex}.cam-error-overlay[data-v-e1de70f9]{color:#ef9a9a;background:#071424d9;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.cam-error-overlay i[data-v-e1de70f9]{font-size:28px}.cam-error-overlay span[data-v-e1de70f9]{font-size:11px}.retry-btn[data-v-e1de70f9]{color:#ef9a9a;cursor:pointer;background:#ef535026;border:1px solid #ef535059;border-radius:6px;margin-top:4px;padding:4px 14px;font-size:10px;font-weight:700}.cam-badge[data-v-e1de70f9]{letter-spacing:1px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071424bf;border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:9px;font-weight:800;display:flex;position:absolute;top:8px;left:8px}.cam-badge.live[data-v-e1de70f9]{color:#00e676}.cam-badge.loading[data-v-e1de70f9]{color:#ffa726}.cam-badge.error[data-v-e1de70f9]{color:#ef9a9a}.cam-badge.idle[data-v-e1de70f9]{color:#37474f}.badge-dot[data-v-e1de70f9]{background:currentColor;border-radius:50%;width:6px;height:6px}.cam-badge.live .badge-dot[data-v-e1de70f9]{animation:1.5s infinite blink-e1de70f9}.cam-label[data-v-e1de70f9]{letter-spacing:.5px;color:#fff9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071424b3;border-radius:5px;padding:2px 8px;font-size:10px;font-weight:700;position:absolute;bottom:8px;left:8px}.cam-controls[data-v-e1de70f9]{opacity:0;gap:4px;transition:opacity .2s;display:flex;position:absolute;top:8px;right:8px}.cam-slot:hover .cam-controls[data-v-e1de70f9]{opacity:1}.ctrl-btn[data-v-e1de70f9]{color:#90a4ae;cursor:pointer;background:#071424cc;border:1px solid #ffffff1a;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .15s;display:flex}.ctrl-btn[data-v-e1de70f9]:hover{color:#00e5ff;background:#00e5ff26;border-color:#00e5ff4d}.setup-guide[data-v-e1de70f9]{background:#0003;border:1px solid #ffffff0f;border-radius:10px;flex-shrink:0;padding:14px 18px}.sg-header[data-v-e1de70f9]{letter-spacing:1.5px;color:#546e7a;text-transform:uppercase;align-items:center;gap:7px;margin-bottom:12px;font-size:11px;font-weight:700;display:flex}.sg-header i[data-v-e1de70f9]{font-size:15px}.sg-steps[data-v-e1de70f9]{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.sg-step[data-v-e1de70f9]{gap:10px;display:flex}.step-num[data-v-e1de70f9]{color:#00e5ff;background:#00e5ff1a;border:1px solid #00e5ff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:800;display:flex}.step-body[data-v-e1de70f9]{flex:1}.step-title[data-v-e1de70f9]{color:#90a4ae;margin-bottom:3px;font-size:11px;font-weight:700}.step-desc[data-v-e1de70f9]{color:#37474f;font-size:10px;line-height:1.5}.step-code[data-v-e1de70f9]{font-family:var(--font-mono);color:#64ffda;white-space:pre;background:#00000059;border:1px solid #64ffda1f;border-radius:5px;margin-top:5px;padding:5px 7px;font-size:9px}code[data-v-e1de70f9]{font-family:var(--font-mono);color:#80cbc4;font-size:9px}.modal-backdrop[data-v-e1de70f9]{z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071424b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.config-modal[data-v-e1de70f9]{background:#0d2137;border:1px solid #00e5ff33;border-radius:14px;width:440px;max-width:95vw;box-shadow:0 20px 60px #0009}.cm-header[data-v-e1de70f9]{letter-spacing:1px;color:#00e5ff;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:14px 18px;font-size:12px;font-weight:700;display:flex}.cm-close[data-v-e1de70f9]{color:#546e7a;cursor:pointer;background:0 0;border:none;padding:2px;font-size:20px;line-height:1}.cm-close[data-v-e1de70f9]:hover{color:#ef9a9a}.cm-body[data-v-e1de70f9]{flex-direction:column;gap:14px;padding:18px;display:flex}.cm-field[data-v-e1de70f9]{flex-direction:column;gap:6px;display:flex}.cm-field label[data-v-e1de70f9]{color:#546e7a;letter-spacing:1px;text-transform:uppercase;font-size:10px;font-weight:700}.type-tabs[data-v-e1de70f9]{gap:6px;display:flex}.type-tab[data-v-e1de70f9]{color:#546e7a;cursor:pointer;background:#00000040;border:1px solid #ffffff14;border-radius:7px;flex:1;padding:6px;font-size:10px;font-weight:700;transition:all .18s}.type-tab.active[data-v-e1de70f9]{color:#00e5ff;background:#00e5ff1f;border-color:#00e5ff59}.type-hint[data-v-e1de70f9]{color:#37474f;font-size:10px;line-height:1.5}.url-input[data-v-e1de70f9]{width:100%;padding:7px 10px;font-size:11px}.cm-footer[data-v-e1de70f9]{border-top:1px solid #ffffff12;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.cm-cancel[data-v-e1de70f9]{color:#546e7a;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;padding:7px 18px;font-size:11px;font-weight:700}.cm-apply[data-v-e1de70f9]{color:#90caf9;cursor:pointer;background:linear-gradient(135deg,#0d3a6e,#1565c0);border:none;border-radius:8px;align-items:center;gap:5px;padding:7px 18px;font-size:11px;font-weight:700;transition:filter .2s;display:flex}.cm-apply[data-v-e1de70f9]:hover{filter:brightness(1.15);color:#fff}.cm-apply i[data-v-e1de70f9]{font-size:15px}.modal-enter-active[data-v-e1de70f9],.modal-leave-active[data-v-e1de70f9]{transition:opacity .2s}.modal-enter-from[data-v-e1de70f9],.modal-leave-to[data-v-e1de70f9]{opacity:0}@keyframes blink-e1de70f9{0%,to{opacity:1}50%{opacity:.4}}.app-header[data-v-cd40687e]{background:#071424;border-bottom:1px solid #00e5ff2e;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex;box-shadow:0 1px #00e5ff14,0 4px 24px #0006}.hdr-brand[data-v-cd40687e]{align-items:center;gap:12px;display:flex}.hdr-logo-mark[data-v-cd40687e]{align-items:center;gap:9px;display:flex}.nl-bars[data-v-cd40687e]{align-items:flex-end;gap:3px;height:18px;display:flex}.nl-b[data-v-cd40687e]{background:#d4a040;border-radius:2px 2px 0 0;width:4px;display:block}.b1[data-v-cd40687e]{height:40%}.b2[data-v-cd40687e]{height:70%}.b3[data-v-cd40687e]{height:100%}.b4[data-v-cd40687e]{height:60%}.nl-name[data-v-cd40687e]{letter-spacing:.06em;background:linear-gradient(135deg,#e8a020,#f0c060);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:JetBrains Mono,monospace;font-size:16px;font-weight:800}.hdr-titles[data-v-cd40687e]{flex-direction:column;gap:1px;display:flex}.hdr-sub[data-v-cd40687e]{letter-spacing:2px;color:#546e7a;text-transform:uppercase;font-size:9px;font-weight:600}.hdr-divider[data-v-cd40687e]{background:#ffffff1a;width:1px;height:28px}.hdr-badge[data-v-cd40687e]{letter-spacing:1.5px;color:#00e5ff;background:#00e5ff1a;border:1px solid #00e5ff40;border-radius:6px;padding:2px 8px;font-size:9px;font-weight:800}.hdr-right[data-v-cd40687e]{align-items:center;gap:10px;display:flex}.mqtt-pill[data-v-cd40687e]{background:#0003;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:7px;padding:5px 12px;display:flex}.mqtt-dot[data-v-cd40687e]{background:#37474f;border-radius:50%;width:8px;height:8px;transition:background .4s}.mqtt-txt[data-v-cd40687e]{letter-spacing:1px;color:#546e7a;font-size:10px;font-weight:700}.mqtt-pill.connected .mqtt-dot[data-v-cd40687e]{background:#00e676;animation:2s infinite pulse-cd40687e;box-shadow:0 0 6px #00e676b3}.mqtt-pill.connected .mqtt-txt[data-v-cd40687e]{color:#00e676}.mqtt-pill.connecting .mqtt-dot[data-v-cd40687e]{background:#ffa726;animation:1s infinite pulse-cd40687e}.mqtt-pill.connecting .mqtt-txt[data-v-cd40687e]{color:#ffa726}.authbar[data-v-cd40687e]{background:#00000040;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:8px;padding:6px 14px;display:flex}.auth-label[data-v-cd40687e]{letter-spacing:1.5px;color:#37474f;text-transform:uppercase;font-size:8px;font-weight:700}.auth-tiers[data-v-cd40687e]{align-items:center;gap:4px;display:flex}.auth-sep[data-v-cd40687e]{color:#263238;font-size:12px}.auth-tier[data-v-cd40687e]{letter-spacing:.5px;color:#37474f;align-items:center;gap:4px;font-size:10px;font-weight:700;transition:color .25s;display:flex}.tier-dot[data-v-cd40687e]{background:#263238;border-radius:50%;width:6px;height:6px;transition:all .25s}.auth-tier.active[data-v-cd40687e]{color:#00e676}.auth-tier.active .tier-dot[data-v-cd40687e]{background:#00e676;box-shadow:0 0 6px #00e676cc}.req-btn[data-v-cd40687e]{color:#90caf9;letter-spacing:.5px;cursor:pointer;background:linear-gradient(135deg,#0d3a6e,#1565c0);border:1px solid #00e5ff33;border-radius:8px;align-items:center;gap:5px;padding:5px 14px;font-size:10px;font-weight:700;transition:all .2s;display:flex}.req-btn[data-v-cd40687e]:hover{filter:brightness(1.15);color:#fff}.req-btn.release[data-v-cd40687e]{color:#ffcc80;background:linear-gradient(135deg,#5d1a00,#e65100);border-color:#ffa7264d}.req-btn i[data-v-cd40687e]{font-size:14px}.cmd-status[data-v-cd40687e]{letter-spacing:.5px;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;font-size:10px;font-weight:700;display:flex}.cmd-status.ok[data-v-cd40687e]{color:#00e676;background:#00e6761a;border:1px solid #00e6764d}.cmd-status.blocked[data-v-cd40687e]{color:#ef9a9a;background:#ef53501a;border:1px solid #ef53504d}.cmd-status.no-mqtt[data-v-cd40687e]{color:#ffa726;background:#ffa7261a;border:1px solid #ffa7264d}.cmd-status i[data-v-cd40687e]{font-size:14px}.fade-enter-active[data-v-cd40687e],.fade-leave-active[data-v-cd40687e]{transition:opacity .25s}.fade-enter-from[data-v-cd40687e],.fade-leave-to[data-v-cd40687e]{opacity:0}@keyframes pulse-cd40687e{0%,to{opacity:1}50%{opacity:.55}}.sidebar[data-v-b6dcf2e3]{background:#071424;border-right:1px solid #00e5ff1a;flex-direction:column;flex-shrink:0;width:110px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-nav[data-v-b6dcf2e3]{flex-direction:column;flex:1;gap:2px;display:flex}.nav-home[data-v-b6dcf2e3]{color:#a07030!important;border-color:#d4a04033!important}.nav-home[data-v-b6dcf2e3]:hover{color:#e8a020!important;background:#d4a0401a!important;border-color:#d4a04073!important}.nav-rule[data-v-b6dcf2e3]{background:#ffffff0d;height:1px;margin:4px 4px 2px}.nav-group-label[data-v-b6dcf2e3]{letter-spacing:1.5px;color:#263238;text-transform:uppercase;margin-top:2px;padding:12px 8px 4px;font-size:8px;font-weight:700}.nav-group-label[data-v-b6dcf2e3]:first-child{padding-top:4px}.nav-item[data-v-b6dcf2e3]{color:#546e7a;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 4px;text-decoration:none;transition:all .18s;display:flex}.nav-item[data-v-b6dcf2e3]:hover{color:#90caf9;background:#00e5ff12;border-color:#00e5ff33}.nav-item.active[data-v-b6dcf2e3]{color:#00e5ff;background:#1565c059;border-color:#00e5ff59;box-shadow:0 0 12px #00e5ff1a,inset 0 0 8px #00e5ff0d}.nav-icon[data-v-b6dcf2e3]{font-size:20px;transition:transform .18s}.nav-item:hover .nav-icon[data-v-b6dcf2e3]{transform:scale(1.1)}.nav-item.active .nav-icon[data-v-b6dcf2e3]{filter:drop-shadow(0 0 4px #00e5ff99)}.nav-label[data-v-b6dcf2e3]{letter-spacing:.5px;text-transform:uppercase;font-size:9px;font-weight:700}.sidebar-footer[data-v-b6dcf2e3]{justify-content:center;padding:8px;display:flex}.ver-tag[data-v-b6dcf2e3]{color:#1e3a52;letter-spacing:1px;font-size:9px;font-weight:600}.app-footer[data-v-65e56dfc]{background:#071424;border-top:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;height:36px;padding:0 20px;display:flex}.footer-left[data-v-65e56dfc],.footer-right[data-v-65e56dfc]{align-items:center;gap:4px;display:flex}.footer-chip[data-v-65e56dfc]{color:#37474f;letter-spacing:.3px;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-size:10px;font-weight:600;display:flex}.footer-chip i[data-v-65e56dfc]{font-size:12px}.footer-chip.live[data-v-65e56dfc]{color:#00e676}.footer-chip.dim-text[data-v-65e56dfc]{color:#1e3a52}.chip-dot[data-v-65e56dfc]{background:#263238;border-radius:50%;width:6px;height:6px}.chip-dot.green[data-v-65e56dfc]{background:#00e676}.chip-dot.orange[data-v-65e56dfc]{background:#ffa726}.chip-dot.dim[data-v-65e56dfc]{background:#37474f}.chip-dot.connected[data-v-65e56dfc]{background:#00e676}.chip-dot.connecting[data-v-65e56dfc]{background:#ffa726}.mono[data-v-65e56dfc]{color:#546e7a;font-family:Courier New,monospace}.pt-stack[data-v-69bb2655]{z-index:9999;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:70px;right:20px}.pt-toast[data-v-69bb2655]{border:1px solid var(--tc);border-left:4px solid var(--tc);color:#e0f0ff;background:#0a1826f7;border-radius:10px;align-items:flex-start;gap:10px;min-width:280px;max-width:360px;padding:10px 14px;display:flex;box-shadow:0 4px 24px #0009}.pt-icon[data-v-69bb2655]{padding-top:2px;font-size:18px;line-height:1}.pt-body[data-v-69bb2655]{flex:1}.pt-code[data-v-69bb2655]{letter-spacing:2px;color:var(--tc);text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:800}.pt-reason[data-v-69bb2655]{margin-bottom:2px;font-size:12px;font-weight:600}.pt-ctx[data-v-69bb2655]{color:#546e7a;font-size:10px}.pt-enter-active[data-v-69bb2655],.pt-leave-active[data-v-69bb2655]{transition:opacity .25s,transform .25s}.pt-enter-from[data-v-69bb2655],.pt-leave-to[data-v-69bb2655]{opacity:0;transform:translate(20px)}.prohibit-bar[data-v-c86dc95d]{letter-spacing:1px;background:#0000004d;border-top:1px solid #ffffff0f;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:5px 14px;font-size:10px;font-weight:700;display:flex}.pb-chip[data-v-c86dc95d]{color:#78909c;text-transform:uppercase;border:1px solid #ffffff26;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;display:flex}.pb-dot[data-v-c86dc95d]{border-radius:50%;flex-shrink:0;width:7px;height:7px}.pb-ok[data-v-c86dc95d]{color:#00e676;border-color:#00e67666}.pb-off[data-v-c86dc95d]{color:#546e7a;border-color:#546e7a66}.pb-mode[data-v-c86dc95d]{color:#ce93d8;border-color:#ce93d866}.pb-err[data-v-c86dc95d]{color:#ef9a9a;border-color:#ef535066}.pb-last[data-v-c86dc95d]{color:#546e7a;letter-spacing:.5px;align-items:center;gap:5px;margin-left:auto;font-size:9px;font-weight:600;display:flex}.pb-blocked-tag[data-v-c86dc95d]{color:#ef9a9a;background:#ef535026;border:1px solid #ef53504d;border-radius:8px;padding:1px 6px;font-size:8px}.app-shell[data-v-4737ae08]{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-body[data-v-4737ae08]{flex:1;display:flex;overflow:hidden}.main-content[data-v-4737ae08]{flex:1;padding:18px;overflow-y:auto}:root{--bg-body:#0d1b2a;--bg-panel:linear-gradient(160deg, #0d2137 0%, #0a1826 100%);--bg-item:#0000004d;--bg-header:linear-gradient(135deg, #0a3d6b 0%, #1565c0 50%, #0a3d6b 100%);--border:#ffffff14;--border-sub:#ffffff0a;--text:#e0f0ff;--text-muted:#78909c;--text-dim:#37474f;--accent:#00e5ff;--green:#00e676;--orange:#ffa726;--purple:#ce93d8;--teal:#80cbc4;--red:#ef9a9a;--font-mono:"Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-body);color:var(--text);min-height:100vh;font-family:Inter,Segoe UI,Arial,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-body)}::-webkit-scrollbar-thumb{background:#1565c0;border-radius:3px}.panel{background:var(--bg-panel);border:1.5px solid var(--border);border-radius:14px;padding:16px;position:relative;overflow:hidden}.panel:before{content:"";border-radius:14px 14px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.panel.blue:before{background:linear-gradient(90deg,#1565c0,#00e5ff)}.panel.green:before{background:linear-gradient(90deg,#2e7d32,#00e676)}.panel.orange:before{background:linear-gradient(90deg,#e65100,#ffa726)}.panel.purple:before{background:linear-gradient(90deg,#6a1b9a,#ce93d8)}.panel.teal:before{background:linear-gradient(90deg,#00695c,#80cbc4)}.panel.red:before{background:linear-gradient(90deg,#b71c1c,#ef9a9a)}.panel-title{letter-spacing:2px;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.panel.blue .panel-title{color:#00e5ff}.panel.green .panel-title{color:#00e676}.panel.orange .panel-title{color:#ffa726}.panel.purple .panel-title{color:#ce93d8}.panel.teal .panel-title{color:#80cbc4}.panel.red .panel-title{color:#ef9a9a}.data-item{background:var(--bg-item);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.data-label{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:600}.data-value{font-size:28px;font-weight:700;font-family:var(--font-mono);color:var(--accent);text-shadow:0 0 12px #00e5ff80}.data-unit{color:#90a4ae;margin-left:2px;font-size:14px}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.hmi-input{color:var(--text);font-size:12px;font-family:var(--font-mono);text-align:center;background:#0006;border:1px solid #00e5ff33;border-radius:6px;outline:none;padding:5px 8px;transition:border-color .2s}.hmi-input:focus{border-color:var(--accent);box-shadow:0 0 6px #00e5ff4d}.hmi-select{color:var(--text);background:#0006;border:1px solid #00e5ff33;border-radius:6px;outline:none;padding:5px 8px;font-size:12px}.hmi-select:focus{border-color:var(--accent)}.btn{cursor:pointer;letter-spacing:.5px;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-size:12px;font-weight:700;transition:all .2s;display:inline-flex}.btn-save{color:#fff;background:linear-gradient(135deg,#2e7d32,#00e676)}.btn-ghost{color:#90a4ae;border:1px solid var(--border);background:#ffffff0d}.btn-save:hover{filter:brightness(1.1)}.btn-ghost:hover{background:#ffffff17}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.badge .bdot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-idle{color:#546e7a;background:#ffffff0d;border:1px solid #ffffff14}.badge-near{color:#ffa726;background:#ffa72626;border:1px solid #ffa72666}.badge-trig{color:#ef9a9a;background:#ef535026;border:1px solid #ef535066}.badge-run{color:#00e676;background:#00e67626;border:1px solid #00e676}.badge-stop{color:#90a4ae;border:1px solid var(--border);background:#ffffff0f}.badge-stby{color:#ffa726;background:#ffa72626;border:1px solid #ffa72666}.tog-wrap{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.tog-track{background:#263238;border:1px solid #ffffff1a;border-radius:9px;flex-shrink:0;width:34px;height:18px;transition:background .2s;position:relative}.tog-track.on{background:#00e6764d;border-color:#00e676}.tog-thumb{background:#546e7a;border-radius:50%;width:14px;height:14px;transition:left .18s,background .18s;position:absolute;top:2px;left:2px}.tog-track.on .tog-thumb{background:#00e676;left:18px}.tog-label{color:var(--text-muted);min-width:22px;font-size:10px}.prohibit-banner{z-index:5;text-align:center;background:#0d1b2a99;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:none;position:absolute;inset:0}.panel.prohibited .prohibit-banner{display:flex}.panel.prohibited .lock-body{filter:grayscale(.7)brightness(.6);pointer-events:none}.prog-outer{border:1px solid var(--border);background:#0006;border-radius:6px;flex:1;height:12px;overflow:hidden}.prog-inner{background:#00e676;border-radius:6px;height:100%;transition:width .4s,background .4s}.prog-inner.warn{background:#ffa726}.prog-inner.trig{background:#ef5350}.lamp-ind{color:#37474f;background:#0000004d;border:2px solid #ffffff1a;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;font-size:9px;font-weight:700;transition:all .25s;display:flex}.lamp-ind.actual-on{color:#f9a825;background:#f9a82526;border-color:#f9a825;box-shadow:0 0 10px #f9a82566}.lamp-ind.cmd-on{color:#42a5f5;border-color:#42a5f5}.note-box{color:var(--text-muted);background:#00e5ff0d;border:1px solid #00e5ff1f;border-radius:8px;margin-top:8px;padding:8px 12px;font-size:11px;line-height:1.6}.payload-pre{font-family:var(--font-mono);color:#80cbc4;white-space:pre-wrap;background:#0006;border:1px solid #00e5ff26;border-radius:8px;max-height:240px;padding:12px;font-size:11px;overflow:auto}.mode-field{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.mode-field label{color:#90a4ae;font-size:11px}@keyframes pulse{0%,to{box-shadow:0 0 #00e67699}50%{box-shadow:0 0 0 6px #00e67600}}
