@charset "UTF-8";.toast-container[data-v-d1710bba]{position:fixed;top:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-item[data-v-d1710bba]{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:240px;max-width:400px;padding:12px 16px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--primary);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-primary);font-size:14px;cursor:pointer;box-shadow:0 8px 24px #00000059}.toast-icon[data-v-d1710bba]{flex:0 0 20px;text-align:center;font-weight:700;font-size:13px;letter-spacing:-.5px}.toast-message[data-v-d1710bba]{flex:1;line-height:1.4;word-break:break-word}.toast-close[data-v-d1710bba]{flex:0 0 auto;width:20px;height:20px;border:none;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:4px;transition:all .2s}.toast-close[data-v-d1710bba]:hover{background:#ffffff14;color:var(--text-primary)}.toast-success[data-v-d1710bba]{border-left-color:var(--success)}.toast-success .toast-icon[data-v-d1710bba]{color:var(--success)}.toast-warning[data-v-d1710bba]{border-left-color:var(--warning)}.toast-warning .toast-icon[data-v-d1710bba]{color:var(--warning)}.toast-error[data-v-d1710bba]{border-left-color:var(--error)}.toast-error .toast-icon[data-v-d1710bba]{color:var(--error)}.toast-info[data-v-d1710bba]{border-left-color:var(--primary)}.toast-info .toast-icon[data-v-d1710bba]{color:var(--primary)}.toast-enter-active[data-v-d1710bba],.toast-leave-active[data-v-d1710bba]{transition:all .3s ease}.toast-enter-from[data-v-d1710bba],.toast-leave-to[data-v-d1710bba]{opacity:0;transform:translate(40px)}.node-label[data-v-26c37dc1]{display:flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;color:var(--text-primary);font-size:13px;border-radius:6px;transition:background .2s}.node-label[data-v-26c37dc1]:hover{background:var(--row-hover)}.node-label.selected[data-v-26c37dc1]{background:#00d4ff26;color:var(--primary)}.node-arrow[data-v-26c37dc1]{font-size:10px;color:var(--text-secondary);width:16px;flex-shrink:0}.node-arrow-placeholder[data-v-26c37dc1]{width:16px;flex-shrink:0}.node-name[data-v-26c37dc1]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-stats[data-v-26c37dc1]{font-size:11px;color:var(--text-secondary);flex-shrink:0}.node-children[data-v-26c37dc1]{display:flex;flex-direction:column}.node-actions[data-v-26c37dc1]{display:flex;gap:4px;align-items:center;margin-left:8px}.node-action-btn[data-v-26c37dc1]{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:6px;line-height:1;transition:all .2s}.node-action-btn[data-v-26c37dc1]:hover{background:#00d4ff26;border-color:#00d4ff4d;color:var(--primary)}.node-action-btn.danger[data-v-26c37dc1]:hover{background:#f56c6c26;border-color:#f56c6c4d;color:#f56c6c}.customer-tree[data-v-675acfa2]{max-height:400px;overflow-y:auto;padding:8px 0}.tree-loading[data-v-675acfa2],.tree-empty[data-v-675acfa2]{text-align:center;color:var(--text-secondary);padding:20px;font-size:13px}.tree-list[data-v-675acfa2]{display:flex;flex-direction:column}.layout[data-v-1896d33a]{background:var(--bg-page);transition:background-color .25s ease;display:flex;min-height:100vh}.sidebar.hidden[data-v-1896d33a]{display:none}.sidebar[data-v-1896d33a]{width:220px;background:var(--bg-sidebar);border-right:1px solid var(--border-sidebar);padding:20px 0;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;transition:width .3s ease}.sidebar.collapsed[data-v-1896d33a]{width:64px}.logo[data-v-1896d33a]{display:flex;align-items:center;padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:16px}.logo-icon[data-v-1896d33a]{font-size:24px;margin-right:8px}.logo-text[data-v-1896d33a]{font-size:20px;font-weight:700;background:linear-gradient(135deg,var(--primary),#7b61ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar.collapsed .logo[data-v-1896d33a]{padding:0 16px 16px;justify-content:center}.sidebar.collapsed .logo .logo-icon[data-v-1896d33a]{margin-right:0}.collapse-btn[data-v-1896d33a]{align-self:flex-end;margin:0 16px 16px 0;padding:2px 8px;background:var(--border);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:12px;transition:all .3s}.collapse-btn[data-v-1896d33a]:hover{background:#ffffff1f;color:var(--text-primary)}.sidebar.collapsed .collapse-btn[data-v-1896d33a]{align-self:center;margin:0 0 16px}.menu[data-v-1896d33a]{flex:1;padding:0 16px;overflow-y:auto}.menu-item-wrapper[data-v-1896d33a]{margin-bottom:2px}.menu-item[data-v-1896d33a]{display:flex;align-items:center;padding:10px 16px;border-radius:8px;cursor:pointer;color:var(--text-secondary);transition:all .2s;margin-bottom:2px}.menu-item[data-v-1896d33a]:hover{background:var(--border);color:var(--text-primary)}.menu-item.active[data-v-1896d33a]{background:#00d4ff26;color:var(--primary);border-left:3px solid var(--primary)}.menu-icon[data-v-1896d33a]{font-size:18px;margin-right:16px;width:24px;text-align:center;flex-shrink:0}.menu-label[data-v-1896d33a]{font-size:14px;font-weight:500;white-space:nowrap}.menu-item.child[data-v-1896d33a]{padding-left:24px;margin-left:16px}.menu-item.child.active[data-v-1896d33a]{background:#00d4ff26;color:var(--primary);border-left:3px solid var(--primary)}.sidebar.collapsed .menu-item[data-v-1896d33a]{justify-content:center;padding:10px 0}.sidebar.collapsed .menu-item .menu-icon[data-v-1896d33a]{margin-right:0}.sidebar.collapsed .menu-item .menu-label[data-v-1896d33a]{display:none}.sidebar.collapsed .menu-item.child[data-v-1896d33a]{padding-left:0}.menu-group .menu-group-header[data-v-1896d33a]{display:flex;align-items:center;padding:10px 16px;border-radius:8px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.menu-group .menu-group-header[data-v-1896d33a]:hover{background:var(--border);color:var(--text-primary)}.menu-group .menu-group-header .menu-icon[data-v-1896d33a]{font-size:18px;margin-right:16px;width:24px;text-align:center;flex-shrink:0}.menu-group .menu-group-header .menu-label[data-v-1896d33a]{flex:1;font-size:14px;font-weight:500;white-space:nowrap}.menu-group .menu-group-header .menu-arrow[data-v-1896d33a]{font-size:12px;color:var(--text-secondary)}.menu-group .menu-group-children[data-v-1896d33a]{padding-left:24px}.sidebar.collapsed .menu-group .menu-group-header[data-v-1896d33a]{justify-content:center;padding:10px 0}.sidebar.collapsed .menu-group .menu-group-header .menu-label[data-v-1896d33a],.sidebar.collapsed .menu-group .menu-group-header .menu-arrow[data-v-1896d33a]{display:none}.sidebar.collapsed .menu-group .menu-group-header .menu-icon[data-v-1896d33a]{margin-right:0}.sidebar.collapsed .menu-group .menu-group-children[data-v-1896d33a]{display:none}.sidebar-footer[data-v-1896d33a]{padding:16px 20px;border-top:1px solid var(--border-sidebar);text-align:center}.sidebar-footer .version[data-v-1896d33a]{font-size:12px;color:var(--text-secondary)}.sidebar.collapsed .sidebar-footer[data-v-1896d33a]{padding:16px 0}.main[data-v-1896d33a]{width:100%;flex:1;display:flex;flex-direction:column;min-height:100vh;transition:all .3s ease}.header[data-v-1896d33a]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-header);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .25s ease}.header-left .breadcrumb[data-v-1896d33a]{font-size:18px;font-weight:600;color:var(--text-primary)}.header-sub[data-v-1896d33a]{font-size:12px;color:var(--text-secondary);margin-left:12px}.header-center[data-v-1896d33a]{flex:1;display:flex;justify-content:center;align-items:center}.btn-fullscreen-header[data-v-1896d33a]{padding:4px 14px;background:#00d4ff1a;border:1px solid rgba(0,212,255,.2);border-radius:6px;color:var(--primary);font-size:12px;cursor:pointer;transition:all .3s}.btn-fullscreen-header[data-v-1896d33a]:hover{background:#00d4ff33}.header-right[data-v-1896d33a]{display:flex;align-items:center;gap:24px}.header-time[data-v-1896d33a]{color:var(--text-secondary);font-size:13px}.header-notification[data-v-1896d33a]{font-size:18px;cursor:pointer;position:relative}.header-notification[data-v-1896d33a]:after{content:"";position:absolute;top:-2px;right:-4px;width:6px;height:6px;background:#f56c6c;border-radius:50%}.header-user[data-v-1896d33a]{color:var(--text-primary);font-size:14px;cursor:pointer}.theme-toggle-btn[data-v-1896d33a]{background:#00d4ff1f;border:1px solid rgba(0,212,255,.25);color:var(--primary);padding:4px 10px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s;margin-right:8px}.theme-toggle-btn[data-v-1896d33a]:hover{background:#00d4ff33}.pwd-btn[data-v-1896d33a]{background:#00d4ff1f;border:1px solid rgba(0,212,255,.25);color:var(--primary);padding:4px 14px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .3s;margin-right:8px}.pwd-btn[data-v-1896d33a]:hover{background:#00d4ff33}.logout-btn[data-v-1896d33a]{background:#ff6b6b26;border:1px solid rgba(255,107,107,.25);color:#f56c6c;padding:4px 14px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .3s}.logout-btn[data-v-1896d33a]:hover{background:#ff6b6b40}.content[data-v-1896d33a]{flex:1;padding:24px}.customer-dropdown[data-v-1896d33a]{position:relative}.customer-btn[data-v-1896d33a]{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--border);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .3s}.customer-btn[data-v-1896d33a]:hover{background:#ffffff1a}.customer-tree-panel[data-v-1896d33a]{position:absolute;top:100%;right:0;margin-top:6px;min-width:240px;background:var(--bg-modal);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-card);z-index:999}.customer-tree-panel[data-v-1896d33a]{position:absolute;top:100%;right:0;margin-top:6px;min-width:280px;background:var(--bg-modal);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-card);z-index:999}.modal-overlay[data-v-1896d33a]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-box[data-v-1896d33a]{background:#1a1e2e;border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 30px #00000080;padding:20px}.modal-header[data-v-1896d33a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-title[data-v-1896d33a]{font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close[data-v-1896d33a]{background:transparent;border:none;color:var(--text-secondary);font-size:18px;cursor:pointer}.modal-body[data-v-1896d33a]{display:flex;flex-direction:column;gap:12px}.form-group[data-v-1896d33a]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-1896d33a]{font-size:13px;color:var(--text-secondary)}.required[data-v-1896d33a]{color:#f56c6c}.form-input[data-v-1896d33a],.form-select[data-v-1896d33a]{padding:8px 12px;background:var(--border);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:13px;outline:none;width:100%}.form-select[data-v-1896d33a]:disabled{opacity:.5;cursor:not-allowed}.modal-footer[data-v-1896d33a]{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn-cancel[data-v-1896d33a]{padding:6px 16px;background:var(--border);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer}.btn-confirm[data-v-1896d33a]{padding:6px 16px;background:#00d4ff26;border:1px solid rgba(0,212,255,.25);border-radius:6px;color:var(--primary);cursor:pointer}.btn-confirm[data-v-1896d33a]:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.sidebar[data-v-1896d33a]{width:150px!important;padding:12px 0!important}.sidebar.collapsed[data-v-1896d33a]{width:48px!important}.logo[data-v-1896d33a]{padding:0 12px 12px!important;margin-bottom:10px!important}.logo-icon[data-v-1896d33a]{font-size:18px!important;margin-right:4px!important}.logo-text[data-v-1896d33a]{font-size:14px!important}.menu[data-v-1896d33a]{padding:0 6px!important}.menu-item[data-v-1896d33a]{padding:8px!important;border-radius:6px!important}.menu-icon[data-v-1896d33a]{font-size:15px!important;margin-right:8px!important;width:18px!important}.menu-label[data-v-1896d33a]{font-size:12px!important}.menu-item.child[data-v-1896d33a]{padding-left:12px!important;margin-left:6px!important}.menu-group .menu-group-header[data-v-1896d33a]{padding:8px!important}.menu-group .menu-group-header .menu-icon[data-v-1896d33a]{font-size:15px!important;margin-right:8px!important;width:18px!important}.menu-group .menu-group-header .menu-label[data-v-1896d33a]{font-size:12px!important}.menu-group .menu-group-children[data-v-1896d33a]{padding-left:10px!important}.collapse-btn[data-v-1896d33a]{margin:0 8px 10px 0!important;padding:2px 6px!important;font-size:11px!important}.header[data-v-1896d33a]{padding:10px 12px!important}}:root,[data-theme=light]{--bg-page: #f5f7fa;--bg-card: #ffffff;--bg-modal: #ffffff;--bg-card-hover: #fafafa;--bg-sidebar: #001529;--bg-sidebar-hover: #1890ff;--border-sidebar: #1f2d3d;--bg-header: #ffffff;--text-primary: #262626;--text-secondary: #595959;--text-tertiary: #bfbfbf;--text-inverse: #ffffff;--border: #e8e8e8;--border-light: #f0f0f0;--border-input: #d9d9d9;--bg-table-header: #fafafa;--primary: #1890ff;--primary-hover: #40a9ff;--success: #52c41a;--warning: #faad14;--error: #f5222d;--row-hover: #e6f7ff;--row-selected: #bae7ff;--shadow-card: 0 1px 4px rgba(0,0,0,.06);--shadow-modal: 0 6px 24px rgba(0,0,0,.12)}[data-theme=dark]{--bg-page: #0A0E1A;--bg-card: rgba(255,255,255,.04);--bg-modal: #1a1f2e;--bg-card-hover: rgba(255,255,255,.06);--bg-sidebar: #0A0E1A;--bg-sidebar-hover: rgba(0,212,255,.15);--border-sidebar: rgba(255,255,255,.06);--bg-header: rgba(10,14,26,.95);--text-primary: #E8EDF5;--text-secondary: #A6B4C7;--text-tertiary: #6B7A8F;--text-inverse: #0A0E1A;--border: rgba(255,255,255,.06);--border-light: rgba(255,255,255,.04);--border-input: rgba(255,255,255,.12);--bg-table-header: rgba(255,255,255,.02);--primary: #00D4FF;--primary-hover: #40DCFF;--success: #00E896;--warning: #FFB347;--error: #FF6B6B;--row-hover: rgba(255,255,255,.02);--row-selected: rgba(0,212,255,.08);--shadow-card: 0 4px 16px rgba(0,0,0,.4);--shadow-modal: 0 16px 64px rgba(0,0,0,.6)}.data-table th,.device-table th,.alarm-table th,table thead th{background:var(--bg-table-header)!important}.source-tab.active,.tab-btn.active,.sub-tab.active,.time-btn.active{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.tab-btn.active .tab-count,.sub-tab.active .tab-count{background:#ffffff40!important;color:#fff!important}.data-table td,.device-table td,.alarm-table td,table tbody td{border-bottom:1px solid var(--border-light)!important}.data-table th,.device-table th,.alarm-table th,table thead th{border-bottom:1px solid var(--border)!important}.modal-box{background:var(--bg-modal)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-modal)!important}.modal-header,.modal-footer{border-color:var(--border)!important}.modal-title{color:var(--text-primary)!important}.form-input,.form-select,.form-textarea{background:var(--bg-card)!important;border:1px solid var(--border-input)!important;color:var(--text-primary)!important}[data-theme=light] .modal-box .form-input,[data-theme=light] .modal-box .form-select,[data-theme=light] .modal-box .form-textarea,html:not([data-theme]) .modal-box .form-input,html:not([data-theme]) .modal-box .form-select,html:not([data-theme]) .modal-box .form-textarea{background:#fff!important}[data-theme=dark] .modal-box .form-input,[data-theme=dark] .modal-box .form-select,[data-theme=dark] .modal-box .form-textarea{background:#252b3d!important}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary)!important}.modal-box label{color:var(--text-primary)!important}.form-select option,.filter-select option,.page-size-select option{background:var(--bg-card)!important;color:var(--text-primary)!important}.action-menu{background:var(--bg-card)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-card)!important}.action-menu .btn-detail,.action-menu .btn-delete{color:var(--text-primary)!important}.action-menu .btn-detail:hover,.action-menu .btn-delete:hover{background:var(--row-hover)!important}.data-table th,.device-table th,.alarm-table th,table thead th{font-size:13px!important;font-weight:600!important;letter-spacing:0!important}.data-table td,.device-table td,.alarm-table td,table tbody td{font-size:14px!important}.btn-set,.btn-preset,.btn-confirm{background:var(--primary)!important;color:#fff!important;border:none!important;border-radius:8px!important;font-weight:500!important;transition:all .2s!important}.btn-set:hover,.btn-preset:hover,.btn-confirm:hover{background:var(--primary-hover)!important;transform:translateY(-1px)}.value-input,.form-input,.form-select,.form-textarea,.search-input,.filter-select{background:var(--bg-card)!important;border:1px solid var(--border-input)!important;border-radius:8px!important;color:var(--text-primary)!important;transition:all .2s!important}.value-input:focus,.form-input:focus,.form-select:focus,.form-textarea:focus,.search-input:focus,.filter-select:focus{background:var(--bg-card)!important;border-color:var(--primary)!important;outline:none!important;box-shadow:0 0 0 2px #1890ff1f!important}.param-card,.info-card,.health-card,.backup-power-card,.chart-box,.soc-section,.alarm-section,.settings-card{border-radius:12px!important;box-shadow:0 1px 4px #0000000a!important;border:1px solid var(--border-light)!important;background:var(--bg-card)!important}.table-wrap{border-radius:12px!important;border:1px solid var(--border-light)!important;box-shadow:0 1px 4px #0000000a!important}.modal-box{border-radius:16px!important;box-shadow:0 12px 48px #0000001f!important;border:1px solid var(--border-light)!important}.page-btns button,.page-btns button.active{border-radius:6px!important}.sidebar,.sidebar .menu,.sidebar .menu-group{color:#ffffffd9!important}.sidebar .menu-item,.sidebar .menu-group-header{color:#ffffffbf!important}.sidebar .menu-item:hover,.sidebar .menu-group-header:hover{color:#fff!important;background:#ffffff14!important}.sidebar .menu-item.active,.sidebar .menu-item.child.active{color:#fff!important;background:var(--primary)!important;border-left-color:#fff!important}.sidebar .collapse-btn{color:#ffffffbf!important}.sidebar .collapse-btn:hover{color:#fff!important}.sidebar .menu-arrow,.sidebar-footer .version,.sidebar .version{color:#ffffff80!important}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Helvetica Neue,Helvetica,Arial,sans-serif;background:var(--bg-page);color:var(--text-primary);font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color .25s ease,color .25s ease}body{background:var(--bg-page)}#app{min-height:100vh}@media (max-width: 768px){.page-header,.toolbar,.param-row,.form-grid,.header-right,.toolbar-left,.toolbar-right{flex-wrap:wrap!important}.value-input,.value-select,.form-input,.form-select,.search-input{width:100%!important;max-width:100%!important;box-sizing:border-box}.modal-box{width:92vw!important;max-width:92vw!important;max-height:88vh;overflow-y:auto}.data-table{display:block;overflow-x:auto;white-space:nowrap}.tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.param-grid{grid-template-columns:1fr!important}.stat-row{grid-template-columns:1fr 1fr!important;gap:8px!important}.cards-row,.param-row{grid-template-columns:1fr!important}.pagination-wrap{flex-wrap:wrap;gap:8px;justify-content:center}.btn-set,.btn-read-single,.btn-preset,.btn-edit,.btn-delete,.btn-detail{padding:8px 12px;font-size:13px}.header-left,.header-right{width:100%;justify-content:flex-start}.content{padding:12px}}
