@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Georgia&display=swap";:root{--bg-primary:#0b1020;--bg-secondary:#0f172a;--bg-card:#0f172ad9;--bg-card-solid:#0f172a;--bg-hover:#1e293bcc;--accent-cyan:#67e8f9;--accent-teal:#2dd4bf;--accent-blue:#38bdf8;--accent-gradient:linear-gradient(135deg, #67e8f9 0%, #2dd4bf 100%);--accent-glow:#67e8f91f;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border-subtle:#94a3b826;--border-accent:#67e8f959;--success:#4ade80;--warning:#facc15;--danger:#f87171;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-card:0 8px 32px #0006;--shadow-glow:0 0 40px #67e8f914;--font-display:Georgia, "Times New Roman", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}body:before{content:"";background:radial-gradient(circle at 0% 0%, #6366f11f 0%, transparent 35%), radial-gradient(circle at 100% 0%, #10b9811a 0%, transparent 30%), radial-gradient(circle at 50% 50%, #67e8f90d 0%, transparent 50%), var(--bg-primary);pointer-events:none;z-index:-1;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:-1;background-image:repeating-linear-gradient(90deg,#94a3b808 0 1px,#0000 1px 96px),repeating-linear-gradient(#94a3b805 0 1px,#0000 1px 96px);position:fixed;inset:0}.login-page{background:0 0;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-box{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px)saturate(150%);backdrop-filter:blur(20px)saturate(150%);width:400px;box-shadow:inset 0 1px #ffffff0d, var(--shadow-card), var(--shadow-glow);background:linear-gradient(145deg,#0f172ae6,#080c16f2);padding:44px 40px;position:relative;overflow:hidden}.login-box:before{content:"";border-left:2px solid var(--accent-cyan);border-top:2px solid var(--accent-cyan);opacity:.5;width:24px;height:24px;position:absolute;top:12px;left:12px}.login-box:after{content:"";border-right:2px solid var(--accent-teal);border-bottom:2px solid var(--accent-teal);opacity:.5;width:24px;height:24px;position:absolute;bottom:12px;right:12px}.login-logo{text-align:center;margin-bottom:32px}.brand-text{flex-direction:column;gap:2px;display:inline-flex}.brand-text-main{font-family:var(--font-display);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.brand-text-1{color:var(--text-primary)}.brand-text-2{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.brand-text-sub{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-top:6px;font-size:10px;font-weight:600}.login-form{flex-direction:column;gap:18px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--text-secondary);letter-spacing:.02em;font-size:12px;font-weight:500}.form-input{width:100%;font-size:14px;font-family:var(--font-body);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);background:linear-gradient(145deg,#0a0f1ecc,#050812e6);padding:12px 14px;transition:all .2s}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent-cyan);outline:none;box-shadow:0 0 0 3px #67e8f91a}.btn-login{width:100%;font-size:14px;font-weight:500;font-family:var(--font-body);letter-spacing:.04em;color:#0f172a;background:var(--accent-gradient);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:13px 20px;transition:all .25s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 14px #67e8f940}.btn-login:after{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);transition:transform .5s;position:absolute;inset:0;transform:translate(-100%)}.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 24px #67e8f959}.btn-login:hover:after{transform:translate(100%)}.btn-login:active{transform:translateY(0)}.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-error{text-align:center;color:var(--danger);border-radius:var(--radius-sm);background:#f871711a;border:1px solid #f8717133;padding:8px;font-size:13px}.app-sidebar{border-right:1px solid var(--border-subtle);z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#0f172af2 0%,#080c16fa 100%);flex-direction:column;width:220px;min-height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{border-bottom:1px solid var(--border-subtle);padding:24px 20px}.sidebar-brand{flex-direction:column;gap:3px;display:flex}.sidebar-brand-name{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;font-size:16px;font-weight:700}.sidebar-brand-sub{letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);font-size:9px;font-weight:600}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-item{color:var(--text-secondary);border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:10px;margin:2px 10px;padding:11px 16px;font-size:13px;font-weight:400;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:var(--text-primary);background:var(--accent-glow);border-color:#67e8f926}.nav-item-active,.nav-item-active{color:var(--accent-cyan);background:var(--accent-glow);border-color:#67e8f940}.sidebar-user{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sidebar-user .username{color:var(--text-secondary);font-size:12px;font-weight:500}.btn-logout{color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:5px 12px;font-size:11px;font-weight:500;transition:all .2s}.btn-logout:hover{color:var(--danger);background:#f8717114;border-color:#f8717166}.app-main{flex:1;min-height:100vh;margin-left:220px;padding:24px}.page-header{border-bottom:1px solid var(--border-subtle);margin-bottom:24px;padding-bottom:16px}.page-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:2px;font-size:20px;font-weight:600}.page-subtitle{color:var(--text-muted);font-size:12px}.dark-card{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px;transition:all .25s;position:relative}.dark-card:hover{border-color:var(--border-accent);box-shadow:inset 0 1px #ffffff08, var(--shadow-card)}.stat-card{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px;transition:all .25s;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--accent-gradient);opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--border-accent);transform:translateY(-2px)}.stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:8px;font-size:10px;font-weight:600}.stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.stat-value .unit{color:var(--text-muted);margin-left:4px;font-size:12px;font-weight:400}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b826;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b840}.feature-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:24px;display:grid}.feature-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(145deg,#0f172ae6,#080c16f2);flex-direction:column;gap:16px;padding:22px;transition:all .3s cubic-bezier(.2,.7,.2,1);display:flex;position:relative;overflow:hidden}.feature-card:before{content:"";border-left:2px solid var(--accent-cyan);border-top:2px solid var(--accent-cyan);opacity:0;width:20px;height:20px;transition:opacity .3s;position:absolute;top:0;left:0}.feature-card:after{content:"";border-right:2px solid var(--accent-teal);border-bottom:2px solid var(--accent-teal);opacity:0;width:20px;height:20px;transition:opacity .3s;position:absolute;bottom:0;right:0}.feature-card:hover{border-color:#67e8f966;transform:translateY(-3px);box-shadow:0 0 0 1px #67e8f91a,0 12px 32px #0000004d,0 0 40px #67e8f914}.feature-card:hover:before,.feature-card:hover:after{opacity:.6}.feature-icon{width:40px;height:40px;color:var(--accent-cyan);background:linear-gradient(135deg,#67e8f91a,#2dd4bf0d);border:1px solid #67e8f933;border-radius:10px;justify-content:center;align-items:center;font-size:18px;display:flex}.feature-content{flex:1}.feature-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;margin-bottom:6px;font-size:16px;font-weight:600}.feature-desc{color:var(--text-muted);font-size:12px;line-height:1.6}.feature-stat{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.feature-stat .unit{color:var(--text-muted);margin-left:4px;font-size:13px;font-weight:400}.sidebar-brand-name .brand-prefix{color:#f97316;font-weight:700}.sidebar-brand-sub{color:#f97316;opacity:.7}.app-layout[data-v-d353d954]{height:100vh;display:flex}.app-sidebar[data-v-d353d954]{background:#16213e;flex-direction:column;width:200px;display:flex}.sidebar-logo[data-v-d353d954]{border-bottom:1px solid #ffffff1a;padding:20px 15px}.sidebar-brand-name[data-v-d353d954]{color:#e0e0e0;font-size:16px;font-weight:700}.brand-prefix[data-v-d353d954]{color:#67e8f9}.sidebar-brand-sub[data-v-d353d954]{color:#888;margin-top:2px;font-size:11px}.sidebar-nav[data-v-d353d954]{flex-direction:column;flex:1;padding:10px 0;display:flex}.nav-item[data-v-d353d954]{color:#a0a0a0;padding:12px 15px;font-size:14px;text-decoration:none;transition:all .3s}.nav-item[data-v-d353d954]:hover,.nav-item-active[data-v-d353d954]{color:#67e8f9;background:#e9456026;border-left:3px solid #67e8f9}.nav-admin[data-v-d353d954]{border-top:1px solid #ffffff1a;margin-top:5px;padding-top:15px}.sidebar-user[data-v-d353d954]{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:15px;display:flex}.username[data-v-d353d954]{color:#aaa;font-size:13px}.btn-logout[data-v-d353d954]{color:#67e8f9;cursor:pointer;background:0 0;border:1px solid #67e8f9;border-radius:3px;padding:4px 12px;font-size:12px}.app-main[data-v-d353d954]{background:#0f0f1a;flex:1;overflow-y:auto}.tree-node[data-v-8d4db0a8]{padding-left:20px;position:relative}.node-header[data-v-8d4db0a8]{cursor:pointer;border-radius:4px;align-items:center;gap:5px;padding:5px 10px;display:flex}.node-header[data-v-8d4db0a8]:hover{background:#e8f4ff}.arrow[data-v-8d4db0a8]{color:#666;font-size:10px;transition:transform .2s}.arrow.expanded[data-v-8d4db0a8]{transform:rotate(90deg)}.arrow-placeholder[data-v-8d4db0a8]{width:10px;display:inline-block}.name[data-v-8d4db0a8]{color:#333;font-weight:500}.type[data-v-8d4db0a8]{color:#999;font-size:12px}.child-count[data-v-8d4db0a8]{color:#1890ff;margin-left:5px;font-size:12px}.children[data-v-8d4db0a8]{border-left:1px solid #d0e8ff;margin-left:10px}.context-menu[data-v-8d4db0a8]{background:#fff;border:1px solid #e8e8e8;border-radius:6px;min-width:120px;padding:4px 0;box-shadow:0 2px 12px #0000001a}.menu-item[data-v-8d4db0a8]{cursor:pointer;color:#333;padding:8px 16px;font-size:14px}.menu-item[data-v-8d4db0a8]:hover{background:#f5f5f5}.menu-item.danger[data-v-8d4db0a8]{color:#ff4d4f}.menu-item.danger[data-v-8d4db0a8]:hover{background:#fff2f0}.structure-view[data-v-a1aa7b2f]{height:100%;padding:20px;overflow:auto}.header[data-v-a1aa7b2f]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-a1aa7b2f]{color:#333;margin:0}.actions[data-v-a1aa7b2f]{gap:20px;display:flex}.time-select[data-v-a1aa7b2f]{background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px 12px}.btn-refresh[data-v-a1aa7b2f]{color:#fff;cursor:pointer;background:#5470c6;border:none;border-radius:4px;padding:8px 16px}.stats-grid[data-v-a1aa7b2f]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-a1aa7b2f]{text-align:center;background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.stat-value[data-v-a1aa7b2f]{color:#5470c6;font-size:28px;font-weight:700}.stat-label[data-v-a1aa7b2f]{color:#888;margin-top:4px;font-size:13px}.charts-grid[data-v-a1aa7b2f]{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.chart-card[data-v-a1aa7b2f]{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.chart-card h3[data-v-a1aa7b2f]{color:#333;margin:0 0 12px;font-size:15px}.chart[data-v-a1aa7b2f]{height:200px}.structure-tree[data-v-a1aa7b2f]{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.structure-tree h3[data-v-a1aa7b2f]{color:#333;margin:0 0 12px;font-size:15px}.tree-wrapper[data-v-a1aa7b2f]{min-height:100px}.loading[data-v-a1aa7b2f]{text-align:center;color:#888;padding:20px}.node-detail-panel[data-v-a1aa7b2f]{background:#fff;border-radius:8px;margin-top:16px;padding:16px;box-shadow:0 2px 8px #00000014}.node-detail-panel h3[data-v-a1aa7b2f]{color:#333;margin:0 0 12px}.detail-grid[data-v-a1aa7b2f]{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.detail-item[data-v-a1aa7b2f]{gap:8px;display:flex}.detail-item label[data-v-a1aa7b2f]{color:#888}.detail-item span[data-v-a1aa7b2f]{color:#333}.station-view[data-v-5d25f239]{height:100%;padding:20px;overflow:auto}.header[data-v-5d25f239]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-5d25f239]{margin:0}.actions[data-v-5d25f239]{gap:20px;display:flex}.time-select[data-v-5d25f239]{border:1px solid #ddd;border-radius:4px;padding:8px 12px}.btn-refresh[data-v-5d25f239]{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;padding:8px 16px}.stats-grid[data-v-5d25f239]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-5d25f239]{text-align:center;background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.stat-value[data-v-5d25f239]{color:#1890ff;font-size:32px;font-weight:700}.stat-label[data-v-5d25f239]{color:#666;margin-top:5px}.stations-grid[data-v-5d25f239]{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.station-card[data-v-5d25f239]{cursor:pointer;background:#fff;border-left:4px solid #ddd;border-radius:8px;padding:20px;transition:all .3s;box-shadow:0 2px 8px #00000014}.station-card.online[data-v-5d25f239]{border-left-color:#52c41a}.station-card.offline[data-v-5d25f239]{opacity:.7;border-left-color:#ff4d4f}.station-card[data-v-5d25f239]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.station-header[data-v-5d25f239]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.station-name[data-v-5d25f239]{font-size:18px;font-weight:600}.status-badge[data-v-5d25f239]{border-radius:12px;padding:4px 12px;font-size:12px}.status-badge.online[data-v-5d25f239]{color:#52c41a;background:#f6ffed}.status-badge.offline[data-v-5d25f239]{color:#ff4d4f;background:#fff2f0}.station-info[data-v-5d25f239]{margin-bottom:20px}.info-row[data-v-5d25f239]{gap:8px;margin-bottom:8px;display:flex}.info-row .label[data-v-5d25f239]{color:#666}.info-row .value[data-v-5d25f239]{color:#333;font-weight:500}.mini-chart[data-v-5d25f239]{height:80px}.modal-overlay[data-v-5d25f239]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.station-detail-modal[data-v-5d25f239]{background:#fff;border-radius:8px;min-width:600px;max-height:80vh;padding:24px;overflow:auto}.station-detail-modal h3[data-v-5d25f239]{margin-top:0}.detail-tabs[data-v-5d25f239]{border-bottom:1px solid #eee;gap:20px;margin:20px 0;padding-bottom:10px;display:flex}.detail-tabs button[data-v-5d25f239]{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 16px}.detail-tabs button.active[data-v-5d25f239]{color:#fff;background:#1890ff}.tab-content[data-v-5d25f239]{min-height:200px}.detail-grid[data-v-5d25f239]{grid-template-columns:1fr 1fr;gap:15px;display:grid}.detail-item[data-v-5d25f239]{gap:8px;display:flex}.detail-item label[data-v-5d25f239]{color:#666}.detail-item span[data-v-5d25f239]{color:#333;font-weight:500}.chart-large[data-v-5d25f239]{height:250px}.device-list[data-v-5d25f239],.alert-list[data-v-5d25f239]{flex-direction:column;gap:20px;display:flex}.device-item[data-v-5d25f239],.alert-item[data-v-5d25f239]{background:#f5f5f5;border-radius:4px;justify-content:space-between;padding:12px;display:flex}.device-status.online[data-v-5d25f239]{color:#52c41a}.device-status.offline[data-v-5d25f239]{color:#ff4d4f}.alert-item[data-v-5d25f239]{border-left:3px solid #faad14}.no-data[data-v-5d25f239]{text-align:center;color:#999;padding:40px}.modal-actions[data-v-5d25f239]{justify-content:flex-end;margin-top:20px;display:flex}.modal-actions button[data-v-5d25f239]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px 24px}.area-energy[data-v-b7fb81f2]{background:#f5f7fa;height:100%;padding:20px;overflow:auto}.header[data-v-b7fb81f2]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-b7fb81f2]{color:#333;margin:0}.actions[data-v-b7fb81f2]{gap:20px;display:flex}.time-select[data-v-b7fb81f2]{background:#fff;border:1px solid #ddd;border-radius:4px;padding:8px 12px}.btn-refresh[data-v-b7fb81f2]{color:#fff;cursor:pointer;background:#5470c6;border:none;border-radius:4px;padding:8px 16px}.stats-grid[data-v-b7fb81f2]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-b7fb81f2]{text-align:center;background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.stat-value[data-v-b7fb81f2]{color:#5470c6;font-size:28px;font-weight:700}.stat-label[data-v-b7fb81f2]{color:#888;margin-top:4px;font-size:13px}.charts-grid[data-v-b7fb81f2]{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.chart-card[data-v-b7fb81f2]{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.chart-card.full[data-v-b7fb81f2]{grid-column:1/-1}.chart-card h3[data-v-b7fb81f2]{color:#333;margin:0 0 12px;font-size:15px}.chart[data-v-b7fb81f2]{height:200px}.data-table[data-v-b7fb81f2]{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 8px #00000014}.data-table h3[data-v-b7fb81f2]{color:#333;margin:0 0 12px;font-size:15px}table[data-v-b7fb81f2]{border-collapse:collapse;width:100%}th[data-v-b7fb81f2],td[data-v-b7fb81f2]{text-align:left;border-bottom:1px solid #eee;padding:10px 12px}th[data-v-b7fb81f2]{color:#333;background:#f8f9fa;font-weight:600}td[data-v-b7fb81f2]{color:#666}.energy-analysis[data-v-88098c90]{background:var(--bg-primary);height:100%;padding:20px;overflow:auto}.header[data-v-88098c90]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-88098c90]{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.tabs[data-v-88098c90]{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-subtle);gap:4px;margin-bottom:20px;padding:6px;display:flex}.tab[data-v-88098c90]{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;padding:8px 16px;transition:all .2s}.tab.active[data-v-88098c90]{background:var(--accent-gradient);color:#fff}.stats-grid[data-v-88098c90]{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-88098c90]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);text-align:center;padding:16px}.stat-value[data-v-88098c90]{color:var(--text-primary);font-size:24px;font-weight:700}.stat-label[data-v-88098c90]{color:var(--text-muted);margin-top:4px;font-size:12px}.charts-grid[data-v-88098c90]{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px;margin-bottom:20px;display:grid}.chart-card[data-v-88098c90]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:16px}.chart-card h3[data-v-88098c90]{color:var(--text-secondary);margin:0 0 12px;font-size:14px}.chart[data-v-88098c90]{height:220px}.data-table[data-v-88098c90]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);margin-bottom:20px;padding:16px}.data-table h3[data-v-88098c90]{color:var(--text-secondary);margin:0 0 12px;font-size:14px}table[data-v-88098c90]{border-collapse:collapse;width:100%}th[data-v-88098c90],td[data-v-88098c90]{text-align:left;border-bottom:1px solid var(--border-subtle);padding:10px 12px;font-size:13px}th[data-v-88098c90]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;background:#161b2acc;font-size:10px;font-weight:500}td[data-v-88098c90]{color:var(--text-secondary)}.badge[data-v-88098c90]{border-radius:4px;padding:2px 8px;font-size:11px}.badge-running[data-v-88098c90]{color:#34d399;background:#34d39926}.badge-idle[data-v-88098c90]{color:#fbbf24;background:#fbbf2426}.badge-fault[data-v-88098c90]{color:#f87171;background:#f8717126}.text-red[data-v-88098c90]{color:#f87171}.text-green[data-v-88098c90]{color:#34d399}.eqp-energy[data-v-ab77c2fb]{height:100%;padding:20px;overflow:auto}.header[data-v-ab77c2fb]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-ab77c2fb]{margin:0}.actions[data-v-ab77c2fb]{gap:20px;display:flex}.time-select[data-v-ab77c2fb]{border:1px solid #ddd;border-radius:4px;padding:8px 12px}.btn-refresh[data-v-ab77c2fb]{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;padding:8px 16px}.stats-grid[data-v-ab77c2fb]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-ab77c2fb]{text-align:center;background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.stat-value[data-v-ab77c2fb]{color:#1890ff;font-size:28px;font-weight:700}.stat-label[data-v-ab77c2fb]{color:#666;margin-top:5px;font-size:14px}.equipment-list[data-v-ab77c2fb]{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.equipment-card[data-v-ab77c2fb]{background:#fff;border-left:4px solid #ddd;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.equipment-card.online[data-v-ab77c2fb]{border-left-color:#52c41a}.equipment-card.offline[data-v-ab77c2fb]{border-left-color:#faad14}.eqp-header[data-v-ab77c2fb]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.eqp-name[data-v-ab77c2fb]{font-size:16px;font-weight:600}.status-badge[data-v-ab77c2fb]{border-radius:12px;padding:4px 12px;font-size:12px}.status-badge.running[data-v-ab77c2fb]{color:#52c41a;background:#f6ffed}.status-badge.idle[data-v-ab77c2fb]{color:#faad14;background:#fffbe6}.eqp-info[data-v-ab77c2fb]{margin-bottom:20px}.info-row[data-v-ab77c2fb]{gap:8px;margin-bottom:6px;display:flex}.info-row .label[data-v-ab77c2fb]{color:#666}.info-row .value[data-v-ab77c2fb]{color:#333;font-weight:500}.eqp-chart[data-v-ab77c2fb]{border-top:1px solid #eee;padding-top:10px}.mini-chart[data-v-ab77c2fb]{height:60px}.voltage-deviation[data-v-2049942c]{height:100%;padding:20px;overflow:auto}.header[data-v-2049942c]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-2049942c]{margin:0}.actions[data-v-2049942c]{gap:20px;display:flex}.type-select[data-v-2049942c]{border:1px solid #ddd;border-radius:4px;padding:8px 12px}.btn-refresh[data-v-2049942c]{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;padding:8px 16px}.stats-grid[data-v-2049942c]{grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;display:grid}.stat-card[data-v-2049942c]{text-align:center;background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.stat-value[data-v-2049942c]{font-size:28px;font-weight:700}.stat-card.normal .stat-value[data-v-2049942c]{color:#52c41a}.stat-card.warning .stat-value[data-v-2049942c]{color:#faad14}.stat-card.danger .stat-value[data-v-2049942c]{color:#ff4d4f}.stat-label[data-v-2049942c]{color:#666;margin-top:5px;font-size:14px}.chart-section[data-v-2049942c]{margin-bottom:20px}.chart-card[data-v-2049942c]{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.chart-card h3[data-v-2049942c]{margin-top:0}.chart-legend[data-v-2049942c]{gap:20px;margin-bottom:20px;display:flex}.legend-item[data-v-2049942c]{color:#666;align-items:center;gap:6px;font-size:13px;display:flex}.legend-item .line[data-v-2049942c]{width:20px;height:2px}.legend-item .line.normal[data-v-2049942c]{background:#1890ff}.legend-item .line.upper[data-v-2049942c]{background:#ff4d4f;border-top:2px dashed #ff4d4f;height:0}.legend-item .line.lower[data-v-2049942c]{background:#faad14;border-top:2px dashed #faad14;height:0}.chart[data-v-2049942c]{height:300px}.monitor-points[data-v-2049942c]{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.monitor-points h3[data-v-2049942c]{border-bottom:1px solid #eee;margin-top:0;padding-bottom:15px}.points-grid[data-v-2049942c]{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.point-card[data-v-2049942c]{background:#fafafa;border-left:4px solid #52c41a;border-radius:8px;padding:15px}.point-card.normal[data-v-2049942c]{border-left-color:#52c41a}.point-card.warning[data-v-2049942c]{background:#fffbe6;border-left-color:#faad14}.point-card.over[data-v-2049942c],.point-card.under[data-v-2049942c]{background:#fff2f0;border-left-color:#ff4d4f}.point-header[data-v-2049942c]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.point-name[data-v-2049942c]{font-size:14px;font-weight:600}.status-indicator[data-v-2049942c]{border-radius:10px;padding:2px 8px;font-size:11px}.status-indicator.normal[data-v-2049942c]{color:#52c41a;background:#f6ffed}.status-indicator.warning[data-v-2049942c]{color:#faad14;background:#fffbe6}.status-indicator.over[data-v-2049942c],.status-indicator.under[data-v-2049942c]{color:#ff4d4f;background:#fff2f0}.point-voltage[data-v-2049942c]{align-items:baseline;gap:20px;margin-bottom:10px;display:flex}.voltage-value[data-v-2049942c]{color:#1890ff;font-size:24px;font-weight:700}.voltage-value.over[data-v-2049942c],.voltage-value.under[data-v-2049942c]{color:#ff4d4f}.deviation[data-v-2049942c]{font-size:14px}.deviation.up[data-v-2049942c]{color:#ff4d4f}.deviation.down[data-v-2049942c]{color:#faad14}.point-detail[data-v-2049942c]{margin-bottom:10px}.detail-row[data-v-2049942c]{gap:8px;margin-bottom:4px;font-size:12px;display:flex}.detail-row .label[data-v-2049942c]{color:#666}.detail-row .value[data-v-2049942c]{color:#333}.point-mini-chart[data-v-2049942c]{border-top:1px solid #eee;padding-top:8px}.mini-chart[data-v-2049942c]{height:50px}.tree-manage[data-v-c6470a24]{height:100%;padding:20px}.header[data-v-c6470a24]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.header h2[data-v-c6470a24]{margin:0}.btn-refresh[data-v-c6470a24]{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;padding:8px 16px}.content-layout[data-v-c6470a24]{grid-template-columns:1fr 1fr;gap:20px;height:calc(100vh - 200px);display:grid}.tree-panel[data-v-c6470a24]{background:#fff;border-radius:8px;padding:20px;overflow:auto}.panel-header[data-v-c6470a24]{border-bottom:1px solid #eee;margin-bottom:20px;padding-bottom:15px;font-weight:600}.tree-container[data-v-c6470a24]{min-height:200px}.loading[data-v-c6470a24],.empty[data-v-c6470a24]{text-align:center;color:#999;padding:40px}.detail-panel[data-v-c6470a24]{background:#fff;border-radius:8px;padding:20px}.node-detail h3[data-v-c6470a24]{border-bottom:1px solid #eee;margin-top:0;padding-bottom:15px}.info-grid[data-v-c6470a24]{grid-template-columns:1fr 1fr;gap:15px;margin:20px 0;display:grid}.info-item[data-v-c6470a24]{gap:8px;display:flex}.info-item.full[data-v-c6470a24]{grid-column:1/-1}.info-item label[data-v-c6470a24]{color:#666;min-width:70px}.info-item span[data-v-c6470a24]{color:#333}.actions[data-v-c6470a24]{gap:20px;margin-top:20px;display:flex}.no-selection[data-v-c6470a24]{color:#999;justify-content:center;align-items:center;height:100%;display:flex}.modal-overlay[data-v-c6470a24]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-c6470a24]{background:#fff;border-radius:8px;min-width:400px;padding:24px}.modal h3[data-v-c6470a24]{margin-top:0}.form[data-v-c6470a24]{margin:20px 0}.form-item[data-v-c6470a24]{align-items:center;margin-bottom:20px;display:flex}.form-item label[data-v-c6470a24]{min-width:70px}.form-item input[data-v-c6470a24],.form-item select[data-v-c6470a24]{border:1px solid #ddd;border-radius:4px;flex:1;padding:8px 12px}.modal-actions[data-v-c6470a24]{justify-content:flex-end;gap:20px;display:flex}.btn-primary[data-v-c6470a24]{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:8px 20px}.btn-warning[data-v-c6470a24]{color:#fff;cursor:pointer;background:#faad14;border:none;border-radius:4px;padding:8px 20px}.btn-danger[data-v-c6470a24]{color:#fff;cursor:pointer;background:#ff4d4f;border:none;border-radius:4px;padding:8px 20px}.home-page[data-v-20ba7864]{padding:0}.page-header[data-v-20ba7864]{border-bottom:1px solid var(--border-subtle);margin-bottom:20px;padding-bottom:14px}.page-title[data-v-20ba7864]{color:var(--text-primary);margin-bottom:2px;font-size:18px;font-weight:600}.page-subtitle[data-v-20ba7864]{color:var(--text-muted);font-size:12px}.section-title[data-v-20ba7864]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin:20px 0 14px;font-size:11px;font-weight:600}.stats-grid[data-v-20ba7864]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.two-col-grid[data-v-20ba7864]{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.chart-section[data-v-20ba7864]{border:1px solid var(--border-subtle);border-radius:var(--radius);background:linear-gradient(145deg,#0f172ad9,#080c16e6);margin-bottom:20px;padding:20px}.chart-title[data-v-20ba7864]{color:var(--text-secondary);margin-bottom:20px;font-size:14px;font-weight:500}.chart-container[data-v-20ba7864]{height:200px}.feature-cards[data-v-20ba7864]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.realtime-page[data-v-35c9f8d7]{gap:20px;height:calc(100vh - 120px);padding:0;display:flex}.left-panel[data-v-35c9f8d7]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;flex-shrink:0;width:270px;padding:16px;display:flex}.panel-header[data-v-35c9f8d7]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:500;display:flex}.btn-refresh[data-v-35c9f8d7]{cursor:pointer;background:0 0;border:none;font-size:15px}.search-box[data-v-35c9f8d7]{margin-bottom:20px}.tree-wrapper[data-v-35c9f8d7]{flex:1;overflow-y:auto}.loading[data-v-35c9f8d7]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-35c9f8d7]{flex-direction:column;flex:1;gap:20px;min-width:0;display:flex}.stats-grid[data-v-35c9f8d7]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.dark-card[data-v-35c9f8d7]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:16px 18px}.dark-card-header[data-v-35c9f8d7]{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.dark-card-title[data-v-35c9f8d7]{color:var(--text-secondary);font-size:13px;font-weight:500}.dark-table[data-v-35c9f8d7]{border-collapse:collapse;width:100%}.dark-table th[data-v-35c9f8d7]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:1px solid var(--border-subtle);background:#161b2acc;padding:10px 14px;font-size:10px;font-weight:500}.dark-table td[data-v-35c9f8d7]{color:var(--text-secondary);border-bottom:1px solid #4299e10f;padding:11px 14px;font-size:13px}.dark-table tr:hover td[data-v-35c9f8d7]{background:#42b9e50a}.dark-table tr:last-child td[data-v-35c9f8d7]{border-bottom:none}.meter-page[data-v-2528fde4]{gap:20px;height:calc(100vh - 120px);padding:0;display:flex}.left-panel[data-v-2528fde4]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;flex-shrink:0;width:270px;padding:16px;display:flex}.panel-header[data-v-2528fde4]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:500;display:flex}.btn-refresh[data-v-2528fde4]{cursor:pointer;background:0 0;border:none;font-size:15px}.search-box[data-v-2528fde4]{margin-bottom:20px}.tree-wrapper[data-v-2528fde4]{flex:1;overflow-y:auto}.loading[data-v-2528fde4]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-2528fde4]{flex-direction:column;flex:1;gap:20px;min-width:0;display:flex}.filter-bar[data-v-2528fde4]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);align-items:center;gap:20px;padding:12px 16px;display:flex}.filter-bar label[data-v-2528fde4]{color:var(--text-secondary);font-size:13px;font-weight:500}.stats-grid[data-v-2528fde4]{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.dark-card[data-v-2528fde4]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex:1;padding:16px 18px;overflow:auto}.dark-card-header[data-v-2528fde4]{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.dark-card-title[data-v-2528fde4]{color:var(--text-secondary);font-size:13px;font-weight:500}.dark-table[data-v-2528fde4]{border-collapse:collapse;width:100%}.dark-table th[data-v-2528fde4]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:1px solid var(--border-subtle);background:#161b2acc;padding:10px 14px;font-size:10px;font-weight:500}.dark-table td[data-v-2528fde4]{color:var(--text-secondary);border-bottom:1px solid #4299e10f;padding:11px 14px;font-size:13px}.dark-table tr:hover td[data-v-2528fde4]{background:#42b9e50a}.dark-table tr:last-child td[data-v-2528fde4]{border-bottom:none}.report-page[data-v-f921fd51]{background:var(--bg-primary);gap:20px;height:calc(100vh - 120px);padding:16px;display:flex}.left-panel[data-v-f921fd51]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;width:280px;padding:16px;display:flex}.panel-header[data-v-f921fd51]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.btn-refresh[data-v-f921fd51]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.search-input[data-v-f921fd51]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-hover);width:100%;color:var(--text-primary);margin-bottom:20px;padding:8px}.tree-wrapper[data-v-f921fd51]{flex:1;overflow-y:auto}.loading[data-v-f921fd51]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-f921fd51]{flex-direction:column;flex:1;gap:20px;display:flex}.filter-bar[data-v-f921fd51]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);align-items:center;gap:8px;padding:12px 16px;display:flex}.time-select[data-v-f921fd51],.date-input[data-v-f921fd51]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--text-primary);padding:6px 10px}.stats-grid[data-v-f921fd51]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.stat-card[data-v-f921fd51]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);text-align:center;padding:14px}.stat-value[data-v-f921fd51]{color:var(--text-primary);font-size:22px;font-weight:700}.stat-label[data-v-f921fd51]{color:var(--text-muted);margin-top:4px;font-size:12px}.chart-section[data-v-f921fd51]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:16px}.chart-section h3[data-v-f921fd51]{color:var(--text-secondary);margin:0 0 10px;font-size:14px;font-weight:500}.chart-container[data-v-f921fd51]{height:200px}.data-table[data-v-f921fd51]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius);flex:1;padding:16px;overflow:auto}.data-table h3[data-v-f921fd51]{color:var(--text-secondary);margin:0 0 10px;font-size:14px;font-weight:500}table[data-v-f921fd51]{border-collapse:collapse;width:100%}th[data-v-f921fd51],td[data-v-f921fd51]{border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--text-secondary);padding:8px 12px;font-size:13px}th[data-v-f921fd51]{color:var(--text-muted);background:#0f172a80;font-weight:500}.no-data[data-v-f921fd51]{text-align:center;color:var(--text-muted);padding:20px}.event-page[data-v-532691d6]{background:var(--bg-primary);gap:20px;height:calc(100vh - 120px);padding:20px;display:flex}.left-panel[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex-direction:column;width:280px;padding:16px;display:flex}.panel-header[data-v-532691d6]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.btn-refresh[data-v-532691d6]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.search-input[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:#0f172a99;margin-bottom:20px;padding:8px}.tree-wrapper[data-v-532691d6]{flex:1;overflow-y:auto}.loading[data-v-532691d6]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-532691d6]{flex-direction:column;flex:1;gap:20px;display:flex}.filter-bar[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);align-items:center;gap:8px;padding:12px 16px;display:flex}.time-select[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);background:#0f172a99;padding:6px 10px}.btn-clear[data-v-532691d6]{color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;background:#0f172a99;margin-left:auto;padding:6px 12px}.stats-grid[data-v-532691d6]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.stat-card[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px}.stat-value[data-v-532691d6]{color:var(--text-primary);font-size:22px;font-weight:700}.stat-value.warn[data-v-532691d6]{color:#f87171}.stat-value.online[data-v-532691d6]{color:#4ade80}.stat-label[data-v-532691d6]{color:var(--text-muted);margin-top:8px;font-size:12px}.data-table[data-v-532691d6]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex:1;padding:20px;overflow:auto}.data-table h3[data-v-532691d6]{color:var(--text-secondary);margin:0 0 14px;font-size:14px;font-weight:500}table[data-v-532691d6]{border-collapse:collapse;width:100%}th[data-v-532691d6],td[data-v-532691d6]{border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--text-secondary);padding:10px 12px;font-size:13px}th[data-v-532691d6]{color:var(--text-muted);background:#0f172a80;font-weight:500}.txt-warn[data-v-532691d6]{color:#f87171}.txt-online[data-v-532691d6]{color:#4ade80}.no-data[data-v-532691d6]{text-align:center;color:var(--text-muted);padding:20px}.system-page[data-v-45572821]{background:var(--bg-primary);gap:20px;height:calc(100vh - 120px);padding:20px;display:flex}.left-panel[data-v-45572821]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex-direction:column;width:280px;padding:16px;display:flex}.panel-header[data-v-45572821]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.btn-refresh[data-v-45572821]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.search-input[data-v-45572821]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:#0f172a99;margin-bottom:20px;padding:8px}.tree-wrapper[data-v-45572821]{flex:1;overflow-y:auto}.loading[data-v-45572821]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-45572821]{flex-direction:column;flex:1;gap:20px;display:flex}.stats-grid[data-v-45572821]{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.stat-card[data-v-45572821]{border:1px solid var(--border-subtle);border-radius:var(--radius);text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px}.stat-value[data-v-45572821]{color:var(--text-primary);font-size:22px;font-weight:700}.stat-value .unit[data-v-45572821]{color:var(--text-muted);margin-left:2px;font-size:14px}.stat-label[data-v-45572821]{color:var(--text-muted);margin-top:8px;font-size:12px}.data-table[data-v-45572821]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex:1;padding:20px;overflow:auto}.data-table h3[data-v-45572821]{color:var(--text-secondary);margin:0 0 14px;font-size:14px;font-weight:500}table[data-v-45572821]{border-collapse:collapse;width:100%}th[data-v-45572821],td[data-v-45572821]{border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--text-secondary);padding:10px 12px;font-size:13px}th[data-v-45572821]{color:var(--text-muted);background:#0f172a80;font-weight:500}.txt-warn[data-v-45572821]{color:#f87171}.txt-online[data-v-45572821]{color:#4ade80}.no-data[data-v-45572821]{text-align:center;color:var(--text-muted);padding:20px}.permission-page[data-v-2d9ff494]{background:var(--bg-primary);gap:20px;height:calc(100vh - 120px);padding:20px;display:flex}.left-panel[data-v-2d9ff494]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex-direction:column;width:280px;padding:16px;display:flex}.panel-header[data-v-2d9ff494]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.btn-refresh[data-v-2d9ff494]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.search-input[data-v-2d9ff494],.search-input-wide[data-v-2d9ff494]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);background:#0f172a99;padding:8px}.search-input[data-v-2d9ff494]{width:100%;margin-bottom:20px}.search-input-wide[data-v-2d9ff494]{width:200px;padding:6px 10px}.tree-wrapper[data-v-2d9ff494]{flex:1;overflow-y:auto}.loading[data-v-2d9ff494]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-2d9ff494]{flex-direction:column;flex:1;gap:0;display:flex;overflow-y:auto}.page-header[data-v-2d9ff494]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2[data-v-2d9ff494]{color:var(--text-primary);margin:0;font-size:18px}.header-actions[data-v-2d9ff494]{gap:8px;display:flex}.filter-bar[data-v-2d9ff494]{margin-bottom:20px}.data-table[data-v-2d9ff494]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px}.table-header[data-v-2d9ff494]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.table-header h3[data-v-2d9ff494]{color:var(--text-secondary);margin:0;font-size:14px;font-weight:500}table[data-v-2d9ff494]{border-collapse:collapse;width:100%}th[data-v-2d9ff494],td[data-v-2d9ff494]{border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--text-secondary);padding:10px 12px;font-size:13px}th[data-v-2d9ff494]{color:var(--text-muted);background:#0f172a80;font-weight:500}.role-select[data-v-2d9ff494]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);background:#0f172a99;padding:4px 8px}.status-badge[data-v-2d9ff494]{border-radius:12px;padding:2px 8px;font-size:12px}.status-badge.active[data-v-2d9ff494]{color:#4ade80;background:#4ade8026}.status-badge.inactive[data-v-2d9ff494]{color:#f87171;background:#f8717126}.btn-add[data-v-2d9ff494]{background:var(--accent-cyan);color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-size:13px;font-weight:500}.btn-edit[data-v-2d9ff494]{color:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;background:#67e8f926;border:none;margin-right:4px;padding:4px 10px;font-size:12px}.btn-danger[data-v-2d9ff494]{color:#f87171;border-radius:var(--radius-sm);cursor:pointer;background:#f8717126;border:none;padding:4px 10px;font-size:12px}.no-data[data-v-2d9ff494]{text-align:center;color:var(--text-muted);padding:20px}.modal-overlay[data-v-2d9ff494]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-2d9ff494]{background:var(--bg-card-solid);border:1px solid var(--border-subtle);border-radius:var(--radius);width:420px;max-width:90%;box-shadow:var(--shadow-card)}.modal-header[data-v-2d9ff494]{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3[data-v-2d9ff494]{color:var(--text-primary);margin:0;font-size:16px}.modal-close[data-v-2d9ff494]{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:18px}.modal-body[data-v-2d9ff494]{padding:20px}.form-group[data-v-2d9ff494]{margin-bottom:20px}.form-group label[data-v-2d9ff494]{color:var(--text-muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input[data-v-2d9ff494],.form-group select[data-v-2d9ff494]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-sizing:border-box;background:#0f172a99;padding:8px 10px;font-size:14px}.modal-footer[data-v-2d9ff494]{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:20px;padding:14px 20px;display:flex}.btn-cancel[data-v-2d9ff494]{color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;background:#0f172a99;padding:8px 16px}.btn-save[data-v-2d9ff494]{background:var(--accent-cyan);color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 16px;font-weight:500}.config-page[data-v-347bade9]{background:var(--bg-primary);gap:20px;height:calc(100vh - 120px);padding:20px;display:flex}.left-panel[data-v-347bade9]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);flex-direction:column;width:280px;padding:16px;display:flex}.panel-header[data-v-347bade9]{color:var(--text-primary);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;font-weight:600;display:flex}.btn-refresh[data-v-347bade9]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:16px}.search-input[data-v-347bade9]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:#0f172a99;margin-bottom:20px;padding:8px}.tree-wrapper[data-v-347bade9]{flex:1;overflow-y:auto}.loading[data-v-347bade9]{text-align:center;color:var(--text-muted);padding:20px}.right-panel[data-v-347bade9]{flex-direction:column;flex:1;gap:20px;display:flex;position:relative}.config-section[data-v-347bade9]{border:1px solid var(--border-subtle);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#0f172ad9,#080c16e6);padding:20px}.config-section h3[data-v-347bade9]{color:var(--text-secondary);margin:0 0 16px;font-size:14px;font-weight:500}.config-grid[data-v-347bade9]{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px;display:grid}.config-item[data-v-347bade9]{flex-direction:column;gap:6px;display:flex}.config-item label[data-v-347bade9]{color:var(--text-muted);font-size:13px}.config-item input[data-v-347bade9],.config-item select[data-v-347bade9]{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);background:#0f172a99;padding:8px 10px;font-size:14px}.btn-save[data-v-347bade9]{background:var(--accent-cyan);color:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 24px;font-weight:500}.toast[data-v-347bade9]{background:var(--success);color:var(--bg-primary);border-radius:var(--radius-sm);padding:12px 24px;font-size:14px;font-weight:500;position:fixed;bottom:30px;right:30px}.admin-layout[data-v-77968e86]{background:#1a1a2e;height:100vh;display:flex}.admin-sidebar[data-v-77968e86]{background:#16213e;flex-shrink:0;width:220px;padding:20px 0}.sidebar-logo[data-v-77968e86]{color:#e94560;border-bottom:1px solid #0f3460;margin-bottom:15px;padding:15px 20px;font-size:18px;font-weight:700}.sidebar-nav[data-v-77968e86]{flex-direction:column;display:flex}.nav-item[data-v-77968e86]{color:#a0a0a0;padding:12px 20px;font-size:14px;text-decoration:none;transition:all .3s}.nav-item[data-v-77968e86]:hover,.nav-item-active[data-v-77968e86]{color:#e94560;background:#e945601a;border-left:3px solid #e94560}.sidebar-back[data-v-77968e86]{border-top:1px solid #0f3460;margin-top:auto;padding-top:15px}.admin-main[data-v-77968e86]{flex:1;padding:25px;overflow-y:auto}.page[data-v-1e8f7002]{color:#e0e0e0}.page-title[data-v-1e8f7002]{color:#e94560;margin-bottom:20px;font-size:20px}.card[data-v-1e8f7002]{background:#1e2a3a;border-radius:8px;padding:25px}.info-grid[data-v-1e8f7002]{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px;display:grid}.info-item[data-v-1e8f7002]{flex-direction:column;gap:5px;display:flex}.info-item label[data-v-1e8f7002]{color:#888;font-size:12px}.info-item span[data-v-1e8f7002]{color:#e0e0e0;font-size:15px}.form-grid[data-v-1e8f7002]{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px;display:grid}.form-item[data-v-1e8f7002]{flex-direction:column;gap:5px;display:flex}.form-item label[data-v-1e8f7002]{color:#888;font-size:12px}.form-item input[data-v-1e8f7002]{color:#e0e0e0;background:#16213e;border:1px solid #0f3460;border-radius:4px;padding:8px 12px}.actions[data-v-1e8f7002]{gap:10px;display:flex}.btn-primary[data-v-1e8f7002]{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-1e8f7002]{color:#e0e0e0;cursor:pointer;background:#333;border:none;border-radius:4px;padding:8px 20px}.page[data-v-cd6d5542]{color:#e0e0e0}.page-title[data-v-cd6d5542]{color:#e94560;margin-bottom:20px;font-size:20px}.toolbar[data-v-cd6d5542]{margin-bottom:15px}.table-wrap[data-v-cd6d5542]{background:#1e2a3a;border-radius:8px;overflow-x:auto}.data-table[data-v-cd6d5542]{border-collapse:collapse;width:100%}.data-table th[data-v-cd6d5542],.data-table td[data-v-cd6d5542]{text-align:left;border-bottom:1px solid #0f3460;padding:12px 15px}.data-table th[data-v-cd6d5542]{color:#888;font-size:12px;font-weight:400}.status.ok[data-v-cd6d5542]{color:#4caf50}.status.err[data-v-cd6d5542]{color:#f44336}.btn-sm[data-v-cd6d5542]{color:#e0e0e0;cursor:pointer;background:#0f3460;border:none;border-radius:4px;margin-right:5px;padding:4px 12px;font-size:12px}.btn-danger[data-v-cd6d5542]{background:#c0392b}.modal[data-v-cd6d5542]{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-cd6d5542]{background:#1e2a3a;border-radius:8px;width:600px;max-width:90%;padding:30px}.modal-content h3[data-v-cd6d5542]{color:#e94560;margin-bottom:20px}.form-grid[data-v-cd6d5542]{grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;display:grid}.form-item[data-v-cd6d5542]{flex-direction:column;gap:5px;display:flex}.form-item label[data-v-cd6d5542]{color:#888;font-size:12px}.form-item input[data-v-cd6d5542]{color:#e0e0e0;background:#16213e;border:1px solid #0f3460;border-radius:4px;padding:8px 12px}.modal-actions[data-v-cd6d5542]{gap:10px;display:flex}.btn-primary[data-v-cd6d5542]{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-cd6d5542]{color:#e0e0e0;cursor:pointer;background:#333;border:none;border-radius:4px;padding:8px 20px}.page[data-v-931a6611]{color:#e0e0e0}.page-title[data-v-931a6611]{color:#e94560;margin-bottom:20px;font-size:20px}.toolbar[data-v-931a6611]{margin-bottom:15px}.tree-container[data-v-931a6611]{background:#1e2a3a;border-radius:8px;flex-direction:column;gap:10px;padding:20px;display:flex}.node-box[data-v-931a6611]{background:#16213e;border-radius:6px;align-items:center;gap:15px;padding:12px 15px;display:flex}.node-name[data-v-931a6611]{color:#e94560;font-weight:700}.node-code[data-v-931a6611]{color:#888;font-size:13px}.node-type[data-v-931a6611]{color:#aaa;background:#0f3460;border-radius:3px;padding:2px 8px;font-size:12px}.btn-sm[data-v-931a6611]{color:#e0e0e0;cursor:pointer;background:#0f3460;border:none;border-radius:4px;padding:4px 12px;font-size:12px}.btn-danger[data-v-931a6611]{background:#c0392b}.modal[data-v-931a6611]{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-931a6611]{background:#1e2a3a;border-radius:8px;width:500px;padding:30px}.modal-content h3[data-v-931a6611]{color:#e94560;margin-bottom:20px}.form-grid[data-v-931a6611]{grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;display:grid}.form-item[data-v-931a6611]{flex-direction:column;gap:5px;display:flex}.form-item label[data-v-931a6611]{color:#888;font-size:12px}.form-item input[data-v-931a6611]{color:#e0e0e0;background:#16213e;border:1px solid #0f3460;border-radius:4px;padding:8px 12px}.modal-actions[data-v-931a6611]{gap:10px;display:flex}.btn-primary[data-v-931a6611]{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-931a6611]{color:#e0e0e0;cursor:pointer;background:#333;border:none;border-radius:4px;padding:8px 20px}.page[data-v-ca4b3c36]{color:#e0e0e0}.page-title[data-v-ca4b3c36]{color:#e94560;margin-bottom:20px;font-size:20px}.toolbar[data-v-ca4b3c36]{margin-bottom:15px}.table-wrap[data-v-ca4b3c36]{background:#1e2a3a;border-radius:8px;overflow-x:auto}.data-table[data-v-ca4b3c36]{border-collapse:collapse;width:100%}.data-table th[data-v-ca4b3c36],.data-table td[data-v-ca4b3c36]{text-align:left;border-bottom:1px solid #0f3460;padding:12px 15px}.data-table th[data-v-ca4b3c36]{color:#888;font-size:12px;font-weight:400}.status.ok[data-v-ca4b3c36]{color:#4caf50}.status.err[data-v-ca4b3c36]{color:#f44336}.btn-sm[data-v-ca4b3c36]{color:#e0e0e0;cursor:pointer;background:#0f3460;border:none;border-radius:4px;margin-right:5px;padding:4px 12px;font-size:12px}.btn-danger[data-v-ca4b3c36]{background:#c0392b}.modal[data-v-ca4b3c36]{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-ca4b3c36]{background:#1e2a3a;border-radius:8px;width:500px;padding:30px}.modal-content h3[data-v-ca4b3c36]{color:#e94560;margin-bottom:20px}.form-grid[data-v-ca4b3c36]{grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;display:grid}.form-item[data-v-ca4b3c36]{flex-direction:column;gap:5px;display:flex}.form-item label[data-v-ca4b3c36]{color:#888;font-size:12px}.form-item input[data-v-ca4b3c36]{color:#e0e0e0;background:#16213e;border:1px solid #0f3460;border-radius:4px;padding:8px 12px}.form-item input[data-v-ca4b3c36]:disabled{opacity:.6}.modal-actions[data-v-ca4b3c36]{gap:10px;display:flex}.btn-primary[data-v-ca4b3c36]{color:#fff;cursor:pointer;background:#e94560;border:none;border-radius:4px;padding:8px 20px}.btn-secondary[data-v-ca4b3c36]{color:#e0e0e0;cursor:pointer;background:#333;border:none;border-radius:4px;padding:8px 20px}
