.login-root[data-v-792ba64b]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;overflow:hidden;background:var(--bg-base)}.login-visual[data-v-792ba64b]{flex:1 1 58%;min-width:0;position:relative;background:url(/img/plant-dark.png) center / cover no-repeat}#app[data-theme=light] .login-visual[data-v-792ba64b]{background-image:url(/img/plant-light.png)}.login-visual[data-v-792ba64b]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,transparent 62%,var(--login-side-bg) 100%)}.vis-caption[data-v-792ba64b]{position:absolute;z-index:1;color:var(--login-vis-text)}.vis-tl[data-v-792ba64b]{top:28px;left:32px;display:flex;flex-direction:column;gap:4px}.vis-tl b[data-v-792ba64b]{font-size:18px;font-weight:600;letter-spacing:2px}.vis-tl span[data-v-792ba64b]{font-size:12px;letter-spacing:4px;opacity:.75}.vis-bl[data-v-792ba64b]{bottom:24px;left:32px;font-size:11px;letter-spacing:3px;opacity:.55;font-family:var(--font-num)}.login-side[data-v-792ba64b]{flex:0 0 clamp(400px,36%,520px);position:relative;display:flex;align-items:center;justify-content:center;background:var(--login-side-bg);border-left:1px solid var(--glass-border);box-shadow:var(--shadow-pop)}.theme-pill[data-v-792ba64b]{position:absolute;top:20px;right:24px;z-index:2;height:30px;padding:0 14px;font-size:12px;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;font-family:var(--font-ui);transition:color .2s}.theme-pill[data-v-792ba64b]:hover{color:var(--primary)}.login-card[data-v-792ba64b]{width:min(340px,86%);display:flex;flex-direction:column;padding:30px 30px 26px;border-radius:14px;background:var(--glass-2);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-hi),var(--shadow-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.brand-band[data-v-792ba64b]{padding:11px 16px;border-radius:8px;background:var(--primary-grad);color:var(--on-primary);font-size:14.5px;font-weight:700;letter-spacing:1px;text-align:center;box-shadow:0 4px 16px #38bdf84d}.brand-sub[data-v-792ba64b]{margin-top:10px;text-align:center;font-size:11.5px;color:var(--text-2);letter-spacing:2px}.side-foot[data-v-792ba64b]{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:1px}@media(max-width:900px){.login-visual[data-v-792ba64b]{display:none}.login-side[data-v-792ba64b]{flex:1 1 auto;border-left:none}}#topbar[data-v-fc660b04]{position:absolute;left:16px;right:16px;top:16px;height:64px;display:flex;align-items:center;padding:0 20px;gap:24px;z-index:5}.brand[data-v-fc660b04]{display:flex;align-items:center;gap:12px}.brand-band[data-v-fc660b04]{padding:8px 18px;border-radius:8px;background:var(--primary-grad);color:var(--on-primary);font-size:15px;font-weight:700;letter-spacing:1px;box-shadow:0 4px 16px #38bdf84d}.brand-sub[data-v-fc660b04]{font-size:12px;color:var(--text-2);letter-spacing:.5px}.nav[data-v-fc660b04]{display:flex;gap:6px;margin-left:8px}.nav a[data-v-fc660b04]{padding:7px 16px;border-radius:8px;font-size:13px;color:var(--text-2);cursor:pointer;transition:all .2s ease;border:1px solid transparent}.nav a[data-v-fc660b04]:hover{color:var(--text-1);border-color:var(--primary)}.nav a.on[data-v-fc660b04]{background:var(--primary-dim);color:var(--primary);border-color:var(--primary)}.top-right[data-v-fc660b04]{margin-left:auto;display:flex;align-items:center;gap:20px}.comm-mini[data-v-fc660b04]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2);white-space:nowrap}.clock[data-v-fc660b04]{font-size:15px;color:var(--text-1);letter-spacing:1px;white-space:nowrap}.clock small[data-v-fc660b04]{font-size:12px;color:var(--text-3);margin-right:8px;font-family:var(--font-ui)}#themeBtn[data-v-fc660b04]{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:12px;color:var(--text-1);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:border-color .2s,color .2s}#themeBtn[data-v-fc660b04]:hover{border-color:var(--primary);color:var(--primary)}.user[data-v-fc660b04]{display:flex;align-items:center;gap:10px;padding:6px 14px;font-size:12px;color:var(--text-2)}.user a[data-v-fc660b04]{cursor:pointer;color:var(--text-2)}.user a[data-v-fc660b04]:hover{color:var(--primary)}#kpis[data-v-dda5ea18]{position:absolute;left:16px;right:16px;top:97px;height:88px;display:grid;grid-template-columns:repeat(5,1fr);gap:17px}.kpi[data-v-dda5ea18]{padding:12px 18px;display:flex;flex-direction:column;justify-content:center;gap:2px;position:relative;transition:border-color .2s}.kpi[data-v-dda5ea18]:hover{border-color:var(--primary)}.k-label[data-v-dda5ea18]{font-size:12px;color:var(--text-2)}.k-row[data-v-dda5ea18]{display:flex;align-items:baseline;gap:6px}.k-val[data-v-dda5ea18]{font-size:32px;font-weight:600;color:var(--text-1);text-shadow:var(--num-glow);line-height:1.1}.k-unit[data-v-dda5ea18]{font-size:12px;color:var(--text-3)}.k-trend[data-v-dda5ea18]{position:absolute;left:18px;right:18px;bottom:10px;height:2px;border-radius:1px;background:var(--chart-grid);overflow:hidden}.k-trend i[data-v-dda5ea18]{display:block;height:100%;border-radius:1px;background:var(--primary);opacity:.8;transition:width .3s cubic-bezier(.33,1,.68,1)}.k-trend i.flat[data-v-dda5ea18]{background:var(--text-3)}#col-left[data-v-61e904a7]{position:absolute;left:16px;top:202px;width:440px;height:640px;padding:16px;display:flex;flex-direction:column}.pile-list[data-v-61e904a7]{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.pile-row[data-v-61e904a7]{flex:1;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s}.pile-row[data-v-61e904a7]:hover{background:var(--primary-dim)}.pile-row.active[data-v-61e904a7]{border-color:var(--primary)}.pile-id[data-v-61e904a7]{width:32px;font-size:14px;font-weight:600;color:var(--text-1)}.pile-info[data-v-61e904a7]{margin-left:auto;font-size:12px;color:var(--text-2);white-space:nowrap}.pile-dot[data-v-61e904a7]{width:10px;height:10px;border-radius:50%;flex:none;background:var(--state-stop-dot)}.pile-dot.on[data-v-61e904a7]{background:var(--primary);box-shadow:0 0 0 4px var(--primary-dim),0 0 10px var(--primary)}.pile-gfx[data-v-61e904a7]{position:relative;width:170px;height:40px;flex:none}.pile-fx[data-v-61e904a7]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.total-bar[data-v-61e904a7]{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px}#col-mid[data-v-e27fa2d9]{position:absolute;left:473px;top:202px;width:894px;height:640px;padding:16px}@keyframes flowdash-e27fa2d9{to{stroke-dashoffset:-48}}.flowline[data-v-e27fa2d9]{animation:flowdash-e27fa2d9 1.2s linear infinite;stroke:var(--flow-arrow)}@keyframes flowdash2-e27fa2d9{to{stroke-dashoffset:-12}}.flowline-arrow[data-v-e27fa2d9]{animation:flowdash2-e27fa2d9 .9s linear infinite;stroke:var(--primary)}.flowline-idle[data-v-e27fa2d9]{stroke:var(--text-3)}.tippler-run[data-v-e27fa2d9]{animation:tipplerPulse-e27fa2d9 1.6s ease-in-out infinite}@keyframes tipplerPulse-e27fa2d9{0%,to{opacity:1}50%{opacity:.45}}.tippler-halo[data-v-e27fa2d9]{animation:tipplerHalo-e27fa2d9 1.6s ease-out infinite;transform-origin:208px 474px}@keyframes tipplerHalo-e27fa2d9{0%{transform:scale(1);opacity:.8}70%,to{transform:scale(2.4);opacity:0}}.dev-tip[data-v-e27fa2d9]{position:absolute;padding:10px 14px;border-radius:12px;background:var(--glass-3);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-hi),var(--shadow-pop);font-size:12px;color:var(--text-2);line-height:1.8;pointer-events:none;z-index:30;animation:tipIn-e27fa2d9 .22s ease .15s backwards}@keyframes tipIn-e27fa2d9{0%{opacity:0;transform:translateY(4px)}}.dev-tip b[data-v-e27fa2d9]{color:var(--text-1);font-family:var(--font-num)}#col-right[data-v-61e02684]{position:absolute;right:16px;top:202px;width:520px;height:640px;padding:16px}.legend[data-v-61e02684]{display:flex;gap:14px;align-items:center;height:28px;padding:0 6px;margin-bottom:2px;flex-wrap:wrap}.legend span[data-v-61e02684]{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-2)}.legend i[data-v-61e02684]{width:12px;height:12px;border-radius:3px;flex:none}#bunkers[data-v-61e02684]{display:flex;gap:20px;justify-content:center;height:552px}.bunker[data-v-61e02684]{width:64px;display:flex;flex-direction:column;align-items:center;cursor:pointer}.bk-total[data-v-61e02684]{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:4px;position:relative}.bk-total .t[data-v-61e02684]{font-size:20px;font-weight:500;color:var(--text-1);text-shadow:var(--num-glow);line-height:1}.bk-total .u[data-v-61e02684]{font-size:12px;color:var(--text-3);margin-top:3px}.bk-total.over .t[data-v-61e02684]{color:var(--state-fault-text)}.ov-chip[data-v-61e02684]{position:absolute;top:0;left:50%;transform:translate(-50%);font-size:11px;line-height:14px;padding:0 4px;border-radius:3px;white-space:nowrap;background:#f8717129;color:var(--state-fault-text);border:1px solid rgba(248,113,113,.45)}.bunker.over .bk-col[data-v-61e02684]{border-color:var(--state-fault-dot)}.bk-col[data-v-61e02684]{width:64px;flex:1;min-height:0;border-radius:6px 6px 0 0;position:relative;background:var(--well-bg);border:1.5px solid var(--glass-border);border-bottom:none;display:flex;flex-direction:column-reverse;overflow:hidden}.bunker.run .bk-col[data-v-61e02684]{border-color:var(--state-run-dot)}.bunker.stop .bk-col[data-v-61e02684]{border-color:var(--state-stop-dot)}.bunker.fault .bk-col[data-v-61e02684]{border-color:var(--state-fault-dot)}.bunker.fault .bk-col .layer[data-v-61e02684]{filter:saturate(.6)}.bk-col.uninit[data-v-61e02684]{background:repeating-linear-gradient(45deg,#93a5c029 0,#93a5c029 2px,#ffffff08 2px,#ffffff08 8px)}.uninit-tip[data-v-61e02684]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.6;color:var(--text-2)}.bk-funnel[data-v-61e02684]{display:block;margin:0 auto}.bk-lever[data-v-61e02684]{position:relative;width:20px;height:22px;flex:none;margin-bottom:2px}.lever-pivot[data-v-61e02684]{position:absolute;left:50%;top:3px;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background:var(--dev-stop);box-shadow:0 0 0 2px var(--glass-border)}.lever-arm[data-v-61e02684]{position:absolute;left:50%;top:5px;width:2px;height:14px;margin-left:-1px;background:var(--dev-stop);border-radius:1px;transform-origin:top center;transition:transform .3s cubic-bezier(.33,1,.68,1)}.lever-knob[data-v-61e02684]{position:absolute;left:50%;top:16px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--dev-stop);transition:all .3s cubic-bezier(.33,1,.68,1)}.bk-lever .lever-arm[data-v-61e02684]{transform:rotate(-50deg)}.bk-lever .lever-knob[data-v-61e02684]{top:2px}.bk-lever.on .lever-arm[data-v-61e02684]{transform:rotate(0);background:var(--primary)}.bk-lever.on .lever-knob[data-v-61e02684]{top:16px;background:var(--primary);box-shadow:0 0 8px var(--primary)}.bk-lever.on .lever-pivot[data-v-61e02684]{background:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}.bk-belt[data-v-61e02684]{position:relative;width:64px;height:20px;flex:none}.bk-belt-svg[data-v-61e02684]{position:absolute;top:0;right:0;bottom:0;left:0}.bk-belt-svg .pulley[data-v-61e02684]{fill:var(--glass-2);stroke:var(--dev-stop);stroke-width:1.5}.bk-belt-svg .belt-deck[data-v-61e02684]{fill:var(--well-bg);stroke:var(--dev-stop);stroke-width:1}.bk-belt.run .pulley[data-v-61e02684]{stroke:var(--state-run-dot)}.bk-belt.run .belt-deck[data-v-61e02684]{fill:#34d39924;stroke:var(--state-run-dot)}.bk-belt-fx[data-v-61e02684],.bk-fall[data-v-61e02684]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.bk-funnel polygon[data-v-61e02684]{stroke:var(--glass-border);stroke-width:1.5;stroke-linejoin:round}.bunker.run .bk-funnel polygon[data-v-61e02684]{stroke:var(--state-run-dot)}.bunker.stop .bk-funnel polygon[data-v-61e02684]{stroke:var(--state-stop-dot)}.bunker.fault .bk-funnel polygon[data-v-61e02684]{stroke:var(--state-fault-dot);filter:saturate(.6)}.bk-reader-ring[data-v-61e02684]{fill:#26303d;stroke:var(--state-run-dot);stroke-width:2;filter:drop-shadow(0 0 3px rgba(52,211,153,.45))}.bunker.stop .bk-reader-ring[data-v-61e02684]{stroke:var(--state-stop-dot);filter:none}.bunker.fault .bk-reader-ring[data-v-61e02684]{stroke:var(--state-fault-dot);filter:drop-shadow(0 0 3px rgba(251,191,36,.5))}.bk-reader-txt[data-v-61e02684]{fill:#fff;font-family:var(--font-num);font-size:11px}.bk-status[data-v-61e02684]{height:22px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--text-2)}.layer[data-v-61e02684]{width:100%;position:relative;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--layer-sep);transition:height .3s cubic-bezier(.33,1,.68,1)}.layer b[data-v-61e02684]{font-family:var(--font-num);font-size:12px;font-weight:500;line-height:1.15;text-align:center}.layer.dk b[data-v-61e02684]{color:#eaf2fb}.layer.lt b[data-v-61e02684]{color:#04211d}#app[data-theme=light] .layer.dk b[data-v-61e02684]{color:#fff}#app[data-theme=light] .layer.lt b[data-v-61e02684]{color:#1f2d3d}.layer-load[data-v-61e02684]{width:100%;height:0;position:relative;z-index:2}.layer-load[data-v-61e02684]:before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--primary);box-shadow:0 0 8px var(--primary)}.bk-mask[data-v-61e02684]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40}.bk-detail[data-v-61e02684]{position:absolute;top:16px;right:16px;bottom:16px;width:360px;z-index:41;padding:14px;display:flex;flex-direction:column;animation:drawerIn-61e02684 .24s cubic-bezier(.33,1,.68,1)}#app:not([data-theme=light]) .bk-detail[data-v-61e02684]{background:#0d1729;backdrop-filter:none;-webkit-backdrop-filter:none}@keyframes drawerIn-61e02684{0%{transform:translate(24px);opacity:0}}#coal-table[data-v-a3dda0e7]{position:absolute;left:16px;right:16px;top:859px;bottom:73px;padding:10px 16px;display:flex;flex-direction:column;min-height:0}.p-head[data-v-a3dda0e7]{margin-bottom:6px}#statusbar[data-v-f58fb6fa]{position:absolute;left:16px;right:16px;bottom:16px;height:40px;display:flex;align-items:center;padding:0 20px;gap:28px}.st-item[data-v-f58fb6fa]{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-2);white-space:nowrap}.st-item.ok[data-v-f58fb6fa]{color:var(--state-run-text)}.st-item.warn[data-v-f58fb6fa]{color:var(--state-fault-text)}.st-item.bad[data-v-f58fb6fa]{color:var(--state-alarm-text)}.readers[data-v-f58fb6fa]{display:flex;gap:10px;align-items:center;padding:6px 14px}.readers .r[data-v-f58fb6fa]{width:10px;height:10px;border-radius:50%;background:var(--state-run-dot);box-shadow:0 0 6px #34d39966;cursor:pointer}.readers .r.fault[data-v-f58fb6fa]{background:var(--state-fault-dot);box-shadow:0 0 6px #fbbf2480}.readers .r.unknown[data-v-f58fb6fa]{background:var(--state-stop-dot);box-shadow:none}.readers-lb[data-v-f58fb6fa]{font-size:12px;color:var(--text-3);margin-right:2px}.st-ver[data-v-f58fb6fa]{margin-left:auto;font-size:12px;color:var(--text-3);font-family:var(--font-num)}#viewport[data-v-c8536013]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}#stage[data-v-c8536013]{width:1920px;height:1080px;position:relative;flex:none;transform-origin:center center;font-family:var(--font-ui);color:var(--text-1);background:var(--glow-1),var(--glow-2),var(--glow-3),var(--bg-base);overflow:hidden;transition:background .3s ease,color .3s ease}#stage[data-v-c8536013]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:40px 40px}.cfg-desc[data-v-baabb29c]{font-size:12.5px;line-height:1.4;color:var(--text-1)}.bk-pick[data-v-7a9eeb62]{padding:4px 12px;border-radius:8px;font-size:12px;color:var(--text-2);cursor:pointer;border:1px solid var(--glass-border);margin-left:6px}.bk-pick.on[data-v-7a9eeb62]{background:var(--primary-dim);color:var(--primary);border-color:var(--primary)}.trace-line[data-v-c3e53de3]{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.trace-item[data-v-c3e53de3]{display:flex;gap:12px;align-items:center;font-size:12px}.trace-kind[data-v-c3e53de3]{color:var(--primary);min-width:70px}.restore-sel td[data-v-f1deea14]{background:var(--primary-dim)}#viewport{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}#app{--bg-base: #070d18;--glow-1: radial-gradient(ellipse 55% 45% at 18% 0%, rgba(56,189,248,.13), transparent 70%);--glow-2: radial-gradient(ellipse 50% 55% at 92% 30%, rgba(79,140,255,.12), transparent 70%);--glow-3: radial-gradient(ellipse 60% 45% at 50% 108%,rgba(45,212,191,.08), transparent 70%);--grid-line: rgba(148,180,220,.04);--glass-1: rgba(255,255,255,.05);--glass-2: rgba(255,255,255,.08);--glass-3: rgba(255,255,255,.12);--glass-border: rgba(255,255,255,.1);--glass-hi: rgba(255,255,255,.14);--glass-blur: blur(14px) saturate(140%);--well-bg: rgba(255,255,255,.04);--layer-sep: rgba(7,13,24,.6);--border-focus: #38bdf8;--row-alt: rgba(255,255,255,.09);--primary: #38bdf8;--primary-deep: #4f8cff;--primary-dim: rgba(56,189,248,.12);--primary-grad: linear-gradient(135deg,#38bdf8,#4f8cff);--on-primary: #04211d;--text-1: #eaf2fb;--text-2: #93a5c0;--text-3: #5b6b85;--state-run-dot: #34d399;--state-run-text: #6ee7b7;--state-stop-dot: #64748b;--state-stop-text: #94a3b8;--state-fault-dot: #fbbf24;--state-fault-text: #fcd34d;--state-alarm-dot: #f87171;--state-alarm-text: #fca5a5;--belt-idle: #1e5c50;--dev-stop: #24466b;--coal-1: #115e59;--coal-2: #0f766e;--coal-3: #0d9488;--coal-4: #14b8a6;--coal-5: #2dd4bf;--coal-6: #5eead4;--chart-grid: rgba(148,180,220,.1);--chart-axis: #5b6b85;--chart-line-1: #38bdf8;--chart-line-2: #34d399;--chart-line-3: #fbbf24;--chart-tooltip-bg: rgba(13,22,38,.92);--flow-arrow: rgba(234,242,251,.55);--num-glow: 0 0 24px rgba(56,189,248,.25);--shadow-card: 0 8px 32px rgba(2,8,23,.45);--shadow-hover: 0 12px 40px rgba(2,8,23,.55);--shadow-pop: 0 16px 56px rgba(2,8,23,.65);--login-side-bg: linear-gradient(180deg,#0b1424 0%,#0a1220 100%);--login-vis-text: rgba(226,238,252,.88);--font-ui: "HarmonyOS Sans SC","Source Han Sans SC","Microsoft YaHei UI",sans-serif;--font-num: "JetBrains Mono","DIN Alternate","Consolas",monospace}#app[data-theme=light]{--bg-base: #eef2f8;--glow-1: radial-gradient(ellipse 55% 45% at 18% 0%, rgba(58,111,242,.07), transparent 70%);--glow-2: radial-gradient(ellipse 50% 55% at 92% 30%, rgba(111,155,255,.08), transparent 70%);--glow-3: radial-gradient(ellipse 60% 45% at 50% 108%,rgba(20,184,166,.05), transparent 70%);--grid-line: rgba(31,61,89,.05);--glass-1: rgba(255,255,255,.72);--glass-2: rgba(255,255,255,.88);--glass-3: rgba(255,255,255,.94);--glass-border: rgba(31,61,89,.09);--glass-hi: rgba(255,255,255,.9);--well-bg: rgba(31,61,89,.045);--layer-sep: #ffffff;--border-focus: #3a6ff2;--row-alt: rgba(31,61,89,.1);--primary: #3a6ff2;--primary-deep: #6f9bff;--primary-dim: rgba(58,111,242,.08);--primary-grad: linear-gradient(135deg,#3a6ff2,#6f9bff);--on-primary: #ffffff;--text-1: #1f2d3d;--text-2: #5e6c85;--text-3: #9aa7bd;--state-run-dot: #22b07d;--state-run-text: #15803d;--state-stop-dot: #94a3b8;--state-stop-text: #64748b;--state-fault-dot: #f59e0b;--state-fault-text: #b45309;--state-alarm-dot: #ef4444;--state-alarm-text: #dc2626;--chart-grid: #e5ecf4;--chart-axis: #9aa7bd;--chart-tooltip-bg: rgba(255,255,255,.95);--flow-arrow: rgba(31,61,89,.4);--belt-idle: #b7d8ce;--dev-stop: #8fa8cc;--num-glow: none;--shadow-card: 0 2px 8px rgba(31,61,89,.06),0 8px 24px rgba(31,61,89,.05);--shadow-hover: 0 4px 12px rgba(31,61,89,.1),0 12px 32px rgba(31,61,89,.08);--shadow-pop: 0 12px 40px rgba(31,61,89,.16);--login-side-bg: linear-gradient(180deg,#f8fafd 0%,#eef3f9 100%);--login-vis-text: rgba(31,61,89,.85)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{background:#05080f;font-family:HarmonyOS Sans SC,Source Han Sans SC,Microsoft YaHei UI,sans-serif;overflow:hidden}#app{height:100%;font-family:var(--font-ui);color:var(--text-1)}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.glass{background:var(--glass-1);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:inset 0 1px 0 var(--glass-hi),var(--shadow-card)}.glass2{background:var(--glass-2);border:1px solid var(--glass-border);border-radius:10px;box-shadow:inset 0 1px 0 var(--glass-hi)}.glass3{background:var(--glass-3);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--glass-border);border-radius:12px;box-shadow:inset 0 1px 0 var(--glass-hi),var(--shadow-pop)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot.run{background:var(--state-run-dot);box-shadow:0 0 0 4px #34d3992e,0 0 12px #34d39959}.dot.stop{background:var(--state-stop-dot);box-shadow:0 0 0 4px #64748b2e}.dot.fault{background:var(--state-fault-dot);box-shadow:0 0 0 4px #fbbf242e,0 0 12px #fbbf2459}.dot.alarm{background:var(--state-alarm-dot);box-shadow:0 0 0 4px #f871712e,0 0 12px #f8717166;animation:breathe 1s ease-in-out 3 forwards}@keyframes breathe{50%{opacity:.55}}.p-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.p-head:before{content:"";width:3px;height:14px;border-radius:2px;background:var(--primary);box-shadow:0 0 8px #38bdf880}.p-head h2{font-size:14px;font-weight:500;color:var(--text-1);letter-spacing:.5px}.p-head .p-link{margin-left:auto;font-size:12px;color:var(--text-3);cursor:pointer;white-space:nowrap}.p-head .p-link:hover{color:var(--primary)}.t-wrap{flex:1;min-height:0;overflow-y:auto;border-radius:8px}.t-wrap::-webkit-scrollbar{width:6px}.t-wrap::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}table.tbl{width:100%;border-collapse:collapse}table.tbl thead th{position:sticky;top:0;z-index:1;background:var(--glass-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12px;font-weight:400;color:var(--text-2);height:36px;padding:0 12px;text-align:left;border-bottom:1px solid var(--chart-grid)}table.tbl tbody td{height:40px;padding:0 12px;font-size:13px;color:var(--text-1);border-bottom:1px solid var(--chart-grid)}table.tbl.compact tbody td{height:32px}table.tbl tbody tr:hover{background:var(--primary-dim)}table.tbl tbody tr.grp-alt>td{background:var(--row-alt)}table.tbl tbody tr.grp-start>td{box-shadow:inset 0 1px 0 var(--glass-border)}table.tbl tbody tr:hover>td{background:var(--primary-dim)}table.tbl td.n,table.tbl th.n{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums}.src-cell{display:flex;align-items:center;gap:8px;font-weight:500}.src-cell i{width:12px;height:12px;border-radius:3px;flex:none}.btn{height:32px;padding:0 16px;border-radius:8px;font-size:13px;cursor:pointer;border:1px solid transparent;transition:all .2s ease;font-family:var(--font-ui);display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-primary{background:var(--primary-grad);color:var(--on-primary);font-weight:600}.btn-primary:hover{filter:brightness(1.1);box-shadow:var(--shadow-hover)}.btn-ghost{background:var(--glass-2);border-color:var(--glass-border);color:var(--text-1)}.btn-ghost:hover{border-color:var(--primary)}.btn-danger{background:transparent;border-color:var(--state-alarm-text);color:var(--state-alarm-text)}.btn-danger:hover{background:#f871711a}.btn:disabled{opacity:.4;cursor:not-allowed}.inp,select.inp,textarea.inp{height:32px;padding:0 10px;border-radius:8px;font-size:13px;background:#02081759;border:1px solid var(--glass-border);color:var(--text-1);font-family:var(--font-ui);outline:none;transition:border-color .2s,box-shadow .2s}#app[data-theme=light] .inp{background:#1f3d590d}.inp:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-dim)}.inp:disabled{opacity:.4;cursor:not-allowed}input[type=number].inp{font-family:var(--font-num);font-variant-numeric:tabular-nums}label.fld{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-2)}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#02060e73;z-index:80;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:81;--drawer-bg: var(--bg-base);display:flex;flex-direction:column;background:var(--drawer-bg);border-left:1px solid var(--glass-border);box-shadow:var(--shadow-pop);animation:drawerIn .24s cubic-bezier(.33,1,.68,1)}#app[data-theme=light] .drawer{--drawer-bg: #f4f7fb;background:var(--drawer-bg)}@keyframes drawerIn{0%{transform:translate(40px);opacity:0}}.drawer-head{display:flex;align-items:center;gap:8px;padding:16px 20px 12px;flex:none}.drawer-head:before{content:"";width:3px;height:14px;border-radius:2px;background:var(--primary)}.drawer-head h2{font-size:15px;font-weight:600;color:var(--text-1);letter-spacing:.5px}.drawer-close{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--glass-border);background:var(--glass-2);color:var(--text-2);font-size:15px;cursor:pointer}.drawer-close:hover{color:var(--primary);border-color:var(--primary)}.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:4px 20px 20px}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:3px}.drawer-subhead{flex:none;padding:0 20px 12px;background:var(--drawer-bg);border-bottom:1px solid var(--glass-border)}.drawer-subhead .subtabs{margin-bottom:0}.drawer-subhead+.drawer-body{padding-top:14px}.tab-page{display:flex;flex-direction:column;min-height:100%;padding-top:14px}.tab-page>*{flex:none}.drawer-body:has(>.tab-page){padding-top:0;padding-bottom:0}.drawer-actions{position:sticky;bottom:0;z-index:2;margin-top:auto;padding:14px 0 20px;background:var(--drawer-bg);box-shadow:0 -1px 0 var(--glass-border)}.drawer-body table.tbl thead th{background-image:linear-gradient(var(--glass-2),var(--glass-2));background-color:var(--drawer-bg)}.subtabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.subtabs a{padding:6px 14px;border-radius:8px;font-size:13px;color:var(--text-2);cursor:pointer;border:1px solid transparent;transition:all .2s ease}.subtabs a:hover{color:var(--text-1);border-color:var(--primary)}.subtabs a.on{background:var(--primary-dim);color:var(--primary);border-color:var(--primary)}#toasts{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:120;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:var(--glass-3);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--glass-border);box-shadow:var(--shadow-pop);font-size:13px;color:var(--text-1);animation:toastIn .24s ease}.toast:before{content:"";width:3px;align-self:stretch;border-radius:2px;background:var(--primary)}.toast.ok:before{background:var(--state-run-dot)}.toast.warn:before{background:var(--state-fault-dot)}.toast.err:before{background:var(--state-alarm-dot)}.toast.out{opacity:0;transition:opacity .2s ease}@keyframes toastIn{0%{transform:translateY(-10px);opacity:0}}.mut{color:var(--text-3)}.dim{color:var(--text-2)}.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:10px}.grow{flex:1;min-width:0}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.warn-text{color:var(--state-alarm-text);font-size:12px}
