:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e)}#app{width:100%;min-height:100vh}.login-container[data-v-1ed778ce]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:24px}.login-card[data-v-1ed778ce]{width:100%;max-width:440px;background:#1e1e2ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;padding:48px 40px}.login-header[data-v-1ed778ce]{text-align:center;margin-bottom:40px}.logo[data-v-1ed778ce]{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:16px;margin-bottom:24px}.logo svg[data-v-1ed778ce]{width:36px;height:36px;color:#fff}.login-header h1[data-v-1ed778ce]{font-size:1.75rem;font-weight:700;color:#fff;margin:0 0 8px}.login-header p[data-v-1ed778ce]{font-size:.95rem;color:#fff9;margin:0}.login-form[data-v-1ed778ce]{display:flex;flex-direction:column;gap:24px}.form-group[data-v-1ed778ce]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-1ed778ce]{font-size:.875rem;font-weight:500;color:#ffffffe6}.form-group input[data-v-1ed778ce]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.95rem;transition:all .3s ease}.form-group input[data-v-1ed778ce]:focus{outline:none;border-color:#3b82f6;background:#ffffff14;box-shadow:0 0 0 3px #3b82f61a}.form-group input[data-v-1ed778ce]::placeholder{color:#ffffff4d}.form-group input[data-v-1ed778ce]:disabled{opacity:.5;cursor:not-allowed}.password-input[data-v-1ed778ce]{position:relative}.password-input input[data-v-1ed778ce]{padding-right:48px}.toggle-password[data-v-1ed778ce]{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .3s ease}.toggle-password[data-v-1ed778ce]:hover{color:#fffc}.toggle-password svg[data-v-1ed778ce]{width:20px;height:20px}.form-options[data-v-1ed778ce]{display:flex;align-items:center;justify-content:space-between;gap:16px}.checkbox-label[data-v-1ed778ce]{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#ffffffb3;cursor:pointer}.checkbox-label input[type=checkbox][data-v-1ed778ce]{width:16px;height:16px;cursor:pointer}.forgot-password[data-v-1ed778ce]{background:none;border:none;color:#3b82f6;font-size:.875rem;font-weight:500;cursor:pointer;padding:0;transition:color .3s ease}.forgot-password[data-v-1ed778ce]:hover{color:#60a5fa}.error-message[data-v-1ed778ce]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:.875rem}.error-message svg[data-v-1ed778ce]{width:20px;height:20px;flex-shrink:0}.login-button[data-v-1ed778ce]{width:100%;padding:14px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:8px}.login-button[data-v-1ed778ce]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #3b82f64d}.login-button[data-v-1ed778ce]:active:not(:disabled){transform:translateY(0)}.login-button[data-v-1ed778ce]:disabled{opacity:.6;cursor:not-allowed}.loading-spinner[data-v-1ed778ce]{display:flex;align-items:center;justify-content:center;gap:8px}.loading-spinner svg[data-v-1ed778ce]{width:20px;height:20px;animation:spin-1ed778ce 1s linear infinite}@keyframes spin-1ed778ce{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-footer[data-v-1ed778ce]{margin-top:32px;text-align:center}.login-footer p[data-v-1ed778ce]{font-size:.8rem;color:#fff6;margin:0}.modal-overlay[data-v-1ed778ce]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-content[data-v-1ed778ce]{position:relative;width:100%;max-width:440px;background:#1e1e2ef2;border-radius:16px;border:1px solid rgba(255,255,255,.1);padding:40px;box-shadow:0 8px 32px #00000080}.modal-close[data-v-1ed778ce]{position:absolute;top:16px;right:16px;background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;transition:color .3s ease}.modal-close[data-v-1ed778ce]:hover{color:#ffffffe6}.modal-close svg[data-v-1ed778ce]{width:24px;height:24px}.modal-content h2[data-v-1ed778ce]{font-size:1.5rem;font-weight:700;color:#fff;margin:0 0 16px}.modal-content p[data-v-1ed778ce]{font-size:.95rem;color:#ffffffb3;margin:0 0 24px;line-height:150%}.reset-button[data-v-1ed778ce]{width:100%;padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:8px}.reset-button[data-v-1ed778ce]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #3b82f64d}.reset-button[data-v-1ed778ce]:disabled{opacity:.6;cursor:not-allowed}.reset-success[data-v-1ed778ce]{text-align:center;padding:24px 0}.reset-success svg[data-v-1ed778ce]{width:64px;height:64px;color:#10b981;margin-bottom:24px}.reset-success h3[data-v-1ed778ce]{font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 12px}.reset-success p[data-v-1ed778ce]{margin-bottom:32px}.reset-success strong[data-v-1ed778ce]{color:#3b82f6}.close-modal-button[data-v-1ed778ce]{padding:12px 32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s ease}.close-modal-button[data-v-1ed778ce]:hover{background:#ffffff26;border-color:#ffffff4d}@media (max-width: 480px){.login-card[data-v-1ed778ce]{padding:32px 24px}.login-header h1[data-v-1ed778ce]{font-size:1.5rem}.form-options[data-v-1ed778ce]{flex-direction:column;align-items:flex-start}}.modal-overlay[data-v-4b98bf71]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-container[data-v-4b98bf71]{width:100%;max-width:600px;background:#1e1e2efa;border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 20px 60px #00000080;overflow:hidden}.modal-header[data-v-4b98bf71]{display:flex;align-items:flex-start;justify-content:space-between;padding:24px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff05}.modal-title-section h2[data-v-4b98bf71]{font-size:1.5rem;font-weight:700;color:#fff;margin:0}.group-name[data-v-4b98bf71]{font-size:.9rem;color:#60a5fa;margin:4px 0 0;font-weight:500}.close-button[data-v-4b98bf71]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff9;cursor:pointer;transition:all .3s ease;flex-shrink:0}.close-button[data-v-4b98bf71]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3;color:#fff}.close-button[data-v-4b98bf71]:disabled{opacity:.5;cursor:not-allowed}.close-button svg[data-v-4b98bf71]{width:18px;height:18px}.modal-body[data-v-4b98bf71]{padding:24px;display:flex;flex-direction:column;gap:20px}.info-banner[data-v-4b98bf71]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px}.info-banner svg[data-v-4b98bf71]{width:20px;height:20px;color:#60a5fa;flex-shrink:0}.info-banner p[data-v-4b98bf71]{font-size:.875rem;color:#93c5fd;margin:0}.command-section[data-v-4b98bf71]{display:flex;flex-direction:column;gap:20px}.command-section h3[data-v-4b98bf71]{font-size:1.1rem;font-weight:700;color:#fff;margin:0;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.form-group[data-v-4b98bf71]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-4b98bf71]{font-size:.875rem;font-weight:600;color:#fffc}.field-hint[data-v-4b98bf71]{font-size:.75rem;color:#ffffff80;font-style:italic}.form-input[data-v-4b98bf71]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.9rem;transition:all .3s ease}.form-input[data-v-4b98bf71]::placeholder{color:#ffffff4d}.form-input[data-v-4b98bf71]:focus{outline:none;background:#ffffff14;border-color:#3b82f680}.form-input[data-v-4b98bf71]:disabled{opacity:.5;cursor:not-allowed}.slider[data-v-4b98bf71]{width:100%;height:6px;background:#ffffff1a;border-radius:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:all .3s ease}.slider[data-v-4b98bf71]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid rgba(59,130,246,.5);border-radius:50%;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #3b82f666}.slider[data-v-4b98bf71]::-webkit-slider-thumb:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:scale(1.15);box-shadow:0 4px 12px #3b82f699}.slider[data-v-4b98bf71]::-moz-range-thumb{width:20px;height:20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid rgba(59,130,246,.5);border-radius:50%;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #3b82f666}.slider[data-v-4b98bf71]::-moz-range-thumb:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:scale(1.15);box-shadow:0 4px 12px #3b82f699}.slider[data-v-4b98bf71]::-webkit-slider-runnable-track{width:100%;height:6px;background:#ffffff1a;border-radius:3px}.slider[data-v-4b98bf71]::-moz-range-track{width:100%;height:6px;background:#ffffff1a;border-radius:3px}.slider[data-v-4b98bf71]:disabled{opacity:.5;cursor:not-allowed}.slider[data-v-4b98bf71]:disabled::-webkit-slider-thumb{cursor:not-allowed}.slider[data-v-4b98bf71]:disabled::-moz-range-thumb{cursor:not-allowed}.slider-labels[data-v-4b98bf71]{display:flex;justify-content:space-between;margin-top:8px}.slider-labels span[data-v-4b98bf71]{font-size:.75rem;color:#ffffff80}.action-buttons[data-v-4b98bf71]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.action-btn[data-v-4b98bf71]{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease}.action-btn svg[data-v-4b98bf71]{width:22px;height:22px;flex-shrink:0}.charge-btn[data-v-4b98bf71]{background:linear-gradient(135deg,#22c55e26,#16a34a26);border:2px solid rgba(34,197,94,.5);color:#4ade80}.charge-btn[data-v-4b98bf71]:hover:not(:disabled){background:linear-gradient(135deg,#22c55e40,#16a34a40);border-color:#22c55eb3;box-shadow:0 4px 16px #22c55e4d;transform:translateY(-2px)}.discharge-btn[data-v-4b98bf71]{background:linear-gradient(135deg,#fbbf2426,#f59e0b26);border:2px solid rgba(251,191,36,.5);color:#fbbf24}.discharge-btn[data-v-4b98bf71]:hover:not(:disabled){background:linear-gradient(135deg,#fbbf2440,#f59e0b40);border-color:#fbbf24b3;box-shadow:0 4px 16px #fbbf244d;transform:translateY(-2px)}.action-btn[data-v-4b98bf71]:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.result-message[data-v-4b98bf71]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;animation:slideIn-4b98bf71 .3s ease}.result-message.success[data-v-4b98bf71]{background:#22c55e1a;border:1px solid rgba(34,197,94,.3)}.result-message.error[data-v-4b98bf71]{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.result-message svg[data-v-4b98bf71]{width:20px;height:20px;flex-shrink:0}.result-message.success svg[data-v-4b98bf71]{color:#4ade80}.result-message.error svg[data-v-4b98bf71]{color:#f87171}.result-message p[data-v-4b98bf71]{font-size:.875rem;margin:0}.result-message.success p[data-v-4b98bf71]{color:#86efac}.result-message.error p[data-v-4b98bf71]{color:#fca5a5}.modal-footer[data-v-4b98bf71]{display:flex;justify-content:center;padding:20px 24px;border-top:1px solid rgba(255,255,255,.1);background:#ffffff05}.btn[data-v-4b98bf71]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 32px;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary[data-v-4b98bf71]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fffc}.btn-secondary[data-v-4b98bf71]:hover:not(:disabled){background:#ffffff14;border-color:#fff3;color:#fff}.btn[data-v-4b98bf71]:disabled{opacity:.5;cursor:not-allowed}@keyframes slideIn-4b98bf71{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.modal-container[data-v-4b98bf71]{max-width:100%}.modal-header[data-v-4b98bf71]{padding:20px}.modal-title-section h2[data-v-4b98bf71]{font-size:1.25rem}.modal-body[data-v-4b98bf71]{padding:20px}.action-buttons[data-v-4b98bf71]{grid-template-columns:1fr}.action-btn[data-v-4b98bf71]{width:100%;padding:14px 20px}.modal-footer[data-v-4b98bf71]{padding:16px 20px}.btn[data-v-4b98bf71]{width:100%}}.app-header[data-v-de7aa3e6]{background:#1e1e2ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);padding:16px 24px 0;position:sticky;top:0;z-index:100}.header-content[data-v-de7aa3e6]{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.header-left[data-v-de7aa3e6]{display:flex;align-items:center;gap:16px}.logo[data-v-de7aa3e6]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;flex-shrink:0}.logo svg[data-v-de7aa3e6]{width:28px;height:28px;color:#fff}.header-title h1[data-v-de7aa3e6]{font-size:1.25rem;font-weight:700;color:#fff;margin:0;line-height:1.2}.header-title p[data-v-de7aa3e6]{font-size:.8rem;color:#ffffff80;margin:2px 0 0}.header-right[data-v-de7aa3e6]{position:relative;display:flex;align-items:center;gap:12px}.group-command-button[data-v-de7aa3e6]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#fbbf2426,#f59e0b26);border:1px solid rgba(251,191,36,.4);border-radius:8px;color:#fbbf24;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;position:relative}.group-command-button[data-v-de7aa3e6]:hover{background:linear-gradient(135deg,#fbbf2440,#f59e0b40);border-color:#fbbf2499;color:#fcd34d;box-shadow:0 4px 12px #fbbf2433;transform:translateY(-1px)}.group-command-button svg[data-v-de7aa3e6]{width:18px;height:18px;flex-shrink:0}.filter-button[data-v-de7aa3e6]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffb3;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;position:relative}.filter-button[data-v-de7aa3e6]:hover{background:#ffffff14;border-color:#fff3;color:#fff}.filter-button.active[data-v-de7aa3e6]{background:#3b82f626;border-color:#3b82f666;color:#60a5fa}.filter-button svg[data-v-de7aa3e6]{width:18px;height:18px;flex-shrink:0}.filter-badge[data-v-de7aa3e6]{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:#3b82f6;border-radius:10px;color:#fff;font-size:.75rem;font-weight:700}.socket-status[data-v-de7aa3e6]{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid;font-size:.78rem;font-weight:600;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none}.socket-status.connected[data-v-de7aa3e6]{background:#10b9811a;border-color:#10b9814d;color:#10b981}.socket-status.disconnected[data-v-de7aa3e6]{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.socket-dot[data-v-de7aa3e6]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.socket-status.connected .socket-dot[data-v-de7aa3e6]{background:#10b981;box-shadow:0 0 #10b98166;animation:pulse-green-de7aa3e6 2s ease-in-out infinite}.socket-status.disconnected .socket-dot[data-v-de7aa3e6]{background:#ef4444}@keyframes pulse-green-de7aa3e6{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 5px #10b98100}to{box-shadow:0 0 #10b98100}}.socket-label[data-v-de7aa3e6]{line-height:1}.user-info[data-v-de7aa3e6]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;transition:all .3s ease}.user-info[data-v-de7aa3e6]:hover{background:#ffffff14;border-color:#fff3}.user-avatar[data-v-de7aa3e6]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:50%;flex-shrink:0}.user-avatar svg[data-v-de7aa3e6]{width:20px;height:20px;color:#fff}.user-details[data-v-de7aa3e6]{display:flex;flex-direction:column;gap:2px;min-width:0}.user-name[data-v-de7aa3e6]{font-size:.9rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role[data-v-de7aa3e6]{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.dropdown-icon[data-v-de7aa3e6]{width:16px;height:16px;color:#ffffff80;flex-shrink:0;transition:transform .3s ease}.user-info:hover .dropdown-icon[data-v-de7aa3e6]{color:#fffc}.user-menu-overlay[data-v-de7aa3e6]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998}.user-menu[data-v-de7aa3e6]{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:#1e1e2efa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:999;overflow:hidden}.menu-header[data-v-de7aa3e6]{padding:20px;background:#ffffff05}.menu-user-info[data-v-de7aa3e6]{display:flex;gap:12px}.menu-user-avatar[data-v-de7aa3e6]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:50%;flex-shrink:0}.menu-user-avatar svg[data-v-de7aa3e6]{width:24px;height:24px;color:#fff}.menu-user-details[data-v-de7aa3e6]{display:flex;flex-direction:column;gap:4px;min-width:0}.menu-user-name[data-v-de7aa3e6]{font-size:.95rem;font-weight:600;color:#fff;line-height:1.3}.menu-user-email[data-v-de7aa3e6]{font-size:.8rem;color:#ffffff80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-user-role[data-v-de7aa3e6]{display:inline-flex;align-items:center;padding:4px 10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:6px;align-self:flex-start;margin-top:4px}.menu-divider[data-v-de7aa3e6]{height:1px;background:#ffffff1a}.menu-items[data-v-de7aa3e6]{padding:8px}.menu-item[data-v-de7aa3e6]{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:none;border:none;border-radius:8px;color:#fffc;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;text-align:left}.menu-item[data-v-de7aa3e6]:hover:not(:disabled){background:#ffffff0d;color:#fff}.menu-item svg[data-v-de7aa3e6]{width:18px;height:18px;flex-shrink:0}.menu-item.logout[data-v-de7aa3e6]{color:#fca5a5}.menu-item.logout[data-v-de7aa3e6]:hover:not(:disabled){background:#ef44441a;color:#ef4444}.menu-item[data-v-de7aa3e6]:disabled{opacity:.5;cursor:not-allowed}.spinner[data-v-de7aa3e6]{animation:spin-de7aa3e6 1s linear infinite}@keyframes spin-de7aa3e6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.menu-enter-active[data-v-de7aa3e6],.menu-leave-active[data-v-de7aa3e6]{transition:all .2s ease}.menu-enter-from[data-v-de7aa3e6],.menu-leave-to[data-v-de7aa3e6]{opacity:0;transform:translateY(-8px)}.filters-panel[data-v-de7aa3e6]{padding:16px 0;border-top:1px solid rgba(255,255,255,.05);margin-top:16px}.filters-content[data-v-de7aa3e6]{max-width:1400px;margin:0 auto;display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.filter-group[data-v-de7aa3e6]{flex:1;min-width:200px;display:flex;flex-direction:column;gap:8px}.filter-group label[data-v-de7aa3e6]{font-size:.85rem;font-weight:500;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.filter-input-wrapper[data-v-de7aa3e6]{position:relative;display:flex;align-items:center}.filter-icon[data-v-de7aa3e6]{position:absolute;left:12px;width:18px;height:18px;color:#fff6;pointer-events:none}.filter-input[data-v-de7aa3e6],.filter-select[data-v-de7aa3e6]{width:100%;padding:10px 40px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.9rem;transition:all .3s ease}.filter-select[data-v-de7aa3e6]{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.filter-select option[data-v-de7aa3e6]{background:#1e1e2e;color:#fff;padding:8px}.filter-input[data-v-de7aa3e6]::placeholder{color:#ffffff4d}.filter-input[data-v-de7aa3e6]:focus,.filter-select[data-v-de7aa3e6]:focus{outline:none;background:#ffffff14;border-color:#3b82f680}.clear-input[data-v-de7aa3e6]{position:absolute;right:8px;padding:6px;background:none;border:none;color:#ffffff80;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.clear-input[data-v-de7aa3e6]:hover{color:#fff}.clear-input svg[data-v-de7aa3e6]{width:16px;height:16px}.clear-all-button[data-v-de7aa3e6]{padding:10px 20px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;white-space:nowrap}.clear-all-button[data-v-de7aa3e6]:hover{background:#ef444440;border-color:#ef444480}.clear-all-button svg[data-v-de7aa3e6]{width:16px;height:16px}.filters-enter-active[data-v-de7aa3e6],.filters-leave-active[data-v-de7aa3e6]{transition:all .3s ease}.filters-enter-from[data-v-de7aa3e6]{opacity:0;max-height:0;padding-top:0;padding-bottom:0}.filters-enter-to[data-v-de7aa3e6],.filters-leave-from[data-v-de7aa3e6]{opacity:1;max-height:200px}.filters-leave-to[data-v-de7aa3e6]{opacity:0;max-height:0;padding-top:0;padding-bottom:0}@media (max-width: 768px){.app-header[data-v-de7aa3e6]{padding:12px 16px 0}.header-title h1[data-v-de7aa3e6]{font-size:1.1rem}.header-title p[data-v-de7aa3e6],.user-details[data-v-de7aa3e6]{display:none}.user-menu[data-v-de7aa3e6]{right:-8px;width:260px}.group-command-button span[data-v-de7aa3e6]{display:none}.filter-button span[data-v-de7aa3e6]:not(.filter-badge){display:none}.socket-label[data-v-de7aa3e6]{display:none}.filters-content[data-v-de7aa3e6]{flex-direction:column}.filter-group[data-v-de7aa3e6]{width:100%}.clear-all-button[data-v-de7aa3e6]{width:100%;justify-content:center}}.modal-overlay[data-v-859856c8]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-container[data-v-859856c8]{background:#fff;border-radius:12px;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header[data-v-859856c8]{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e5e7eb}.modal-header h2[data-v-859856c8]{margin:0;font-size:20px;font-weight:600;color:#111827}.close-btn[data-v-859856c8]{background:none;border:none;font-size:32px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s;line-height:1}.close-btn[data-v-859856c8]:hover{background:#f3f4f6;color:#111827}.modal-form[data-v-859856c8]{padding:24px}.form-group[data-v-859856c8]{margin-bottom:20px}.form-group label[data-v-859856c8]{display:block;margin-bottom:6px;font-weight:500;font-size:14px;color:#374151}.form-input[data-v-859856c8]{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s;font-family:inherit}.form-input[data-v-859856c8]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input.disabled[data-v-859856c8]{background:#f9fafb;color:#6b7280;cursor:not-allowed}.form-hint[data-v-859856c8]{display:block;margin-top:4px;font-size:12px;color:#6b7280}textarea.form-input[data-v-859856c8]{resize:vertical;min-height:80px}.checkbox-group[data-v-859856c8]{margin-bottom:24px}.checkbox-label[data-v-859856c8]{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:400}.checkbox-input[data-v-859856c8]{width:18px;height:18px;cursor:pointer}.error-message[data-v-859856c8]{padding:12px;background:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;margin-bottom:20px}.modal-actions[data-v-859856c8]{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e5e7eb}.btn[data-v-859856c8]{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-cancel[data-v-859856c8]{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-cancel[data-v-859856c8]:hover{background:#f9fafb}.btn-save[data-v-859856c8]{background:#3b82f6;color:#fff}.btn-save[data-v-859856c8]:hover:not(:disabled){background:#2563eb;box-shadow:0 2px 8px #3b82f64d}.btn-save[data-v-859856c8]:disabled{opacity:.6;cursor:not-allowed}.modal-overlay[data-v-1c629546]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-1c629546 .2s ease}@keyframes fadeIn-1c629546{0%{opacity:0}to{opacity:1}}.modal-container[data-v-1c629546]{background:#0f172afa;border:1px solid rgba(59,130,246,.3);border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;animation:slideIn-1c629546 .3s ease}@keyframes slideIn-1c629546{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header[data-v-1c629546]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(148,163,184,.1)}.modal-header h2[data-v-1c629546]{margin:0;font-size:1.5rem;font-weight:600;color:#f3f4f6}.close-btn[data-v-1c629546]{background:none;border:none;color:#9ca3af;font-size:2rem;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease}.close-btn[data-v-1c629546]:hover{background:#94a3b81a;color:#f3f4f6}.modal-content[data-v-1c629546]{padding:24px}.action-info[data-v-1c629546]{display:flex;flex-direction:column;gap:24px}.action-name-section[data-v-1c629546]{display:flex;flex-direction:column;gap:12px;padding-bottom:20px;border-bottom:1px solid rgba(148,163,184,.1)}.action-name[data-v-1c629546]{margin:0;font-size:1.5rem;font-weight:700;color:#60a5fa}.status-badge[data-v-1c629546]{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:.875rem;font-weight:600;width:fit-content}.status-badge.status-active[data-v-1c629546]{background:#34d39926;border:1px solid rgba(52,211,153,.3);color:#34d399}.status-badge.status-inactive[data-v-1c629546]{background:#6b728026;border:1px solid rgba(107,114,128,.3);color:#9ca3af}.status-dot[data-v-1c629546]{width:8px;height:8px;border-radius:50%;background:currentColor}.status-active .status-dot[data-v-1c629546]{animation:pulse-1c629546 2s ease-in-out infinite}@keyframes pulse-1c629546{0%,to{opacity:1}50%{opacity:.5}}.command-section[data-v-1c629546]{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:16px}.section-label[data-v-1c629546]{font-size:.75rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.command-value[data-v-1c629546]{font-size:1.25rem;font-weight:700;color:#60a5fa}.details-section[data-v-1c629546]{background:#1e293b99;border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:16px}.details-grid[data-v-1c629546]{display:grid;grid-template-columns:1fr;gap:12px}.detail-item[data-v-1c629546]{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#0f172a99;border-radius:6px;font-size:.875rem}.detail-label[data-v-1c629546]{color:#9ca3af;font-weight:500}.detail-value[data-v-1c629546]{color:#e5e7eb;font-weight:600;text-align:right}.detail-value.monospace[data-v-1c629546]{font-family:monospace;font-size:.8rem}.mqtt-section[data-v-1c629546]{background:#0f172a99;border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:16px}.mqtt-command[data-v-1c629546]{padding:12px;background:#0006;border:1px solid rgba(148,163,184,.1);border-radius:6px;font-family:monospace;font-size:.875rem;color:#34d399;word-break:break-all}.modal-actions[data-v-1c629546]{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid rgba(148,163,184,.1)}.btn[data-v-1c629546]{padding:10px 20px;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn[data-v-1c629546]:disabled{opacity:.5;cursor:not-allowed}.btn-cancel[data-v-1c629546]{background:#94a3b81a;color:#e5e7eb;border:1px solid rgba(148,163,184,.3)}.btn-cancel[data-v-1c629546]:hover:not(:disabled){background:#94a3b833;border-color:#94a3b880}.btn-confirm[data-v-1c629546]{background:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.5)}.btn-confirm[data-v-1c629546]:hover:not(:disabled){background:#3b82f64d;border-color:#3b82f6b3;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.action-button-group[data-v-534cd6ca]{margin-top:16px}.empty-state[data-v-534cd6ca]{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;border-radius:8px;font-size:.875rem;color:#6b7280;background:#0f172a66}.actions-list[data-v-534cd6ca]{display:flex;flex-direction:column;gap:16px}.action-section[data-v-534cd6ca]{background:#0f172a99;border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:16px}.action-header[data-v-534cd6ca]{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.1)}.action-title-row[data-v-534cd6ca]{display:flex;justify-content:space-between;align-items:center;gap:12px}.action-name[data-v-534cd6ca]{margin:0;font-size:1rem;font-weight:600;color:#f3f4f6}.status-badge[data-v-534cd6ca]{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:8px;font-size:.75rem;font-weight:600;white-space:nowrap}.status-badge.status-active[data-v-534cd6ca]{background:#34d39926;border:1px solid rgba(52,211,153,.3);color:#34d399}.status-badge.status-inactive[data-v-534cd6ca]{background:#6b728026;border:1px solid rgba(107,114,128,.3);color:#9ca3af}.status-dot[data-v-534cd6ca]{width:6px;height:6px;border-radius:50%;background:currentColor}.status-active .status-dot[data-v-534cd6ca]{animation:pulse-534cd6ca 2s ease-in-out infinite}@keyframes pulse-534cd6ca{0%,to{opacity:1}50%{opacity:.5}}.command-buttons[data-v-534cd6ca]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.command-btn[data-v-534cd6ca]{display:flex;align-items:center;justify-content:center;padding:10px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:#60a5fa;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.command-btn[data-v-534cd6ca]:hover{background:#3b82f633;border-color:#3b82f680;transform:translateY(-1px)}.feedback-message[data-v-534cd6ca]{margin-top:12px;padding:12px;border-radius:8px;font-size:.875rem;display:flex;align-items:center;gap:8px;animation:slideDown-534cd6ca .3s ease}@keyframes slideDown-534cd6ca{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.feedback-message.success[data-v-534cd6ca]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.feedback-message.error[data-v-534cd6ca]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.feedback-icon[data-v-534cd6ca]{width:16px;height:16px;flex-shrink:0}.trend-chart[data-v-fecbc5b4]{position:relative;width:100%;background:#0f1923;border-radius:8px;padding:12px 8px 8px;box-sizing:border-box}.trend-loading[data-v-fecbc5b4]{display:flex;align-items:center;gap:10px;color:#64748b;font-size:13px;padding:32px 16px;justify-content:center}.trend-spinner[data-v-fecbc5b4]{width:18px;height:18px;border:2px solid #1e3a5f;border-top-color:#3b82f6;border-radius:50%;animation:spin-fecbc5b4 .8s linear infinite}@keyframes spin-fecbc5b4{to{transform:rotate(360deg)}}.trend-empty[data-v-fecbc5b4]{color:#4a5568;font-size:13px;text-align:center;padding:32px}.trend-legend[data-v-fecbc5b4]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;padding:0 4px}.legend-btn[data-v-fecbc5b4]{display:flex;align-items:center;gap:5px;background:#1a2a3a;border:1px solid #2a3a4a;color:#94a3b8;font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;transition:opacity .15s}.legend-btn[data-v-fecbc5b4]:hover{background:#1e3a54}.legend-btn.inactive[data-v-fecbc5b4]{opacity:.35}.legend-dot[data-v-fecbc5b4]{display:inline-block;width:10px;height:10px;border-radius:50%}.axis-label[data-v-fecbc5b4]{fill:#4a5568;font-size:10px;font-family:monospace}.soc-label[data-v-fecbc5b4]{fill:#a78bfa}.axis-title[data-v-fecbc5b4]{fill:#4a5568;font-size:10px}.trend-tooltip[data-v-fecbc5b4]{position:absolute;top:44px;left:60px;background:#1a2a3a;border:1px solid #2a3a4a;border-radius:6px;padding:8px 10px;pointer-events:none;z-index:10;min-width:160px}.tooltip-time[data-v-fecbc5b4]{font-size:11px;color:#94a3b8;margin-bottom:5px;font-weight:600}.tooltip-row[data-v-fecbc5b4]{display:flex;align-items:center;gap:6px;font-size:11px;color:#cbd5e1;margin-bottom:2px;transition:opacity .15s}.tooltip-row.faded[data-v-fecbc5b4]{opacity:.3}.tooltip-dot[data-v-fecbc5b4]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tooltip-label[data-v-fecbc5b4]{flex:1;color:#94a3b8}.tooltip-val[data-v-fecbc5b4]{font-family:monospace;font-weight:600}.trend-date-bar[data-v-fecbc5b4]{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:10px}.date-arrow-btn[data-v-fecbc5b4]{display:flex;align-items:center;justify-content:center;background:#1a2a3a;border:1px solid #2a3a4a;color:#94a3b8;border-radius:5px;width:28px;height:28px;cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.date-arrow-btn[data-v-fecbc5b4]:hover:not(:disabled){background:#1e3a54;color:#e2e8f0;border-color:#3b82f6}.date-arrow-btn[data-v-fecbc5b4]:disabled{opacity:.3;cursor:default}.date-input-wrap[data-v-fecbc5b4]{position:relative;display:flex;align-items:center;cursor:pointer}.date-display[data-v-fecbc5b4]{font-size:12px;font-weight:600;color:#cbd5e1;background:#1a2a3a;border:1px solid #2a3a4a;border-radius:5px;padding:4px 10px;white-space:nowrap;transition:background .15s,border-color .15s;pointer-events:none}.date-input-wrap:hover .date-display[data-v-fecbc5b4]{background:#1e3a54;border-color:#3b82f6}.date-input-hidden[data-v-fecbc5b4]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.revenue-chart[data-v-022fb3e7]{position:relative;width:100%;background:#0b1623;border-radius:8px;padding:12px 8px 8px;box-sizing:border-box}.month-bar[data-v-022fb3e7]{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.month-arrow-btn[data-v-022fb3e7]{display:flex;align-items:center;justify-content:center;background:#1a2a3a;border:1px solid #2a3a4a;color:#94a3b8;border-radius:5px;width:28px;height:28px;cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.month-arrow-btn[data-v-022fb3e7]:hover:not(:disabled){background:#1e3a54;color:#e2e8f0;border-color:#3b82f6}.month-arrow-btn[data-v-022fb3e7]:disabled{opacity:.3;cursor:default}.month-label[data-v-022fb3e7]{font-size:13px;font-weight:700;color:#cbd5e1;min-width:120px;text-align:center}.totals-bar[data-v-022fb3e7]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:8px 4px;background:#0f1e2e;border-radius:6px;border:1px solid #1a2a3a}.total-chip[data-v-022fb3e7]{display:flex;align-items:center;gap:5px;padding:4px 10px;background:#1a2a3a;border-radius:4px;transition:opacity .15s}.total-chip.inactive[data-v-022fb3e7]{opacity:.35}.total-chip--grand[data-v-022fb3e7]{margin-left:auto;background:#1a2f44;border:1px solid #2a4a5a}.total-dot[data-v-022fb3e7]{width:8px;height:8px;border-radius:2px;flex-shrink:0}.total-label[data-v-022fb3e7]{font-size:11px;color:#64748b}.total-val[data-v-022fb3e7]{font-size:12px;font-weight:700;font-family:monospace}.total-val--grand[data-v-022fb3e7]{color:#e2e8f0}.chart-legend[data-v-022fb3e7]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding:0 4px}.legend-btn[data-v-022fb3e7]{display:flex;align-items:center;gap:5px;background:#1a2a3a;border:1px solid #2a3a4a;color:#94a3b8;font-size:11px;padding:3px 9px;border-radius:4px;cursor:pointer;transition:opacity .15s,background .15s}.legend-btn[data-v-022fb3e7]:hover{background:#1e3a54}.legend-btn.inactive[data-v-022fb3e7]{opacity:.35}.legend-dot[data-v-022fb3e7]{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.axis-label[data-v-022fb3e7]{fill:#4a5568;font-size:10px;font-family:monospace}.axis-title[data-v-022fb3e7]{fill:#4a5568;font-size:11px}.chart-tooltip[data-v-022fb3e7]{position:absolute;top:120px;left:70px;background:#1a2a3a;border:1px solid #2a3a4a;border-radius:6px;padding:8px 12px;pointer-events:none;z-index:10;min-width:180px}.tooltip-day[data-v-022fb3e7]{font-size:11px;color:#94a3b8;font-weight:700;margin-bottom:6px}.tooltip-row[data-v-022fb3e7]{display:flex;align-items:center;gap:6px;font-size:11px;color:#cbd5e1;margin-bottom:2px;transition:opacity .15s}.tooltip-row.faded[data-v-022fb3e7]{opacity:.3}.tooltip-dot[data-v-022fb3e7]{width:8px;height:8px;border-radius:2px;flex-shrink:0}.tooltip-label[data-v-022fb3e7]{flex:1;color:#94a3b8}.tooltip-val[data-v-022fb3e7]{font-family:monospace;font-weight:600}.tooltip-total[data-v-022fb3e7]{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#e2e8f0;margin-top:5px;padding-top:5px;border-top:1px solid #2a3a4a}.tooltip-total .tooltip-label[data-v-022fb3e7]{color:#e2e8f0}.site-list[data-v-84c204b9]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:24px}.site-list-header[data-v-84c204b9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.header-left[data-v-84c204b9]{display:flex;align-items:center;gap:16px}.back-btn[data-v-84c204b9]{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#1e293b99;border:1px solid rgba(148,163,184,.2);border-radius:8px;color:#94a3b8;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.back-btn[data-v-84c204b9]:hover{background:#3b82f626;border-color:#3b82f666;color:#60a5fa}.back-btn svg[data-v-84c204b9]{width:16px;height:16px;flex-shrink:0}.site-list-header h2[data-v-84c204b9]{display:flex;align-items:center;gap:12px;font-size:1.5rem;font-weight:600;color:#f3f4f6;margin:0}.header-icon[data-v-84c204b9]{width:28px;height:28px;color:#3b82f6}.refresh-btn[data-v-84c204b9]{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:8px;cursor:pointer;transition:all .3s ease}.refresh-btn[data-v-84c204b9]:hover:not(:disabled){background:#3b82f633;transform:scale(1.05)}.refresh-btn[data-v-84c204b9]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn svg[data-v-84c204b9]{width:20px;height:20px;color:#60a5fa}.refresh-btn svg.spinning[data-v-84c204b9]{animation:spin-84c204b9 1s linear infinite}@keyframes spin-84c204b9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading[data-v-84c204b9],.empty-state[data-v-84c204b9]{text-align:center;padding:48px;color:#9ca3af}.empty-state svg[data-v-84c204b9]{width:64px;height:64px;margin-bottom:16px;opacity:.5}.empty-state p[data-v-84c204b9]{margin:8px 0}.empty-state-hint[data-v-84c204b9]{font-size:.9rem;color:#6b7280;font-style:italic}.sites-table[data-v-84c204b9]{width:100%}.table-header[data-v-84c204b9]{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 1fr .8fr .8fr 1.5fr;gap:12px;padding:8px 12px;background:#0f172acc;border-radius:8px;margin-bottom:6px;font-size:.75rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.col-label-short[data-v-84c204b9]{display:none}.sortable[data-v-84c204b9]{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px;transition:color .2s}.sortable[data-v-84c204b9]:hover{color:#60a5fa}.sort-icon[data-v-84c204b9]{width:14px;height:14px;flex-shrink:0;transition:transform .2s}.sort-icon.desc[data-v-84c204b9]{transform:rotate(180deg)}.site-row-container[data-v-84c204b9]{margin-bottom:4px}.site-row[data-v-84c204b9]{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 1fr .8fr .8fr 1.5fr;gap:12px;padding:10px 12px;background:#0f172a99;border:1px solid rgba(148,163,184,.1);border-radius:8px;cursor:pointer;transition:all .3s ease;align-items:center}.site-row[data-v-84c204b9]:hover{background:#0f172acc;border-color:#3b82f64d}.site-row.expanded[data-v-84c204b9]{border-bottom-left-radius:0;border-bottom-right-radius:0;background:#0f172ae6;border-color:#3b82f680}.col-name[data-v-84c204b9]{display:flex;align-items:center;gap:8px}.expand-icon[data-v-84c204b9]{width:20px;height:20px;color:#9ca3af;transition:transform .3s ease;flex-shrink:0}.site-row.expanded .expand-icon[data-v-84c204b9]{transform:rotate(180deg)}.expand-icon svg[data-v-84c204b9]{width:100%;height:100%}.site-name-wrapper[data-v-84c204b9]{display:flex;flex-direction:column;gap:2px}.site-name[data-v-84c204b9]{font-weight:600;color:#f3f4f6;font-size:.95rem}.col-hostname[data-v-84c204b9],.col-location[data-v-84c204b9],.col-grid[data-v-84c204b9],.col-pv[data-v-84c204b9],.col-bess[data-v-84c204b9],.col-soc[data-v-84c204b9],.col-devices[data-v-84c204b9],.col-updated[data-v-84c204b9]{color:#e5e7eb;font-size:.875rem}.status-badge[data-v-84c204b9]{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;color:#000;text-transform:uppercase}.importing[data-v-84c204b9]{color:#ef4444;font-weight:600}.exporting[data-v-84c204b9]{color:#34d399;font-weight:600}.soc-low[data-v-84c204b9]{color:#ef4444;font-weight:600}.soc-normal[data-v-84c204b9]{color:#34d399;font-weight:600}.no-data[data-v-84c204b9]{color:#6b7280;font-style:italic}.timestamp[data-v-84c204b9]{font-size:.8rem;color:#9ca3af}.accordion-actions[data-v-84c204b9]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.accordion-action-btn[data-v-84c204b9]{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.accordion-action-btn svg[data-v-84c204b9]{width:13px;height:13px;flex-shrink:0}.accordion-action-btn.controller-btn[data-v-84c204b9]{background:#10b9811a;border-color:#10b9814d;color:#34d399}.accordion-action-btn.controller-btn[data-v-84c204b9]:hover{background:#10b98133;border-color:#10b98180}.accordion-action-btn.config-btn[data-v-84c204b9]{background:#3b82f61a;border-color:#3b82f64d;color:#60a5fa}.accordion-action-btn.config-btn[data-v-84c204b9]:hover{background:#3b82f633;border-color:#3b82f680}.accordion-action-btn.edit-btn[data-v-84c204b9]{background:#fbbf241a;border-color:#fbbf244d;color:#fbbf24}.accordion-action-btn.edit-btn[data-v-84c204b9]:hover{background:#fbbf2433;border-color:#fbbf2480}.accordion-action-btn.detail-btn[data-v-84c204b9]{background:#94a3b814;border-color:#94a3b833;color:#94a3b8}.accordion-action-btn.detail-btn[data-v-84c204b9]:hover{background:#94a3b826;border-color:#94a3b859;color:#e2e8f0}.accordion-content[data-v-84c204b9]{padding:14px 16px;background:#0f172af2;border:1px solid rgba(59,130,246,.5);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.trend-section[data-v-84c204b9]{margin-bottom:12px}.trend-section-title[data-v-84c204b9]{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.site-info-card[data-v-84c204b9]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:6px;padding:10px 14px;margin-bottom:10px}.site-info-header[data-v-84c204b9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(148,163,184,.1)}.site-info-header h3[data-v-84c204b9]{font-size:.95rem;font-weight:600;color:#f3f4f6;margin:0}.site-info-grid[data-v-84c204b9]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}.site-info-item[data-v-84c204b9]{display:flex;flex-direction:row;align-items:baseline;gap:6px;padding:5px 8px;background:#0f172a99;border-radius:4px;border:1px solid rgba(148,163,184,.08)}.info-label[data-v-84c204b9]{font-size:.68rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.info-value[data-v-84c204b9]{font-size:.8rem;color:#e5e7eb;font-weight:600}.info-value.monospace[data-v-84c204b9]{font-family:monospace;font-size:.75rem}.devices-header[data-v-84c204b9]{margin-bottom:8px}.devices-header h3[data-v-84c204b9]{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:#f3f4f6;margin:0}.live-badge[data-v-84c204b9]{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:12px;font-size:.7rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.live-dot[data-v-84c204b9]{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse-dot-84c204b9 2s ease-in-out infinite}@keyframes pulse-dot-84c204b9{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.devices-grid[data-v-84c204b9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.device-card[data-v-84c204b9]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:6px;padding:10px 12px;transition:all .3s ease}.device-card.live-device[data-v-84c204b9]{border-color:#34d3994d;box-shadow:0 0 12px #34d3991a}.live-indicator[data-v-84c204b9]{display:inline-block;margin-left:8px;padding:2px 8px;background:#34d39933;border-radius:4px;font-size:.7rem;font-weight:600;color:#34d399;text-transform:uppercase}.device-header[data-v-84c204b9]{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(148,163,184,.1)}.device-icon[data-v-84c204b9]{width:22px;height:22px;flex-shrink:0}.device-icon svg[data-v-84c204b9]{width:100%;height:100%}.device-info[data-v-84c204b9]{flex:1;min-width:0}.device-type[data-v-84c204b9]{font-weight:600;color:#f3f4f6;font-size:.82rem}.device-serial[data-v-84c204b9]{font-size:.68rem;color:#9ca3af;font-family:monospace}.device-status[data-v-84c204b9]{padding:2px 6px;border-radius:6px;font-size:.65rem;font-weight:600;text-transform:uppercase}.device-status.enabled[data-v-84c204b9]{background:#34d39933;color:#34d399}.device-status.disabled[data-v-84c204b9]{background:#6b728033;color:#9ca3af}.device-details[data-v-84c204b9]{display:flex;flex-direction:column;gap:8px}.detail-section[data-v-84c204b9]{background:#0f172a80;border-radius:4px;padding:8px}.section-title[data-v-84c204b9]{font-size:.72rem;font-weight:600;color:#60a5fa;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.data-section[data-v-84c204b9]{background:#3b82f614;border:1px solid rgba(59,130,246,.25);border-radius:6px;padding:8px 10px;margin-bottom:8px}.data-header[data-v-84c204b9]{margin-bottom:6px}.data-title[data-v-84c204b9]{font-size:.72rem;font-weight:600;color:#60a5fa;text-transform:uppercase;letter-spacing:.04em}.data-grid[data-v-84c204b9]{display:flex;flex-direction:column;gap:3px}.data-item[data-v-84c204b9]{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 7px;background:#0f172a99;border-radius:4px}.data-label[data-v-84c204b9]{font-size:.65rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.data-value[data-v-84c204b9]{font-size:.82rem;color:#60a5fa;font-weight:700;font-family:monospace;text-align:right;word-break:break-all}.config-accordion[data-v-84c204b9]{background:#0f172a66;border:1px solid rgba(148,163,184,.2);border-radius:6px;overflow:hidden}.config-accordion-header[data-v-84c204b9]{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:all .2s ease;background:#0f172a99;border-bottom:1px solid transparent}.config-accordion-header[data-v-84c204b9]:hover{background:#0f172acc}.config-accordion-header.expanded[data-v-84c204b9]{border-bottom-color:#94a3b833}.config-accordion-header span[data-v-84c204b9]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.accordion-icon[data-v-84c204b9]{width:16px;height:16px;color:#9ca3af;transition:transform .3s ease;flex-shrink:0}.config-accordion-header.expanded .accordion-icon[data-v-84c204b9]{transform:rotate(180deg)}.config-accordion-content[data-v-84c204b9]{padding:12px;background:#0f172a4d}.detail-row[data-v-84c204b9]{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:4px 0}.detail-label[data-v-84c204b9]{color:#9ca3af;font-weight:500}.detail-value[data-v-84c204b9]{color:#e5e7eb;font-family:monospace;font-size:.75rem;text-align:right}.alarms-section[data-v-84c204b9]{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.alarms-title[data-v-84c204b9]{display:flex;align-items:center;gap:8px;color:#fca5a5}.alarms-title svg[data-v-84c204b9]{width:16px;height:16px}.alarms-list[data-v-84c204b9]{display:flex;flex-direction:column;gap:8px}.alarm-item[data-v-84c204b9]{padding:10px 12px;background:#0f172a99;border-left:3px solid #ef4444;border-radius:4px;color:#fca5a5;font-size:.85rem;line-height:1.5;display:flex;align-items:center;gap:8px;font-family:system-ui,-apple-system,sans-serif}@media (max-width: 1600px){.table-header[data-v-84c204b9],.site-row[data-v-84c204b9]{grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr .8fr}.col-hostname[data-v-84c204b9],.col-devices[data-v-84c204b9],.col-updated[data-v-84c204b9]{display:none}}@media (max-width: 1200px){.table-header[data-v-84c204b9],.site-row[data-v-84c204b9]{grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr .8fr}.col-hostname[data-v-84c204b9],.col-devices[data-v-84c204b9],.col-updated[data-v-84c204b9]{display:none}}@media (max-width: 768px){.site-list[data-v-84c204b9]{padding:12px 8px}.site-list-header[data-v-84c204b9]{margin-bottom:12px}.site-list-header h2[data-v-84c204b9]{font-size:1rem;gap:6px}.header-icon[data-v-84c204b9]{width:18px;height:18px}.back-btn[data-v-84c204b9]{padding:6px 10px;font-size:.75rem;gap:4px}.back-btn svg[data-v-84c204b9]{width:12px;height:12px}.fleet-summary[data-v-84c204b9]{padding:10px 12px;margin-bottom:12px}.fleet-stat[data-v-84c204b9]{min-width:calc(50% - 4px);padding:8px 10px;gap:6px}.fleet-stat-icon[data-v-84c204b9]{width:24px;height:24px;border-radius:6px}.fleet-stat-icon svg[data-v-84c204b9]{width:12px;height:12px}.fleet-stat-value[data-v-84c204b9]{font-size:.85rem}.fleet-stat-label[data-v-84c204b9]{font-size:.62rem}.sites-table[data-v-84c204b9]{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-header[data-v-84c204b9],.site-row[data-v-84c204b9]{grid-template-columns:2fr 1fr 1fr 1fr 1fr .8fr;gap:6px;padding:8px 6px;font-size:.7rem}.table-header[data-v-84c204b9]{font-size:.6rem;padding:6px;letter-spacing:.02em}.col-hostname[data-v-84c204b9],.col-location[data-v-84c204b9],.col-devices[data-v-84c204b9],.col-updated[data-v-84c204b9],.col-label-full[data-v-84c204b9]{display:none}.col-label-short[data-v-84c204b9]{display:inline}.site-name[data-v-84c204b9]{font-size:.72rem}.expand-icon[data-v-84c204b9]{width:14px;height:14px}.col-name[data-v-84c204b9]{gap:4px}.status-badge[data-v-84c204b9]{padding:2px 6px;font-size:.6rem}.accordion-content[data-v-84c204b9]{padding:12px 8px}.site-info-grid[data-v-84c204b9]{grid-template-columns:1fr 1fr;gap:8px}.site-info-item[data-v-84c204b9]{padding:8px}.devices-grid[data-v-84c204b9]{grid-template-columns:1fr}}.power-control[data-v-84c204b9]{margin-top:8px;padding:8px;background:#0f172a99;border-radius:6px;border:1px solid rgba(148,163,184,.1)}.power-control-header[data-v-84c204b9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.control-label[data-v-84c204b9]{font-size:.7rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.power-value[data-v-84c204b9]{font-size:.8rem;color:#60a5fa;font-weight:700;font-family:monospace}.power-slider[data-v-84c204b9]{width:100%;height:4px;border-radius:2px;background:#1f2937cc;outline:none;-webkit-appearance:none;margin:4px 0}.power-slider[data-v-84c204b9]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;box-shadow:0 1px 4px #60a5fa66;transition:all .2s ease}.power-slider[data-v-84c204b9]::-webkit-slider-thumb:hover{background:#3b82f6;box-shadow:0 2px 8px #60a5fa99}.power-slider[data-v-84c204b9]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;border:none;box-shadow:0 1px 4px #60a5fa66;transition:all .2s ease}.power-slider[data-v-84c204b9]::-moz-range-thumb:hover{background:#3b82f6;box-shadow:0 2px 8px #60a5fa99}.slider-labels[data-v-84c204b9]{display:flex;justify-content:space-between;font-size:.65rem;color:#6b7280;margin-bottom:6px}.control-buttons[data-v-84c204b9]{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.control-btn[data-v-84c204b9]{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border:none;border-radius:4px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease}.control-btn svg[data-v-84c204b9]{width:12px;height:12px}.control-btn[data-v-84c204b9]:disabled{opacity:.5;cursor:not-allowed}.charging-btn[data-v-84c204b9]{background:#34d39926;color:#34d399;border:1px solid rgba(52,211,153,.3)}.charging-btn[data-v-84c204b9]:hover:not(:disabled){background:#34d39940;border-color:#34d39980;transform:translateY(-1px)}.discharging-btn[data-v-84c204b9]{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.discharging-btn[data-v-84c204b9]:hover:not(:disabled){background:#3b82f640;border-color:#3b82f680;transform:translateY(-1px)}.command-feedback[data-v-84c204b9]{margin-top:6px;padding:5px 8px;border-radius:4px;font-size:.72rem;display:flex;align-items:center;gap:6px;animation:slideDown-84c204b9 .3s ease}.command-feedback svg[data-v-84c204b9]{width:12px;height:12px;flex-shrink:0}.command-feedback.success[data-v-84c204b9]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-feedback.error[data-v-84c204b9]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}@keyframes slideDown-84c204b9{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.fleet-summary[data-v-84c204b9]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 20px;margin-bottom:20px}.fleet-summary-title[data-v-84c204b9]{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#ffffff73;margin-bottom:14px}.fleet-summary-title svg[data-v-84c204b9]{width:14px;height:14px;stroke:#ffffff59}.fleet-count[data-v-84c204b9]{margin-left:auto;font-size:.75rem;font-weight:500;color:#ffffff59;letter-spacing:0;text-transform:none}.fleet-stats[data-v-84c204b9]{display:flex;gap:8px;flex-wrap:wrap}.fleet-stat[data-v-84c204b9]{display:flex;align-items:center;gap:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:10px 14px;min-width:140px;flex:1}.fleet-stat-icon[data-v-84c204b9]{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fleet-stat-icon svg[data-v-84c204b9]{width:16px;height:16px}.grid-icon[data-v-84c204b9]{background:#fbbf241f;stroke:#fbbf24}.grid-icon svg[data-v-84c204b9]{stroke:#fbbf24}.pv-icon[data-v-84c204b9]{background:#f59e0b1f}.pv-icon svg[data-v-84c204b9]{stroke:#f59e0b}.bess-icon[data-v-84c204b9]{background:#34d3991f}.bess-icon svg[data-v-84c204b9]{stroke:#34d399}.plan-icon[data-v-84c204b9]{background:#60a5fa1f}.plan-icon svg[data-v-84c204b9]{stroke:#60a5fa}.soc-icon[data-v-84c204b9]{background:#a7f3d01a}.soc-icon svg[data-v-84c204b9]{stroke:#6ee7b7}.fleet-stat-body[data-v-84c204b9]{display:flex;flex-direction:column;gap:2px;min-width:0}.fleet-stat-label[data-v-84c204b9]{font-size:.7rem;font-weight:500;color:#fff6;text-transform:uppercase;letter-spacing:.06em}.fleet-stat-value[data-v-84c204b9]{font-size:1rem;font-weight:700;color:#fff;letter-spacing:-.01em}.val-positive[data-v-84c204b9]{color:#fbbf24}.val-negative[data-v-84c204b9]{color:#f87171}.val-pv[data-v-84c204b9]{color:#fcd34d}.val-charging[data-v-84c204b9]{color:#34d399}.val-discharging[data-v-84c204b9]{color:#fb923c}.val-zero[data-v-84c204b9]{color:#ffffff80}.val-plan[data-v-84c204b9]{color:#93c5fd}.val-soc[data-v-84c204b9]{color:#6ee7b7}.fleet-stat-soc[data-v-84c204b9]{min-width:160px}.soc-display[data-v-84c204b9]{display:flex;flex-direction:column;gap:4px}.soc-bar-wrap[data-v-84c204b9]{width:100%;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.soc-bar-fill[data-v-84c204b9]{height:100%;border-radius:2px;transition:width .6s ease}@media (max-width: 768px){.fleet-stat[data-v-84c204b9]{min-width:calc(50% - 4px)}}.revenue-accordion[data-v-84c204b9]{background:#0f172a99;border:1px solid rgba(52,211,153,.2);border-radius:12px;overflow:hidden}.revenue-accordion-header[data-v-84c204b9]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.revenue-accordion-header[data-v-84c204b9]:hover{background:#34d3990f}.revenue-accordion-header.open[data-v-84c204b9]{border-bottom:1px solid rgba(52,211,153,.15);background:#34d3990d}.revenue-accordion-title[data-v-84c204b9]{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.06em}.revenue-accordion-title svg[data-v-84c204b9]{width:18px;height:18px;color:#34d399;flex-shrink:0}.revenue-chevron[data-v-84c204b9]{width:18px;height:18px;color:#34d399;transition:transform .25s ease}.revenue-chevron.open[data-v-84c204b9]{transform:rotate(180deg)}.revenue-accordion-body[data-v-84c204b9]{padding:20px}.revenue-waiting[data-v-84c204b9]{display:flex;align-items:center;gap:10px;color:#64748b;font-size:.9rem}.revenue-waiting svg[data-v-84c204b9]{width:18px;height:18px;animation:spin-revenue-84c204b9 1s linear infinite}@keyframes spin-revenue-84c204b9{to{transform:rotate(360deg)}}.overview-page[data-v-5429de29]{min-height:calc(100vh - 81px);background:linear-gradient(135deg,#0f172a,#1e293b);padding:40px 32px;display:flex;flex-direction:column;gap:32px}.overview-header[data-v-5429de29]{display:flex;align-items:center;gap:20px}.header-icon[data-v-5429de29]{width:56px;height:56px;background:linear-gradient(135deg,#3b82f633,#2563eb33);border:1px solid rgba(59,130,246,.4);border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 24px #3b82f626}.header-icon svg[data-v-5429de29]{width:28px;height:28px;color:#60a5fa}.header-text h1[data-v-5429de29]{font-size:1.75rem;font-weight:700;color:#f3f4f6;letter-spacing:-.02em;margin:0 0 4px}.header-text p[data-v-5429de29]{font-size:.95rem;color:#64748b;margin:0}.groups-table-wrap[data-v-5429de29]{background:#0f172a99;border:1px solid rgba(148,163,184,.1);border-radius:16px;overflow:hidden}.groups-table[data-v-5429de29]{width:100%;border-collapse:collapse;font-size:.9rem}.groups-table thead tr[data-v-5429de29]{background:#1e293bcc;border-bottom:1px solid rgba(148,163,184,.12)}.groups-table th[data-v-5429de29]{padding:14px 20px;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b;white-space:nowrap}.groups-table th.col-power[data-v-5429de29],.groups-table th.col-soc[data-v-5429de29],.groups-table th.col-sites[data-v-5429de29]{text-align:right}.group-row[data-v-5429de29]{border-bottom:1px solid rgba(148,163,184,.07);cursor:pointer;transition:background .15s ease}.group-row[data-v-5429de29]:last-child{border-bottom:none}.group-row[data-v-5429de29]:hover{background:#3b82f60f}.group-row:hover .row-arrow[data-v-5429de29]{opacity:1;transform:translate(3px)}.groups-table td[data-v-5429de29]{padding:18px 20px;vertical-align:middle}.groups-table td.col-power[data-v-5429de29],.groups-table td.col-soc[data-v-5429de29],.groups-table td.col-sites[data-v-5429de29]{text-align:right}.group-name-cell[data-v-5429de29]{display:flex;align-items:center;gap:12px}.group-dot[data-v-5429de29]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.group-name[data-v-5429de29]{font-weight:600;color:#e2e8f0;font-size:.95rem}.sites-badge[data-v-5429de29]{display:inline-flex;align-items:center;gap:3px;font-size:.875rem}.sites-online[data-v-5429de29]{font-weight:700;color:#34d399}.sites-sep[data-v-5429de29]{color:#475569}.sites-total[data-v-5429de29]{color:#64748b}.power-val[data-v-5429de29]{font-weight:600;font-size:.875rem;font-variant-numeric:tabular-nums}.val-import[data-v-5429de29]{color:#f87171}.val-export[data-v-5429de29]{color:#34d399}.val-pv[data-v-5429de29]{color:#fbbf24}.val-charging[data-v-5429de29]{color:#60a5fa}.val-discharging[data-v-5429de29]{color:#fb923c}.val-zero[data-v-5429de29]{color:#64748b}.val-empty[data-v-5429de29]{color:#334155}.soc-cell[data-v-5429de29]{display:flex;align-items:center;gap:10px;justify-content:flex-end}.soc-bar-bg[data-v-5429de29]{width:72px;height:6px;background:#94a3b81f;border-radius:3px;overflow:hidden;flex-shrink:0}.soc-bar-fill[data-v-5429de29]{height:100%;border-radius:3px;transition:width .4s ease}.soc-label[data-v-5429de29]{font-weight:700;font-size:.875rem;font-variant-numeric:tabular-nums;min-width:38px;text-align:right}.row-arrow[data-v-5429de29]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#60a5fa;opacity:.3;transition:all .2s ease;margin-left:auto}.row-arrow svg[data-v-5429de29]{width:16px;height:16px}.col-client[data-v-5429de29],.client-label[data-v-5429de29]{color:#94a3b8;font-size:.85rem}.col-alarms[data-v-5429de29]{text-align:center}.alarms-badge[data-v-5429de29]{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:#f8717126;border:1px solid rgba(248,113,113,.35);border-radius:11px;color:#f87171;font-size:.75rem;font-weight:700}.col-action[data-v-5429de29]{width:48px}.summary-boxes[data-v-5429de29]{display:flex;gap:12px;flex-wrap:wrap}.summary-box[data-v-5429de29]{flex:1;min-width:100px;background:#0f172a99;border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:6px}.summary-box-soc[data-v-5429de29]{min-width:140px}.summary-label[data-v-5429de29]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.summary-value[data-v-5429de29]{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;color:#e2e8f0}.val-online[data-v-5429de29]{color:#34d399}.summary-soc[data-v-5429de29]{display:flex;align-items:center;gap:10px}.summary-soc-bar-bg[data-v-5429de29]{flex:1;height:6px;background:#94a3b81f;border-radius:3px;overflow:hidden}.summary-soc-bar-fill[data-v-5429de29]{height:100%;border-radius:3px;transition:width .4s ease}.empty-state[data-v-5429de29]{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 32px;text-align:center}.empty-icon[data-v-5429de29]{width:72px;height:72px;background:#94a3b814;border:1px solid rgba(148,163,184,.15);border-radius:50%;display:flex;align-items:center;justify-content:center}.empty-icon svg[data-v-5429de29]{width:36px;height:36px;color:#475569}.empty-state h3[data-v-5429de29]{font-size:1.2rem;font-weight:700;color:#94a3b8;margin:0}.empty-state p[data-v-5429de29]{font-size:.9rem;color:#475569;margin:0;max-width:320px;line-height:1.6}.waiting-dots[data-v-5429de29]{display:flex;gap:8px;margin-top:8px}.waiting-dots span[data-v-5429de29]{width:8px;height:8px;border-radius:50%;background:#334155;animation:dot-pulse-5429de29 1.4s ease-in-out infinite}.waiting-dots span[data-v-5429de29]:nth-child(2){animation-delay:.2s}.waiting-dots span[data-v-5429de29]:nth-child(3){animation-delay:.4s}@keyframes dot-pulse-5429de29{0%,80%,to{opacity:.3;transform:scale(.9)}40%{opacity:1;transform:scale(1.1)}}@media (max-width: 768px){.overview-page[data-v-5429de29]{padding:12px 8px;gap:12px}.overview-header[data-v-5429de29]{gap:10px}.header-icon[data-v-5429de29]{width:36px;height:36px;border-radius:10px;flex-shrink:0}.header-icon svg[data-v-5429de29]{width:18px;height:18px}.header-text h1[data-v-5429de29]{font-size:1.1rem;margin:0 0 2px}.header-text p[data-v-5429de29]{font-size:.75rem}.groups-table-wrap[data-v-5429de29]{border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.groups-table[data-v-5429de29]{font-size:.72rem;min-width:0;width:100%}.groups-table th[data-v-5429de29]{padding:8px 5px;font-size:.6rem;letter-spacing:.03em;white-space:nowrap}.groups-table td[data-v-5429de29]{padding:10px 5px;white-space:nowrap}.group-dot[data-v-5429de29]{width:6px;height:6px}.group-name-cell[data-v-5429de29]{gap:6px}.group-name[data-v-5429de29]{font-size:.72rem}.power-val[data-v-5429de29]{font-size:.7rem}.soc-cell[data-v-5429de29]{gap:4px;justify-content:flex-end}.soc-bar-bg[data-v-5429de29]{display:none}.soc-label[data-v-5429de29]{font-size:.7rem;min-width:28px}.client-label[data-v-5429de29]{font-size:.7rem}.alarms-badge[data-v-5429de29]{min-width:18px;height:18px;padding:0 4px;font-size:.65rem}.row-arrow[data-v-5429de29]{width:18px;height:18px}.row-arrow svg[data-v-5429de29]{width:12px;height:12px}.col-action[data-v-5429de29]{width:28px}.hide-xs[data-v-5429de29]{display:none}}@media (max-width: 480px){.hide-sm[data-v-5429de29]{display:none}}.card[data-v-afb3bbfc]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:20px;transition:all .3s ease}.card[data-v-afb3bbfc]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.card.warning[data-v-afb3bbfc]{border-color:#fbbf244d}.card.error[data-v-afb3bbfc]{border-color:#ef44444d}.card-header[data-v-afb3bbfc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.title-section[data-v-afb3bbfc]{display:flex;align-items:center;gap:8px}.icon[data-v-afb3bbfc]{width:24px;height:24px;color:#fbbf24}.card-header h3[data-v-afb3bbfc]{font-size:1rem;font-weight:600;color:#f3f4f6;margin:0}.status-badge[data-v-afb3bbfc]{padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;color:#000;text-transform:uppercase}.metrics[data-v-afb3bbfc]{display:flex;flex-direction:column;gap:16px}.metric-large[data-v-afb3bbfc]{text-align:center;padding:16px;background:#3b82f61a;border-radius:8px}.metric-large .value[data-v-afb3bbfc]{font-size:2.5rem;font-weight:700;color:#60a5fa;line-height:1}.metric-large .label[data-v-afb3bbfc]{font-size:.875rem;color:#9ca3af;margin-top:4px}.metric-row[data-v-afb3bbfc]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric[data-v-afb3bbfc]{background:#0f172a99;padding:12px;border-radius:8px}.metric-label[data-v-afb3bbfc]{font-size:.75rem;color:#9ca3af;margin-bottom:4px}.metric-value[data-v-afb3bbfc]{font-size:1rem;font-weight:600;color:#e5e7eb}.error-message[data-v-afb3bbfc]{margin-top:16px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:.875rem;color:#fca5a5;display:flex;align-items:center;gap:8px}.error-icon[data-v-afb3bbfc]{width:16px;height:16px;flex-shrink:0}.card[data-v-49fc3953]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:20px;transition:all .3s ease}.card[data-v-49fc3953]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.card.warning[data-v-49fc3953]{border-color:#fbbf244d}.card.error[data-v-49fc3953]{border-color:#ef44444d}.card-header[data-v-49fc3953]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.title-section[data-v-49fc3953]{display:flex;align-items:center;gap:8px}.icon[data-v-49fc3953]{width:24px;height:24px;color:#fbbf24}.card-header h3[data-v-49fc3953]{font-size:1rem;font-weight:600;color:#f3f4f6;margin:0}.status-badge[data-v-49fc3953]{padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;color:#000;text-transform:uppercase}.metrics[data-v-49fc3953]{display:flex;flex-direction:column;gap:12px}.metric-large[data-v-49fc3953]{text-align:center;padding:16px;background:#fbbf241a;border-radius:8px}.metric-large .value[data-v-49fc3953]{font-size:2.5rem;font-weight:700;color:#fbbf24;line-height:1}.metric-large .label[data-v-49fc3953]{font-size:.875rem;color:#9ca3af;margin-top:4px}.metric-row[data-v-49fc3953]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric[data-v-49fc3953]{background:#0f172a99;padding:12px;border-radius:8px}.metric-label[data-v-49fc3953]{font-size:.75rem;color:#9ca3af;margin-bottom:4px}.metric-value[data-v-49fc3953]{font-size:1rem;font-weight:600;color:#e5e7eb}.error-message[data-v-49fc3953]{margin-top:16px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:.875rem;color:#fca5a5;display:flex;align-items:center;gap:8px}.error-icon[data-v-49fc3953]{width:16px;height:16px;flex-shrink:0}.card[data-v-705cf373]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:20px;transition:all .3s ease}.card[data-v-705cf373]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.card.warning[data-v-705cf373]{border-color:#fbbf244d}.card.error[data-v-705cf373]{border-color:#ef44444d}.card-header[data-v-705cf373]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.title-section[data-v-705cf373]{display:flex;align-items:center;gap:8px}.icon[data-v-705cf373]{width:24px;height:24px;color:#3b82f6}.card-header h3[data-v-705cf373]{font-size:1rem;font-weight:600;color:#f3f4f6;margin:0}.status-badge[data-v-705cf373]{padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;color:#000;text-transform:uppercase}.mode-indicator[data-v-705cf373]{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;border-radius:8px;margin-bottom:16px;color:#000;font-weight:600}.mode-icon[data-v-705cf373]{font-size:1.25rem}.mode-text[data-v-705cf373]{font-size:.875rem}.metrics[data-v-705cf373]{display:flex;flex-direction:column;gap:16px}.metric-large[data-v-705cf373]{text-align:center;padding:16px;background:#3b82f61a;border-radius:8px}.metric-large .value[data-v-705cf373]{font-size:2.5rem;font-weight:700;color:#60a5fa;line-height:1}.metric-large .label[data-v-705cf373]{font-size:.875rem;color:#9ca3af;margin-top:4px}.soc-container[data-v-705cf373]{background:#0f172a99;padding:16px;border-radius:8px}.soc-label[data-v-705cf373]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.875rem}.soc-label span[data-v-705cf373]:first-child{color:#9ca3af}.soc-value[data-v-705cf373]{font-weight:700;font-size:1rem}.soc-bar[data-v-705cf373]{width:100%;height:12px;background:#1f2937cc;border-radius:6px;overflow:hidden;margin-bottom:8px}.soc-fill[data-v-705cf373]{height:100%;transition:width .5s ease,background-color .3s ease;border-radius:6px}.capacity-label[data-v-705cf373]{text-align:center;font-size:.75rem;color:#9ca3af}.metric-row[data-v-705cf373]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric[data-v-705cf373]{background:#0f172a99;padding:12px;border-radius:8px}.metric-label[data-v-705cf373]{font-size:.75rem;color:#9ca3af;margin-bottom:4px}.metric-value[data-v-705cf373]{font-size:1rem;font-weight:600;color:#e5e7eb}.error-message[data-v-705cf373]{margin-top:16px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;font-size:.875rem;color:#fca5a5;display:flex;align-items:center;gap:8px}.error-icon[data-v-705cf373]{width:16px;height:16px;flex-shrink:0}.power-control[data-v-705cf373]{margin-top:8px;padding:8px;background:#0f172a99;border-radius:6px;border:1px solid rgba(148,163,184,.1)}.power-control-header[data-v-705cf373]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.control-label[data-v-705cf373]{font-size:.7rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.power-value[data-v-705cf373]{font-size:.8rem;color:#60a5fa;font-weight:700;font-family:monospace}.power-slider[data-v-705cf373]{width:100%;height:4px;border-radius:2px;background:#1f2937cc;outline:none;-webkit-appearance:none;margin:4px 0}.power-slider[data-v-705cf373]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;box-shadow:0 1px 4px #60a5fa66;transition:all .2s ease}.power-slider[data-v-705cf373]::-webkit-slider-thumb:hover{background:#3b82f6;box-shadow:0 2px 8px #60a5fa99}.power-slider[data-v-705cf373]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;border:none;box-shadow:0 1px 4px #60a5fa66;transition:all .2s ease}.power-slider[data-v-705cf373]::-moz-range-thumb:hover{background:#3b82f6;box-shadow:0 2px 8px #60a5fa99}.slider-labels[data-v-705cf373]{display:flex;justify-content:space-between;font-size:.65rem;color:#6b7280;margin-bottom:6px}.control-buttons[data-v-705cf373]{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.control-btn[data-v-705cf373]{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border:none;border-radius:4px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease}.control-btn svg[data-v-705cf373]{width:12px;height:12px}.control-btn[data-v-705cf373]:disabled{opacity:.5;cursor:not-allowed}.charging-btn[data-v-705cf373]{background:#34d39926;color:#34d399;border:1px solid rgba(52,211,153,.3)}.charging-btn[data-v-705cf373]:hover:not(:disabled){background:#34d39940;border-color:#34d39980;transform:translateY(-1px)}.discharging-btn[data-v-705cf373]{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.discharging-btn[data-v-705cf373]:hover:not(:disabled){background:#3b82f640;border-color:#3b82f680;transform:translateY(-1px)}.command-feedback[data-v-705cf373]{margin-top:6px;padding:5px 8px;border-radius:4px;font-size:.72rem;display:flex;align-items:center;gap:6px;animation:slideDown-705cf373 .3s ease}.command-feedback svg[data-v-705cf373]{width:12px;height:12px;flex-shrink:0}.command-feedback.success[data-v-705cf373]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-feedback.error[data-v-705cf373]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}@keyframes slideDown-705cf373{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.energy-flow[data-v-98e4bf80]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1);border-radius:12px;padding:24px}.energy-flow h2[data-v-98e4bf80]{font-size:1.25rem;font-weight:600;margin:0 0 24px;color:#f3f4f6}.flow-container[data-v-98e4bf80]{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:0;margin-bottom:32px;min-height:200px}.flow-node[data-v-98e4bf80]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;background:#0f172acc;border:2px solid rgba(148,163,184,.2);border-radius:16px;transition:all .3s ease}.flow-node[data-v-98e4bf80]:hover{transform:scale(1.05);box-shadow:0 8px 24px #0000004d}.pv-node[data-v-98e4bf80]{border-color:#fbbf2466}.center-node[data-v-98e4bf80]{border-color:#3b82f666}.bess-node[data-v-98e4bf80]{border-color:#34d39966}.node-icon[data-v-98e4bf80]{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#3b82f61a}.pv-node .node-icon[data-v-98e4bf80]{background:#fbbf241a;color:#fbbf24}.center-node .node-icon[data-v-98e4bf80]{background:#3b82f61a;color:#3b82f6}.bess-node .node-icon[data-v-98e4bf80]{background:#34d3991a;color:#34d399}.node-icon svg[data-v-98e4bf80]{width:28px;height:28px}.node-label[data-v-98e4bf80]{font-size:.875rem;color:#9ca3af;font-weight:500}.node-value[data-v-98e4bf80]{font-size:1.5rem;font-weight:700;color:#e5e7eb}.node-value.importing[data-v-98e4bf80]{color:#ef4444}.node-value.exporting[data-v-98e4bf80],.node-value.charging[data-v-98e4bf80]{color:#34d399}.node-value.discharging[data-v-98e4bf80]{color:#3b82f6}.node-status[data-v-98e4bf80]{font-size:.75rem;color:#6b7280;text-transform:uppercase;font-weight:600}.flow-path[data-v-98e4bf80]{position:relative;height:3px;width:100%}.flow-line[data-v-98e4bf80]{width:100%;height:100%;color:#94a3b84d;transition:color .3s ease}.flow-path.active .flow-line[data-v-98e4bf80]{color:#3b82f6cc}.flow-particles[data-v-98e4bf80]{position:absolute;top:50%;left:0;width:100%;height:3px;transform:translateY(-50%)}.particle[data-v-98e4bf80]{position:absolute;width:8px;height:8px;background:#3b82f6;border-radius:50%;box-shadow:0 0 10px #3b82f6;animation:flowAnimation-98e4bf80 2s linear infinite}.particle[data-v-98e4bf80]:nth-child(2){animation-delay:.6s}.particle[data-v-98e4bf80]:nth-child(3){animation-delay:1.2s}.particle.reverse[data-v-98e4bf80]{animation:flowAnimationReverse-98e4bf80 2s linear infinite}.particle.reverse[data-v-98e4bf80]:nth-child(2){animation-delay:.6s}.particle.reverse[data-v-98e4bf80]:nth-child(3){animation-delay:1.2s}@keyframes flowAnimation-98e4bf80{0%{left:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}@keyframes flowAnimationReverse-98e4bf80{0%{left:100%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:0%;opacity:0}}.summary-bar[data-v-98e4bf80]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px;background:#0f172a99;border-radius:8px}.summary-item[data-v-98e4bf80]{display:flex;flex-direction:column;gap:4px}.summary-label[data-v-98e4bf80]{font-size:.875rem;color:#9ca3af}.summary-value[data-v-98e4bf80]{font-size:1.5rem;font-weight:700;color:#e5e7eb}.summary-value.positive[data-v-98e4bf80]{color:#34d399}.summary-value.negative[data-v-98e4bf80]{color:#ef4444}@media (max-width: 1024px){.flow-container[data-v-98e4bf80]{grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto;gap:16px}.flow-path[data-v-98e4bf80]{transform:rotate(90deg);width:80px;margin:0 auto}}.alert-panel[data-v-2581bdaa]{background:#1e293b99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(239,68,68,.3);border-radius:12px;padding:20px;margin-bottom:24px}.alert-header[data-v-2581bdaa]{display:flex;align-items:center;margin-bottom:16px}.alert-header h2[data-v-2581bdaa]{display:flex;align-items:center;gap:8px;font-size:1.125rem;font-weight:600;color:#fca5a5;margin:0}.header-icon[data-v-2581bdaa]{width:24px;height:24px}.alert-list[data-v-2581bdaa]{display:flex;flex-direction:column;gap:12px}.alert-item[data-v-2581bdaa]{display:flex;align-items:flex-start;gap:16px;padding:16px;background:#0f172acc;border-radius:8px;border-left:4px solid;transition:all .3s ease}.alert-item[data-v-2581bdaa]:hover{background:#0f172af2;transform:translate(4px)}.alert-item.critical[data-v-2581bdaa]{border-left-color:#dc2626;background:#dc26260d}.alert-item.error[data-v-2581bdaa]{border-left-color:#ef4444;background:#ef44440d}.alert-item.warning[data-v-2581bdaa]{border-left-color:#fbbf24;background:#fbbf240d}.alert-item.info[data-v-2581bdaa]{border-left-color:#3b82f6;background:#3b82f60d}.alert-icon[data-v-2581bdaa]{flex-shrink:0;width:24px;height:24px}.alert-icon svg[data-v-2581bdaa]{width:100%;height:100%}.alert-content[data-v-2581bdaa]{flex:1;display:flex;flex-direction:column;gap:8px}.alert-meta[data-v-2581bdaa]{display:flex;align-items:center;gap:12px;font-size:.75rem}.alert-severity[data-v-2581bdaa]{font-weight:700;letter-spacing:.05em}.alert-type[data-v-2581bdaa]{padding:2px 8px;background:#94a3b81a;border-radius:4px;color:#94a3b8;font-weight:600}.alert-time[data-v-2581bdaa]{color:#6b7280}.alert-message[data-v-2581bdaa]{font-size:.875rem;color:#e5e7eb;line-height:1.5}.acknowledge-btn[data-v-2581bdaa]{flex-shrink:0;padding:8px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:#60a5fa;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.acknowledge-btn[data-v-2581bdaa]:hover:not(:disabled){background:#3b82f633;border-color:#3b82f680}.acknowledge-btn[data-v-2581bdaa]:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.alert-item[data-v-2581bdaa]{flex-direction:column;gap:12px}.alert-meta[data-v-2581bdaa]{flex-wrap:wrap}.acknowledge-btn[data-v-2581bdaa]{width:100%}}.dashboard[data-v-c6f021e5]{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#e0e0e0;padding:24px}.dashboard-header[data-v-c6f021e5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding:0 8px}.dashboard-header h1[data-v-c6f021e5]{font-size:2rem;font-weight:600;color:#fff;margin:0}.site-name[data-v-c6f021e5]{font-size:.875rem;color:#9ca3af;margin:4px 0 0}.status-indicator[data-v-c6f021e5]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:500}.status-indicator.operational[data-v-c6f021e5]{background:#34d3991a;color:#34d399}.status-indicator.warning[data-v-c6f021e5]{background:#fbbf241a;color:#fbbf24}.status-dot[data-v-c6f021e5]{width:8px;height:8px;border-radius:50%;animation:pulse-c6f021e5 2s ease-in-out infinite}.status-indicator.operational .status-dot[data-v-c6f021e5]{background:#34d399}.status-indicator.warning .status-dot[data-v-c6f021e5]{background:#fbbf24}@keyframes pulse-c6f021e5{0%,to{opacity:1}50%{opacity:.5}}.loading[data-v-c6f021e5]{text-align:center;padding:48px;font-size:1.2rem;color:#9ca3af}.dashboard-content[data-v-c6f021e5]{display:flex;flex-direction:column;gap:24px}.main-grid[data-v-c6f021e5]{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:24px}.pv-section[data-v-c6f021e5]{grid-column:1;grid-row:1}.grid-section[data-v-c6f021e5]{grid-column:2;grid-row:1}.flow-section[data-v-c6f021e5]{grid-column:1 / -1;grid-row:2}.bess-section[data-v-c6f021e5]{grid-column:1 / -1;grid-row:3}section h2[data-v-c6f021e5]{font-size:1.25rem;font-weight:600;margin:0 0 16px;color:#f3f4f6}.component-grid[data-v-c6f021e5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}@media (max-width: 1200px){.main-grid[data-v-c6f021e5]{grid-template-columns:1fr}.pv-section[data-v-c6f021e5],.grid-section[data-v-c6f021e5],.flow-section[data-v-c6f021e5],.bess-section[data-v-c6f021e5]{grid-column:1}}@media (max-width: 768px){.dashboard[data-v-c6f021e5]{padding:16px}.dashboard-header[data-v-c6f021e5]{flex-direction:column;align-items:flex-start;gap:16px}.dashboard-header h1[data-v-c6f021e5]{font-size:1.5rem}.devices-grid[data-v-c6f021e5]{grid-template-columns:1fr}}.devices-detail-section[data-v-c6f021e5]{grid-column:1 / -1}.live-badge[data-v-c6f021e5]{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:12px;font-size:.7rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.live-dot[data-v-c6f021e5]{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse-dot-c6f021e5 2s ease-in-out infinite}@keyframes pulse-dot-c6f021e5{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.devices-grid[data-v-c6f021e5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.device-card[data-v-c6f021e5]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:16px;transition:all .3s ease}.device-card.live-device[data-v-c6f021e5]{border-color:#34d3994d;box-shadow:0 0 12px #34d3991a}.device-header[data-v-c6f021e5]{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.1)}.device-icon[data-v-c6f021e5]{width:32px;height:32px;flex-shrink:0}.device-icon svg[data-v-c6f021e5]{width:100%;height:100%}.device-info[data-v-c6f021e5]{flex:1;min-width:0}.device-type[data-v-c6f021e5]{font-weight:600;color:#f3f4f6;font-size:.95rem}.device-serial[data-v-c6f021e5]{font-size:.75rem;color:#9ca3af;font-family:monospace}.device-status[data-v-c6f021e5]{padding:4px 8px;border-radius:8px;font-size:.7rem;font-weight:600;text-transform:uppercase}.device-status.enabled[data-v-c6f021e5]{background:#34d39933;color:#34d399}.device-status.disabled[data-v-c6f021e5]{background:#6b728033;color:#9ca3af}.device-details[data-v-c6f021e5]{display:flex;flex-direction:column;gap:16px}.data-section[data-v-c6f021e5]{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:16px}.data-header[data-v-c6f021e5]{margin-bottom:12px}.data-title[data-v-c6f021e5]{font-size:.95rem;font-weight:600;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em}.data-grid[data-v-c6f021e5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.data-item[data-v-c6f021e5]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#0f172a99;border-radius:6px}.data-label[data-v-c6f021e5]{font-size:.7rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.data-value[data-v-c6f021e5]{font-size:1.1rem;color:#60a5fa;font-weight:700;font-family:monospace}.config-accordion[data-v-c6f021e5]{background:#0f172a66;border:1px solid rgba(148,163,184,.2);border-radius:6px;overflow:hidden}.config-accordion-header[data-v-c6f021e5]{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;transition:all .2s ease;background:#0f172a99;border-bottom:1px solid transparent}.config-accordion-header[data-v-c6f021e5]:hover{background:#0f172acc}.config-accordion-header.expanded[data-v-c6f021e5]{border-bottom-color:#94a3b833}.config-accordion-header span[data-v-c6f021e5]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.accordion-icon[data-v-c6f021e5]{width:16px;height:16px;color:#9ca3af;transition:transform .3s ease;flex-shrink:0}.config-accordion-header.expanded .accordion-icon[data-v-c6f021e5]{transform:rotate(180deg)}.config-accordion-content[data-v-c6f021e5]{padding:12px;background:#0f172a4d}.detail-section[data-v-c6f021e5]{background:#0f172a80;border-radius:6px;padding:12px}.section-title[data-v-c6f021e5]{font-size:.85rem;font-weight:600;color:#60a5fa;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}.detail-row[data-v-c6f021e5]{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;padding:4px 0}.detail-label[data-v-c6f021e5]{color:#9ca3af;font-weight:500}.detail-value[data-v-c6f021e5]{color:#e5e7eb;font-family:monospace;font-size:.75rem;text-align:right}.alarms-section[data-v-c6f021e5]{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.alarms-title[data-v-c6f021e5]{display:flex;align-items:center;gap:8px;color:#fca5a5}.alarms-title svg[data-v-c6f021e5]{width:16px;height:16px}.alarms-list[data-v-c6f021e5]{display:flex;flex-direction:column;gap:8px}.alarm-item[data-v-c6f021e5]{padding:10px 12px;background:#0f172a99;border-left:3px solid #ef4444;border-radius:4px;color:#fca5a5;font-size:.85rem;line-height:1.5}.live-indicator[data-v-c6f021e5]{display:inline-block;margin-left:8px;padding:2px 8px;background:#34d39933;border-radius:4px;font-size:.7rem;font-weight:600;color:#34d399;text-transform:uppercase}.power-control[data-v-c6f021e5]{margin-top:16px;padding:16px;background:#0f172a99;border-radius:8px;border:1px solid rgba(148,163,184,.1)}.power-control-header[data-v-c6f021e5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.control-label[data-v-c6f021e5]{font-size:.875rem;color:#9ca3af;font-weight:500}.power-value[data-v-c6f021e5]{font-size:1rem;color:#60a5fa;font-weight:700}.power-slider[data-v-c6f021e5]{width:100%;height:6px;border-radius:3px;background:#1f2937cc;outline:none;-webkit-appearance:none;margin:8px 0}.power-slider[data-v-c6f021e5]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#60a5fa;cursor:pointer;box-shadow:0 2px 8px #60a5fa66;transition:all .2s ease}.power-slider[data-v-c6f021e5]::-webkit-slider-thumb:hover{background:#3b82f6;box-shadow:0 4px 12px #60a5fa99}.power-slider[data-v-c6f021e5]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#60a5fa;cursor:pointer;border:none;box-shadow:0 2px 8px #60a5fa66;transition:all .2s ease}.power-slider[data-v-c6f021e5]::-moz-range-thumb:hover{background:#3b82f6;box-shadow:0 4px 12px #60a5fa99}.slider-labels[data-v-c6f021e5]{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280;margin-bottom:12px}.control-buttons[data-v-c6f021e5]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.control-btn[data-v-c6f021e5]{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.control-btn svg[data-v-c6f021e5]{width:16px;height:16px}.control-btn[data-v-c6f021e5]:disabled{opacity:.5;cursor:not-allowed}.charging-btn[data-v-c6f021e5]{background:#34d39926;color:#34d399;border:1px solid rgba(52,211,153,.3)}.charging-btn[data-v-c6f021e5]:hover:not(:disabled){background:#34d39940;border-color:#34d39980;transform:translateY(-1px)}.discharging-btn[data-v-c6f021e5]{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.discharging-btn[data-v-c6f021e5]:hover:not(:disabled){background:#3b82f640;border-color:#3b82f680;transform:translateY(-1px)}.command-feedback[data-v-c6f021e5]{margin-top:12px;padding:10px;border-radius:6px;font-size:.875rem;display:flex;align-items:center;gap:8px;animation:slideDown-c6f021e5 .3s ease}.command-feedback svg[data-v-c6f021e5]{width:16px;height:16px;flex-shrink:0}.command-feedback.success[data-v-c6f021e5]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-feedback.error[data-v-c6f021e5]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}@keyframes slideDown-c6f021e5{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.site-info-section[data-v-c6f021e5]{margin-bottom:24px}.site-info-card[data-v-c6f021e5]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:20px;transition:all .3s ease}.site-info-header[data-v-c6f021e5]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.2)}.site-info-header h3[data-v-c6f021e5]{font-size:1.1rem;font-weight:600;color:#f3f4f6;margin:0}.site-info-grid[data-v-c6f021e5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.site-info-item[data-v-c6f021e5]{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#0f172a80;border-radius:6px;transition:background .2s ease}.site-info-item[data-v-c6f021e5]:hover{background:#0f172ab3}.info-label[data-v-c6f021e5]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.info-value[data-v-c6f021e5]{font-size:.95rem;font-weight:600;color:#f3f4f6;text-align:right}.info-value.monospace[data-v-c6f021e5]{font-family:monospace;font-size:.85rem;color:#60a5fa}.info-value.timestamp[data-v-c6f021e5]{font-size:.85rem;color:#9ca3af}.info-value.importing[data-v-c6f021e5]{color:#ef4444}.info-value.exporting[data-v-c6f021e5]{color:#34d399}.info-value.soc-low[data-v-c6f021e5]{color:#ef4444;font-weight:700}.info-value.soc-normal[data-v-c6f021e5]{color:#34d399}.info-value.no-data[data-v-c6f021e5]{color:#6b7280;font-style:italic}.site-details-page[data-v-b4847c55]{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f3f4f6;padding:24px}.page-header[data-v-b4847c55]{display:flex;align-items:center;gap:20px;margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid rgba(148,163,184,.2)}.back-btn[data-v-b4847c55]{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.back-btn[data-v-b4847c55]:hover{background:#3b82f633;border-color:#3b82f680;transform:translate(-2px)}.back-btn svg[data-v-b4847c55]{width:20px;height:20px}.page-header h1[data-v-b4847c55]{flex:1;margin:0;font-size:2rem;font-weight:700;color:#f3f4f6}.spacer[data-v-b4847c55]{width:140px}.loading[data-v-b4847c55]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:400px;color:#9ca3af}.loading-spinner[data-v-b4847c55]{width:48px;height:48px;border:4px solid rgba(148,163,184,.2);border-top-color:#60a5fa;border-radius:50%;animation:spin-b4847c55 1s linear infinite}@keyframes spin-b4847c55{to{transform:rotate(360deg)}}.error-state[data-v-b4847c55],.no-devices[data-v-b4847c55]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:400px;color:#9ca3af}.error-state svg[data-v-b4847c55],.no-devices svg[data-v-b4847c55]{width:64px;height:64px;color:#6b7280}.error-state p[data-v-b4847c55],.no-devices p[data-v-b4847c55]{font-size:1.1rem;font-weight:500}.page-content[data-v-b4847c55]{display:flex;flex-direction:column;gap:24px;max-width:1600px;margin:0 auto}.site-info-card[data-v-b4847c55]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.site-info-header[data-v-b4847c55]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(148,163,184,.2)}.site-info-header h3[data-v-b4847c55]{font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.status-badge[data-v-b4847c55]{padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.site-info-grid[data-v-b4847c55]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.site-info-item[data-v-b4847c55]{display:flex;justify-content:space-between;align-items:center;padding:14px;background:#0f172a80;border-radius:8px;transition:background .2s ease}.site-info-item[data-v-b4847c55]:hover{background:#0f172ab3}.info-label[data-v-b4847c55]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.info-value[data-v-b4847c55]{font-size:1rem;font-weight:600;color:#f3f4f6;text-align:right}.info-value.monospace[data-v-b4847c55]{font-family:monospace;font-size:.9rem;color:#60a5fa}.info-value.timestamp[data-v-b4847c55]{font-size:.85rem;color:#9ca3af}.info-value.importing[data-v-b4847c55]{color:#ef4444}.info-value.exporting[data-v-b4847c55]{color:#34d399}.info-value.soc-low[data-v-b4847c55]{color:#ef4444;font-weight:700}.info-value.soc-normal[data-v-b4847c55]{color:#34d399}.info-value.no-data[data-v-b4847c55]{color:#6b7280;font-style:italic}.devices-section[data-v-b4847c55]{background:#1e293b99;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.devices-header[data-v-b4847c55]{margin-bottom:24px}.devices-header h3[data-v-b4847c55]{display:flex;align-items:center;gap:12px;font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.live-badge[data-v-b4847c55]{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#34d39933;border:1px solid rgba(52,211,153,.3);border-radius:12px;font-size:.75rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.live-dot[data-v-b4847c55]{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse-dot-b4847c55 2s ease-in-out infinite}@keyframes pulse-dot-b4847c55{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.devices-grid[data-v-b4847c55]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.device-card[data-v-b4847c55]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:10px;padding:20px;transition:all .3s ease}.device-card[data-v-b4847c55]:hover{border-color:#94a3b866;box-shadow:0 4px 12px #0003}.device-card.live-device[data-v-b4847c55]{border-color:#34d3994d;box-shadow:0 0 12px #34d3991a}.device-header[data-v-b4847c55]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.2)}.device-icon[data-v-b4847c55]{width:36px;height:36px;flex-shrink:0}.device-icon svg[data-v-b4847c55]{width:100%;height:100%}.device-info[data-v-b4847c55]{flex:1;min-width:0}.device-type[data-v-b4847c55]{font-weight:700;color:#f3f4f6;font-size:1rem}.device-serial[data-v-b4847c55]{font-size:.8rem;color:#9ca3af;font-family:monospace}.device-status[data-v-b4847c55]{padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:700;text-transform:uppercase}.device-status.enabled[data-v-b4847c55]{background:#34d39933;color:#34d399}.device-status.disabled[data-v-b4847c55]{background:#6b728033;color:#9ca3af}.device-details[data-v-b4847c55]{display:flex;flex-direction:column;gap:16px}.data-section[data-v-b4847c55]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:16px}.data-header[data-v-b4847c55]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.data-title[data-v-b4847c55]{font-size:.9rem;font-weight:700;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em}.data-grid[data-v-b4847c55]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.data-item[data-v-b4847c55]{display:flex;flex-direction:column;gap:4px;padding:10px;background:#0f172a99;border-radius:6px}.data-label[data-v-b4847c55]{font-size:.7rem;color:#9ca3af;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.data-value[data-v-b4847c55]{font-size:1rem;color:#60a5fa;font-weight:700;font-family:monospace}.config-accordion[data-v-b4847c55]{background:#0f172a66;border:1px solid rgba(148,163,184,.2);border-radius:8px;overflow:hidden}.config-accordion-header[data-v-b4847c55]{display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer;transition:all .2s ease;background:#0f172a99;border-bottom:1px solid transparent}.config-accordion-header[data-v-b4847c55]:hover{background:#0f172acc}.config-accordion-header.expanded[data-v-b4847c55]{border-bottom-color:#94a3b833}.config-accordion-header span[data-v-b4847c55]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.accordion-icon[data-v-b4847c55]{width:18px;height:18px;color:#9ca3af;transition:transform .3s ease;flex-shrink:0}.config-accordion-header.expanded .accordion-icon[data-v-b4847c55]{transform:rotate(180deg)}.config-accordion-content[data-v-b4847c55]{padding:16px;background:#0f172a4d}.detail-section[data-v-b4847c55]{background:#0f172a80;border-radius:8px;padding:12px}.detail-row[data-v-b4847c55]{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:6px 0}.detail-label[data-v-b4847c55]{color:#9ca3af;font-weight:600}.detail-value[data-v-b4847c55]{color:#f3f4f6;font-weight:600;text-align:right}.live-indicator[data-v-b4847c55]{color:#34d399;font-weight:700;font-size:.8em}.alarms-section[data-v-b4847c55]{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.alarms-title[data-v-b4847c55]{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;color:#fca5a5;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}.alarms-title svg[data-v-b4847c55]{width:18px;height:18px}.alarms-list[data-v-b4847c55]{display:flex;flex-direction:column;gap:8px}.alarm-item[data-v-b4847c55]{padding:10px;background:#0f172a80;border-radius:6px;font-size:.85rem;color:#fca5a5;font-weight:500}.power-control[data-v-b4847c55]{background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:6px;padding:8px}.power-control-header[data-v-b4847c55]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.control-label[data-v-b4847c55]{font-size:.7rem;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.03em}.power-value[data-v-b4847c55]{font-size:.8rem;font-weight:700;color:#818cf8;font-family:monospace}.power-slider[data-v-b4847c55]{width:100%;height:4px;border-radius:2px;background:#0f172a99;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:4px 0}.power-slider[data-v-b4847c55]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#818cf8;cursor:pointer;box-shadow:0 0 4px #818cf880}.power-slider[data-v-b4847c55]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#818cf8;cursor:pointer;border:none;box-shadow:0 0 4px #818cf880}.slider-labels[data-v-b4847c55]{display:flex;justify-content:space-between;margin-top:4px;font-size:.65rem;color:#9ca3af;margin-bottom:6px}.control-buttons[data-v-b4847c55]{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.control-btn[data-v-b4847c55]{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border-radius:4px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:1px solid}.control-btn[data-v-b4847c55]:disabled{opacity:.5;cursor:not-allowed}.control-btn svg[data-v-b4847c55]{width:12px;height:12px}.charging-btn[data-v-b4847c55]{background:#34d3991a;color:#34d399;border-color:#34d3994d}.charging-btn[data-v-b4847c55]:hover:not(:disabled){background:#34d39933;border-color:#34d39980;transform:translateY(-1px)}.discharging-btn[data-v-b4847c55]{background:#3b82f61a;color:#3b82f6;border-color:#3b82f64d}.discharging-btn[data-v-b4847c55]:hover:not(:disabled){background:#3b82f633;border-color:#3b82f680;transform:translateY(-1px)}.command-feedback[data-v-b4847c55]{margin-top:6px;padding:5px 8px;border-radius:4px;font-size:.72rem;display:flex;align-items:center;gap:6px;animation:slideDown-b4847c55 .3s ease}.command-feedback svg[data-v-b4847c55]{width:12px;height:12px;flex-shrink:0}.command-feedback.success[data-v-b4847c55]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-feedback.error[data-v-b4847c55]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}@keyframes slideDown-b4847c55{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.controller-page[data-v-9aa5f107]{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f3f4f6;padding:24px}.page-header[data-v-9aa5f107]{display:flex;align-items:center;gap:20px;margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid rgba(148,163,184,.2)}.back-btn[data-v-9aa5f107]{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.back-btn[data-v-9aa5f107]:hover{background:#3b82f633;border-color:#3b82f680;transform:translate(-2px)}.back-btn svg[data-v-9aa5f107]{width:20px;height:20px}.header-title[data-v-9aa5f107]{flex:1;display:flex;flex-direction:column;gap:4px}.header-title h1[data-v-9aa5f107]{margin:0;font-size:2rem;font-weight:700;color:#f3f4f6;line-height:1.1}.page-label[data-v-9aa5f107]{font-size:.8rem;font-weight:600;color:#60a5fa;text-transform:uppercase;letter-spacing:.1em}.spacer[data-v-9aa5f107]{width:140px}.error-state[data-v-9aa5f107]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:400px;color:#9ca3af}.error-state svg[data-v-9aa5f107]{width:64px;height:64px;color:#6b7280}.error-state p[data-v-9aa5f107]{font-size:1.1rem;font-weight:500}.page-content[data-v-9aa5f107]{display:flex;flex-direction:column;gap:24px;max-width:1600px;margin:0 auto}.site-info-card[data-v-9aa5f107]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.site-info-header[data-v-9aa5f107]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(148,163,184,.2)}.site-info-header h3[data-v-9aa5f107]{font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.status-badge[data-v-9aa5f107]{padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em}.site-info-grid[data-v-9aa5f107]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.site-info-item[data-v-9aa5f107]{display:flex;justify-content:space-between;align-items:center;padding:14px;background:#0f172a80;border-radius:8px;transition:background .2s ease}.site-info-item[data-v-9aa5f107]:hover{background:#0f172ab3}.info-label[data-v-9aa5f107]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.info-value[data-v-9aa5f107]{font-size:1rem;font-weight:600;color:#f3f4f6;text-align:right}.info-value.monospace[data-v-9aa5f107]{font-family:monospace;font-size:.9rem;color:#60a5fa}.info-value.timestamp[data-v-9aa5f107]{font-size:.85rem;color:#9ca3af}.info-value.importing[data-v-9aa5f107]{color:#ef4444}.info-value.exporting[data-v-9aa5f107]{color:#34d399}.info-value.soc-low[data-v-9aa5f107]{color:#ef4444;font-weight:700}.info-value.soc-normal[data-v-9aa5f107]{color:#34d399}.info-value.no-data[data-v-9aa5f107]{color:#6b7280;font-style:italic}.commands-card[data-v-9aa5f107]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.commands-header[data-v-9aa5f107]{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(148,163,184,.2)}.commands-header svg[data-v-9aa5f107]{width:22px;height:22px;color:#60a5fa;flex-shrink:0}.commands-header h3[data-v-9aa5f107]{font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.commands-grid[data-v-9aa5f107]{display:flex;flex-direction:column;gap:12px}.command-item[data-v-9aa5f107]{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px;background:#0f172a80;border:1px solid rgba(148,163,184,.15);border-radius:10px;transition:background .2s ease}.command-item[data-v-9aa5f107]:hover{background:#0f172ab3}.command-info[data-v-9aa5f107]{display:flex;flex-direction:column;gap:4px;min-width:0}.command-name[data-v-9aa5f107]{font-size:1rem;font-weight:700;color:#f3f4f6}.command-description[data-v-9aa5f107]{font-size:.85rem;color:#9ca3af}.command-id[data-v-9aa5f107]{font-size:.75rem;color:#4b5563;font-family:monospace;margin-top:2px}.command-btn[data-v-9aa5f107]{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:1px solid;white-space:nowrap;flex-shrink:0}.command-btn[data-v-9aa5f107]:disabled{opacity:.5;cursor:not-allowed}.command-btn svg[data-v-9aa5f107]{width:18px;height:18px}.scan-btn[data-v-9aa5f107]{background:#3b82f61a;color:#60a5fa;border-color:#3b82f64d}.scan-btn[data-v-9aa5f107]:hover:not(:disabled){background:#3b82f633;border-color:#3b82f680;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f633}.command-feedback[data-v-9aa5f107]{padding:14px 16px;border-radius:8px;font-size:.9rem;display:flex;align-items:center;gap:10px;animation:slideDown-9aa5f107 .3s ease}.command-feedback svg[data-v-9aa5f107]{width:18px;height:18px;flex-shrink:0}.command-feedback.success[data-v-9aa5f107]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-feedback.error[data-v-9aa5f107]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}@keyframes slideDown-9aa5f107{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin-9aa5f107{to{transform:rotate(360deg)}}.spin[data-v-9aa5f107]{animation:spin-9aa5f107 1s linear infinite}.socket-log-card[data-v-9aa5f107]{background:#0f172ae6;border:1px solid rgba(148,163,184,.2);border-radius:12px;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.socket-log-header[data-v-9aa5f107]{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid rgba(148,163,184,.1);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s ease}.socket-log-header[data-v-9aa5f107]:hover{background:#1e293b80}.socket-log-title[data-v-9aa5f107]{display:flex;align-items:center;gap:10px}.socket-log-title svg[data-v-9aa5f107]{width:20px;height:20px;color:#60a5fa;flex-shrink:0}.socket-log-title h3[data-v-9aa5f107]{font-size:1.1rem;font-weight:700;color:#f3f4f6;margin:0}.msg-count[data-v-9aa5f107]{background:#3b82f626;border:1px solid rgba(59,130,246,.3);color:#60a5fa;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:10px;font-family:monospace}.socket-log-actions[data-v-9aa5f107]{display:flex;align-items:center;gap:8px}.log-action-btn[data-v-9aa5f107]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#1e293b99;border:1px solid rgba(148,163,184,.2);border-radius:6px;color:#9ca3af;cursor:pointer;transition:all .2s ease}.log-action-btn[data-v-9aa5f107]:hover{background:#3b82f626;border-color:#3b82f666;color:#60a5fa}.log-action-btn svg[data-v-9aa5f107]{width:15px;height:15px}.collapse-icon[data-v-9aa5f107]{width:18px;height:18px;color:#6b7280;transition:transform .2s ease;flex-shrink:0}.collapse-icon.collapsed[data-v-9aa5f107]{transform:rotate(180deg)}.socket-log-body[data-v-9aa5f107]{max-height:480px;overflow-y:auto;font-family:Courier New,Courier,monospace;font-size:.8rem}.socket-log-body[data-v-9aa5f107]::-webkit-scrollbar{width:6px}.socket-log-body[data-v-9aa5f107]::-webkit-scrollbar-track{background:#0f172a80}.socket-log-body[data-v-9aa5f107]::-webkit-scrollbar-thumb{background:#64748b66;border-radius:3px}.socket-log-empty[data-v-9aa5f107]{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 24px;color:#4b5563;font-size:.9rem;font-family:inherit}.socket-log-empty svg[data-v-9aa5f107]{width:20px;height:20px}.socket-log-entry[data-v-9aa5f107]{padding:10px 16px;border-bottom:1px solid rgba(148,163,184,.06);transition:background .15s ease}.socket-log-entry[data-v-9aa5f107]:hover{background:#1e293b66}.socket-log-entry.error[data-v-9aa5f107]{border-left:2px solid rgba(239,68,68,.5)}.socket-log-entry.success[data-v-9aa5f107]{border-left:2px solid rgba(52,211,153,.5)}.socket-log-entry.data[data-v-9aa5f107]{border-left:2px solid rgba(96,165,250,.5)}.socket-log-entry.info[data-v-9aa5f107]{border-left:2px solid rgba(156,163,175,.3)}.log-entry-meta[data-v-9aa5f107]{display:flex;align-items:center;gap:10px;margin-bottom:4px}.log-time[data-v-9aa5f107]{color:#4b5563;font-size:.75rem;white-space:nowrap}.log-type[data-v-9aa5f107]{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.log-event[data-v-9aa5f107]{color:#e2e8f0;font-weight:600;font-size:.8rem}.log-data[data-v-9aa5f107]{margin:0;color:#94a3b8;font-size:.75rem;white-space:pre-wrap;word-break:break-all;line-height:1.5;max-height:120px;overflow:hidden;text-overflow:ellipsis}.devices-section[data-v-9aa5f107]{background:#1e293b99;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.devices-header[data-v-9aa5f107]{margin-bottom:24px}.devices-header h3[data-v-9aa5f107]{display:flex;align-items:center;gap:12px;font-size:1.25rem;font-weight:700;color:#f3f4f6;margin:0}.live-badge[data-v-9aa5f107]{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#34d39933;border:1px solid rgba(52,211,153,.3);border-radius:12px;font-size:.75rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.live-dot[data-v-9aa5f107]{width:6px;height:6px;border-radius:50%;background:#34d399;animation:pulse-dot-9aa5f107 2s ease-in-out infinite}@keyframes pulse-dot-9aa5f107{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.devices-grid[data-v-9aa5f107]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.device-card[data-v-9aa5f107]{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:10px;padding:20px;transition:all .3s ease}.device-card[data-v-9aa5f107]:hover{border-color:#94a3b866;box-shadow:0 4px 12px #0003}.device-card.live-device[data-v-9aa5f107]{border-color:#34d3994d;box-shadow:0 0 12px #34d3991a}.device-header[data-v-9aa5f107]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.2)}.device-icon[data-v-9aa5f107]{width:36px;height:36px;flex-shrink:0}.device-icon svg[data-v-9aa5f107]{width:100%;height:100%}.device-info[data-v-9aa5f107]{flex:1;min-width:0}.device-type[data-v-9aa5f107]{font-weight:700;color:#f3f4f6;font-size:1rem}.device-serial[data-v-9aa5f107]{font-size:.8rem;color:#9ca3af;font-family:monospace}.device-status[data-v-9aa5f107]{padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:700;text-transform:uppercase}.device-status.enabled[data-v-9aa5f107]{background:#34d39933;color:#34d399}.device-status.disabled[data-v-9aa5f107]{background:#6b728033;color:#9ca3af}.device-details[data-v-9aa5f107]{display:flex;flex-direction:column;gap:16px}.data-section[data-v-9aa5f107]{background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:16px}.data-header[data-v-9aa5f107]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.data-title[data-v-9aa5f107]{font-size:.9rem;font-weight:700;color:#60a5fa;text-transform:uppercase;letter-spacing:.05em}.data-grid[data-v-9aa5f107]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.data-item[data-v-9aa5f107]{display:flex;flex-direction:column;gap:4px;padding:10px;background:#0f172a99;border-radius:6px}.data-label[data-v-9aa5f107]{font-size:.7rem;color:#9ca3af;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.data-value[data-v-9aa5f107]{font-size:1rem;color:#60a5fa;font-weight:700;font-family:monospace}.config-accordion[data-v-9aa5f107]{background:#0f172a66;border:1px solid rgba(148,163,184,.2);border-radius:8px;overflow:hidden}.config-accordion-header[data-v-9aa5f107]{display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer;transition:all .2s ease;background:#0f172a99;border-bottom:1px solid transparent}.config-accordion-header[data-v-9aa5f107]:hover{background:#0f172acc}.config-accordion-header.expanded[data-v-9aa5f107]{border-bottom-color:#94a3b833}.config-accordion-header span[data-v-9aa5f107]{font-size:.85rem;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em}.accordion-icon[data-v-9aa5f107]{width:18px;height:18px;color:#9ca3af;transition:transform .3s ease;flex-shrink:0}.config-accordion-header.expanded .accordion-icon[data-v-9aa5f107]{transform:rotate(180deg)}.config-accordion-content[data-v-9aa5f107]{padding:16px;background:#0f172a4d}.detail-section[data-v-9aa5f107]{background:#0f172a80;border-radius:8px;padding:12px}.detail-row[data-v-9aa5f107]{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:6px 0}.detail-label[data-v-9aa5f107]{color:#9ca3af;font-weight:600}.detail-value[data-v-9aa5f107]{color:#f3f4f6;font-weight:600;text-align:right}.live-indicator[data-v-9aa5f107]{color:#34d399;font-weight:700;font-size:.8em}.alarms-section[data-v-9aa5f107]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px}.alarms-title[data-v-9aa5f107]{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;color:#fca5a5;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}.alarms-title svg[data-v-9aa5f107]{width:18px;height:18px}.alarms-list[data-v-9aa5f107]{display:flex;flex-direction:column;gap:8px}.alarm-item[data-v-9aa5f107]{padding:10px;background:#0f172a80;border-radius:6px;font-size:.85rem;color:#fca5a5;font-weight:500}.power-control[data-v-9aa5f107]{background:#0f172a99;border:1px solid rgba(148,163,184,.1);border-radius:6px;padding:8px}.power-control-header[data-v-9aa5f107]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.control-label[data-v-9aa5f107]{font-size:.7rem;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.power-value[data-v-9aa5f107]{font-size:.8rem;color:#60a5fa;font-weight:700;font-family:monospace}.power-slider[data-v-9aa5f107]{width:100%;height:4px;border-radius:2px;background:#1f2937cc;outline:none;-webkit-appearance:none;margin:4px 0}.power-slider[data-v-9aa5f107]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;box-shadow:0 1px 4px #60a5fa66;transition:all .2s ease}.power-slider[data-v-9aa5f107]::-webkit-slider-thumb:hover{background:#3b82f6;box-shadow:0 2px 8px #60a5fa99}.power-slider[data-v-9aa5f107]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#60a5fa;cursor:pointer;border:none;box-shadow:0 1px 4px #60a5fa66}.slider-labels[data-v-9aa5f107]{display:flex;justify-content:space-between;font-size:.65rem;color:#6b7280;margin-bottom:6px}.control-buttons[data-v-9aa5f107]{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.control-btn[data-v-9aa5f107]{display:flex;align-items:center;justify-content:center;gap:4px;padding:5px 8px;border-radius:4px;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid}.control-btn svg[data-v-9aa5f107]{width:12px;height:12px}.control-btn[data-v-9aa5f107]:disabled{opacity:.5;cursor:not-allowed}.charging-btn[data-v-9aa5f107]{background:#34d39926;color:#34d399;border-color:#34d3994d}.charging-btn[data-v-9aa5f107]:hover:not(:disabled){background:#34d39940;border-color:#34d39980;transform:translateY(-1px)}.discharging-btn[data-v-9aa5f107]{background:#3b82f626;color:#3b82f6;border-color:#3b82f64d}.discharging-btn[data-v-9aa5f107]:hover:not(:disabled){background:#3b82f640;border-color:#3b82f680;transform:translateY(-1px)}.command-result[data-v-9aa5f107]{margin-top:6px;padding:5px 8px;border-radius:4px;font-size:.72rem;display:flex;align-items:center;gap:6px;animation:slideDown-9aa5f107 .3s ease}.command-result svg[data-v-9aa5f107]{width:12px;height:12px;flex-shrink:0}.command-result.success[data-v-9aa5f107]{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#6ee7b7}.command-result.error[data-v-9aa5f107]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.scan-results-card[data-v-9aa5f107]{background:#1e293bcc;border:1px solid rgba(52,211,153,.25);border-radius:12px;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideDown-9aa5f107 .3s ease}.scan-results-header[data-v-9aa5f107]{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid rgba(52,211,153,.15);flex-wrap:wrap;gap:12px}.scan-results-title[data-v-9aa5f107]{display:flex;align-items:center;gap:10px}.scan-results-title svg[data-v-9aa5f107]{width:20px;height:20px;color:#34d399;flex-shrink:0}.scan-results-title h3[data-v-9aa5f107]{font-size:1.1rem;font-weight:700;color:#f3f4f6;margin:0}.host-count[data-v-9aa5f107]{background:#34d3991f;border:1px solid rgba(52,211,153,.3);color:#34d399;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:10px}.scan-meta[data-v-9aa5f107]{display:flex;align-items:center;gap:12px}.scan-device[data-v-9aa5f107]{font-family:monospace;font-size:.85rem;color:#60a5fa;font-weight:600}.scan-time[data-v-9aa5f107]{font-size:.8rem;color:#6b7280}.scan-networks[data-v-9aa5f107]{display:flex;flex-wrap:wrap;gap:8px;padding:12px 24px;border-bottom:1px solid rgba(148,163,184,.08)}.network-badge[data-v-9aa5f107]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#0f172a99;border:1px solid rgba(148,163,184,.15);border-radius:20px}.network-badge svg[data-v-9aa5f107]{width:13px;height:13px;color:#9ca3af;flex-shrink:0}.net-adapter[data-v-9aa5f107]{font-family:monospace;font-size:.8rem;color:#9ca3af;font-weight:600}.net-cidr[data-v-9aa5f107]{font-family:monospace;font-size:.8rem;color:#60a5fa}.hosts-table-wrap[data-v-9aa5f107]{overflow-x:auto}.hosts-table[data-v-9aa5f107]{width:100%;border-collapse:collapse;font-size:.875rem}.hosts-table thead th[data-v-9aa5f107]{padding:10px 16px;text-align:left;font-size:.75rem;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;background:#0f172a66;border-bottom:1px solid rgba(148,163,184,.1);white-space:nowrap}.host-row[data-v-9aa5f107]{border-bottom:1px solid rgba(148,163,184,.06);transition:background .15s ease}.host-row[data-v-9aa5f107]:hover{background:#0f172a66}.host-row td[data-v-9aa5f107]{padding:10px 16px;vertical-align:middle}.host-ip[data-v-9aa5f107]{font-family:monospace;font-size:.9rem;font-weight:700;color:#e2e8f0;white-space:nowrap}.host-hostname[data-v-9aa5f107]{color:#94a3b8;font-size:.85rem}.host-mac[data-v-9aa5f107]{font-family:monospace;font-size:.8rem;color:#6b7280;white-space:nowrap}.host-adapter[data-v-9aa5f107]{font-family:monospace;font-size:.8rem;color:#9ca3af}.host-ports[data-v-9aa5f107]{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.port-none[data-v-9aa5f107]{font-size:.75rem;color:#4b5563;font-style:italic}.port-badge[data-v-9aa5f107]{font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:4px;font-family:monospace;background:#64748b26;color:#94a3b8;border:1px solid rgba(100,116,139,.25)}.port-badge.port-502[data-v-9aa5f107]{background:#fbbf241a;color:#fbbf24;border-color:#fbbf244d}.port-badge.port-8291[data-v-9aa5f107]{background:#34d3991a;color:#34d399;border-color:#34d3994d}.port-badge.port-443[data-v-9aa5f107]{background:#60a5fa1a;color:#60a5fa;border-color:#60a5fa4d}.port-badge.port-80[data-v-9aa5f107]{background:#a78bfa1a;color:#a78bfa;border-color:#a78bfa4d}.host-type[data-v-9aa5f107]{white-space:nowrap}.device-type-badge[data-v-9aa5f107]{font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:6px;background:#64748b1a;color:#6b7280;border:1px solid rgba(100,116,139,.2)}.device-type-badge.type-mikrotik[data-v-9aa5f107]{background:#34d3991a;color:#34d399;border-color:#34d3994d}.device-type-badge.type-modbus[data-v-9aa5f107]{background:#fbbf241a;color:#fbbf24;border-color:#fbbf244d}.modal-overlay[data-v-a44ba76d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-content[data-v-a44ba76d]{position:relative;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;background:#1e1e2ef2;border-radius:16px;border:1px solid rgba(255,255,255,.1);padding:40px;box-shadow:0 8px 32px #00000080}.modal-close[data-v-a44ba76d]{position:absolute;top:16px;right:16px;background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;transition:color .3s ease}.modal-close[data-v-a44ba76d]:hover{color:#ffffffe6}.modal-close svg[data-v-a44ba76d]{width:24px;height:24px}.modal-content h2[data-v-a44ba76d]{font-size:1.5rem;font-weight:700;color:#fff;margin:0 0 24px}.user-form[data-v-a44ba76d]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-a44ba76d]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-a44ba76d]{font-size:.875rem;font-weight:500;color:#ffffffe6}.form-group input[data-v-a44ba76d],.form-group select[data-v-a44ba76d]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.95rem;transition:all .3s ease}.form-group input[data-v-a44ba76d]:focus,.form-group select[data-v-a44ba76d]:focus{outline:none;border-color:#3b82f6;background:#ffffff14;box-shadow:0 0 0 3px #3b82f61a}.form-group input[data-v-a44ba76d]::placeholder{color:#ffffff4d}.form-group input[data-v-a44ba76d]:disabled,.form-group select[data-v-a44ba76d]:disabled{opacity:.5;cursor:not-allowed}.password-input[data-v-a44ba76d]{position:relative}.password-input input[data-v-a44ba76d]{padding-right:48px}.toggle-password[data-v-a44ba76d]{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .3s ease}.toggle-password[data-v-a44ba76d]:hover{color:#fffc}.toggle-password svg[data-v-a44ba76d]{width:20px;height:20px}.field-note[data-v-a44ba76d]{font-size:.8rem;color:#ffffff80;margin:0}.reset-password-button[data-v-a44ba76d]{padding:10px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:#60a5fa;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease;align-self:flex-start}.reset-password-button[data-v-a44ba76d]:hover{background:#3b82f633;border-color:#3b82f680}.password-reset-section[data-v-a44ba76d]{padding:16px;background:#3b82f60d;border:1px solid rgba(59,130,246,.2);border-radius:8px;display:flex;flex-direction:column;gap:12px}.password-reset-actions[data-v-a44ba76d]{display:flex;gap:8px}.cancel-reset-button[data-v-a44ba76d],.confirm-reset-button[data-v-a44ba76d]{flex:1;padding:10px 16px;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-reset-button[data-v-a44ba76d]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fffc}.cancel-reset-button[data-v-a44ba76d]:hover{background:#ffffff1a}.confirm-reset-button[data-v-a44ba76d]{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;color:#fff}.confirm-reset-button[data-v-a44ba76d]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.confirm-reset-button[data-v-a44ba76d]:disabled{opacity:.6;cursor:not-allowed}.checkbox-label[data-v-a44ba76d]{display:flex;align-items:center;gap:8px;font-size:.95rem;color:#ffffffe6;cursor:pointer}.checkbox-label input[type=checkbox][data-v-a44ba76d]{width:18px;height:18px;cursor:pointer}.error-message[data-v-a44ba76d]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:.875rem}.error-message svg[data-v-a44ba76d]{width:20px;height:20px;flex-shrink:0}.form-actions[data-v-a44ba76d]{display:flex;gap:12px;margin-top:8px}.cancel-button[data-v-a44ba76d],.save-button[data-v-a44ba76d]{flex:1;padding:12px 24px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-button[data-v-a44ba76d]{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.cancel-button[data-v-a44ba76d]:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.save-button[data-v-a44ba76d]{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;color:#fff}.save-button[data-v-a44ba76d]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #3b82f64d}.save-button[data-v-a44ba76d]:disabled,.cancel-button[data-v-a44ba76d]:disabled{opacity:.6;cursor:not-allowed}.loading-spinner[data-v-a44ba76d]{display:flex;align-items:center;justify-content:center;gap:8px}.loading-spinner svg[data-v-a44ba76d]{width:20px;height:20px;animation:spin-a44ba76d 1s linear infinite}@keyframes spin-a44ba76d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.array-input[data-v-a44ba76d]{display:flex;flex-direction:column;gap:12px}.input-with-button[data-v-a44ba76d]{display:flex;gap:8px}.input-with-button input[data-v-a44ba76d]{flex:1}.add-button[data-v-a44ba76d]{padding:12px 20px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.add-button[data-v-a44ba76d]:hover:not(:disabled){background:#3b82f633;border-color:#3b82f680}.add-button[data-v-a44ba76d]:disabled{opacity:.5;cursor:not-allowed}.chip-container[data-v-a44ba76d]{display:flex;flex-wrap:wrap;gap:8px}.chip[data-v-a44ba76d]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:20px;color:#93c5fd;font-size:.875rem}.chip span[data-v-a44ba76d]{line-height:1}.chip-remove[data-v-a44ba76d]{background:none;border:none;color:#ffffff80;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;transition:color .2s ease;line-height:0}.chip-remove[data-v-a44ba76d]:hover:not(:disabled){color:#ffffffe6}.chip-remove[data-v-a44ba76d]:disabled{opacity:.5;cursor:not-allowed}.chip-remove svg[data-v-a44ba76d]{width:14px;height:14px}@media (max-width: 640px){.modal-content[data-v-a44ba76d]{padding:24px}.modal-content h2[data-v-a44ba76d]{font-size:1.25rem}}.user-management[data-v-9fa635c3]{padding:24px;max-width:1400px;margin:0 auto}.header[data-v-9fa635c3]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:24px}.header-content h1[data-v-9fa635c3]{font-size:2rem;font-weight:700;color:#fff;margin:0 0 8px}.header-content p[data-v-9fa635c3]{font-size:1rem;color:#fff9;margin:0}.create-button[data-v-9fa635c3]{display:flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.create-button[data-v-9fa635c3]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #3b82f64d}.create-button svg[data-v-9fa635c3]{width:20px;height:20px}.error-banner[data-v-9fa635c3]{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;margin-bottom:24px}.error-banner svg[data-v-9fa635c3]{width:20px;height:20px;flex-shrink:0}.dismiss-button[data-v-9fa635c3]{margin-left:auto;background:none;border:none;color:#fca5a5;cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .3s ease}.dismiss-button[data-v-9fa635c3]:hover{color:#ef4444}.dismiss-button svg[data-v-9fa635c3]{width:16px;height:16px}.loading-container[data-v-9fa635c3]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;gap:16px}.loading-spinner svg[data-v-9fa635c3]{width:48px;height:48px;color:#3b82f6;animation:spin-9fa635c3 1s linear infinite}@keyframes spin-9fa635c3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p[data-v-9fa635c3]{color:#fff9;font-size:1rem}.users-table-container[data-v-9fa635c3]{background:#1e1e2e99;border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow-x:auto}.users-table[data-v-9fa635c3]{width:100%;min-width:1200px;border-collapse:collapse}.users-table thead[data-v-9fa635c3]{background:#ffffff0d}.users-table th[data-v-9fa635c3]{padding:16px 20px;text-align:left;font-size:.875rem;font-weight:600;color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em}.users-table tbody tr[data-v-9fa635c3]{border-top:1px solid rgba(255,255,255,.1);transition:background .2s ease}.users-table tbody tr[data-v-9fa635c3]:hover{background:#ffffff08}.users-table tbody tr.current-user[data-v-9fa635c3]{background:#3b82f60d}.users-table td[data-v-9fa635c3]{padding:16px 20px;color:#ffffffe6;font-size:.95rem}.user-name[data-v-9fa635c3]{display:flex;align-items:center;gap:8px}.you-badge[data-v-9fa635c3]{padding:2px 8px;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:4px;font-size:.75rem;font-weight:600;color:#60a5fa}.role-badge[data-v-9fa635c3]{display:inline-block;padding:4px 12px;border-radius:6px;font-size:.875rem;font-weight:500;text-transform:capitalize}.role-badge-admin[data-v-9fa635c3]{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.role-badge-manager[data-v-9fa635c3]{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.role-badge-operator[data-v-9fa635c3]{background:#10b98126;color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.status-badge[data-v-9fa635c3]{display:inline-block;padding:4px 12px;border-radius:6px;font-size:.875rem;font-weight:500}.status-active[data-v-9fa635c3]{background:#10b98126;color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.status-inactive[data-v-9fa635c3]{background:#6b728026;color:#9ca3af;border:1px solid rgba(107,114,128,.3)}.debug-enabled[data-v-9fa635c3]{background:#fbbf2426;color:#fcd34d;border:1px solid rgba(251,191,36,.3)}.debug-disabled[data-v-9fa635c3]{background:#6b72801a;color:#fff6;border:1px solid rgba(107,114,128,.2)}.actions[data-v-9fa635c3]{display:flex;gap:8px}.action-button[data-v-9fa635c3]{padding:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.action-button svg[data-v-9fa635c3]{width:16px;height:16px}.edit-button[data-v-9fa635c3]{color:#60a5fa}.edit-button[data-v-9fa635c3]:hover{background:#3b82f626;border-color:#3b82f64d}.delete-button[data-v-9fa635c3]{color:#fca5a5}.delete-button[data-v-9fa635c3]:hover{background:#ef444426;border-color:#ef44444d}.empty-state[data-v-9fa635c3]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.empty-state svg[data-v-9fa635c3]{width:64px;height:64px;color:#ffffff4d;margin-bottom:16px}.empty-state h3[data-v-9fa635c3]{font-size:1.25rem;font-weight:600;color:#fff;margin:0 0 8px}.empty-state p[data-v-9fa635c3]{font-size:.95rem;color:#ffffff80;margin:0}.modal-overlay[data-v-9fa635c3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-content[data-v-9fa635c3]{position:relative;width:100%;max-width:440px;background:#1e1e2ef2;border-radius:16px;border:1px solid rgba(255,255,255,.1);padding:40px;box-shadow:0 8px 32px #00000080}.delete-confirm[data-v-9fa635c3]{text-align:center}.delete-icon[data-v-9fa635c3]{width:64px;height:64px;margin:0 auto 24px;display:flex;align-items:center;justify-content:center;background:#ef444426;border-radius:50%}.delete-icon svg[data-v-9fa635c3]{width:32px;height:32px;color:#ef4444}.modal-content h2[data-v-9fa635c3]{font-size:1.5rem;font-weight:700;color:#fff;margin:0 0 16px}.modal-content p[data-v-9fa635c3]{font-size:.95rem;color:#ffffffb3;margin:0 0 32px;line-height:150%}.modal-content p strong[data-v-9fa635c3]{color:#fff}.modal-actions[data-v-9fa635c3]{display:flex;gap:12px;justify-content:center}.cancel-button[data-v-9fa635c3],.delete-confirm-button[data-v-9fa635c3]{padding:12px 24px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.cancel-button[data-v-9fa635c3]{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.cancel-button[data-v-9fa635c3]:hover{background:#ffffff26;border-color:#ffffff4d}.delete-confirm-button[data-v-9fa635c3]{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff}.delete-confirm-button[data-v-9fa635c3]:hover{transform:translateY(-2px);box-shadow:0 8px 16px #ef44444d}.landing-page[data-v-9fa635c3]{padding:4px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;font-size:.85rem;font-family:Courier New,monospace;color:#93c5fd}.chip-list[data-v-9fa635c3]{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.mini-chip[data-v-9fa635c3]{display:inline-block;padding:4px 8px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:12px;color:#93c5fd;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.more-badge[data-v-9fa635c3]{display:inline-block;padding:4px 6px;background:#ffffff1a;border-radius:10px;color:#fff9;font-size:.7rem;font-weight:600}.all-access[data-v-9fa635c3]{color:#fff6;font-style:italic;font-size:.85rem}@media (max-width: 768px){.user-management[data-v-9fa635c3]{padding:16px}.header[data-v-9fa635c3]{flex-direction:column;align-items:stretch}.create-button[data-v-9fa635c3]{width:100%;justify-content:center}.header-content h1[data-v-9fa635c3]{font-size:1.5rem}}.device-form[data-v-fedcbe1a]{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 6px #0000001a;max-width:800px;margin:0 auto}.form-header[data-v-fedcbe1a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.form-header h3[data-v-fedcbe1a]{margin:0;font-size:24px;color:#1a1a1a}.btn-close[data-v-fedcbe1a]{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.btn-close[data-v-fedcbe1a]:hover{background:#f0f0f0;color:#1a1a1a}.form-section[data-v-fedcbe1a]{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e0e0e0}.form-section[data-v-fedcbe1a]:last-of-type{border-bottom:none}.form-section h4[data-v-fedcbe1a]{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.form-row[data-v-fedcbe1a]{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:12px}.form-grid[data-v-fedcbe1a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}label[data-v-fedcbe1a]{display:flex;flex-direction:column;font-size:14px;font-weight:500;color:#555;position:relative}label input[data-v-fedcbe1a],label select[data-v-fedcbe1a]{margin-top:6px;padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;transition:all .2s}label input[data-v-fedcbe1a]:focus,label select[data-v-fedcbe1a]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.switch-label[data-v-fedcbe1a]{flex-direction:row;align-items:center;gap:12px}.switch[data-v-fedcbe1a]{width:44px;height:24px;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d0d0d0;border-radius:12px;cursor:pointer;transition:background .2s}.switch[data-v-fedcbe1a]:checked{background:#2563eb}.switch[data-v-fedcbe1a]:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s}.switch[data-v-fedcbe1a]:checked:before{transform:translate(20px)}.unit[data-v-fedcbe1a]{position:absolute;right:12px;top:34px;color:#999;font-size:13px;pointer-events:none}.form-actions[data-v-fedcbe1a]{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e0e0e0}.btn-primary[data-v-fedcbe1a],.btn-secondary[data-v-fedcbe1a]{padding:10px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary[data-v-fedcbe1a]{background:#2563eb;color:#fff}.btn-primary[data-v-fedcbe1a]:hover{background:#1d4ed8}.btn-secondary[data-v-fedcbe1a]{background:#f0f0f0;color:#333}.btn-secondary[data-v-fedcbe1a]:hover{background:#e0e0e0}.global-options-panel[data-v-7b458817]{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 4px #00000014;margin-bottom:24px}.panel-header[data-v-7b458817]{margin-bottom:20px}.panel-header h3[data-v-7b458817]{margin:0 0 8px;font-size:20px;color:#1a1a1a;font-weight:600}.panel-description[data-v-7b458817]{margin:0;font-size:14px;color:#666}.options-grid[data-v-7b458817]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.option-item[data-v-7b458817]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.option-item[data-v-7b458817]:hover{background:#f3f4f6;border-color:#d1d5db}.option-checkbox[data-v-7b458817]{width:20px;height:20px;cursor:pointer;accent-color:#2563eb;flex-shrink:0}.option-info[data-v-7b458817]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.option-label[data-v-7b458817]{font-size:14px;font-weight:500;color:#1a1a1a}.option-key[data-v-7b458817]{font-size:12px;color:#6b7280;font-family:monospace}.panel-actions[data-v-7b458817]{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid #e5e7eb}.btn-add-option[data-v-7b458817]{padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#374151;cursor:pointer;transition:all .2s}.btn-add-option[data-v-7b458817]:hover{background:#f9fafb;border-color:#9ca3af}.save-indicator[data-v-7b458817]{display:flex;gap:8px}.btn-save[data-v-7b458817],.btn-reset[data-v-7b458817]{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-save[data-v-7b458817]{background:#2563eb;color:#fff}.btn-save[data-v-7b458817]:hover:not(:disabled){background:#1d4ed8}.btn-save[data-v-7b458817]:disabled{opacity:.5;cursor:not-allowed}.btn-reset[data-v-7b458817]{background:#f3f4f6;color:#374151}.btn-reset[data-v-7b458817]:hover{background:#e5e7eb}.modal-overlay[data-v-7b458817]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.modal-content[data-v-7b458817]{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:90%;box-shadow:0 4px 12px #00000026}.modal-content h4[data-v-7b458817]{margin:0 0 20px;font-size:18px;color:#1a1a1a}.form-group[data-v-7b458817]{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.form-group label[data-v-7b458817]{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500;color:#374151}.form-group input[data-v-7b458817],.form-group select[data-v-7b458817]{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.form-group input[data-v-7b458817]:focus,.form-group select[data-v-7b458817]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.modal-actions[data-v-7b458817]{display:flex;gap:8px;justify-content:flex-end}.btn-primary[data-v-7b458817],.btn-secondary[data-v-7b458817]{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary[data-v-7b458817]{background:#2563eb;color:#fff}.btn-primary[data-v-7b458817]:hover{background:#1d4ed8}.btn-secondary[data-v-7b458817]{background:#f3f4f6;color:#374151}.btn-secondary[data-v-7b458817]:hover{background:#e5e7eb}.error-message[data-v-7b458817]{margin-top:16px;padding:12px;background:#fee;color:#dc2626;border-radius:6px;font-size:14px}.site-configuration[data-v-7872eddd]{padding:24px;max-width:1400px;margin:0 auto}.config-header[data-v-7872eddd]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:24px}.header-info[data-v-7872eddd]{display:flex;align-items:flex-start;gap:16px}.btn-back[data-v-7872eddd]{padding:8px 16px;background:#fff;border:1px solid #d0d0d0;border-radius:6px;cursor:pointer;font-size:14px;color:#555;transition:all .2s}.btn-back[data-v-7872eddd]:hover{background:#f8f8f8;border-color:#999}.site-info[data-v-7872eddd]{flex:1}.editable-field[data-v-7872eddd]{position:relative;display:inline-flex;align-items:center;gap:8px}.editable-field.inline[data-v-7872eddd]{display:inline-flex}.site-name-input[data-v-7872eddd]{font-size:28px;font-weight:600;color:#1a1a1a;border:none;background:transparent;outline:none;padding:4px 8px;margin:0;border-radius:4px;transition:all .2s;font-family:inherit;width:auto;min-width:200px}.site-name-input[data-v-7872eddd]:hover,.site-name-input[data-v-7872eddd]:focus{background:#f8f9fa;box-shadow:0 0 0 2px #e3e8ef}.client-name-input[data-v-7872eddd]{font-size:14px;color:#666;border:none;background:transparent;outline:none;padding:2px 6px;margin:0;border-radius:4px;transition:all .2s;font-family:inherit;width:auto;min-width:120px}.client-name-input[data-v-7872eddd]:hover,.client-name-input[data-v-7872eddd]:focus{background:#f8f9fa;box-shadow:0 0 0 2px #e3e8ef}.edit-icon[data-v-7872eddd]{width:14px;height:14px;color:#999;opacity:0;transition:opacity .2s;flex-shrink:0}.editable-field:hover .edit-icon[data-v-7872eddd]{opacity:1}.site-details[data-v-7872eddd]{margin:8px 0 0;font-size:14px;color:#666;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.version-badge[data-v-7872eddd]{display:inline-block;padding:2px 8px;background:#2563eb1a;border:1px solid rgba(37,99,235,.3);border-radius:12px;font-size:.75rem;font-weight:600;color:#2563eb;text-transform:uppercase;letter-spacing:.05em}.header-actions[data-v-7872eddd]{display:flex;gap:12px;align-items:center}.btn-add[data-v-7872eddd]{padding:10px 24px;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-add[data-v-7872eddd]:hover{background:#1d4ed8}.btn-save-send[data-v-7872eddd]{display:flex;align-items:center;gap:8px;padding:10px 24px;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #10b9814d}.btn-save-send[data-v-7872eddd]:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.btn-save-send[data-v-7872eddd]:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-save-send svg[data-v-7872eddd]{width:18px;height:18px}.loading[data-v-7872eddd],.error[data-v-7872eddd]{text-align:center;padding:48px;font-size:16px}.error[data-v-7872eddd]{color:#dc2626;background:#fee;border-radius:8px}.form-overlay[data-v-7872eddd]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;overflow-y:auto}.devices-section[data-v-7872eddd]{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 4px #00000014}.section-header[data-v-7872eddd]{margin-bottom:24px}.section-header h3[data-v-7872eddd]{margin:0 0 8px;font-size:20px;color:#1a1a1a;font-weight:600}.section-header p[data-v-7872eddd]{margin:0;font-size:14px;color:#666}.empty-state[data-v-7872eddd]{text-align:center;padding:64px 24px;background:#f9fafb;border-radius:12px;border:2px dashed #d0d0d0}.empty-state p[data-v-7872eddd]{margin:0 0 24px;font-size:16px;color:#666}.btn-primary[data-v-7872eddd]{padding:12px 32px;background:#2563eb;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-primary[data-v-7872eddd]:hover{background:#1d4ed8}.devices-list[data-v-7872eddd]{display:flex;flex-direction:column;gap:16px}.device-card[data-v-7872eddd]{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:20px;transition:all .2s}.device-card.disabled[data-v-7872eddd]{opacity:.6}.device-card[data-v-7872eddd]:hover{background:#fff;border-color:#d1d5db}.device-header[data-v-7872eddd]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.device-type-badge[data-v-7872eddd]{padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-emi[data-v-7872eddd]{background:#dbeafe;color:#1e40af}.badge-grid[data-v-7872eddd]{background:#fef3c7;color:#92400e}.badge-pv[data-v-7872eddd]{background:#d1fae5;color:#065f46}.badge-ess[data-v-7872eddd]{background:#e0e7ff;color:#3730a3}.badge-other[data-v-7872eddd]{background:#f3f4f6;color:#374151}.device-connection[data-v-7872eddd]{padding:4px 10px;background:#f3f4f6;border-radius:4px;font-size:12px;color:#6b7280;font-weight:500}.device-status[data-v-7872eddd]{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;color:#666}.status-dot[data-v-7872eddd]{width:8px;height:8px;border-radius:50%;background:#d0d0d0}.status-dot.active[data-v-7872eddd]{background:#10b981}.device-body[data-v-7872eddd]{margin-bottom:16px}.device-info[data-v-7872eddd]{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.info-row[data-v-7872eddd]{display:flex;gap:12px;font-size:14px}.info-row .label[data-v-7872eddd]{color:#666;font-weight:500;min-width:80px}.info-row .value[data-v-7872eddd]{color:#1a1a1a;font-family:monospace}.device-config h4[data-v-7872eddd]{margin:0 0 12px;font-size:14px;color:#666;font-weight:500}.config-grid[data-v-7872eddd]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;background:#f9fafb;padding:16px;border-radius:8px}.config-item[data-v-7872eddd]{display:flex;justify-content:space-between;gap:12px;font-size:13px}.config-key[data-v-7872eddd]{color:#666;font-weight:500}.config-value[data-v-7872eddd]{color:#1a1a1a;font-family:monospace}.device-actions[data-v-7872eddd]{display:flex;gap:8px;padding-top:16px;border-top:1px solid #f0f0f0}.btn-icon[data-v-7872eddd],.btn-edit[data-v-7872eddd],.btn-delete[data-v-7872eddd]{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid #d0d0d0;background:#fff;color:#555}.btn-icon[data-v-7872eddd]{padding:8px 12px;font-weight:600}.btn-icon[data-v-7872eddd]:disabled{opacity:.3;cursor:not-allowed}.btn-icon[data-v-7872eddd]:not(:disabled):hover{background:#f8f8f8;border-color:#999}.btn-edit[data-v-7872eddd]:hover{background:#f0f9ff;border-color:#2563eb;color:#2563eb}.btn-delete[data-v-7872eddd]{margin-left:auto;color:#dc2626}.btn-delete[data-v-7872eddd]:hover{background:#fee;border-color:#dc2626}.network-map[data-v-7c80adde]{padding:2rem;max-width:1400px;margin:0 auto}.header[data-v-7c80adde]{margin-bottom:2rem}.header h2[data-v-7c80adde]{font-size:1.8rem;font-weight:600;color:#1a1a1a;margin:0 0 .5rem}.header-info[data-v-7c80adde]{display:flex;gap:1.5rem;align-items:center;font-size:.9rem;color:#666}.site-name[data-v-7c80adde]{font-weight:600;color:#2563eb}.device-count[data-v-7c80adde]{padding:.25rem .75rem;background:#f3f4f6;border-radius:1rem;font-weight:500}.last-update[data-v-7c80adde]{color:#999}.not-connected[data-v-7c80adde],.no-data[data-v-7c80adde]{text-align:center;padding:3rem;color:#666;background:#f9fafb;border-radius:.5rem}.table-container[data-v-7c80adde]{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.network-table[data-v-7c80adde]{width:100%;border-collapse:collapse}.network-table thead[data-v-7c80adde]{background:#f9fafb;border-bottom:2px solid #e5e7eb}.network-table th[data-v-7c80adde]{padding:1rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#374151}.network-table tbody tr[data-v-7c80adde]{border-bottom:1px solid #f3f4f6;transition:background-color .2s}.network-table tbody tr[data-v-7c80adde]:hover{background:#f9fafb}.network-table tbody tr.has-telemetry[data-v-7c80adde]{background:#f0f9ff}.network-table tbody tr.has-telemetry[data-v-7c80adde]:hover{background:#e0f2fe}.network-table td[data-v-7c80adde]{padding:1rem;font-size:.9rem}.antenna-mac[data-v-7c80adde]{font-family:Courier New,monospace;font-weight:600;color:#1f2937}.last-active[data-v-7c80adde]{color:#6b7280;white-space:nowrap}.hostname[data-v-7c80adde]{font-weight:500;color:#1f2937}.ip-list[data-v-7c80adde]{display:flex;flex-direction:column;gap:.25rem}.ip-item[data-v-7c80adde]{font-family:Courier New,monospace;font-size:.85rem;color:#4b5563}.ess-details[data-v-7c80adde]{display:flex;align-items:center;gap:.5rem;font-size:.85rem;flex-wrap:wrap}.ess-details span[data-v-7c80adde]{display:inline-flex;align-items:center;gap:.25rem}.ess-details .separator[data-v-7c80adde]:before{content:"•";margin-right:.5rem;color:#d1d5db}.ess-details strong[data-v-7c80adde]{color:#6b7280;font-weight:600}.no-data-text[data-v-7c80adde]{color:#d1d5db}@media (max-width: 1200px){.network-table[data-v-7c80adde]{font-size:.85rem}.network-table th[data-v-7c80adde],.network-table td[data-v-7c80adde]{padding:.75rem .5rem}}@media (max-width: 768px){.network-map[data-v-7c80adde]{padding:1rem}.header h2[data-v-7c80adde]{font-size:1.5rem}.header-info[data-v-7c80adde]{flex-direction:column;align-items:flex-start;gap:.5rem}.table-container[data-v-7c80adde]{overflow-x:auto}.network-table[data-v-7c80adde]{min-width:800px}}.pools-page[data-v-2d93adeb]{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);padding:24px;position:relative}.connection-overlay[data-v-2d93adeb]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000}.overlay-content[data-v-2d93adeb]{background:#1e293be6;border:1px solid rgba(239,68,68,.3);border-radius:16px;padding:48px;max-width:480px;text-align:center;box-shadow:0 20px 60px #00000080}.overlay-icon[data-v-2d93adeb]{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 24px;background:#ef444426;border:2px solid rgba(239,68,68,.3);border-radius:50%}.disconnect-icon[data-v-2d93adeb]{width:40px;height:40px;color:#ef4444;animation:pulse-2d93adeb 2s ease-in-out infinite}@keyframes pulse-2d93adeb{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.overlay-content h2[data-v-2d93adeb]{font-size:1.75rem;font-weight:700;color:#f1f5f9;margin:0 0 12px}.error-message[data-v-2d93adeb]{font-size:1rem;color:#fca5a5;margin:0 0 32px}.reconnect-info[data-v-2d93adeb]{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:12px}.spinner-small[data-v-2d93adeb]{width:24px;height:24px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin-2d93adeb 1s linear infinite}.reconnect-info p[data-v-2d93adeb]{margin:0;font-size:.95rem;font-weight:600;color:#60a5fa}.overlay-fade-enter-active[data-v-2d93adeb],.overlay-fade-leave-active[data-v-2d93adeb]{transition:all .3s ease}.overlay-fade-enter-from[data-v-2d93adeb],.overlay-fade-leave-to[data-v-2d93adeb]{opacity:0}.overlay-fade-enter-from .overlay-content[data-v-2d93adeb],.overlay-fade-leave-to .overlay-content[data-v-2d93adeb]{transform:scale(.95) translateY(-20px)}.page-header[data-v-2d93adeb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.page-header h1[data-v-2d93adeb]{font-size:2rem;font-weight:700;color:#f1f5f9;margin:0 0 8px}.subtitle[data-v-2d93adeb]{font-size:1rem;color:#94a3b8;margin:0}.loading-container[data-v-2d93adeb]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#94a3b8}.spinner[data-v-2d93adeb]{width:48px;height:48px;border:4px solid rgba(59,130,246,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin-2d93adeb 1s linear infinite;margin-bottom:16px}@keyframes spin-2d93adeb{to{transform:rotate(360deg)}}.error-container[data-v-2d93adeb]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#ef4444}.error-icon[data-v-2d93adeb]{font-size:3rem;margin-bottom:16px}.stats-grid[data-v-2d93adeb]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px}.stat-card[data-v-2d93adeb]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .3s ease}.stat-card[data-v-2d93adeb]:hover{background:#ffffff14;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.stat-icon[data-v-2d93adeb]{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon svg[data-v-2d93adeb]{width:24px;height:24px}.stat-content[data-v-2d93adeb]{flex:1}.stat-label[data-v-2d93adeb]{font-size:.875rem;color:#94a3b8;margin-bottom:4px}.stat-value[data-v-2d93adeb]{font-size:1.75rem;font-weight:700;color:#f1f5f9}.pools-list[data-v-2d93adeb]{display:flex;flex-direction:column;gap:24px}.pool-card[data-v-2d93adeb]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;transition:all .3s ease}.pool-card[data-v-2d93adeb]:hover{background:#ffffff14;box-shadow:0 8px 32px #0000004d}.pool-header[data-v-2d93adeb]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.pool-name[data-v-2d93adeb]{font-size:1.5rem;font-weight:600;color:#f1f5f9;margin:0 0 8px}.pool-meta[data-v-2d93adeb]{font-size:.875rem;color:#94a3b8;margin:0}.pool-id-badge[data-v-2d93adeb]{background:#3b82f626;color:#60a5fa;padding:8px 16px;border-radius:8px;font-size:.875rem;font-weight:600;border:1px solid rgba(59,130,246,.3)}.devices-grid[data-v-2d93adeb]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.device-card[data-v-2d93adeb]{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;transition:all .3s ease}.device-card[data-v-2d93adeb]:hover{background:#ffffff0f;border-color:#ffffff26;transform:translateY(-2px)}.device-header[data-v-2d93adeb]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.device-name[data-v-2d93adeb]{font-size:1rem;font-weight:600;color:#f1f5f9}.device-status[data-v-2d93adeb]{padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;color:#fff}.status-indicators[data-v-2d93adeb]{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.status-badge[data-v-2d93adeb]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:8px;border:1px solid;flex:1;min-width:0;transition:all .2s ease}.status-badge[data-v-2d93adeb]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.status-header[data-v-2d93adeb]{display:flex;align-items:center;gap:6px}.status-enabled[data-v-2d93adeb]{background:#10b98126;border-color:#10b9814d}.status-disabled[data-v-2d93adeb]{background:#ef444426;border-color:#ef44444d}.status-qualified[data-v-2d93adeb]{background:#a855f726;border-color:#a855f74d}.status-not-qualified[data-v-2d93adeb]{background:#94a3b826;border-color:#94a3b84d}.status-icon[data-v-2d93adeb]{width:16px;height:16px;flex-shrink:0}.status-enabled .status-icon[data-v-2d93adeb]{color:#10b981}.status-disabled .status-icon[data-v-2d93adeb]{color:#ef4444}.status-qualified .status-icon[data-v-2d93adeb]{color:#a855f7}.status-not-qualified .status-icon[data-v-2d93adeb]{color:#94a3b8}.status-label[data-v-2d93adeb]{font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.status-value[data-v-2d93adeb]{font-size:.875rem;font-weight:600}.status-enabled .status-value[data-v-2d93adeb]{color:#10b981}.status-disabled .status-value[data-v-2d93adeb]{color:#ef4444}.status-qualified .status-value[data-v-2d93adeb]{color:#a855f7}.status-not-qualified .status-value[data-v-2d93adeb]{color:#94a3b8}.accordion-toggle[data-v-2d93adeb]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin:8px 0;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:.875rem;font-weight:500;color:#94a3b8;-webkit-user-select:none;user-select:none}.accordion-toggle[data-v-2d93adeb]:hover{background:#ffffff0f;border-color:#ffffff26;color:#e2e8f0}.chevron-icon[data-v-2d93adeb]{width:20px;height:20px;transition:transform .3s ease}.chevron-expanded[data-v-2d93adeb]{transform:rotate(180deg)}.accordion-enter-active[data-v-2d93adeb],.accordion-leave-active[data-v-2d93adeb]{transition:all .3s ease;overflow:hidden}.accordion-enter-from[data-v-2d93adeb],.accordion-leave-to[data-v-2d93adeb]{opacity:0;max-height:0;margin-top:0;margin-bottom:0}.accordion-enter-to[data-v-2d93adeb],.accordion-leave-from[data-v-2d93adeb]{opacity:1;max-height:500px}.device-details[data-v-2d93adeb]{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding-top:8px}.detail-row[data-v-2d93adeb]{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.detail-label[data-v-2d93adeb]{color:#94a3b8}.detail-value[data-v-2d93adeb]{color:#e2e8f0;font-weight:500}.eic-code[data-v-2d93adeb]{font-family:monospace;font-size:.8rem}.error-row[data-v-2d93adeb]{background:#ef44441a;padding:8px;border-radius:6px;border:1px solid rgba(239,68,68,.3)}.error-text[data-v-2d93adeb]{color:#fca5a5;font-size:.8rem;word-break:break-word}.device-footer[data-v-2d93adeb]{padding-top:12px;border-top:1px solid rgba(255,255,255,.05)}.device-client[data-v-2d93adeb]{font-size:.8rem;color:#64748b;font-style:italic}@media (max-width: 768px){.pools-page[data-v-2d93adeb]{padding:16px}.page-header h1[data-v-2d93adeb]{font-size:1.5rem}.stats-grid[data-v-2d93adeb]{grid-template-columns:1fr;gap:12px}.stat-card[data-v-2d93adeb]{padding:16px}.devices-grid[data-v-2d93adeb]{grid-template-columns:1fr}.pool-header[data-v-2d93adeb]{flex-direction:column;gap:16px}.pool-id-badge[data-v-2d93adeb]{align-self:flex-start}.status-indicators[data-v-2d93adeb]{flex-direction:column}.status-badge[data-v-2d93adeb]{flex:none}}.kratt-page[data-v-f643b9c3]{padding:24px;width:100%;max-width:100%;color:#e2e8f0}.page-top[data-v-f643b9c3]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.page-top h1[data-v-f643b9c3]{margin:0;font-size:1.5rem}.page-top .muted[data-v-f643b9c3]{margin:2px 0 0;color:#ffffff8c;font-size:.88rem}.top-actions[data-v-f643b9c3]{display:flex;gap:8px}.config-bar[data-v-f643b9c3]{display:flex;align-items:center;gap:16px;padding:14px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;margin-bottom:20px;flex-wrap:wrap}.field[data-v-f643b9c3]{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:#ffffffb3}.field.wide[data-v-f643b9c3]{grid-column:span 2}.field input[data-v-f643b9c3],.field textarea[data-v-f643b9c3]{padding:8px 10px;background:#00000040;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#e2e8f0;font-size:.9rem}.field textarea[data-v-f643b9c3]{font-family:inherit;resize:vertical}.with-btn[data-v-f643b9c3]{display:flex;gap:6px}.with-btn input[data-v-f643b9c3]{flex:1}.check[data-v-f643b9c3]{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;color:#fffc;cursor:pointer}.banner[data-v-f643b9c3]{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.88rem}.banner-error[data-v-f643b9c3]{background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fecaca}.banner-success[data-v-f643b9c3]{background:#22c55e1f;border:1px solid rgba(34,197,94,.4);color:#bbf7d0}.empty[data-v-f643b9c3]{padding:24px;text-align:center;color:#ffffff73}.empty.small[data-v-f643b9c3]{padding:14px;font-size:.88rem}.muted[data-v-f643b9c3]{color:#ffffff8c}.asset-card[data-v-f643b9c3]{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;margin-bottom:20px}.asset-head[data-v-f643b9c3]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.05)}.asset-head h2[data-v-f643b9c3]{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:8px}.asset-meta[data-v-f643b9c3]{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:.82rem;color:#fff9}.asset-actions[data-v-f643b9c3]{display:flex;gap:8px;flex-wrap:wrap}.devices-table-wrap[data-v-f643b9c3]{overflow-x:auto;width:100%}.devices-table[data-v-f643b9c3]{width:100%;min-width:100%;border-collapse:collapse;font-size:.85rem}.devices-table.compact[data-v-f643b9c3]{font-size:.8rem}.devices-table th[data-v-f643b9c3],.devices-table td[data-v-f643b9c3]{padding:9px 12px;text-align:left;border-bottom:1px solid rgba(255,255,255,.05);white-space:nowrap}.devices-table th[data-v-f643b9c3]{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#ffffff8c;background:#ffffff05}.devices-table tbody tr[data-v-f643b9c3]:hover{background:#ffffff06}.devices-table th.sortable[data-v-f643b9c3]{cursor:pointer;-webkit-user-select:none;user-select:none}.devices-table th.sortable[data-v-f643b9c3]:hover{color:#ffffffd9;background:#ffffff0a}.devices-table th.action-head[data-v-f643b9c3]{text-align:center;font-size:.68rem}.devices-table td.action-cell[data-v-f643b9c3]{text-align:center;padding:4px 6px}.sort-ind[data-v-f643b9c3]{display:inline-block;width:.7em;font-size:.7rem;color:#60a5fa;margin-left:2px}.btn-cell[data-v-f643b9c3]{padding:5px 10px;font-size:.76rem;width:100%}.totals-row td[data-v-f643b9c3]{background:#2563eb14;font-weight:600;border-top:1px solid rgba(255,255,255,.1);color:#e2e8f0}.totals-label[data-v-f643b9c3]{text-align:right;color:#ffffffa6;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em}.mono[data-v-f643b9c3]{font-family:ui-monospace,Menlo,Monaco,monospace}.num[data-v-f643b9c3]{text-align:right;font-variant-numeric:tabular-nums}.small[data-v-f643b9c3]{font-size:.78rem;color:#ffffffb3}.actions-col[data-v-f643b9c3]{width:1%}.row-actions[data-v-f643b9c3]{display:flex;flex-wrap:wrap;gap:4px}.chip[data-v-f643b9c3]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600}.chip-green[data-v-f643b9c3]{background:#22c55e26;color:#bbf7d0;border:1px solid rgba(34,197,94,.35)}.chip-grey[data-v-f643b9c3]{background:#94a3b826;color:#ffffffb3;border:1px solid rgba(148,163,184,.35)}.btn[data-v-f643b9c3]{padding:7px 12px;border-radius:6px;border:1px solid transparent;font-size:.82rem;cursor:pointer;font-weight:500}.btn[data-v-f643b9c3]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-f643b9c3]{background:#2563eb;color:#fff}.btn-primary[data-v-f643b9c3]:hover:not(:disabled){background:#1d4ed8}.btn-secondary[data-v-f643b9c3]{background:#ffffff14;color:#e2e8f0;border-color:#ffffff1f}.btn-secondary[data-v-f643b9c3]:hover:not(:disabled){background:#ffffff24}.btn-ghost[data-v-f643b9c3]{background:transparent;color:#e2e8f0;border-color:#ffffff1a}.btn-ghost[data-v-f643b9c3]:hover:not(:disabled){background:#ffffff0f}.btn-danger[data-v-f643b9c3]{color:#fecaca;border-color:#ef444459}.btn-danger[data-v-f643b9c3]:hover:not(:disabled){background:#ef444424}.modal-backdrop[data-v-f643b9c3]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal[data-v-f643b9c3]{width:100%;max-width:620px;background:#16213e;border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden;box-shadow:0 20px 50px #00000080;display:flex;flex-direction:column;max-height:90vh}.modal-wide[data-v-f643b9c3]{max-width:1200px}.modal-small[data-v-f643b9c3]{max-width:460px}.modal-head[data-v-f643b9c3]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.modal-head h3[data-v-f643b9c3]{margin:0;font-size:1rem}.modal-body[data-v-f643b9c3]{padding:18px;overflow:auto}.modal-actions[data-v-f643b9c3]{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.08)}.form-grid[data-v-f643b9c3]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-grid[data-v-f643b9c3]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:14px}.detail-grid>div[data-v-f643b9c3]{display:flex;flex-direction:column;padding:8px 10px;background:#ffffff08;border-radius:6px}.detail-grid .k[data-v-f643b9c3]{font-size:.72rem;color:#ffffff8c;text-transform:uppercase;letter-spacing:.05em}.detail-grid .v[data-v-f643b9c3]{font-size:.9rem}.section[data-v-f643b9c3]{margin-top:16px}.section h4[data-v-f643b9c3]{margin:0 0 8px;font-size:.9rem}.qual-group[data-v-f643b9c3]{margin-top:10px}.qual-head[data-v-f643b9c3]{margin-bottom:4px;font-size:.82rem;color:#ffffffb3}.json-block[data-v-f643b9c3]{background:#0000004d;padding:10px;border-radius:6px;font-size:.78rem;max-height:260px;overflow:auto}.range-bar[data-v-f643b9c3]{display:flex;align-items:flex-end;gap:10px;margin-bottom:12px;flex-wrap:wrap}.seg[data-v-f643b9c3]{display:inline-flex;background:#ffffff0d;border-radius:8px;padding:3px}.seg button[data-v-f643b9c3]{background:transparent;border:0;color:#ffffffb3;padding:6px 12px;font-size:.82rem;border-radius:6px;cursor:pointer}.seg button.active[data-v-f643b9c3]{background:#2563eb;color:#fff}.period-block[data-v-f643b9c3]{margin-bottom:18px;border:1px solid rgba(255,255,255,.07);border-radius:8px;overflow:hidden}.period-head[data-v-f643b9c3]{display:flex;gap:16px;flex-wrap:wrap;padding:8px 12px;background:#ffffff0a;font-size:.82rem}.toast[data-v-f643b9c3]{position:fixed;bottom:24px;right:24px;padding:12px 18px;border-radius:8px;font-size:.88rem;font-weight:500;z-index:1100;box-shadow:0 8px 24px #0006;max-width:420px}.toast-success[data-v-f643b9c3]{background:#059669;color:#fff}.toast-error[data-v-f643b9c3]{background:#dc2626;color:#fff}.metering-points[data-v-f643b9c3]{display:flex;flex-direction:column;gap:6px}.metering-points>span[data-v-f643b9c3]{font-size:.82rem;color:#ffffffb3}.mp-row[data-v-f643b9c3]{display:grid;grid-template-columns:1fr 1fr auto;gap:6px}.mp-row input[data-v-f643b9c3]{padding:8px 10px;background:#00000040;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#e2e8f0;font-size:.88rem}.mp-add[data-v-f643b9c3]{align-self:flex-start;margin-top:2px}.api-log[data-v-f643b9c3]{position:fixed;right:16px;bottom:16px;width:460px;max-width:calc(100vw - 32px);background:#0f172a;border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 10px 30px #00000080;z-index:900;display:flex;flex-direction:column}.api-log.collapsed[data-v-f643b9c3]{width:auto}.api-log-head[data-v-f643b9c3]{display:flex;justify-content:space-between;gap:6px;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.08)}.api-log-body[data-v-f643b9c3]{padding:6px 8px;max-height:50vh;overflow:auto}.api-entry[data-v-f643b9c3]{padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.05);font-size:.8rem}.api-entry summary[data-v-f643b9c3]{cursor:pointer;display:flex;gap:8px;align-items:center}.api-entry summary[data-v-f643b9c3]::-webkit-details-marker{display:none}.api-status[data-v-f643b9c3]{font-weight:700;font-size:.7rem;padding:1px 6px;border-radius:4px}.api-success .api-status[data-v-f643b9c3]{background:#22c55e26;color:#bbf7d0;border:1px solid rgba(34,197,94,.4)}.api-error .api-status[data-v-f643b9c3]{background:#ef444426;color:#fecaca;border:1px solid rgba(239,68,68,.4)}.api-time[data-v-f643b9c3]{color:#ffffff80;font-size:.72rem}.api-label[data-v-f643b9c3]{font-family:ui-monospace,Menlo,Monaco,monospace;font-size:.78rem;color:#ffffffd9;flex:1;word-break:break-all}.api-detail[data-v-f643b9c3]{padding-top:6px}.api-section-label[data-v-f643b9c3]{font-size:.7rem;color:#ffffff8c;text-transform:uppercase;letter-spacing:.05em;margin:6px 0 2px}.json-block.error[data-v-f643b9c3]{color:#fecaca}.debug-panel[data-v-a67a2caa]{position:fixed;bottom:0;left:0;right:0;background:#14141efa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);z-index:1000;display:flex;flex-direction:column;max-height:400px;transition:max-height .3s ease}.debug-panel.collapsed[data-v-a67a2caa]{max-height:48px}.debug-header[data-v-a67a2caa]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1e1e2ecc;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer;-webkit-user-select:none;user-select:none}.header-left[data-v-a67a2caa]{display:flex;align-items:center;gap:12px}.debug-header .icon[data-v-a67a2caa]{width:20px;height:20px;color:#3b82f6;flex-shrink:0}.debug-header h3[data-v-a67a2caa]{margin:0;font-size:.9rem;font-weight:600;color:#fff}.connection-status[data-v-a67a2caa]{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;font-size:.75rem;font-weight:500;color:#fca5a5;transition:all .3s ease}.connection-status.connected[data-v-a67a2caa]{background:#34d3991a;border-color:#34d3994d;color:#34d399}.status-dot[data-v-a67a2caa]{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-a67a2caa 2s ease-in-out infinite}@keyframes pulse-a67a2caa{0%,to{opacity:1}50%{opacity:.5}}.message-count[data-v-a67a2caa]{font-size:.75rem;color:#ffffff80;padding:4px 8px;background:#ffffff0d;border-radius:4px}.header-actions[data-v-a67a2caa]{display:flex;align-items:center;gap:8px}.action-btn[data-v-a67a2caa]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffb3;cursor:pointer;transition:all .2s ease}.action-btn[data-v-a67a2caa]:hover{background:#ffffff1a;border-color:#fff3;color:#fff}.action-btn svg[data-v-a67a2caa]{width:16px;height:16px}.connect-btn[data-v-a67a2caa],.disconnect-btn[data-v-a67a2caa]{width:auto;padding:0 12px;gap:6px;font-size:.8rem;font-weight:500}.connect-btn[data-v-a67a2caa]{background:#34d3991a;border-color:#34d3994d;color:#34d399}.connect-btn[data-v-a67a2caa]:hover{background:#34d39933;border-color:#34d39980}.disconnect-btn[data-v-a67a2caa]{background:#ef44441a;border-color:#ef44444d;color:#fca5a5}.disconnect-btn[data-v-a67a2caa]:hover{background:#ef444433;border-color:#ef444480}.toggle-btn svg[data-v-a67a2caa]{transition:transform .3s ease}.debug-content[data-v-a67a2caa]{flex:1;overflow-y:auto;min-height:0}.empty-state[data-v-a67a2caa]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:12px;color:#ffffff80}.empty-state svg[data-v-a67a2caa]{width:48px;height:48px;color:#ffffff4d}.empty-state p[data-v-a67a2caa]{margin:0;font-size:1rem;font-weight:600;color:#ffffffb3}.empty-state span[data-v-a67a2caa]{font-size:.875rem}.messages-container[data-v-a67a2caa]{padding:8px;display:flex;flex-direction:column;gap:8px}.message[data-v-a67a2caa]{background:#ffffff05;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:10px 12px;transition:all .2s ease}.message[data-v-a67a2caa]:hover{background:#ffffff0a;border-color:#ffffff26}.message-info[data-v-a67a2caa]{border-left:3px solid #3b82f6}.message-success[data-v-a67a2caa]{border-left:3px solid #10b981}.message-error[data-v-a67a2caa]{border-left:3px solid #ef4444;background:#ef44440d}.message-data[data-v-a67a2caa]{border-left:3px solid #8b5cf6}.message-header[data-v-a67a2caa]{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.message-time[data-v-a67a2caa]{font-family:Monaco,Menlo,Courier New,monospace;font-size:.75rem;color:#ffffff80;flex-shrink:0}.message-event[data-v-a67a2caa]{font-family:Monaco,Menlo,Courier New,monospace;font-size:.8rem;font-weight:600;color:#3b82f6;flex-shrink:0}.message-type-badge[data-v-a67a2caa]{padding:2px 8px;background:#ffffff1a;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;color:#ffffffb3}.message-data[data-v-a67a2caa]{font-family:Monaco,Menlo,Courier New,monospace;font-size:.8rem;color:#ffffffe6;margin:0;white-space:pre-wrap;word-wrap:break-word;line-height:1.5;background:#0003;padding:8px;border-radius:4px}@media (max-width: 768px){.debug-panel[data-v-a67a2caa]{max-height:300px}.debug-header h3[data-v-a67a2caa]{font-size:.8rem}.connection-status[data-v-a67a2caa],.message-count[data-v-a67a2caa]{font-size:.7rem}}.main-app[data-v-085abac1]{min-height:calc(100vh - 81px);padding-bottom:48px}.overview-view[data-v-085abac1]{min-height:calc(100vh - 81px)}.site-list-view[data-v-085abac1]{padding:24px;min-height:calc(100vh - 81px)}.users-view[data-v-085abac1],.config-view[data-v-085abac1],.controller-view[data-v-085abac1],.network-map-view[data-v-085abac1],.pools-view[data-v-085abac1],.kratt-view[data-v-085abac1]{min-height:calc(100vh - 81px)}.dashboard-view[data-v-085abac1],.details-view[data-v-085abac1]{min-height:100vh}.back-button-container[data-v-085abac1]{padding:24px 24px 0}.back-button[data-v-085abac1]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#60a5fa;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s ease}.back-button[data-v-085abac1]:hover{background:#3b82f633;border-color:#3b82f680;transform:translate(-4px)}.back-button svg[data-v-085abac1]{width:20px;height:20px}@media (max-width: 768px){.site-list-view[data-v-085abac1],.back-button-container[data-v-085abac1]{padding:16px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e)}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff}.loading-spinner svg{width:48px;height:48px;animation:spin 1s linear infinite}.loading-spinner span{font-size:1rem;font-weight:500;color:#ffffffb3}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.authenticated-app{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e)}
