.app-container[data-v-2f35c620]{color:#c8d6e5;background:#0a1628;flex-direction:column;height:100vh;display:flex}.app-header[data-v-2f35c620]{background:linear-gradient(90deg,#0d2137,#1a3a5c);border-bottom:2px solid #2a5a8a;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex}.header-title[data-v-2f35c620]{background:linear-gradient(90deg,#70a8c8,#a0c8d8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.header-nav[data-v-2f35c620]{gap:8px;display:flex}.header-nav button[data-v-2f35c620]{color:#8ab4d6;cursor:pointer;background:0 0;border:1px solid #2a5a8a;border-radius:4px;padding:8px 20px;font-size:14px;transition:all .2s}.header-nav button.active[data-v-2f35c620],.header-nav button[data-v-2f35c620]:hover{color:#fff;background:#1a4a7a;border-color:#4a9af4}.header-time[data-v-2f35c620]{color:#6a8aaa;font-family:monospace;font-size:14px}.header-user[data-v-2f35c620]{color:#8ab4d6;background:#0d2137;border:1px solid #1a3858;border-radius:4px;padding:4px 10px;font-size:13px}.header-right[data-v-2f35c620]{align-items:center;gap:12px;display:flex}.logout-btn[data-v-2f35c620]{color:#8ab4d6;cursor:pointer;background:0 0;border:1px solid #4a6a7a;border-radius:4px;padding:6px 14px;font-size:13px;transition:all .2s}.logout-btn[data-v-2f35c620]:hover{background:#1a3a4a;border-color:#6a9aaa}.app-main[data-v-2f35c620]{scrollbar-width:thin;scrollbar-color:#2a4a68 #0a1a30;flex:1;padding:16px;overflow:auto}.app-main[data-v-2f35c620]::-webkit-scrollbar{width:6px;height:6px}.app-main[data-v-2f35c620]::-webkit-scrollbar-track{background:#0a1a30}.app-main[data-v-2f35c620]::-webkit-scrollbar-thumb{background:#2a4a68;border-radius:3px}.app-main[data-v-2f35c620]::-webkit-scrollbar-thumb:hover{background:#3a6a88}.furnace-wrap[data-v-6925798d]{flex-direction:column;gap:4px;height:100%;display:flex}.loading-furnace[data-v-6925798d]{color:#4a6a7a;justify-content:center;align-items:center;height:100%;font-size:13px;display:flex}.fw-title[data-v-6925798d]{color:#60b0f4;text-align:center;flex-shrink:0;font-size:11px;font-weight:700}.fw-body[data-v-6925798d]{flex:1;align-items:stretch;gap:2px;min-height:0;display:flex}.duct-col[data-v-6925798d]{flex-direction:column;flex-shrink:0;width:18px;min-height:0;display:flex}.duct-bar[data-v-6925798d]{flex-direction:column;flex:1;min-height:0;display:flex}.duct-bar[data-v-6925798d]:before{content:"";flex-shrink:0;height:16px}.duct-bar .bar[data-v-6925798d]{background:#3a6a7a;border-radius:2px;flex:1;width:6px}.duct-left .duct-bar[data-v-6925798d]{align-items:flex-end}.duct-right .duct-bar[data-v-6925798d]{align-items:flex-start}.duct-gap[data-v-6925798d]{flex-shrink:0;height:18px;position:relative}.duct-gap[data-v-6925798d]:before{content:"";top:var(--d3138bca);bottom:var(--d3138bca);background:#3a6a7a14;border:2px solid #3a6a7a;position:absolute}.duct-left .duct-gap[data-v-6925798d]:before{border-right:none;border-radius:5px 0 0 5px;left:1px;right:6px}.duct-right .duct-gap[data-v-6925798d]:before{border-left:none;border-radius:0 5px 5px 0;left:6px;right:1px}.fur-rows[data-v-6925798d]{flex-direction:column;flex:1;min-width:0;display:flex}.fur-row[data-v-6925798d]{background:linear-gradient(135deg,#0e1e30,#112438);flex-direction:column;flex:1;min-height:0;display:flex}.fur-row-gap[data-v-6925798d]{flex-shrink:0;height:18px}.fur-grid[data-v-6925798d]{flex-direction:column;flex:1;min-height:0;display:flex}.nums-row[data-v-6925798d]{flex-shrink:0;min-height:16px;display:flex}.nums-row .gcell[data-v-6925798d]{color:#3a5a6a;font-size:7px;font-weight:600;background:0 0!important;border:none!important}.row-label[data-v-6925798d]{color:#6a9aaa;flex-shrink:0;justify-content:center;align-items:center;width:30px;font-size:8px;font-weight:600;display:flex}.label-bin[data-v-6925798d]{background:0 0}.grid-row[data-v-6925798d]{flex:1;min-height:0;display:flex}.gcell[data-v-6925798d]{border:.5px solid #3a5a6a;flex:1;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.row-flue .gcell[data-v-6925798d]{background:#3a6a7a}.flue-dot[data-v-6925798d]{background:#a0d2e62e;border-radius:50%;flex-shrink:0;width:2px;height:2px}.rack-overlay[data-v-6925798d]{z-index:2;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rack-label-text[data-v-6925798d]{color:#e0e8f0;text-shadow:0 0 3px #0009;font-size:7px;font-weight:700;line-height:1}.row-bin .gcell[data-v-6925798d]{background:#2a4a58;align-items:flex-end}.bin-fill[data-v-6925798d]{background:#5a8a9a;width:100%;transition:height .5s;position:absolute;bottom:0;left:0}.fw-legend[data-v-6925798d]{flex-shrink:0;justify-content:center;gap:12px;padding:4px 0 2px;display:flex}.legend-item[data-v-6925798d]{color:#5a7a8a;align-items:center;gap:3px;font-size:9px;display:flex}.legend-swatch[data-v-6925798d]{border-radius:1px;width:10px;height:8px}.swatch-flue[data-v-6925798d]{background:#3a6a7a;border:1px solid #2a4a5a}.swatch-bin[data-v-6925798d]{background:#2a4a58;border:1px solid #1a3a48}.swatch-duct[data-v-6925798d]{background:#3a6a7a;border:1px solid #2a4a5a}.side-panel[data-v-410bfea0]{flex-direction:column;flex:1;display:flex;overflow:hidden}.panel-section[data-v-410bfea0]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:6px;flex-direction:column;flex:1;min-height:0;padding:6px 8px;display:flex;overflow-y:auto}.chart-title[data-v-410bfea0]{color:#6a8aaa;letter-spacing:1px;border-bottom:1px solid #1a3858;flex-shrink:0;margin-bottom:6px;padding-bottom:5px;font-size:11px;font-weight:700}.rack-section[data-v-410bfea0]{margin-bottom:8px}.rs-title[data-v-410bfea0]{color:#8ab4d6;flex-shrink:0;align-items:center;gap:6px;margin-bottom:4px;font-size:10px;font-weight:700;display:flex}.rs-legend[data-v-410bfea0]{gap:6px;margin-left:auto;display:inline-flex}.rs-legend-item[data-v-410bfea0]{color:#6a8aaa;align-items:center;gap:2px;font-size:8px;font-weight:400;display:inline-flex}.legend-swatch[data-v-410bfea0]{border-radius:2px;width:10px;height:5px}.rs-row[data-v-410bfea0]{grid-template-columns:34px 1fr;align-items:center;gap:4px;margin-bottom:4px;display:grid}.rs-flue[data-v-410bfea0]{color:#4a6a7a;text-align:right;font-family:monospace;font-size:8px}.fg-bars[data-v-410bfea0]{flex-direction:column;gap:2px;min-width:0;display:flex}.fg-bar[data-v-410bfea0]{align-items:center;gap:4px;min-width:0;display:flex}.fg-tag[data-v-410bfea0]{text-align:center;flex-shrink:0;width:8px;font-family:monospace;font-size:7px}.bar-track[data-v-410bfea0]{background:#0a1a28;border-radius:4px;flex:1;min-width:0;height:10px;overflow:hidden}.bar-fill[data-v-410bfea0]{border-radius:4px;height:100%;transition:width .4s}.bar-val[data-v-410bfea0]{color:#9ab8c8;text-align:right;flex-shrink:0;width:18px;font-family:monospace;font-size:8px}.rs-avg[data-v-410bfea0]{color:#6a8aaa;border-top:1px dashed #1a3858;align-items:center;gap:8px;margin-top:5px;padding-top:5px;font-size:8px;display:flex}.rs-avg-label[data-v-410bfea0]{flex-shrink:0}.rs-avg-item[data-v-410bfea0]{align-items:center;gap:3px;display:inline-flex}.rs-avg-item b[data-v-410bfea0]{color:#9ab8c8;font-family:monospace;font-weight:400}.comm-line[data-v-410bfea0]{color:#80a8b8;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:9px;display:flex}.comm-key[data-v-410bfea0]{color:#4a7a8a;flex-shrink:0;font-size:8px}.comm-val[data-v-410bfea0]{align-items:center;gap:3px;font-family:monospace;display:inline-flex}.info-grid[data-v-410bfea0]{border-top:1px solid #1a3858;flex-direction:column;flex-shrink:0;gap:8px;margin-top:auto;padding-top:7px;display:flex}.info-col-title[data-v-410bfea0]{margin-bottom:4px;font-size:10px;font-weight:700}.info-line[data-v-410bfea0]{color:#80a8b8;justify-content:space-between;gap:6px;font-family:monospace;font-size:9px;line-height:1.7;display:flex}.fan-txt[data-v-410bfea0]{align-items:center;gap:3px;font-family:inherit;display:inline-flex}.fan-dot[data-v-410bfea0]{background:#2a2a2a;border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:all .5s}.fan-dot.on[data-v-410bfea0]{background:#68a888;box-shadow:0 0 4px #68a88866}.side-placeholder[data-v-410bfea0]{color:#4a6a7a;flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.dashboard[data-v-e1d9fb3e]{flex-direction:column;gap:8px;height:100%;display:flex}.dashboard-layout[data-v-e1d9fb3e]{flex:3;gap:12px;min-height:0;display:flex}.bottom-row[data-v-e1d9fb3e]{flex:1;min-height:0;overflow:hidden}.left-panel[data-v-e1d9fb3e]{flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.right-panel[data-v-e1d9fb3e]{flex-direction:column;flex-shrink:0;width:260px;min-height:0;display:flex;overflow:hidden}.center-panel[data-v-e1d9fb3e]{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.panel-title[data-v-e1d9fb3e]{color:#60b0f4;letter-spacing:1px;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0 0;font-size:12px;font-weight:700;display:flex}.plan-section[data-v-e1d9fb3e]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;flex-direction:column;flex:1;min-height:0;padding:6px 8px 0;display:flex}.plan-section[data-v-e1d9fb3e]>:last-child{flex:1;min-height:0}.loading-overlay[data-v-e1d9fb3e]{z-index:100;background:#0a1628d9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spinner[data-v-e1d9fb3e]{border:3px solid #2a5a8a;border-top-color:#60b0f4;border-radius:50%;width:40px;height:40px;margin-bottom:12px;animation:.8s linear infinite spin-e1d9fb3e}@keyframes spin-e1d9fb3e{to{transform:rotate(360deg)}}.sys-selector select[data-v-e1d9fb3e]{color:#c0d0e0;cursor:pointer;background:#0e1e30;border:1px solid #2a5a8a;border-radius:4px;padding:2px 8px;font-size:12px}.sys-selector select[data-v-e1d9fb3e]:focus{border-color:#60b0f4;outline:none}.sys-name[data-v-e1d9fb3e]{color:#60b0f4}.no-data-hint[data-v-e1d9fb3e]{color:#4a6a7a;flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.rack-bar[data-v-e1d9fb3e]{flex-wrap:nowrap;align-items:center;gap:3px;display:flex;overflow-x:auto}.rack-fs-label[data-v-e1d9fb3e]{color:#4a7a8a;white-space:nowrap;margin-right:2px;font-size:9px}.rack-chip[data-v-e1d9fb3e]{cursor:pointer;color:#fff;opacity:.85;white-space:nowrap;border-radius:3px;flex-shrink:0;align-items:center;gap:2px;padding:1px 5px;font-size:9px;transition:opacity .15s;display:inline-flex}.rack-chip[data-v-e1d9fb3e]:hover{opacity:1}.rack-chip small[data-v-e1d9fb3e]{background:#00000040;border-radius:2px;margin-left:1px;padding:0 2px;font-size:7px}.rack-detail[data-v-e1d9fb3e]{background:#0e1e30;border:.5px solid #2a4a5a;border-radius:4px;padding:6px 8px}.rack-detail-inner[data-v-e1d9fb3e]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rack-detail-name[data-v-e1d9fb3e]{white-space:nowrap;font-size:10px;font-weight:700}.rack-detail-close[data-v-e1d9fb3e]{cursor:pointer;color:#5a7a8a;font-size:14px;line-height:1}.rack-detail table[data-v-e1d9fb3e]{border-collapse:collapse;font-size:8px}.rack-detail th[data-v-e1d9fb3e]{color:#4a7a8a;text-align:left;border-bottom:.5px solid #1a3a48;padding:1px 6px}.rack-detail td[data-v-e1d9fb3e]{color:#b0c8d8;border-bottom:.5px solid #1a3a48;padding:1px 6px}.val-path[data-v-e1d9fb3e]{color:#6a9aaa;font-family:monospace;font-size:7px}.quality-page[data-v-519aa9f4]{flex-direction:column;gap:10px;height:100%;display:flex;overflow:hidden auto}.stats-bar[data-v-519aa9f4]{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex;overflow:hidden}.stat-card[data-v-519aa9f4]{background:linear-gradient(135deg,#0d2137,#122a44);border:1px solid #1a4a7a;border-radius:8px;flex:1;align-items:center;gap:10px;min-width:150px;padding:12px 14px;display:flex;position:relative}.stat-icon[data-v-519aa9f4]{background:#0a1a30;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;display:flex}.stat-body[data-v-519aa9f4]{flex:1}.stat-num[data-v-519aa9f4]{color:#60b0f4;font-family:monospace;font-size:20px;font-weight:700}.stat-unit[data-v-519aa9f4]{color:#6a8aaa;margin-left:2px;font-size:11px;font-weight:400}.stat-label[data-v-519aa9f4]{color:#6a8aaa;margin-top:1px;font-size:11px}.stat-sub[data-v-519aa9f4]{color:#4a6a7a;font-size:9px;position:absolute;bottom:4px;right:10px}.chart-card[data-v-519aa9f4]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;flex-shrink:0;padding:10px;overflow:hidden}.chart-title[data-v-519aa9f4]{color:#6a8aaa;letter-spacing:1px;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.window-controls[data-v-519aa9f4]{gap:6px;margin-left:auto;display:flex}.rate-badges[data-v-519aa9f4]{gap:6px;display:flex}.ratio-tag[data-v-519aa9f4]{color:#6a8aaa;white-space:nowrap;background:#0a1a30;border-radius:4px;padding:1px 6px;font-size:9px}.ratio-tag b[data-v-519aa9f4]{color:#8ab4d6;font-family:monospace}.chart-md[data-v-519aa9f4]{width:100%;height:180px}.sys-cards[data-v-519aa9f4]{flex-direction:column;gap:10px;display:flex}.sys-card[data-v-519aa9f4]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;padding:10px 12px}.sys-header[data-v-519aa9f4]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.sys-name[data-v-519aa9f4]{font-size:13px;font-weight:700}.run-badge[data-v-519aa9f4]{border-radius:10px;padding:2px 10px;font-size:10px;font-weight:600}.run-badge.running[data-v-519aa9f4]{color:#4af4a4;background:#1a3a2a}.run-badge.stopped[data-v-519aa9f4]{color:#f46060;background:#3a1a1a}.sys-stats[data-v-519aa9f4]{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.sys-status[data-v-519aa9f4]{background:#0a1a30;border-radius:6px;flex-wrap:wrap;gap:8px;margin-bottom:8px;padding:6px 8px;display:flex}.status-chip[data-v-519aa9f4]{color:#80a8b8;align-items:center;gap:4px;font-size:10px;display:inline-flex}.status-chip b[data-v-519aa9f4]{color:#8ab4d6;font-family:monospace}.chip-dot[data-v-519aa9f4]{background:#2a2a2a;border-radius:50%;flex-shrink:0;width:7px;height:7px}.chip-dot.on[data-v-519aa9f4]{background:#68a888;box-shadow:0 0 4px #68a88866}.chip-dot.alarm[data-v-519aa9f4]{background:#f46060;box-shadow:0 0 4px #f4606066}.sys-tip[data-v-519aa9f4]{color:#4a6a7a;font-size:10px}.no-data[data-v-519aa9f4]{color:#4a6a7a;justify-content:center;align-items:center;height:150px;font-size:12px;display:flex}.page-empty[data-v-519aa9f4]{text-align:center;color:#4a6a7a;padding:40px;font-size:13px}.title-dot[data-v-519aa9f4]{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-power[data-v-519aa9f4]{background:#f4a460}.dot-pit[data-v-519aa9f4]{background:#4af4a4}.dot-rack[data-v-519aa9f4]{background:#a47af4}.dot-eff[data-v-519aa9f4]{background:#60f4f4}.eff-summary[data-v-519aa9f4]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.eff-cell[data-v-519aa9f4]{background:#0a1a30;border:1px solid #1a3a5c;border-radius:6px;flex:1;min-width:130px;padding:8px 12px}.eff-num[data-v-519aa9f4]{color:#60d4f4;font-family:monospace;font-size:16px;font-weight:700}.eff-unit[data-v-519aa9f4]{color:#6a8aaa;font-size:10px}.eff-label[data-v-519aa9f4]{color:#6a8aaa;margin-top:2px;font-size:10px}.eff-ratios[data-v-519aa9f4]{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ratio-badge[data-v-519aa9f4]{border-radius:8px;padding:1px 5px;font-size:9px}.ratio-badge.good[data-v-519aa9f4]{color:#4fd6a0;background:#4fd6a01a}.ratio-badge.bad[data-v-519aa9f4]{color:#ff6b6b;background:#ff6b6b1a}.rack-tables[data-v-519aa9f4]{flex-direction:column;gap:10px;display:flex}.rack-table-wrap[data-v-519aa9f4]{border-radius:6px;max-height:320px;overflow-x:auto}.rack-table[data-v-519aa9f4]{border-collapse:collapse;width:100%;min-width:640px;font-size:11px}.rack-table thead th[data-v-519aa9f4]{color:#6a8aaa;text-align:left;white-space:nowrap;background:#0d2137;border-bottom:1px solid #1a3a5c;padding:6px 10px;font-weight:600;position:sticky;top:0}.rack-table tbody td[data-v-519aa9f4]{color:#80a8b8;white-space:nowrap;border-bottom:.5px solid #14283e;padding:5px 10px;font-family:monospace}.rack-table tbody tr[data-v-519aa9f4]:hover{background:#122a44}.rack-name[data-v-519aa9f4]{color:#8ab4d6;font-weight:600}.pit-cell[data-v-519aa9f4]{color:#f4d460}.comm-badge[data-v-519aa9f4]{border-radius:8px;padding:1px 8px;font-family:sans-serif;font-size:9px}.comm-ok[data-v-519aa9f4]{color:#4af4a4;background:#1a3a2a}.comm-bad[data-v-519aa9f4]{color:#f46060;background:#3a1a1a}.analysis-select[data-v-519aa9f4]{color:#8ab4d6;cursor:pointer;background:#0d1b2a;border:1px solid #1a3a5c;border-radius:4px;padding:2px 8px;font-size:11px}.analysis-select[data-v-519aa9f4]:focus{border-color:#409eff;outline:none}.analysis-page[data-v-72a98afc]{flex-direction:column;gap:10px;min-height:100%;display:flex;overflow-y:auto}.sys-tabs[data-v-72a98afc]{flex-shrink:0;gap:6px;display:flex}.sys-tab[data-v-72a98afc]{cursor:pointer;color:#6a8aaa;background:#0a1a30;border:1px solid #1a3858;border-radius:6px;align-items:center;gap:6px;padding:5px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.sys-tab[data-v-72a98afc]:hover{color:#8ab4d6;background:#122a44}.sys-tab.active[data-v-72a98afc]{color:#60b0f4;background:#1a4a7a;border-color:#3a7aba}.run-badge[data-v-72a98afc]{border-radius:8px;padding:1px 6px;font-size:9px}.run-badge.running[data-v-72a98afc]{color:#4af4a4;background:#1a3a2a}.run-badge.stopped[data-v-72a98afc]{color:#f46060;background:#3a1a1a}.freshness[data-v-72a98afc]{color:#4a6a7a;align-self:center;margin-left:auto;font-family:monospace;font-size:10px}.freshness.fail[data-v-72a98afc]{color:#f46060}.card[data-v-72a98afc]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;flex-shrink:0;padding:12px}.card-title[data-v-72a98afc]{color:#80a8b8;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.title-badge[data-v-72a98afc]{color:#6a8aaa;background:#0a1a30;border-radius:8px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:600}.title-dot[data-v-72a98afc]{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-temp[data-v-72a98afc]{background:#f4a460}.dot-sug[data-v-72a98afc]{background:#4af4a4}.dot-trend[data-v-72a98afc]{background:#60b0f4}.dot-pid[data-v-72a98afc]{background:#b89058}.dot-zero[data-v-72a98afc]{background:#68a888}.dot-pres[data-v-72a98afc]{background:#c084fc}.dot-alarm[data-v-72a98afc]{background:#f46060}.dot-multi[data-v-72a98afc]{background:#f4d460}.alarm-list[data-v-72a98afc]{flex-wrap:wrap;gap:6px;display:flex}.alarm-chip[data-v-72a98afc]{color:#f4a0a0;background:#3a1a1a;border:1px solid #4a2a2a;border-radius:6px;padding:3px 8px;font-family:monospace;font-size:10px}.comb-table-wrap[data-v-72a98afc]{border-radius:6px;overflow-x:auto}.comb-table[data-v-72a98afc]{border-collapse:collapse;width:100%;min-width:560px;font-size:11px}.comb-table th[data-v-72a98afc]{text-align:left;color:#6a8aaa;white-space:nowrap;background:#0a1a30;padding:6px 10px;font-weight:600}.comb-table td[data-v-72a98afc]{color:#8ab4d6;white-space:nowrap;border-top:1px solid #1a2a44;padding:5px 10px;font-family:monospace}.comb-table .rack-name[data-v-72a98afc]{color:#8ab4d6;font-weight:600}.dev-cell[data-v-72a98afc]{font-family:monospace;font-weight:600}.comm-badge[data-v-72a98afc]{border-radius:8px;padding:1px 8px;font-family:sans-serif;font-size:9px}.comm-ok[data-v-72a98afc]{color:#4af4a4;background:#1a3a2a}.comm-bad[data-v-72a98afc]{color:#f46060;background:#3a1a1a}.card-body[data-v-72a98afc]{align-items:stretch;gap:12px;display:flex}.track-metrics[data-v-72a98afc]{flex-direction:column;flex-shrink:0;gap:4px;width:170px;display:flex}.metric-group[data-v-72a98afc]{flex-direction:column;gap:4px;display:flex}.mg-title[data-v-72a98afc]{color:#4a6a7a;letter-spacing:1px;margin-top:4px;font-size:9px}.metric-group:first-child .mg-title[data-v-72a98afc]{margin-top:0}.metric-row[data-v-72a98afc]{background:#0a1a30;border-radius:5px;justify-content:space-between;padding:4px 8px;font-size:11px;display:flex}.m-label[data-v-72a98afc]{color:#6a8aaa}.m-value[data-v-72a98afc]{color:#8ab4d6;font-family:monospace;font-weight:600}.track-chart[data-v-72a98afc]{flex:1;min-width:0;height:200px}.dev-list[data-v-72a98afc]{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.dev-title[data-v-72a98afc]{color:#6a8aaa;font-size:11px}.dev-chip[data-v-72a98afc]{border-radius:8px;padding:2px 8px;font-size:10px;font-weight:600}.dev-chip.bad[data-v-72a98afc]{color:#f46060;background:#3a1a1a}.dev-chip.warn[data-v-72a98afc]{color:#f4a460;background:#3a2a1a}.sug-list[data-v-72a98afc]{flex-direction:column;gap:6px;display:flex}.sug-item[data-v-72a98afc]{border:1px solid #0000;border-radius:6px;align-items:flex-start;gap:8px;padding:7px 10px;font-size:12px;line-height:1.5;display:flex}.sug-item.good[data-v-72a98afc]{color:#4af4a4;background:#1a3a2a;border-color:#2a4a3a}.sug-item.warn[data-v-72a98afc]{color:#f4d460;background:#3a2a1a;border-color:#4a3a2a}.sug-item.bad[data-v-72a98afc]{color:#f4a0a0;background:#3a1a1a;border-color:#4a2a2a}.sug-item.info[data-v-72a98afc]{color:#8ab4d6;background:#0a2a3a;border-color:#1a3a4a}.sug-icon[data-v-72a98afc]{flex-shrink:0;font-weight:700}.trend-chart[data-v-72a98afc]{width:100%;height:220px}.pid-params[data-v-72a98afc]{flex-wrap:wrap;gap:12px;display:flex}.pid-table[data-v-72a98afc]{border-collapse:collapse;flex:1;min-width:380px;font-size:11px}.pid-table th[data-v-72a98afc]{text-align:left;color:#6a8aaa;background:#0a1a30;padding:6px 10px;font-weight:600}.pid-table td[data-v-72a98afc]{color:#8ab4d6;border-top:1px solid #1a2a44;padding:6px 10px;font-family:monospace}.param-tips[data-v-72a98afc]{flex-direction:column;justify-content:center;gap:4px;display:flex}.tip-chip[data-v-72a98afc]{color:#6a8aaa;background:#0a1a30;border-radius:5px;padding:4px 8px;font-size:10px}.zero-chart[data-v-72a98afc]{width:100%;height:220px}.mapping-page[data-v-9a9e19e3]{max-width:1200px;margin:0 auto}.page-header[data-v-9a9e19e3]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-9a9e19e3]{color:#e0e8f0;font-size:18px;font-weight:600}.tabs[data-v-9a9e19e3]{border-bottom:1px solid #1a3858;gap:0;margin-bottom:20px;display:flex}.tab[data-v-9a9e19e3]{color:#6a8aaa;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 20px;font-size:14px;transition:all .2s}.tab[data-v-9a9e19e3]:hover{color:#8ab4d6}.tab.active[data-v-9a9e19e3]{color:#4a9af4;border-bottom-color:#4a9af4}.loading[data-v-9a9e19e3],.empty[data-v-9a9e19e3]{text-align:center;color:#6a8aaa;padding:40px 0;font-size:14px}.text-dim[data-v-9a9e19e3]{color:#4a6a7a;font-size:12px}.section-divider[data-v-9a9e19e3]{background:#1a3858;height:1px;margin:20px 0}.section-header[data-v-9a9e19e3]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title[data-v-9a9e19e3]{color:#c8d6e5;font-size:15px;font-weight:600}.data-table[data-v-9a9e19e3]{border-collapse:collapse;background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;width:100%;overflow:hidden}.data-table th[data-v-9a9e19e3]{text-align:left;color:#6a9aaa;white-space:nowrap;background:#0d2137;border-bottom:1px solid #1a3858;padding:10px 14px;font-size:12px;font-weight:600}.data-table td[data-v-9a9e19e3]{color:#c8d6e5;border-bottom:1px solid #152a40;padding:9px 14px;font-size:13px}.data-table tr:last-child td[data-v-9a9e19e3]{border-bottom:none}.data-table tbody tr:hover td[data-v-9a9e19e3]{background:#1a4a7a26}.data-table tbody tr.row-active td[data-v-9a9e19e3]{background:#1a4a7a14}.data-table tbody tr.row-active td[data-v-9a9e19e3]:first-child{border-left:3px solid #4a9af4}.data-table tbody tr.row-selected td[data-v-9a9e19e3]{background:#4a9af41a}.fur-table td[data-v-9a9e19e3]{padding:8px 14px;font-size:12px}.fur-table[data-v-9a9e19e3]{background:linear-gradient(135deg,#0c1a28,#0f2035)}.cell-mono[data-v-9a9e19e3]{color:#6a8aaa;font-family:monospace;font-size:12px}.cell-actions[data-v-9a9e19e3]{white-space:nowrap;gap:4px;display:flex}.link[data-v-9a9e19e3]{color:#4a9af4;cursor:pointer;text-decoration:none}.link[data-v-9a9e19e3]:hover{text-decoration:underline}.badge[data-v-9a9e19e3]{color:#8ab4d6;background:#1a3a5c;border-radius:8px;padding:1px 8px;font-size:11px;display:inline-block}.tag[data-v-9a9e19e3]{cursor:pointer;white-space:nowrap;border-radius:3px;margin:1px 2px;padding:2px 7px;font-size:11px;display:inline-block}.tag-wall[data-v-9a9e19e3]{color:#6ab4d6;background:#1a3a4a;border:1px solid #2a5a7a}.tag-box[data-v-9a9e19e3]{color:#6ad4a4;background:#1a3a3a;border:1px solid #2a5a5a}.tag[data-v-9a9e19e3]:hover{filter:brightness(1.2)}.tag-del[data-v-9a9e19e3]{color:#8a4a4a;margin-left:3px;font-weight:700}.tag-del[data-v-9a9e19e3]:hover{color:#f46060}.modal-overlay[data-v-9a9e19e3]{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-9a9e19e3]{background:linear-gradient(135deg,#0e1e30,#152a40);border:1px solid #2a5a8a;border-radius:10px;width:440px;max-height:80vh;padding:24px 28px;position:relative;overflow-y:auto;box-shadow:0 8px 32px #0006}.modal-header[data-v-9a9e19e3]{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-header h3[data-v-9a9e19e3]{color:#e0e8f0;margin:0;font-size:16px}.modal-close[data-v-9a9e19e3]{color:#6a8aaa;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.modal-close[data-v-9a9e19e3]:hover{color:#f46060}.form-group[data-v-9a9e19e3]{margin-bottom:14px}.form-group label[data-v-9a9e19e3]{color:#8ab4d6;margin-bottom:4px;font-size:13px;display:block}.form-group input[data-v-9a9e19e3],.form-group textarea[data-v-9a9e19e3],.form-group select[data-v-9a9e19e3]{color:#c8d6e5;box-sizing:border-box;background:#0a1628;border:1px solid #1a3858;border-radius:4px;outline:none;width:100%;padding:8px 10px;font-size:13px}.form-group input[data-v-9a9e19e3]:focus,.form-group textarea[data-v-9a9e19e3]:focus,.form-group select[data-v-9a9e19e3]:focus{border-color:#4a9af4}.form-group textarea[data-v-9a9e19e3]{resize:vertical;font-family:inherit}.form-group select[data-v-9a9e19e3]{cursor:pointer;appearance:auto}.field-hint[data-v-9a9e19e3]{color:#6a8aaa;margin-top:4px;font-size:12px}.form-row[data-v-9a9e19e3]{gap:12px;display:flex}.form-actions[data-v-9a9e19e3]{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.btn-group[data-v-9a9e19e3]{align-items:center;gap:6px;display:flex}.filter-select[data-v-9a9e19e3]{color:#c8d6e5;cursor:pointer;background:#0a1628;border:1px solid #1a3858;border-radius:3px;outline:none;padding:4px 8px;font-size:12px}.filter-select[data-v-9a9e19e3]:focus{border-color:#4a9af4}.btn-sm[data-v-9a9e19e3]{color:#8ab4d6;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #2a5a8a;border-radius:3px;padding:4px 10px;font-size:12px;transition:all .2s}.btn-sm[data-v-9a9e19e3]:hover{color:#fff;background:#1a4a7a;border-color:#4a9af4}.btn-sm[data-v-9a9e19e3]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-9a9e19e3]{color:#f46060;border-color:#5a2a2a}.btn-danger[data-v-9a9e19e3]:hover{background:#3a1a1a;border-color:#f46060}.btn-primary[data-v-9a9e19e3]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1a4a7a,#2a6a9a);border:1px solid #2a6a9a;border-radius:4px;padding:7px 18px;font-size:13px;transition:all .2s}.btn-primary[data-v-9a9e19e3]:hover{background:linear-gradient(135deg,#2a5a8a,#3a7aaa);border-color:#4a9af4}.btn-primary[data-v-9a9e19e3]:disabled{opacity:.5;cursor:not-allowed}.btn-cancel[data-v-9a9e19e3]{color:#8ab4d6;cursor:pointer;background:0 0;border:1px solid #2a4a5a;border-radius:4px;padding:7px 18px;font-size:13px}.btn-cancel[data-v-9a9e19e3]:hover{background:#1a3a4a}.tag-select[data-v-9a9e19e3]{flex-wrap:wrap;gap:6px;display:flex}.tag-select .tag[data-v-9a9e19e3]{cursor:pointer;white-space:nowrap;color:#6a8aaa;-webkit-user-select:none;user-select:none;background:#0a1628;border:1px solid #1a3858;border-radius:3px;padding:4px 12px;font-size:12px;transition:all .15s;display:inline-block}.tag-select .tag[data-v-9a9e19e3]:hover{color:#8ab4d6;border-color:#2a5a8a}.tag-select .tag-active[data-v-9a9e19e3]{color:#4a9af4;background:#1a3a5a;border-color:#4a9af4}.point-table[data-v-9a9e19e3]{border-collapse:collapse;background:#0a1628;border-radius:4px;width:100%;font-size:12px;overflow:hidden}.point-table th[data-v-9a9e19e3]{text-align:left;color:#6a9aaa;white-space:nowrap;background:#0d2137;border-bottom:1px solid #1a3858;padding:6px 10px;font-weight:600}.point-table td[data-v-9a9e19e3]{color:#c8d6e5;border-bottom:1px solid #152a40;padding:5px 10px}.point-table tr:last-child td[data-v-9a9e19e3]{border-bottom:none}.point-table tbody tr:hover td[data-v-9a9e19e3]{background:#1a4a7a1f}.user-page[data-v-ebfe1975]{flex-direction:column;max-width:1200px;height:100%;margin:0 auto;display:flex}.page-header[data-v-ebfe1975]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-ebfe1975]{color:#e0e8f0;font-size:18px;font-weight:600}.header-actions[data-v-ebfe1975]{gap:8px;display:flex}.loading[data-v-ebfe1975]{text-align:center;color:#6a8aaa;padding:40px}.user-table[data-v-ebfe1975]{border-collapse:collapse;background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:8px;width:100%}.user-table th[data-v-ebfe1975]{text-align:left;color:#6a9aaa;white-space:nowrap;background:#0d2137;border-bottom:1px solid #1a3858;padding:12px 16px;font-size:13px;font-weight:600}.user-table td[data-v-ebfe1975]{color:#c8d6e5;border-bottom:1px solid #152a40;padding:10px 16px;font-size:13px}.user-table tr:last-child td[data-v-ebfe1975]{border-bottom:none}.user-table tr:hover td[data-v-ebfe1975]{background:#1a4a7a26}.role-badge[data-v-ebfe1975]{color:#8ab4d6;background:#1a3a5c;border-radius:10px;margin:1px 3px;padding:2px 8px;font-size:11px;display:inline-block}.status-on[data-v-ebfe1975]{color:#4af4a4}.status-off[data-v-ebfe1975]{color:#6a8aaa}.time-col[data-v-ebfe1975]{color:#6a8aaa;font-family:monospace;font-size:12px}.action-col[data-v-ebfe1975]{white-space:nowrap;gap:6px;display:flex}.btn-primary[data-v-ebfe1975]{cursor:pointer;white-space:nowrap;color:#fff;background:linear-gradient(135deg,#1a4a7a,#2a6a9a);border:1px solid #2a6a9a;border-radius:4px;padding:8px 20px;font-size:13px;transition:all .2s}.btn-primary[data-v-ebfe1975]:hover{background:linear-gradient(135deg,#2a5a8a,#3a7aaa);border-color:#4a9af4}.btn-sm[data-v-ebfe1975]{color:#8ab4d6;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #2a5a8a;border-radius:3px;padding:4px 12px;font-size:12px;transition:all .2s}.btn-sm[data-v-ebfe1975]:hover{color:#fff;background:#1a4a7a;border-color:#4a9af4}.btn-sm[data-v-ebfe1975]:disabled{opacity:.5;cursor:not-allowed}.btn-danger[data-v-ebfe1975]{color:#f46060;border-color:#5a2a2a}.btn-danger[data-v-ebfe1975]:hover{background:#3a1a1a;border-color:#f46060}.btn-cancel[data-v-ebfe1975]{color:#8ab4d6;cursor:pointer;background:0 0;border:1px solid #2a5a8a;border-radius:4px;padding:8px 20px;font-size:13px}.btn-close[data-v-ebfe1975]{color:#6a8aaa;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.modal-overlay[data-v-ebfe1975]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-ebfe1975]{background:#0e1e30;border:1px solid #1a3858;border-radius:8px;width:420px;padding:24px}.modal-header[data-v-ebfe1975]{color:#70a8c8;justify-content:space-between;align-items:center;margin-bottom:20px;font-size:16px;font-weight:600;display:flex}.modal-body .field[data-v-ebfe1975]{margin-bottom:16px}.modal-body label[data-v-ebfe1975]{color:#8ab4d6;margin-bottom:4px;font-size:13px;display:block}.modal-body input[type=text][data-v-ebfe1975],.modal-body input[type=password][data-v-ebfe1975]{color:#c8d6e5;box-sizing:border-box;background:#0a1a28;border:1px solid #1a3858;border-radius:4px;outline:none;width:100%;padding:8px 12px;font-size:14px}.modal-body input[data-v-ebfe1975]:focus{border-color:#4a9af4}.modal-body input[data-v-ebfe1975]:disabled{opacity:.5}.modal-desc[data-v-ebfe1975]{color:#6a8aaa;margin-bottom:12px;font-size:13px}.role-list[data-v-ebfe1975]{flex-direction:column;gap:8px;display:flex}.role-item[data-v-ebfe1975]{cursor:pointer;border:1px solid #1a3858;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;transition:all .2s;display:flex}.role-item[data-v-ebfe1975]:hover{background:#1a385833;border-color:#2a5a8a}.role-item.selected[data-v-ebfe1975]{background:#1a4a7a4d;border-color:#4a9af4}.role-item input[data-v-ebfe1975]{accent-color:#4a9af4}.role-info[data-v-ebfe1975]{flex-direction:column;gap:2px;display:flex}.role-name[data-v-ebfe1975]{color:#c8d6e5;font-size:14px}.role-desc[data-v-ebfe1975]{color:#6a8aaa;font-size:11px}.error[data-v-ebfe1975]{color:#f46060;margin-bottom:12px;font-size:13px}.modal-footer[data-v-ebfe1975]{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.fade-enter-active[data-v-ebfe1975],.fade-leave-active[data-v-ebfe1975]{transition:opacity .2s}.fade-enter-from[data-v-ebfe1975],.fade-leave-to[data-v-ebfe1975]{opacity:0}.login-page[data-v-96802a10]{background:radial-gradient(#0d2137,#060e18);justify-content:center;align-items:center;height:100%;display:flex}.login-card[data-v-96802a10]{background:linear-gradient(135deg,#0e1e30,#112438);border:1px solid #1a3858;border-radius:12px;width:360px;padding:40px}.login-title[data-v-96802a10]{text-align:center;background:linear-gradient(90deg,#70a8c8,#a0c8d8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:32px;font-size:22px;font-weight:700}.field[data-v-96802a10]{margin-bottom:20px}.field label[data-v-96802a10]{color:#8ab4d6;margin-bottom:6px;font-size:13px;display:block}.field input[data-v-96802a10]{color:#c8d6e5;box-sizing:border-box;background:#0a1a28;border:1px solid #1a3858;border-radius:6px;outline:none;width:100%;padding:10px 12px;font-size:14px}.field input[data-v-96802a10]:focus{border-color:#4a9af4}.error[data-v-96802a10]{color:#f46060;margin-bottom:12px;font-size:13px}.login-btn[data-v-96802a10]{color:#fff;cursor:pointer;background:linear-gradient(90deg,#1a5a8a,#2a7aaa);border:none;border-radius:6px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:all .2s}.login-btn[data-v-96802a10]:hover{background:linear-gradient(90deg,#2a6a9a,#3a8aba)}.login-btn[data-v-96802a10]:disabled{opacity:.6;cursor:not-allowed}*{box-sizing:border-box;margin:0;padding:0}body{color:#c8d6e5;background:#0a1628;font-family:Microsoft YaHei,PingFang SC,-apple-system,sans-serif;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0d2137}::-webkit-scrollbar-thumb{background:#2a5a8a;border-radius:3px}
