.batch-duration-page[data-v-69b687fd]{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(280px,1fr) minmax(220px,1fr);gap:10px;overflow:hidden}.batch-duration-head[data-v-69b687fd]{min-height:48px;margin:0;display:flex;align-items:center;justify-content:space-between;gap:18px}.batch-duration-controls[data-v-69b687fd]{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;justify-content:flex-end}.batch-date-control[data-v-69b687fd]{display:grid;gap:3px;color:#6f86a6;font-size:11px}.batch-date-control input[data-v-69b687fd]{min-height:34px;border:1px solid var(--line);border-radius:5px;color:#dcecff;background:#ffffff0a;padding:6px 9px;color-scheme:dark}.batch-duration-chart-panel[data-v-69b687fd],.batch-duration-table-panel[data-v-69b687fd]{min-height:0;padding:12px 14px;overflow:hidden}.batch-duration-chart-panel[data-v-69b687fd]{display:grid;grid-template-rows:auto minmax(0,1fr)}.batch-duration-chart-panel .section-head[data-v-69b687fd],.batch-duration-table-panel .section-head[data-v-69b687fd]{margin-bottom:7px}.batch-duration-legend[data-v-69b687fd]{display:flex;align-items:center;gap:13px;flex-wrap:wrap;color:#9db4cf;font-size:12px}.batch-duration-legend span[data-v-69b687fd]{display:inline-flex;align-items:center;gap:5px}.batch-duration-legend i[data-v-69b687fd],.batch-duration-tooltip i[data-v-69b687fd]{width:8px;height:8px;display:inline-block;border-radius:2px}.batch-duration-chart-viewport[data-v-69b687fd]{position:relative;min-height:0;overflow:auto hidden}.batch-duration-chart[data-v-69b687fd]{display:block;height:286px;min-width:780px}.batch-duration-chart text[data-v-69b687fd]{font-family:Consolas,Microsoft YaHei,sans-serif}.batch-chart-axis-label[data-v-69b687fd]{fill:#607899;font-size:11px}.batch-chart-label[data-v-69b687fd]{fill:#9db4cf;font-size:11px}.batch-chart-total[data-v-69b687fd]{fill:#eff7ff;font-size:11px;font-weight:600}.batch-duration-chart g.is-selected rect[data-v-69b687fd]:not([fill=transparent]){filter:brightness(1.25)}.batch-duration-chart g.is-selected rect[fill=transparent][data-v-69b687fd]{outline:1px solid var(--green)}.batch-duration-tooltip[data-v-69b687fd]{position:absolute;z-index:3;width:224px;padding:10px 11px;border:1px solid rgba(62,145,255,.4);border-radius:6px;color:#dcecff;background:#111b29;box-shadow:0 10px 26px #00000059;pointer-events:none}.batch-duration-tooltip strong[data-v-69b687fd],.batch-duration-tooltip span[data-v-69b687fd],.batch-duration-tooltip em[data-v-69b687fd]{display:block}.batch-duration-tooltip strong[data-v-69b687fd]{margin-bottom:6px;color:#fff;font-size:12px}.batch-duration-tooltip span[data-v-69b687fd]{display:flex;align-items:center;gap:6px;margin:3px 0;color:#8da6c3;font-size:11px}.batch-duration-tooltip b[data-v-69b687fd]{margin-left:auto;color:#eaf4ff;font-family:Consolas,monospace;font-weight:500}.batch-duration-tooltip em[data-v-69b687fd]{display:flex;margin-top:7px;padding-top:6px;border-top:1px solid var(--line);color:#6f86a6;font-size:11px;font-style:normal}.batch-duration-tooltip em b[data-v-69b687fd]{color:var(--green)}.batch-duration-table-panel[data-v-69b687fd]{display:grid;grid-template-rows:auto minmax(0,1fr)}.batch-duration-table-wrap[data-v-69b687fd]{min-height:0;overflow:auto}.batch-duration-table[data-v-69b687fd]{min-width:1040px}.batch-duration-table th[data-v-69b687fd],.batch-duration-table td[data-v-69b687fd]{white-space:nowrap}.batch-duration-table tbody tr[data-v-69b687fd]{cursor:pointer}.batch-duration-table tbody tr.is-selected td[data-v-69b687fd]{background:#22e6aa14}.batch-code[data-v-69b687fd]{color:#69adff}.total-cell[data-v-69b687fd]{color:var(--green);font-family:Consolas,monospace;font-weight:600}.batch-status[data-v-69b687fd]{display:inline-flex;align-items:center;gap:5px;font-size:11px}.batch-status[data-v-69b687fd]:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.batch-status.complete[data-v-69b687fd]{color:var(--green)}.batch-status.running[data-v-69b687fd]{color:var(--amber)}.batch-duration-empty[data-v-69b687fd]{height:120px;text-align:center;color:#607899}.is-spinning[data-v-69b687fd]{animation:batch-duration-spin-69b687fd .9s linear infinite}@keyframes batch-duration-spin-69b687fd{to{transform:rotate(360deg)}}@media(max-width:900px){.batch-duration-page[data-v-69b687fd]{height:auto;min-height:100%;overflow:auto;grid-template-rows:auto 310px minmax(260px,auto)}.batch-duration-head[data-v-69b687fd]{align-items:flex-start;flex-direction:column}.batch-duration-controls[data-v-69b687fd]{width:100%;justify-content:flex-start}}:root{color-scheme:dark;--bg: #070b12;--panel: #101720;--panel2: #121c28;--tile: #151f2c;--line: rgba(89, 126, 171, .2);--line2: rgba(34, 230, 170, .34);--text: #eff7ff;--muted: #6f86a6;--blue: #3e91ff;--cyan: #00d8ff;--green: #22e6aa;--amber: #ffb000;--red: #ff5c66;--pink: #ff62be;--purple: #a96cff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:14px/1.42 Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;letter-spacing:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button,select{cursor:pointer}.app{height:100vh;display:grid;grid-template-rows:82px 1fr;background:linear-gradient(90deg,rgba(0,216,255,.026) 1px,transparent 1px),linear-gradient(0deg,rgba(0,216,255,.022) 1px,transparent 1px),radial-gradient(circle at 16% 8%,rgba(34,230,170,.08),transparent 24%),radial-gradient(circle at 82% 0%,rgba(62,145,255,.1),transparent 28%),var(--bg);background-size:42px 42px,42px 42px,auto,auto,auto}.topbar{min-height:82px;display:grid;grid-template-columns:560px minmax(720px,1fr) 300px;align-items:center;gap:12px;padding:9px 16px;border-bottom:1px solid var(--line);background:#070b12f0}.brand{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}.brand-logo{width:56px;height:54px;display:block;flex:0 0 auto}.brand-mark{width:136px;height:56px;max-width:none;object-fit:contain;object-position:left center;display:block}.brand>div:not(.brand-logo) strong{display:block;font-size:18px;line-height:1.15;white-space:nowrap}.brand>div:not(.brand-logo) span{display:block;margin-top:2px;color:#3d5473;font-size:13px;white-space:nowrap}.nav{display:flex;justify-content:center;align-items:center;gap:8px;min-width:0;overflow:hidden}.nav button{height:38px;display:inline-flex;align-items:center;gap:8px;padding:0 10px;border:1px solid transparent;border-radius:6px;color:var(--muted);background:transparent;white-space:nowrap}.nav button:hover,.nav button.active{color:#76b7ff;border-color:#3e91ff47;background:#3e91ff21}.nav small{width:18px;height:18px;display:grid;place-items:center;border-radius:4px;font-size:15px;color:currentColor}.top-actions{justify-self:end;display:flex;align-items:center;gap:8px;color:#526988;min-width:0}.clock{min-width:112px;font:13px Consolas,monospace;white-space:nowrap;overflow:hidden}.icon-btn,.primary-btn,.ghost-btn,.danger-btn{min-height:34px;border:1px solid var(--line);border-radius:6px;color:#9db4cf;background:#ffffff09;padding:0 12px}.icon-btn{min-width:38px;height:36px;padding:0;position:relative}.icon-btn svg,.top-icon-btn svg{display:block;margin:auto}.top-icon-btn{display:inline-grid;place-items:center}.user-btn{min-height:36px;max-width:112px;display:inline-flex;align-items:center;gap:7px;padding:0 11px;border:1px solid rgba(62,145,255,.28);border-radius:6px;color:#a9c7e8;background:#3e91ff17;white-space:nowrap;overflow:hidden}.user-btn:hover{color:#fff;border-color:#3e91ff7a;background:#3e91ff29}.user-btn span{overflow:hidden;text-overflow:ellipsis}#langBtn{min-width:42px;height:34px;font-size:14px;font-weight:500}.icon-btn:hover,.ghost-btn:hover{color:#fff;border-color:#3e91ff6b}.primary-btn{color:var(--green);border-color:#22e6aa57;background:#22e6aa1f}.action-btn{color:#63f4c1;border-color:#22e6aa85;background:linear-gradient(180deg,#22e6aa33,#22e6aa1a);box-shadow:inset 0 0 0 1px #22e6aa0f,0 0 16px #22e6aa0f}.action-btn:hover{color:#e8fff6;border-color:#22e6aad1;background:#22e6aa3d;box-shadow:0 0 18px #22e6aa24}.action-btn:disabled{opacity:.55;box-shadow:none}.danger-btn{color:#ff8e96;border-color:#ff5c6657;background:#ff5c661f}.has-dot:after{content:"";position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--red)}.workspace{height:calc(100vh - 82px);overflow:hidden;padding:2px 14px 14px}.page{display:none;height:100%;min-height:0}.panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:#101720d6;box-shadow:inset 0 0 34px #00000029}.panel.green{border-color:#22e6aa57;background:linear-gradient(145deg,#22e6aa1a,#101720e6)}.panel.blue{border-color:#3e91ff57;background:linear-gradient(145deg,#3e91ff1f,#101720e6)}.panel.cyan{border-color:#00d8ff52;background:linear-gradient(145deg,#00d8ff1a,#101720e6)}.panel.amber{border-color:#ffb00057;background:linear-gradient(145deg,#ffb0001a,#101720e6)}.panel.purple{border-color:#a96cff57;background:linear-gradient(145deg,#a96cff1a,#101720e6)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-title{color:#5c7596;font-size:16px;font-weight:500}.subtle{color:#607899}.mono{font-family:Consolas,Roboto Mono,monospace}.dashboard{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 460px;grid-template-rows:104px minmax(0,1fr) 292px;gap:14px}.flow{grid-column:1 / -1;display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr;gap:8px}.flow-arrow{display:grid;place-items:center;color:var(--green);font-size:14px;opacity:.78}.kpi{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:12px;padding:14px 20px}.kpi-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:var(--green);background:#ffffff08}.kpi-label{color:var(--muted);font-size:16px}.kpi-value{margin-top:3px;font:800 22px Consolas,monospace;color:var(--green)}.kpi-value.blue{color:#3aa0ff}.kpi-value.cyan{color:var(--cyan)}.kpi-value.amber{color:var(--amber)}.kpi-value.purple{color:var(--purple)}.kpi-sub{margin-top:3px;color:#354d6b;font-size:15px}.overview-left{grid-row:2;min-height:0;padding:16px;overflow:hidden}.overview-left.overview-trends{padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px}.overview-trends>.overview-trend-panel{min-height:0;padding:14px 16px;grid-column:auto;grid-row:auto}.overview-trend-panel .section-head{margin-bottom:6px}.overview-trend-panel .chart-wrap{height:calc(100% - 30px);min-height:120px}.trend-total{font:700 13px Consolas,monospace}.trend-total.blue{color:var(--blue)}.trend-total.green{color:var(--green)}.trend-total.cyan{color:var(--cyan)}.trend-chart-wrap{position:relative}.trend-tooltip{position:absolute;z-index:5;pointer-events:none;padding:6px 9px;border:1px solid rgba(62,145,255,.45);border-radius:4px;color:#eef7ff;background:#142337;box-shadow:0 6px 16px #00000059;font:11px Consolas,Microsoft YaHei,monospace;white-space:nowrap}.production-efficiency-panel{min-height:0;padding:8px 10px;overflow:hidden}.efficiency-title{height:20px;display:grid;place-items:center;margin:-2px auto 3px;border-bottom:1px solid rgba(62,145,255,.45);color:#ffd400;font-size:14px;font-weight:800}.efficiency-grid{height:calc(100% - 21px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:2px 8px}.efficiency-item{min-width:0;display:grid;grid-template-rows:minmax(82px,1fr) auto auto;gap:4px;justify-items:center;align-items:center;color:#d9e9fb}.efficiency-item>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2}.efficiency-gauge{width:min(82px,88%);aspect-ratio:1;position:relative;display:grid;place-items:center;border-radius:50%;background:conic-gradient(from 225deg,var(--gauge-color) 0 72%,rgba(75,101,134,.2) 72% 75%,transparent 75%);box-shadow:inset 0 0 0 1px #58a9ff4d}.efficiency-gauge:before{content:"";position:absolute;inset:11px;border-radius:50%;background:#0d1622;box-shadow:inset 0 0 18px #0000008c}.efficiency-value{padding:2px 7px;border:1px solid rgba(62,145,255,.38);border-radius:3px;color:#f2f8ff;background:#102038;font:700 12px Consolas,monospace;white-space:nowrap}.efficiency-value small{margin-left:3px;color:#7890ad;font-size:9px}.gauge-needle{position:absolute;z-index:2;left:50%;top:50%;width:34%;height:2px;transform-origin:left center;transform:rotate(var(--needle-angle));background:#fff;box-shadow:0 0 5px var(--gauge-color)}.gauge-needle:after{content:"";position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--gauge-color)}.gauge-tick{position:absolute;z-index:2;color:#ffd400;font:7px Consolas,monospace}.tick-left{left:4px;bottom:13px}.tick-top{top:4px;left:50%;transform:translate(-50%)}.tick-right{right:3px;bottom:13px}.mini-stats{display:flex;gap:18px;color:#4e6d92;font-size:14px}.mini-stats b{color:var(--cyan);margin-left:4px;font-family:Consolas,monospace}.device-grid{height:calc(100% - 38px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px}.device-card{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:7px;padding:12px 12px 11px;border:1px solid rgba(34,230,170,.26);border-radius:8px;background:linear-gradient(145deg,#13252bcc,#0b1119eb)}.device-card.warn{border-color:#ffb00061;background:linear-gradient(145deg,#342610a8,#0b1119eb)}.device-name{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px;font-weight:800;text-shadow:0 0 1px rgba(255,255,255,.18)}.dot{width:12px;height:12px;border-radius:50%;background:var(--green);color:var(--green);box-shadow:0 0 14px currentColor}.dot.idle{background:var(--amber);color:var(--amber)}.device-spec{color:#4e6686;font:14px Consolas,monospace}.device-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end;align-self:end;font-family:Consolas,monospace}.device-values span:nth-child(1){color:#49a3ff}.device-values span:nth-child(2){color:#ffd400}.device-values span:nth-child(3){color:var(--green)}.unit{color:#496281;font-size:12px;margin-left:1px}.bar,.progress-line{height:6px;border-radius:999px;background:#fff1;overflow:hidden}.bar i,.progress-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22e6aab8,#22e6aaf2)}.work-order{display:flex;align-items:center;gap:8px;color:#4b6586;font-size:13px;min-width:0;white-space:nowrap;overflow:hidden}.work-order code{color:var(--cyan);text-decoration:none;border-bottom:0}.work-order span{overflow:hidden;text-overflow:ellipsis}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:21px;padding:0 7px;border-radius:4px;border:1px solid rgba(255,255,255,.08);font-size:12px;white-space:nowrap}.badge.green{color:var(--green);background:#22e6aa21;border-color:#22e6aa40}.badge.blue{color:#58a9ff;background:#3e91ff21;border-color:#3e91ff40}.badge.amber{color:var(--amber);background:#ffb0001f;border-color:#ffb00040}.badge.red{color:#ff7b83;background:#ff5c661f;border-color:#ff5c6642}.right-col{grid-column:2;grid-row:2 / 4;min-height:0;display:grid;grid-template-rows:220px minmax(180px,1fr) minmax(160px,.9fr);gap:14px}.params{padding:16px}.select,.input{min-height:34px;border:1px solid var(--line);border-radius:5px;color:#c4d2e3;background:#ffffff0a;padding:0 10px}.input{cursor:text}.params-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.param{min-height:82px;display:grid;align-content:center;justify-items:center;gap:3px;border-radius:5px;background:#ffffff09}.param span{color:#7288a7;font-size:14px}.param b{color:var(--green);font:800 22px Consolas,monospace}.param b.blue{color:#4b9cff}.param b.amber{color:var(--amber)}.param b.purple{color:var(--purple)}.param b.pink{color:var(--pink)}.param b.cyan{color:var(--cyan)}.alerts{min-height:0;padding:16px;overflow:hidden}.alerts-list{height:calc(100% - 30px);overflow:auto;padding-right:4px}.alert-title-group{color:var(--red);font-weight:700;margin:6px 0 8px}.alert-title-group.amber{color:#ffd400}.alert-title-group.blue{color:#58a9ff}.alert{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;min-height:60px;margin-bottom:6px;padding:8px 10px;border:1px solid rgba(255,92,102,.28);border-radius:5px;background:#41121d6b}.alert.amber{border-color:#ffb00040;background:#35270e59}.alert.blue{border-color:#3e91ff3d;background:#12244152}.alert-mark{width:22px;height:22px;display:grid;place-items:center;border-radius:5px;font-size:12px;color:#fff;background:#ffffff14}.alert strong{display:block;font-size:14px}.alert small{display:block;margin-top:4px;color:#667c9a;font-size:13px}.overview-maintenance{min-height:0;padding:16px;overflow:hidden}.overview-maintenance-list{height:calc(100% - 30px);display:grid;gap:7px;align-content:start;overflow:auto;padding-right:4px}.overview-maintenance-item{min-width:0;padding:9px 10px;border:1px solid rgba(255,176,0,.2);border-radius:5px;background:#372a1147}.maintenance-task-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.maintenance-task-head strong{color:var(--amber);font:700 13px Consolas,monospace}.maintenance-task-title{margin-top:5px;overflow:hidden;color:#d7e4f3;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.maintenance-task-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:5px;color:#69809d;font-size:12px}.overview-empty{height:calc(100% - 30px);display:grid;place-items:center;color:#526a88;font-size:13px}.chart-panel{grid-column:1;grid-row:3;min-height:0;padding:16px}.chart-wrap{height:calc(100% - 38px);min-height:210px}canvas{width:100%;height:100%;display:block}.module{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.module-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px}.module-title h1{margin:0;font-size:20px}.module-title p{margin:4px 0 0;color:#607899;font-size:14px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.split{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:14px}.split>*,.stack>*,.side-stack>*,.dual-config>*{min-width:0}.stack{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-card{min-height:86px;padding:14px}.mini-card span{color:#68809e;font-size:14px}.mini-card b{display:block;margin-top:6px;color:var(--cyan);font:800 24px Consolas,monospace}.table-panel{min-height:0;overflow:hidden}.table-wrap{height:100%;overflow:auto}table{width:100%;min-width:860px;border-collapse:collapse}th,td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.055);text-align:left;font-size:13px}th{position:sticky;top:0;z-index:1;color:#6680a2;background:#111923;font-weight:600}td{color:#c4d2e3}tr:hover td{background:#3e91ff0b}.side-stack{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px}.list-panel{min-height:0;overflow:auto;padding:14px}.timeline{display:grid;gap:9px}.rank-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:11px 10px;border-bottom:1px solid rgba(255,255,255,.055)}.rank-no{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:#101720;background:var(--green);font-weight:800}.rank-row:nth-child(n+4) .rank-no{color:#9db3ca;background:#ffffff14}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.info-card{min-height:148px;padding:14px}.info-card h3{margin:0 0 10px;font-size:16px}.info-card p{margin:0;color:#6d849f;line-height:1.7;font-size:13px}.trace-card{padding:14px;display:grid;gap:10px}.trace-card h3{margin:0}.trace-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.trace-metric{padding:12px;border-radius:5px;background:#ffffff09}.trace-metric span{color:#7189a8;font-size:13px}.trace-metric b{display:block;margin-top:4px;color:var(--cyan);font:800 20px Consolas,monospace}.device-workbench{height:100%;min-height:0;display:grid;grid-template-rows:38px 80px minmax(0,1fr);gap:10px}.device-tabs{display:flex;align-items:center;gap:8px}.device-tab{height:34px;min-width:108px;border:1px solid var(--line);border-radius:6px;color:#7f98b9;background:#ffffff08}.device-tab.active{color:#58a9ff;border-color:#3e91ff61;background:#3e91ff24}.device-kpis{display:grid;grid-template-columns:repeat(5,1fr) 126px;gap:10px}.device-kpi{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:12px 16px}.device-kpi .kpi-icon{width:26px;height:26px;font-size:14px}.device-kpi span{color:#5f7899;font-size:15px}.device-kpi b{display:block;margin-top:3px;color:#fff;font:800 22px Consolas,monospace}.device-main{min-height:0;display:grid;grid-template-columns:620px minmax(0,1fr) 462px;gap:14px}.device-list-panel{min-height:0;padding:16px;overflow:hidden;display:grid;grid-template-rows:42px minmax(0,1fr);gap:10px}.device-search{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:#ffffff09;color:#4f6684}.device-search input{width:100%;height:100%;border:0;outline:0;color:#bcd0e7;background:transparent}.device-list{min-height:0;overflow:auto;display:grid;gap:6px;padding-right:2px}.device-row{min-height:96px;display:grid;grid-template-columns:68px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border:1px solid rgba(255,255,255,.05);border-radius:5px;background:#ffffff07}.device-row.active{border-color:#3e91ff52;background:#3e91ff17}.device-code{width:66px;min-height:40px;padding:4px;display:grid;place-items:center;overflow-wrap:anywhere;text-align:center;border:1px solid rgba(62,145,255,.35);border-radius:4px;color:#58a9ff;background:#3e91ff21;font:11px/1.25 Consolas,monospace}.device-row h3{margin:0;font-size:16px}.device-row p{margin:7px 0 0;color:#48617f;font-size:13px}.device-row strong{display:block;color:#4d6788;font:16px Consolas,monospace;text-align:right}.device-row small{display:block;margin-top:6px;color:#4d6788;font-size:14px;text-align:right}.device-center{min-height:0;display:grid;grid-template-rows:452px minmax(0,1fr);gap:14px}.device-detail{padding:16px}.device-detail-head{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;margin-bottom:14px}.device-detail h2{margin:0;font-size:23px}.device-detail .subline{margin-top:5px;color:#4f6684;font-size:14px}.device-detail .cyan-line{margin-top:8px;color:var(--cyan);font-weight:700}.empty-device-detail{display:grid;align-content:center}.empty-device-detail .device-detail-head{align-items:center;margin-bottom:0}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.detail-stat{min-height:80px;display:grid;place-items:center;gap:4px;border-radius:5px;background:#ffffff09}.detail-stat i{color:var(--green);font-style:normal}.detail-stat b{color:#fff;font:800 16px Consolas,monospace}.detail-stat span{color:#3f5774}.process-title{color:#526b8b;margin:8px 0;font-size:18px}.device-actions{display:flex;gap:14px;margin-top:10px}.control-btn{min-width:92px;height:40px;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#607899;background:#ffffff09}.control-btn.active{color:#58a9ff;border-color:#3e91ff59;background:#3e91ff1f}.camera-panel{padding:16px;overflow:hidden}.camera-tabs{display:flex;gap:10px;margin-bottom:10px}.camera-tab{min-width:42px;height:40px;border:0;border-radius:5px;color:#4f6684;background:#ffffff09}.camera-tab.active{color:#ff8e96;border:1px solid rgba(255,92,102,.4);background:#ff5c6629}.camera-view{height:calc(100% - 72px);min-height:260px;position:relative;overflow:hidden;border-radius:5px;background:radial-gradient(circle at 52% 52%,#07111b 0 8%,#d5dde0 8.5% 10%,#526271 10.5% 13%,transparent 13.5%),repeating-radial-gradient(circle at 52% 52%,#e1ebf06b 0 5px,#28374442 6px 13px,#08111c59 14px 21px),conic-gradient(from 20deg at 52% 52%,#101923,#74838c,#152330,#b7c2c6,#1b2b36,#596c78,#111923)}.camera-view:before,.camera-view:after{content:"";position:absolute;left:50%;top:50%;width:66%;height:10px;background:#e1f5ffc2;filter:blur(2px);transform-origin:left center}.camera-view:before{transform:rotate(34deg);box-shadow:0 0 24px #d2f5ff99}.camera-view:after{transform:rotate(-146deg);opacity:.62}.camera-rec{position:absolute;left:16px;top:14px;color:#ff6f75;font-family:Consolas,monospace}.camera-time{position:absolute;right:14px;top:14px;color:#7b8faa;font-family:Consolas,monospace}.device-side{min-height:0;display:grid;grid-template-rows:452px minmax(0,1fr);gap:14px}.alarm-panel,.maintenance-panel{padding:16px;overflow:hidden}.alarm-list,.maintenance-list{height:calc(100% - 30px);overflow:auto;display:grid;gap:6px}.alarm-row{display:grid;grid-template-columns:74px 1fr;gap:10px;min-height:84px;padding:8px;border-left:2px solid rgba(255,176,0,.8);border-radius:4px;background:#ffffff06}.alarm-level{display:grid;place-items:center;border-radius:5px;color:#ffd400;background:#ffb0001f;font-weight:800}.alarm-level.info{color:#58a9ff;background:#3e91ff1f}.alarm-row p{margin:0 0 8px;color:#506987;font-size:14px;line-height:1.45}.alarm-actions{display:flex;gap:8px}.alarm-empty{min-height:120px;display:grid;place-items:center;color:#6f86a3;font-size:13px}.alarm-meta{display:block;margin:-3px 0 8px;color:#6f86a3;font-size:12px}.alarm-actions button:disabled{opacity:.55;cursor:not-allowed}.maintenance-row{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:start;padding:8px;border-radius:4px;background:#ffffff06}.maintenance-row p{margin:0;color:#7d93ad}.maintenance-row small{color:#455d7b}.manage-page{height:100%;min-height:0;display:grid;grid-template-rows:38px minmax(0,1fr);gap:10px}.manage-split{min-height:0;display:grid;grid-template-columns:minmax(0,1.2fr) 430px;gap:14px}.manage-panel{min-height:0;padding:16px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.manage-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:8px;padding-right:3px}.task-card{display:grid;grid-template-columns:110px 1fr 180px;gap:12px;align-items:center;min-height:86px;padding:12px;border:1px solid rgba(255,255,255,.06);border-radius:6px;background:#ffffff07}.task-card h3{margin:0 0 6px;font-size:17px}.task-card p{margin:0;color:#6480a0;font-size:13px}.task-no{color:var(--cyan);font:700 16px Consolas,monospace}.task-actions{display:flex;justify-content:flex-end;gap:8px}.manage-form{padding:16px;display:grid;gap:12px;align-content:start}.manage-form h3{margin:0;font-size:18px}.manage-form label{display:grid;gap:6px;color:#778da9;font-size:13px}.manage-form input,.manage-form select,.manage-form textarea{min-height:36px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:8px 10px}.dual-config{min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}.config-row{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:5px;background:#ffffff07;border:1px solid rgba(255,255,255,.05)}.config-row h3{margin:0 0 4px;font-size:16px}.config-row p{margin:0;color:#5f7899;font-size:13px}.config-no{color:var(--cyan);font:700 15px Consolas,monospace}.config-row .device-ip{margin-top:4px;color:#4f8cff;font-family:Consolas,monospace}.config-actions{display:flex;justify-content:flex-end;gap:7px}.config-actions .ghost-btn,.config-actions .danger-btn{min-height:30px;padding:0 9px}.device-config-modal{width:min(650px,100%)}.device-config-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.device-config-form label{display:grid;gap:7px;color:#778da9;font-size:12px}.device-config-form input,.device-config-form select{min-height:38px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:8px 10px}.device-config-form .modal-actions{grid-column:1 / -1}.alarm-settings{height:100%;min-height:0;display:grid;grid-template-rows:38px auto minmax(0,1fr);gap:10px}.alarm-settings-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:12px}.alarm-rule-form{padding:12px;display:grid;grid-template-columns:1fr 1fr .8fr .8fr .8fr .8fr auto;gap:8px;align-items:end}.alarm-rule-form label{display:grid;gap:6px;color:#778da9;font-size:12px}.alarm-rule-form input,.alarm-rule-form select{min-height:34px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:0 10px}.alarm-settings-panel{min-height:0;padding:14px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.alarm-rule-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:6px}.alarm-rule-row{display:grid;grid-template-columns:1fr 1fr .75fr .8fr .85fr .85fr .55fr auto;gap:10px;align-items:center;min-height:52px;padding:8px 10px;border-radius:5px;background:#ffffff07;border:1px solid rgba(255,255,255,.05)}.alarm-rule-row.header{min-height:36px;color:#6680a2;background:#3e91ff0b;border-color:transparent}.alarm-rule-row strong{color:#eff7ff}.alarm-threshold{min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:#ffffff09;font-family:Consolas,monospace}.level-pill{min-height:30px;display:inline-flex;align-items:center;padding:0 12px;border-radius:5px;font-weight:700}.level-pill.提示{color:#58a9ff;background:#3e91ff21}.level-pill.警告{color:#ffd400;background:#ffb00024}.level-pill.严重{color:#ff7b83;background:#ff5c6624}.alarm-rule-row .dot{display:inline-block;width:7px;height:7px;justify-self:start}.alarm-form-panel{min-height:0;padding:14px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.alarm-form-fields{display:grid;gap:10px;align-content:start}.alarm-form-fields label{display:grid;gap:6px;color:#778da9;font-size:12px}.alarm-form-fields input,.alarm-form-fields select{min-height:36px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:0 10px}.alarm-checks{display:flex;flex-wrap:wrap;gap:8px}.alarm-check{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:#ffffff08}.production-shell{height:100%;min-height:0;display:block}.production-top{display:flex;align-items:center;min-height:42px}.production-toolbar{padding:0}.production-kpis{display:none}.production-action-col{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.production-action-col .primary-btn{height:38px;width:auto;min-width:132px}.production-main-grid{height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,2fr) minmax(340px,.72fr);gap:12px}.production-order-panel{padding:14px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.production-card-grid{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:10px;padding-right:4px}.production-card{min-height:142px;padding:14px;background:#ffffff07;display:grid;grid-template-rows:auto 1fr auto;gap:8px}.production-card-title{color:#cfe5ff;font-size:17px;font-weight:700;line-height:1.35}.production-card-weight{color:#fff;font:800 20px Consolas,monospace}.production-empty{grid-column:1 / -1;min-height:150px;display:grid;place-items:center;color:#5f7899;border:1px dashed rgba(255,255,255,.12);border-radius:6px}.production-card-progress{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:5px;color:#607899;font-size:11px}.production-card-progress b{margin-left:3px;color:#8fb5df;font:700 11px Consolas,monospace}.realtime-process-shell{min-height:0;padding:14px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;background:#09121fd1}.realtime-process-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:2px}.realtime-process-subtitle{margin:5px 0 0;font-size:12px}.realtime-process-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.realtime-layout-toggle{display:inline-flex;padding:2px;border:1px solid rgba(112,153,202,.22);border-radius:5px;background:#ffffff09}.realtime-layout-toggle button{min-height:26px;padding:0 9px;border:0;border-radius:3px;color:#7892af;background:transparent;font-size:11px;cursor:pointer}.realtime-layout-toggle button.active{color:#e7f3ff;background:#3e91ff47}.realtime-process-status{min-height:30px;display:inline-flex;align-items:center;gap:8px;padding:0 10px;border:1px solid rgba(34,230,170,.2);border-radius:5px;color:#8bb6ad;background:#22e6aa0e;font-size:11px;white-space:nowrap}.realtime-process-status.error{color:#ffb2b7;border-color:#ff5c664d;background:#ff5c6614}.realtime-status-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #22e6aa1f}.realtime-status-dot.loading{background:var(--amber);box-shadow:0 0 0 3px #ffb0001f;animation:realtime-pulse 1.2s ease-in-out infinite}.realtime-status-dot.error{background:#ff5c66;box-shadow:0 0 0 3px #ff5c661f}@keyframes realtime-pulse{50%{opacity:.35;transform:scale(.7)}}.realtime-line-grid{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(330px,1fr));gap:12px;align-items:stretch}.realtime-line{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:10px;border:1px solid rgba(112,153,202,.2);border-radius:6px;background:#ffffff06}.realtime-line-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:2px 2px 8px;border-bottom:1px solid rgba(112,153,202,.14)}.realtime-line-head>div{min-width:0;display:grid;gap:3px}.realtime-line-head strong{color:#eaf4ff;font-size:16px}.realtime-line-head span:not(.badge){color:#6d86a3;font-size:11px}.realtime-stage-grid{min-height:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:8px}.realtime-stage{min-height:0;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:6px;padding:9px 10px;border:1px solid rgba(112,153,202,.14);border-left:3px solid var(--stage-color, var(--blue));border-radius:5px;background:#040c1785}.realtime-stage.stage-blue{--stage-color: var(--blue)}.realtime-stage.stage-amber{--stage-color: var(--amber)}.realtime-stage.stage-cyan{--stage-color: var(--cyan)}.realtime-stage.stage-purple{--stage-color: var(--purple)}.realtime-stage-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.realtime-stage-head>div{min-width:0;display:flex;align-items:baseline;gap:7px}.realtime-stage-head b{color:#e4f0ff;font-size:13px}.realtime-stage-head small{overflow:hidden;color:#6884a5;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.realtime-stage-head>span{min-width:23px;height:21px;display:inline-grid;place-items:center;border-radius:4px;color:var(--stage-color);background:color-mix(in srgb,var(--stage-color) 13%,transparent);font:700 11px Consolas,monospace}.realtime-record-columns,.realtime-record{display:grid;grid-template-columns:minmax(65px,.9fr) minmax(58px,.8fr) minmax(65px,1fr) minmax(40px,.55fr);gap:7px;align-items:center}.realtime-horizontal-stage .realtime-record-columns,.realtime-horizontal-stage .realtime-record{grid-template-columns:minmax(48px,1fr) minmax(50px,.9fr) minmax(44px,.78fr) minmax(28px,.48fr);gap:4px}.realtime-record-columns{color:#5f7899;font-size:10px}.realtime-record-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:3px;padding-right:3px}.realtime-record{min-height:25px;padding:2px 5px;color:#b8cce3;font-size:10px;border:1px solid color-mix(in srgb,var(--stage-color, var(--blue)) 16%,transparent);border-radius:3px;background:color-mix(in srgb,var(--stage-color, var(--blue)) 7%,transparent);transition:background .15s ease,border-color .15s ease}.realtime-record:nth-child(2n){background:color-mix(in srgb,var(--stage-color, var(--blue)) 12%,transparent)}.realtime-record:hover{border-color:color-mix(in srgb,var(--stage-color, var(--blue)) 42%,transparent);background:color-mix(in srgb,var(--stage-color, var(--blue)) 19%,transparent)}.realtime-record>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.realtime-record>span:first-child{color:#dff0ff}.realtime-empty{min-height:30px;display:grid;place-items:center;color:#5e7797;border:1px dashed rgba(112,153,202,.15);border-radius:4px;font-size:10px}.realtime-horizontal-board{height:100%;min-height:0;overflow:auto;display:grid;grid-template-rows:auto repeat(var(--line-count),minmax(0,1fr));gap:6px;padding-right:3px}.realtime-horizontal-grid{min-width:1120px;display:grid;grid-template-columns:150px repeat(4,minmax(230px,1fr));gap:8px}.realtime-horizontal-header{position:sticky;top:0;z-index:2;padding:0 8px 5px;color:#9fc4eb;font-size:14px;font-weight:600}.realtime-horizontal-header>div:not(:first-child){padding-left:10px}.realtime-horizontal-row{min-height:0;align-items:stretch}.realtime-horizontal-device{min-height:0;display:grid;align-content:start;gap:5px;padding:12px 10px;border:1px solid rgba(112,153,202,.2);border-radius:6px;background:#ffffff06}.realtime-horizontal-device strong{color:#eaf4ff;font-size:15px;font-weight:400;line-height:1.35}.realtime-horizontal-device span{color:#6d86a3;font-size:11px}.realtime-horizontal-stage{min-height:0}.production-insights{min-height:0;display:grid;grid-template-rows:1.08fr 1fr 1fr;gap:12px}.production-insight-panel{min-height:0;padding:12px 14px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.production-insight-chart{min-height:0;height:100%}.production-cloth-breakdown{min-height:0;height:100%;grid-template-columns:minmax(86px,.86fr) minmax(120px,1.14fr);gap:10px}.production-cloth-breakdown .production-donut{width:min(112px,96%)}.washer-batch-panel{grid-template-rows:auto minmax(0,1fr)}.washer-batch-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:7px}.washer-batch-row{min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:1px solid rgba(112,153,202,.14);border-radius:5px;background:#ffffff07}.washer-batch-name{min-width:0;display:grid;gap:2px}.washer-batch-name strong{overflow:hidden;color:#dcecff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.washer-batch-name small{color:#607899;font-size:10px}.washer-batch-values{flex:0 0 auto;display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:4px;text-align:right}.washer-batch-values b{color:#f2f8ff;font:800 18px Consolas,monospace}.washer-batch-values span{color:#7893b2;font-size:10px}.washer-batch-values small{grid-column:1 / -1;color:#6f89a9;font-size:10px}.production-charts{min-height:0;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:12px}.production-donut{width:min(150px,50%);aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 18px #121b28;position:relative}.production-donut:after{content:"";position:absolute;inset:35%;border-radius:50%;background:#121b28}.cloth-type-breakdown{display:grid;grid-template-columns:minmax(82px,.9fr) minmax(120px,1.1fr);place-items:center;gap:14px}.cloth-type-breakdown .production-donut{width:min(118px,92%)}.cloth-type-legend{width:100%;display:grid;gap:7px}.cloth-type-legend>div{min-width:0;display:grid;grid-template-columns:9px minmax(38px,1fr) 48px;align-items:center;gap:7px;color:#b9cce2;font-size:12px}.cloth-type-legend i{width:8px;height:8px;border-radius:2px}.cloth-type-legend b{color:#eef7ff;text-align:right;font:700 11px Consolas,monospace}.production-ring-wrap{height:100%;min-height:0;display:grid;grid-template-columns:minmax(118px,.78fr) minmax(0,1fr);align-items:center;gap:12px}.production-ring{width:min(124px,100%);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 15px #121b28;position:relative}.production-ring:after{content:"";position:absolute;inset:28%;border-radius:50%;background:#121b28}.production-ring strong{position:relative;z-index:1}.analysis-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.analysis-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.analysis-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);gap:14px}.analysis-left,.analysis-right{min-height:0;display:grid;gap:14px}.analysis-left{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.analysis-right{grid-template-rows:minmax(0,1fr)}.production-charts>.chart-panel,.analysis-left>.chart-panel,.analysis-right>.chart-panel{grid-column:auto;grid-row:auto;overflow:hidden}.shift-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.shift-stat-grid .info-card{min-height:82px;padding:10px}.analysis-donut-wrap{height:calc(100% - 30px);min-height:190px;display:grid;place-items:center}.analysis-cloth-breakdown{grid-template-columns:minmax(80px,.8fr) minmax(130px,1.2fr)}.analysis-cloth-breakdown .production-donut{width:min(104px,86%)}.top10-row{display:grid;grid-template-columns:24px 1fr 34px 70px;align-items:center;gap:8px;min-height:20px;color:#cfe5ff;font-size:12px}.top10-bar{height:5px;border-radius:999px;background:#4f8cff2e;overflow:hidden}.top10-bar i{display:block;height:100%;border-radius:inherit;background:#58a9ff}.toast{position:fixed;right:20px;bottom:20px;z-index:80;display:grid;gap:8px}.toast div{min-width:260px;padding:12px 14px;border:1px solid rgba(34,230,170,.35);border-radius:8px;color:var(--green);background:#0c121cf5;box-shadow:0 14px 48px #0000006b}.login-success-notice{position:fixed;z-index:120;top:18px;left:50%;transform:translate(-50%);min-width:300px;max-width:calc(100vw - 32px);min-height:48px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(34,230,170,.5);border-radius:6px;color:#dfffee;background:#071c18f7;box-shadow:0 14px 42px #00000075;font-size:13px}.login-success-notice svg{flex:0 0 auto;color:var(--green)}.login-notice-enter-active,.login-notice-leave-active{transition:opacity .2s ease,transform .2s ease}.login-notice-enter-from,.login-notice-leave-to{opacity:0;transform:translate(-50%,-10px)}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:#0000009e}.modal-backdrop[hidden]{display:none}.modal{width:min(620px,100%);border:1px solid var(--line);border-radius:8px;background:#0c121c;box-shadow:0 24px 90px #00000075}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.form-grid label{display:grid;gap:6px;color:#778da9;font-size:13px}.form-grid input,.form-grid select,.form-grid textarea{min-height:36px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:8px 10px}.span-2{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#5b749459;border-radius:999px}html[data-lang=en] .section-title{font-size:16px;line-height:1.18}html[data-lang=en] .params .section-title{font-size:15px;max-width:180px}html[data-lang=en] .param span{font-size:12px;line-height:1.15}html[data-lang=en] .alert strong{font-size:13px}html[data-lang=en] .alert small{font-size:12px}@media(max-width:1280px){body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-rows:auto 1fr}.topbar{grid-template-columns:1fr}.nav{justify-content:start;overflow-x:auto}.top-actions{justify-self:start}.workspace{height:auto;min-height:calc(100vh - 140px);overflow:visible}.dashboard,.split{grid-template-columns:1fr;grid-template-rows:auto;overflow:visible}.flow,.overview-left,.right-col,.chart-panel{grid-column:auto;grid-row:auto}.right-col{grid-template-rows:auto}.production-shell,.analysis-shell,.production-main-grid,.analysis-grid{height:auto;grid-template-columns:1fr}.production-main-grid{height:auto}.production-top{grid-template-columns:1fr}.production-kpis,.analysis-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.production-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:720px}.production-charts,.analysis-left,.analysis-right{grid-template-rows:auto}.employee-management{height:auto}.employee-summary,.employee-grid{grid-template-columns:1fr}.realtime-process-shell{overflow:visible}.realtime-process-head{align-items:flex-start;flex-direction:column;gap:8px}.realtime-process-status{white-space:normal}.realtime-line-grid{grid-template-columns:1fr;overflow:visible}.realtime-line{min-height:560px}.realtime-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(250px,1fr))}}@media(max-width:720px){.realtime-process-shell{padding:10px}.realtime-line{min-height:0}.realtime-stage-grid{grid-template-rows:none;grid-template-columns:1fr}.realtime-stage{min-height:190px}.realtime-record-columns,.realtime-record{grid-template-columns:minmax(58px,.9fr) minmax(54px,.8fr) minmax(58px,1fr) minmax(36px,.55fr);gap:5px}}@media(max-height:1040px)and (min-width:1281px){.dashboard{grid-template-rows:104px minmax(0,1fr) 260px;gap:10px}.flow{gap:8px}.overview-left{padding:14px 16px}.device-grid{height:calc(100% - 34px);gap:8px}.device-card{padding:10px 12px;gap:5px}.chart-panel{padding:14px 16px}.chart-wrap{min-height:190px}.right-col{grid-template-rows:210px minmax(170px,1fr) minmax(150px,.9fr);gap:10px}.params{padding:14px 16px}.param{min-height:74px}.alerts{padding:14px 16px}}@media(max-width:1600px)and (min-width:1281px){.topbar{grid-template-columns:430px minmax(560px,1fr) 260px;gap:8px}.brand-logo{width:54px;height:52px}.brand-mark{width:136px;height:56px}.brand>div:not(.brand-logo) strong{font-size:17px}.brand>div:not(.brand-logo) span{font-size:12px}.nav{gap:5px}.nav button{height:36px;padding:0 8px;font-size:14px}.nav small{width:15px;font-size:13px}.top-actions{gap:6px}.clock{min-width:88px;max-width:96px;font-size:12px}.icon-btn{min-width:34px;height:34px}#langBtn{min-width:38px;height:32px;font-size:13px}.workspace{padding:2px 10px 10px}.dashboard{grid-template-columns:minmax(0,1fr) minmax(330px,360px);gap:10px}.flow{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr);gap:5px;min-width:0}.flow-arrow{font-size:13px}.kpi{min-width:0;grid-template-columns:30px 1fr;gap:8px;padding:12px 14px}.kpi-icon{width:30px;height:30px}.kpi-label{font-size:15px}.kpi-value{font-size:21px}.kpi-sub{font-size:14px}.right-col{grid-template-rows:210px minmax(170px,1fr) minmax(150px,.9fr)}.params-grid{gap:8px}.param{min-height:70px}.param span{font-size:14px}.param b{font-size:20px}.alert{grid-template-columns:24px 1fr auto;gap:6px;padding:7px 8px}.alert .danger-btn,.alert .ghost-btn{padding:0 8px;font-size:13px}.module{gap:10px}.module-title h1{font-size:20px}.module-title p{font-size:13px}.toolbar{gap:6px}.split{grid-template-columns:minmax(0,1fr) minmax(320px,.52fr);gap:10px}.stack{gap:10px}.strip{gap:8px}.mini-card{min-height:74px;padding:11px 12px}.mini-card b{font-size:21px}table{min-width:760px}.split>.table-panel table{min-width:460px}th,td{padding:10px 12px;font-size:13px}.list-panel{padding:12px}.timeline-item{grid-template-columns:56px 1fr auto;gap:8px;padding:8px}.rank-row{grid-template-columns:28px 1fr auto;gap:8px;padding:9px 8px}.rank-no{width:24px;height:24px}.cards{gap:8px}.info-card{min-height:120px;padding:12px}.info-card p{line-height:1.55;font-size:12px}.trace-card{padding:12px;gap:8px;overflow:auto}.trace-metric{padding:10px}.trace-metric b{font-size:18px}.device-main{grid-template-columns:minmax(390px,39%) minmax(400px,1fr) minmax(280px,24%);gap:10px}.device-kpis{grid-template-columns:repeat(5,minmax(0,1fr)) 112px;gap:8px}.device-kpi{padding:10px 12px}.device-kpi span{font-size:16px}.device-list-panel{padding:14px}.device-row{min-height:92px;padding:10px 12px}.device-detail,.camera-panel,.alarm-panel,.maintenance-panel{padding:14px}.detail-stats{gap:10px}.detail-stat{min-height:72px}.device-center,.device-side{grid-template-rows:minmax(380px,56%) minmax(0,1fr);gap:10px}.device-detail{overflow:auto}.camera-view{min-height:190px}.alarm-row{grid-template-columns:62px 1fr;min-height:76px;font-size:13px}.maintenance-row{grid-template-columns:62px 1fr auto;font-size:13px}.manage-split{grid-template-columns:minmax(0,1fr) 390px;gap:10px}.task-card{grid-template-columns:96px 1fr 160px;gap:10px;min-height:78px;padding:10px}.config-row{grid-template-columns:82px 1fr auto;gap:8px;padding:9px}.alarm-rule-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.alarm-rule-row{grid-template-columns:.9fr .9fr .6fr .65fr .7fr .7fr .45fr auto;gap:8px;font-size:13px}.alarm-settings-grid{grid-template-columns:minmax(0,1fr) 360px}.dual-config{gap:10px}.production-top{grid-template-columns:minmax(0,1fr) 118px;gap:10px}.production-kpis{gap:8px}.production-main-grid{grid-template-columns:minmax(0,1.85fr) minmax(300px,.68fr);gap:10px}.production-card-grid{gap:8px}.production-card{min-height:136px;padding:12px}.production-card-title{font-size:16px}.production-charts{gap:10px}.analysis-grid{grid-template-columns:minmax(0,1.28fr) minmax(360px,.72fr);gap:10px}.analysis-left,.analysis-right{gap:10px}.top10-row{grid-template-columns:22px 1fr 30px 58px;gap:6px}.employee-grid{grid-template-columns:minmax(0,1fr) 360px;gap:10px}.employee-summary{gap:8px}.employee-form-panel,.employee-table-panel{padding:12px}}@media(max-height:900px)and (min-width:1281px){.app{grid-template-rows:78px 1fr}.topbar{min-height:78px}.topbar{padding:8px 14px}.workspace{height:calc(100vh - 78px);padding-bottom:8px}.dashboard{grid-template-rows:90px minmax(0,1fr) 220px;gap:8px}.kpi{padding-block:9px}.kpi-label{font-size:14px}.kpi-value{font-size:20px}.kpi-sub{font-size:13px}.overview-left,.chart-panel,.params,.alerts,.overview-maintenance{padding:12px 14px}.section-head{margin-bottom:8px}.section-title{font-size:16px}.device-grid{height:calc(100% - 28px);gap:7px}.device-card{padding:8px 10px;gap:4px}.device-name{font-size:16px}.device-spec,.work-order{font-size:12px}.right-col{grid-template-rows:190px minmax(150px,1fr) minmax(140px,.9fr);gap:8px}.param{min-height:58px}.param span{font-size:13px}.param b{font-size:18px}.chart-wrap{min-height:150px}.device-workbench{grid-template-rows:34px 68px minmax(0,1fr);gap:8px}.device-tab{height:32px;min-width:100px}.device-kpi{min-height:68px;padding:8px 10px}.device-kpi span{font-size:14px}.device-kpi b{font-size:19px}.device-row{min-height:82px}.device-row h3{font-size:16px}.device-row p{font-size:13px;margin-top:5px}.device-row strong{font-size:16px}.device-row small{font-size:14px}.device-center,.device-side{grid-template-rows:minmax(390px,58%) minmax(0,1fr)}.device-detail h2{font-size:22px}.detail-stats{gap:8px;margin-bottom:10px}.detail-stat{min-height:58px}.process-title{font-size:16px;margin:6px 0}.device-detail .params-grid{gap:6px}.device-detail .param{min-height:50px}.device-actions{gap:8px;margin-top:8px}.control-btn{min-width:78px;height:34px}.camera-tabs{gap:6px;margin-bottom:8px}.camera-tab{min-width:38px;height:34px}.camera-view{height:calc(100% - 58px);min-height:140px}.alarm-list,.maintenance-list{height:calc(100% - 26px)}.module-head{gap:10px}.strip{gap:8px}.mini-card{min-height:64px;padding:9px 11px}.mini-card b{font-size:19px;margin-top:4px}th,td{padding:8px 10px}.timeline-item{min-height:58px}.manage-page{grid-template-rows:34px minmax(0,1fr);gap:8px}.manage-panel,.manage-form{padding:12px;gap:10px}.task-card{min-height:70px}.alarm-rule-form{padding:10px;gap:7px}.alarm-settings-panel{padding:12px}.alarm-rule-row{min-height:46px;padding:7px 8px}.alarm-settings-grid{grid-template-columns:minmax(0,1fr) 340px}.production-shell,.analysis-shell{gap:8px}.production-top{grid-template-columns:minmax(0,1fr) 112px;gap:8px}.production-action-col .primary-btn{height:36px;padding-inline:8px}.production-main-grid{gap:8px}.production-order-panel{padding:12px;gap:8px}.production-card-grid{gap:8px}.production-card{min-height:132px;padding:10px 12px;gap:6px}.production-card-title{font-size:15px}.production-card-weight{font-size:18px}.production-charts,.production-ring-wrap,.analysis-kpis,.analysis-grid,.analysis-left,.analysis-right{gap:8px}.analysis-right{grid-template-rows:auto minmax(135px,1fr)}.production-donut{width:min(118px,44%);box-shadow:inset 0 0 0 15px #121b28}.analysis-donut-wrap .production-donut{width:min(86px,38%)!important}.shift-stat-grid .info-card{min-height:86px}.analysis-donut-wrap{min-height:104px}.employee-management,.employee-summary{gap:8px}.employee-grid{grid-template-columns:minmax(0,1fr) 340px;gap:8px}.employee-form{gap:8px}.employee-form input,.employee-form select,.employee-form textarea{min-height:32px;padding:6px 8px}.employee-form textarea{min-height:58px}html[data-lang=en] .params .section-title{max-width:150px}html[data-lang=en] .param{min-height:52px}html[data-lang=en] .param b{font-size:17px}}@media(max-width:900px){.flow,.strip,.cards,.trace-metrics{grid-template-columns:1fr}.flow-arrow{display:none}.device-grid,.params-grid,.module-head{grid-template-columns:1fr}.toolbar{justify-content:start}.form-grid{grid-template-columns:1fr}.brand span{display:none}.production-top,.production-main-grid,.analysis-grid{grid-template-columns:1fr}.production-main-grid{height:auto}.production-kpis,.analysis-kpis,.production-card-grid,.shift-stat-grid,.employee-summary,.employee-grid{grid-template-columns:1fr}.overview-left.overview-trends{grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(260px,auto))}.customer-output-grid{grid-template-columns:1fr}}@media print{.topbar,.toolbar,.modal-backdrop,.toast{display:none!important}body{overflow:visible;background:#fff;color:#111}.workspace,.page,.app{height:auto;overflow:visible;background:#fff}.page:not(.active){display:none}.panel{background:#fff;color:#111;border-color:#ccc;box-shadow:none}}#app{min-height:100%}.page.active{display:block}.shell-body{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.production-main-grid .chart-panel,.production-charts>.chart-panel,.analysis-left>.chart-panel,.analysis-right>.chart-panel,.shell-body .chart-panel,.split .chart-panel{grid-column:auto;grid-row:auto}.ghost-btn.active{color:#58a9ff;border-color:#3e91ff59;background:#3e91ff1f}.manage-form.inline-form{padding:0;grid-template-columns:1fr 1fr 1fr auto;align-items:end}.alarm-settings{grid-template-rows:38px minmax(0,1fr)}.alarm-form-fields .alarm-check{display:inline-flex}.energy-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.energy-main-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(420px,.65fr);grid-template-rows:minmax(0,1.06fr) minmax(0,.94fr);gap:12px}.energy-analysis-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(470px,.65fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:12px}.energy-main-grid>.chart-panel,.energy-analysis-grid>.chart-panel{grid-column:auto;grid-row:auto;overflow:hidden}.energy-detail-table{min-height:0;overflow:hidden;padding:14px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.energy-metric{min-height:88px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto auto;align-items:center;column-gap:12px}.energy-metric i{grid-row:1 / -1;color:var(--green);font-style:normal;font-size:24px}.energy-metric span,.energy-metric b,.energy-metric p{grid-column:2}.energy-metric p{margin:2px 0 0;color:#435c79;font-size:13px}.energy-metric em{color:var(--green);font-style:normal}.energy-main-grid .rank-row .energy-device-code{color:#08140f;background:var(--green);box-shadow:0 0 12px #22e6aa2e}.compact-date{width:140px;min-height:34px;text-align:center}.analysis-title-row{display:flex;align-items:center;gap:10px}.analysis-title-row h1{margin:0}.energy-detail-table table{min-width:0;table-layout:fixed}.energy-detail-table th,.energy-detail-table td{padding:8px 6px;font-size:12px;text-align:right}.energy-detail-table th:first-child,.energy-detail-table td:first-child{text-align:left}.three-d-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.three-d-tab{width:100%;min-width:0;height:32px;font-size:14px;font-weight:500}.three-d-view{background:#07111b}.three-d-view:before,.three-d-view:after{display:none}.three-d-video{width:100%;height:100%;display:block;object-fit:contain;background:#050910}.video-empty{position:absolute;inset:0;display:grid;place-content:center;gap:8px;padding:22px;text-align:center;color:#7d93ad;background:linear-gradient(180deg,#07111beb,#050910f5)}.video-empty strong{color:#ff8e96;font-size:16px}.video-empty span{color:#7890ad;font-size:13px;line-height:1.6}.device-main .device-center{grid-template-rows:minmax(250px,36%) minmax(360px,1fr);gap:10px}.device-center .device-detail{padding:12px 14px;overflow:auto}.device-center .device-detail-head{margin-bottom:8px}.device-center .device-detail h2{font-size:20px}.device-center .device-detail .subline{margin-top:3px;font-size:13px}.device-center .device-detail .cyan-line{margin-top:5px;font-size:14px}.device-center .detail-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}.device-center .detail-stats.is-hanger{grid-template-columns:repeat(5,minmax(0,1fr))}.device-center .detail-stat{min-height:54px}.device-center .process-title{margin:5px 0;font-size:15px}.device-center .params-grid{gap:6px}.device-center .param{min-height:46px}.device-center .param span{font-size:12px}.device-center .param b{font-size:18px}.device-center .device-actions{gap:8px;margin-top:8px}.device-center .control-btn{height:32px;min-width:78px}.device-center .camera-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px;padding:12px 14px}.device-center .camera-panel .section-head{margin-bottom:0}.device-center .camera-tabs{margin-bottom:0;gap:7px}.device-center .three-d-view{height:100%;min-height:0}.employee-grid-full{grid-template-columns:1fr}.employee-modal{width:min(760px,100%)}.employee-modal-form{padding:16px}.employee-api-note{margin:-4px 0 8px;padding:8px 10px;border:1px solid rgba(255,176,0,.25);border-radius:5px;color:#fc6;background:#ffb00014;font-size:12px}.timeline-item{display:grid;grid-template-columns:74px 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:5px;background:#ffffff09}.timeline-time{color:#5f7899;font:13px Consolas,monospace}.timeline-name{font-weight:700}.timeline-sub{color:#69809d;font-size:13px;margin-top:2px}.employee-management{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.employee-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.employee-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:12px}.employee-grid.employee-grid-full{grid-template-columns:1fr}.employee-table-panel{min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px;gap:10px}.employee-form-panel{min-height:0;overflow:auto;padding:14px}.employee-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.employee-form label{display:grid;gap:6px;color:#778da9;font-size:12px}.employee-form input,.employee-form select,.employee-form textarea{min-height:36px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:8px 10px}.employee-form textarea{resize:vertical;min-height:78px}.employee-form .span-2,.employee-form .modal-actions{grid-column:1 / -1}.employee-actions{display:flex;gap:8px;justify-content:flex-end}.employee-actions .ghost-btn,.employee-actions .danger-btn{min-height:30px;padding:0 9px}.employee-efficiency-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.efficiency-period-switch{height:34px;display:grid;grid-template-columns:repeat(2,64px);padding:2px;border:1px solid var(--line);border-radius:5px;background:#ffffff06}.efficiency-period-switch button{border:0;border-radius:3px;color:#7188a6;background:transparent;font-size:12px}.efficiency-period-switch button.active{color:#eff8ff;background:#3e91ff38;box-shadow:inset 0 0 0 1px #3e91ff4d}.efficiency-date-input{width:150px;color-scheme:dark}.employee-efficiency-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.employee-efficiency-kpis .mini-card{min-height:86px}.employee-efficiency-kpis .mini-card small{display:block;margin-top:4px;color:#536b89;font-size:11px}.employee-efficiency-grid{min-height:0;display:grid;grid-template-columns:minmax(270px,.34fr) minmax(0,1fr);gap:12px}.employee-team-panel,.employee-ranking-panel{min-height:0;padding:14px;overflow:hidden}.employee-team-panel,.employee-ranking-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.team-efficiency-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:8px;padding-right:3px}.team-efficiency-row{display:grid;grid-template-columns:46px minmax(60px,1fr) 48px;align-items:center;gap:8px;min-height:62px;padding:9px 10px;border:1px solid rgba(79,140,255,.14);border-radius:5px;background:#ffffff06}.team-efficiency-row strong{color:#e7f2ff}.team-efficiency-row b{color:var(--green);text-align:right;font:700 12px Consolas,monospace}.team-efficiency-row small{grid-column:1 / -1;color:#607899;font-size:11px}.monthly-efficiency-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:5px;padding-right:3px}.monthly-efficiency-row{min-height:31px;display:grid;grid-template-columns:34px minmax(55px,1fr) 47px 66px;align-items:center;gap:7px;padding:4px 6px;border-bottom:1px solid rgba(79,140,255,.1)}.monthly-efficiency-row span{color:#7890ad;font:11px Consolas,monospace}.monthly-efficiency-row b{color:var(--green);text-align:right;font:700 11px Consolas,monospace}.monthly-efficiency-row small{color:#63809e;text-align:right;font:10px Consolas,monospace}.employee-efficiency-bar{height:7px;overflow:hidden;border-radius:3px;background:#4f8cff24}.employee-efficiency-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4f8cff,#22e6aa)}.employee-efficiency-table{min-width:850px;table-layout:fixed}.employee-efficiency-table th:nth-child(1){width:54px}.employee-efficiency-table th:nth-child(2){width:120px}.employee-efficiency-table th:nth-child(3){width:72px}.employee-efficiency-table th:nth-child(5){width:105px}.employee-efficiency-table th:nth-child(6){width:160px}.employee-efficiency-table th:nth-child(7){width:76px}.employee-efficiency-table td:nth-child(2) small{display:block;margin-top:2px;color:#536b89;font:10px Consolas,monospace}.efficiency-cell{display:grid;grid-template-columns:minmax(55px,1fr) 45px;align-items:center;gap:8px}.efficiency-cell b{color:var(--green);text-align:right;font:700 11px Consolas,monospace}.login-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.login-modal{width:min(440px,100%);overflow:hidden}.login-required{background:#07101b;-webkit-backdrop-filter:none;backdrop-filter:none}.login-required:before{content:"WEISHI";position:fixed;left:50%;top:7vh;transform:translate(-50%);color:#ffffff09;font:800 72px Consolas,monospace;pointer-events:none}.login-modal-wide{width:min(650px,100%)}.login-modal-head{padding:16px 18px;background:#3e91ff0a}.login-head-actions{display:flex;align-items:center;gap:8px}.login-head-actions .icon-btn:first-child{width:58px;display:inline-flex;align-items:center;justify-content:center;gap:5px}.login-head-actions .icon-btn:first-child svg{margin:0;flex:0 0 auto}.login-lang-label{font:700 10px/1 Inter,Microsoft YaHei,sans-serif;letter-spacing:0}.login-heading{display:flex;align-items:center;gap:11px}.login-heading h2{margin:0;font-size:17px}.login-heading p{margin:2px 0 0;color:#607899;font-size:12px}.login-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(34,230,170,.28);border-radius:6px;color:var(--green);background:#22e6aa17}.login-form{display:grid;gap:14px;padding:20px}.login-form label{display:grid;gap:7px;color:#8399b4;font-size:12px}.login-form input{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:5px;outline:none;color:var(--text);background:#ffffff09}.login-form input:focus{border-color:#3e91ff8c;box-shadow:0 0 0 2px #3e91ff1a}.password-field{position:relative;display:block}.password-field input{padding-right:42px}.password-field button{position:absolute;top:3px;right:3px;width:34px;height:34px;display:grid;place-items:center;border:0;color:#6f86a6;background:transparent}.login-error{margin:-3px 0 0;color:#ff8e96;font-size:12px}.login-submit{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.login-submit:disabled{opacity:.6;cursor:wait}.auth-link-btn{min-height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;color:#69aaff;background:transparent}.auth-link-btn:hover{color:#8fc0ff}.auth-grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-span-2{grid-column:1 / -1}.auth-form-actions{display:flex;justify-content:flex-end;gap:9px}.auth-form-actions .ghost-btn,.auth-form-actions .primary-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.account-view{display:grid;gap:16px;padding:20px}.account-profile-head{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px}.account-profile-head span,.account-profile-head strong,.account-profile-head small{display:block}.account-profile-head span{color:#607899;font-size:11px}.account-profile-head strong{margin-top:2px;color:#f1f7ff;font-size:17px}.account-profile-head small{margin-top:3px;color:var(--cyan)}.account-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.account-info-grid>div{min-height:58px;padding:10px 12px;border:1px solid rgba(79,140,255,.14);border-radius:5px;background:#ffffff06}.account-info-grid span,.account-info-grid b{display:block}.account-info-grid span{color:#607899;font-size:11px}.account-info-grid b{margin-top:5px;color:#dcecff;font-size:13px}.account-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.account-actions button{min-height:34px;display:inline-flex;align-items:center;gap:6px}.login-success{margin:-3px 0 0;color:var(--green);font-size:12px}.auth-loading-screen{width:100%;height:100vh;display:grid;place-content:center;justify-items:center;gap:10px;color:#eaf4ff;background:#07101b}.auth-loading-screen img{width:54px;height:54px}.auth-loading-screen strong{font-size:18px}.auth-loading-screen span{color:#607899;font-size:12px}.account-panel{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:22px 20px}.account-avatar{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(62,145,255,.3);border-radius:6px;color:#69adff;background:#3e91ff1a}.account-panel span,.account-panel strong{display:block}.account-panel span{color:#607899;font-size:12px}.account-panel strong{margin-top:3px}.account-logout{display:inline-flex;align-items:center;gap:6px}.analysis-shell{overflow:auto;padding-right:3px;grid-template-rows:auto auto minmax(640px,1fr) auto}.analysis-shell .module-head{position:sticky;top:0;z-index:2;background:var(--bg)}.analysis-shell .analysis-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.analysis-shell .analysis-kpis .info-card{min-height:82px;padding:11px 14px}.analysis-shell .analysis-grid{min-height:500px}.analysis-shell .chart-wrap{min-height:180px}.production-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.chart-legend{display:flex;gap:12px;color:#7890ad;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend span:before{content:"";width:8px;height:8px;border-radius:2px;background:currentColor}.chart-legend .morning{color:#f5a115}.chart-legend .middle{color:#4f8cff}.chart-legend .night{color:#9d6cff}.customer-output-ranking{min-height:250px;padding:14px 16px}.customer-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 24px}.customer-output-row{min-width:0;display:grid;grid-template-columns:26px 120px minmax(80px,1fr) 86px;align-items:center;gap:9px;min-height:34px;color:#d8e9fb}.customer-output-row .rank-no{width:22px;height:22px;font-size:11px}.customer-output-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.customer-output-row b{color:var(--cyan);text-align:right;font-size:12px}.customer-output-bar{height:7px;overflow:hidden;border-radius:3px;background:#00d8ff1a}.customer-output-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3e91ff,#22e6aa)}.analysis-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.analysis-ranking-panel{min-height:390px;padding:14px 16px}.ranking-list{display:grid;gap:4px}.ranking-row{min-width:0;min-height:30px;display:grid;grid-template-columns:24px 110px minmax(80px,1fr) 92px;align-items:center;gap:8px;color:#d8e9fb}.ranking-row .rank-no{width:21px;height:21px;font-size:10px}.ranking-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.ranking-row b{color:var(--cyan);text-align:right;font-size:11px}.ranking-bar{height:6px;overflow:hidden;border-radius:3px;background:#00d8ff1a}.ranking-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3e91ff,#22e6aa)}.batch-ranking-row b{color:#69aaff}.batch-bar{background:#4f8cff1f}.batch-bar i{background:linear-gradient(90deg,#6b6cff,#4f8cff)}.customer-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px}.customer-panel{min-height:0;overflow:hidden;padding:14px;display:grid;grid-template-rows:auto minmax(0,1fr)}.customer-search{width:min(320px,100%)}.customer-table{min-width:600px;table-layout:fixed}.customer-table th:last-child,.customer-table td:last-child{width:190px;text-align:right}.customer-modal{width:min(520px,100%)}.customer-import-input{display:none}.customer-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px}.customer-form label{display:grid;gap:7px;color:#778da9;font-size:12px}.customer-form input{min-height:38px;border:1px solid var(--line);border-radius:5px;color:#eff7ff;background:#ffffff0a;padding:8px 10px}.customer-form .modal-actions{grid-column:1 / -1}.layout-tool-page{width:100%;height:100%;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#10152a}#app>.layout-tool-page{height:100dvh;border:0;border-radius:0}.layout-tool-frame{width:100%;height:100%;display:block;border:0;background:#1a1a2e}@media(max-height:900px)and (min-width:1281px){.employee-management,.employee-summary{gap:8px}.employee-grid{grid-template-columns:minmax(0,1fr) 340px;gap:8px}.employee-form{gap:8px}.employee-form input,.employee-form select,.employee-form textarea{min-height:32px;padding:6px 8px}.employee-form textarea{min-height:58px}}@media(max-width:1280px){.shell-body,.employee-management,.employee-efficiency-shell,.customer-shell{height:auto}.employee-summary,.employee-grid,.employee-efficiency-grid{grid-template-columns:1fr}.employee-team-panel{max-height:360px}.analysis-shell{grid-template-rows:auto}.analysis-shell .analysis-grid{min-height:0}.analysis-left>.chart-panel{height:250px}.analysis-right>.chart-panel{min-height:220px}.analysis-right>.list-panel{max-height:360px}}@media(max-width:900px){.analysis-ranking-grid{grid-template-columns:1fr}}select,select.select,select.input,.manage-form select,.device-config-form select,.alarm-rule-form select,.alarm-form-fields select,.employee-form select,.form-grid select{color:#e8f2ff;background-color:#111b29;color-scheme:dark}select option,select optgroup{color:#e8f2ff;background-color:#111b29}select option:checked,select option:hover{color:#fff;background-color:#24527f}select:disabled{color:#7185a0;background-color:#182333}@media(max-width:700px){.device-config-form{grid-template-columns:1fr}.device-config-form .modal-actions{grid-column:1}.auth-grid-form,.account-info-grid{grid-template-columns:1fr}.auth-grid-form .auth-span-2,.account-info-grid .span-2{grid-column:1}.login-required:before{top:4vh;font-size:44px}.employee-efficiency-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.efficiency-period-switch{grid-template-columns:repeat(2,52px)}.efficiency-date-input{width:138px}.customer-form{grid-template-columns:1fr}.analysis-shell .analysis-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.analysis-shell{height:100%;grid-template-rows:46px 72px minmax(220px,.9fr) minmax(244px,1.1fr);align-content:stretch;gap:6px}.analysis-shell>.module-head{height:46px;min-height:0;padding:0}.analysis-shell>.module-head .module-title h1{font-size:18px;line-height:1.15}.analysis-shell>.module-head .module-title p{margin-top:1px;font-size:11px}.analysis-shell>.analysis-kpis{height:72px;min-height:0;gap:6px}.analysis-shell>.analysis-kpis .info-card{height:72px;min-height:72px;padding:7px 11px}.analysis-shell>.analysis-kpis .info-card h3{margin-bottom:4px;font-size:14px}.analysis-shell>.analysis-kpis .info-card p{line-height:1.35}.analysis-shell .analysis-grid{height:100%;min-height:220px}.analysis-shell .analysis-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr)}.analysis-shell .analysis-left{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:8px}.analysis-shell .analysis-left>.chart-panel{height:auto;padding:10px 12px}.analysis-shell .analysis-left .chart-wrap{height:calc(100% - 27px);min-height:0}.analysis-shell .analysis-right{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);gap:8px}.analysis-shell .analysis-right>.chart-panel{min-height:0;padding:10px 12px}.analysis-shell .analysis-donut-wrap{height:calc(100% - 26px);min-height:110px}.analysis-ranking-grid{height:100%;min-height:244px}.analysis-ranking-panel{height:100%;min-height:0;padding:8px 10px}.analysis-ranking-panel .section-head{margin-bottom:5px}.analysis-ranking-panel .section-title{font-size:14px}.ranking-list{height:calc(100% - 27px);grid-template-rows:repeat(10,minmax(0,1fr));gap:0}.ranking-row{min-height:18px}.ranking-row .rank-no{width:17px;height:17px;font-size:9px}.ranking-row strong,.ranking-row b{font-size:10px}.shift-stat-grid{grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:6px;margin-top:8px}.shift-stat-grid .info-card{min-height:52px;padding:6px 10px;display:grid;grid-template-columns:minmax(62px,1fr) auto auto;align-items:center;gap:8px}.shift-stat-grid .info-card h3,.shift-stat-grid .info-card p{margin:0}.shift-stat-grid .info-card h3{font-size:14px;white-space:nowrap}.shift-stat-grid .info-card p{line-height:1.2;white-space:nowrap}.shift-stat-grid .info-card p:last-child{min-width:42px;text-align:right}@media(max-width:1280px)and (min-width:901px){body{overflow:hidden}.app{height:100vh;min-height:0;grid-template-rows:76px minmax(0,1fr)}.topbar{min-height:76px;grid-template-columns:minmax(280px,330px) minmax(440px,1fr) 250px;gap:6px;padding:8px 10px}.brand-logo{width:50px;height:48px}.brand-mark{width:120px;height:50px}.brand>div:not(.brand-logo) strong{font-size:15px}.brand>div:not(.brand-logo) span{font-size:10px}.nav{justify-content:center;overflow:hidden;gap:2px}.nav button{height:34px;gap:5px;padding:0 6px;font-size:12px}.top-actions{justify-self:end;gap:5px}.clock{min-width:82px;max-width:88px;font-size:11px}.user-btn{max-width:72px;padding-inline:8px}.workspace{height:calc(100vh - 76px);min-height:0;overflow:hidden;padding:2px 10px 8px}.page,.page.active{height:100%;min-height:0}.analysis-shell{grid-template-rows:46px 72px 220px 244px;align-content:start}.analysis-shell .analysis-grid{height:220px;min-height:220px}.analysis-ranking-grid,.analysis-ranking-panel{height:244px;min-height:0}.analysis-shell .analysis-grid{grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr)}.analysis-shell .analysis-left{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr)}.analysis-shell .analysis-right{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}}@media(max-width:900px){.analysis-shell{grid-template-rows:auto;align-content:normal}.analysis-shell>.module-head,.analysis-shell>.analysis-kpis{height:auto}.analysis-shell .analysis-grid{height:auto;min-height:0;grid-template-columns:1fr}.analysis-shell .analysis-left,.analysis-shell .analysis-right{grid-template-columns:1fr;grid-template-rows:auto}.analysis-shell .analysis-left>.chart-panel{height:220px}.analysis-ranking-grid{height:auto;grid-template-columns:1fr}.analysis-ranking-panel{height:244px}}.topbar .brand{display:grid;grid-template-columns:138px minmax(0,1fr);align-items:center;gap:12px;min-width:0;overflow:visible}.topbar .brand-logo{width:138px!important;height:56px!important;display:flex;align-items:center;overflow:visible;flex:none}.topbar .brand-mark{width:134px!important;height:55px!important;max-width:none;object-fit:contain;object-position:left center;display:block}.topbar .brand>div:not(.brand-logo){min-width:0;position:relative;z-index:1}.topbar .brand>div:not(.brand-logo) strong,.topbar .brand>div:not(.brand-logo) span{white-space:nowrap}
