.mobile-topbar[data-v-b0ab9801]{background:var(--color-sidebar);z-index:99;align-items:center;gap:.75rem;height:56px;padding:0 1rem;display:none;position:fixed;top:0;left:0;right:0}.hamburger[data-v-b0ab9801]{color:var(--color-sidebar-text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:.375rem;display:flex}.hamburger[data-v-b0ab9801]:hover{background:var(--color-sidebar-hover);color:#fff;transform:none}.hamburger svg[data-v-b0ab9801]{width:1.25rem;height:1.25rem}.mobile-logo[data-v-b0ab9801]{color:#fff;letter-spacing:-.02em;font-size:1.125rem;font-weight:700;text-decoration:none}.close-btn[data-v-b0ab9801]{color:var(--color-sidebar-text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.375rem;display:none}.close-btn[data-v-b0ab9801]:hover{background:var(--color-sidebar-hover);color:#fff;transform:none}.close-btn svg[data-v-b0ab9801]{width:1.125rem;height:1.125rem}.sidebar-overlay[data-v-b0ab9801]{z-index:100;background:#00000080;display:none;position:fixed;inset:0}.sidebar[data-v-b0ab9801]{width:var(--sidebar-width);background:var(--color-sidebar);z-index:101;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-header[data-v-b0ab9801]{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:1.25rem 1.25rem 1rem;display:flex}.logo[data-v-b0ab9801]{color:#fff;align-items:center;gap:.625rem;text-decoration:none;display:flex}.logo-icon[data-v-b0ab9801]{font-size:1.375rem}.logo-text[data-v-b0ab9801]{letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.sidebar-nav[data-v-b0ab9801]{flex:1;padding:1rem .75rem;overflow-y:auto}.nav-section[data-v-b0ab9801]{flex-direction:column;gap:.125rem;display:flex}.nav-section-label[data-v-b0ab9801]{text-transform:uppercase;letter-spacing:.06em;color:#ffffff4d;margin-bottom:.5rem;padding:0 .75rem;font-size:.6875rem;font-weight:600}.nav-item[data-v-b0ab9801]{border-radius:var(--radius-md);color:var(--color-sidebar-text);transition:all var(--transition-fast);align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item[data-v-b0ab9801]:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text-active)}.nav-item.active[data-v-b0ab9801]{background:var(--color-sidebar-active);color:var(--color-primary)}.nav-icon[data-v-b0ab9801]{flex-shrink:0;width:1.125rem;height:1.125rem}.sidebar-footer[data-v-b0ab9801]{border-top:1px solid #ffffff0f;padding:.75rem}.connection-status[data-v-b0ab9801]{border-radius:var(--radius-sm);color:var(--color-sidebar-text);align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.75rem;display:flex}.status-dot[data-v-b0ab9801]{background:var(--color-error);border-radius:50%;flex-shrink:0;width:6px;height:6px}.connection-status.connected .status-dot[data-v-b0ab9801]{background:var(--color-success);box-shadow:0 0 6px #10b98180}.user-section[data-v-b0ab9801]{border-radius:var(--radius-md);transition:background var(--transition-fast);align-items:center;gap:.625rem;padding:.625rem .75rem;display:flex}.user-section[data-v-b0ab9801]:hover{background:var(--color-sidebar-hover)}.user-avatar[data-v-b0ab9801]{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.8125rem;font-weight:600;display:flex}.user-info[data-v-b0ab9801]{flex-direction:column;flex:1;min-width:0;display:flex}.user-name[data-v-b0ab9801]{color:var(--color-sidebar-text-active);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:500;overflow:hidden}.user-role[data-v-b0ab9801]{color:var(--color-sidebar-text);font-size:.6875rem}.btn-logout[data-v-b0ab9801]{color:var(--color-sidebar-text);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;padding:.375rem;display:flex}.btn-logout[data-v-b0ab9801]:hover{color:var(--color-error);background:#ef444426;transform:none}.btn-logout svg[data-v-b0ab9801]{width:1rem;height:1rem}.fade-enter-active[data-v-b0ab9801],.fade-leave-active[data-v-b0ab9801]{transition:opacity .2s}.fade-enter-from[data-v-b0ab9801],.fade-leave-to[data-v-b0ab9801]{opacity:0}@media (width<=767px){.mobile-topbar[data-v-b0ab9801]{display:flex}.sidebar-overlay[data-v-b0ab9801]{display:block}.sidebar[data-v-b0ab9801]{transition:transform .25s;transform:translate(-100%)}.sidebar.open[data-v-b0ab9801]{transform:translate(0)}.close-btn[data-v-b0ab9801]{display:flex}}.app-layout[data-v-898b291b]{min-height:100vh;display:flex}.main-content[data-v-898b291b]{margin-left:var(--sidebar-width);min-height:100vh;max-width:calc(100vw - var(--sidebar-width));flex:1;padding:2rem 2.5rem}.app-loading[data-v-898b291b]{justify-content:center;align-items:center;min-height:100vh;display:flex}@media (width<=767px){.main-content[data-v-898b291b]{max-width:100vw;margin-left:0;padding:calc(56px + 1rem) 1rem 1rem}}@media (width>=768px) and (width<=1024px){.main-content[data-v-898b291b]{padding:1.5rem}}.stats-grid[data-v-51059563]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card[data-v-51059563]{padding:1.25rem 1.5rem}.stat-card[data-v-51059563]:hover{box-shadow:var(--shadow-md)}.stat-header[data-v-51059563]{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.stat-label[data-v-51059563]{color:var(--color-text-secondary);font-size:.8125rem;font-weight:500}.stat-icon[data-v-51059563]{border-radius:var(--radius-md);justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.stat-icon svg[data-v-51059563]{width:1.125rem;height:1.125rem}.stat-icon.total[data-v-51059563]{background:var(--color-secondary-light);color:var(--color-secondary)}.stat-icon.connected[data-v-51059563]{background:var(--color-success-light);color:var(--color-success)}.stat-icon.charging[data-v-51059563]{background:var(--color-info-light);color:var(--color-info)}.stat-icon.available[data-v-51059563]{background:var(--color-success-light);color:var(--color-success)}.stat-value[data-v-51059563]{color:var(--color-text);letter-spacing:-.025em;font-size:2rem;font-weight:700}.recent-section[data-v-51059563]{padding:0}.section-header[data-v-51059563]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.section-header h2[data-v-51059563]{margin:0}.view-all-link[data-v-51059563]{color:var(--color-primary);font-size:.8125rem;font-weight:500;text-decoration:none}.view-all-link[data-v-51059563]:hover{color:var(--color-primary-hover)}.data-table[data-v-51059563]{border-collapse:collapse;width:100%}.data-table th[data-v-51059563]{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-background);border-bottom:1px solid var(--color-border);padding:.75rem 1.5rem;font-size:.75rem;font-weight:600}.data-table td[data-v-51059563]{border-bottom:1px solid var(--color-border-light);vertical-align:middle;padding:.75rem 1.5rem;font-size:.875rem}.data-table tr:last-child td[data-v-51059563]{border-bottom:none}.data-table tbody tr[data-v-51059563]{transition:background var(--transition-fast)}.data-table tbody tr[data-v-51059563]:hover{background:var(--color-surface-hover)}.cp-name-link[data-v-51059563]{color:var(--color-text);font-weight:500;text-decoration:none}.cp-name-link[data-v-51059563]:hover{color:var(--color-primary)}.connection-dot[data-v-51059563]{background:var(--color-text-muted);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:.375rem;display:inline-block}.connection-dot.connected[data-v-51059563]{background:var(--color-success);box-shadow:0 0 6px #10b98166}.text-muted[data-v-51059563]{color:var(--color-text-secondary)}.loading-text[data-v-51059563],.error-text[data-v-51059563],.empty-text[data-v-51059563]{text-align:center;color:var(--color-text-secondary);padding:2.5rem;font-size:.875rem}.error-text[data-v-51059563]{color:var(--color-error)}.empty-text a[data-v-51059563]{color:var(--color-primary);font-weight:500;text-decoration:none}@media (width<=767px){.stats-grid[data-v-51059563]{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card[data-v-51059563]{padding:1rem}.stat-value[data-v-51059563]{font-size:1.5rem}.stat-icon[data-v-51059563]{width:1.75rem;height:1.75rem}.stat-icon svg[data-v-51059563]{width:.875rem;height:.875rem}.recent-section[data-v-51059563]{overflow-x:auto}.data-table th[data-v-51059563],.data-table td[data-v-51059563]{white-space:nowrap;padding:.5rem .75rem;font-size:.8125rem}}:root{--color-primary:#10b981;--color-primary-hover:#059669;--color-primary-light:#d1fae5;--color-secondary:#6366f1;--color-secondary-hover:#4f46e5;--color-secondary-light:#e0e7ff;--color-background:#f8fafc;--color-surface:#fff;--color-surface-hover:#f1f5f9;--color-sidebar:#0f172a;--color-sidebar-hover:#1e293b;--color-sidebar-active:#10b98126;--color-sidebar-text:#94a3b8;--color-sidebar-text-active:#fff;--sidebar-width:250px;--color-text:#1e293b;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-success:#10b981;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-error:#ef4444;--color-error-light:#fee2e2;--color-info:#3b82f6;--color-info-light:#dbeafe;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #0000000a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:.15s ease;--transition-normal:.2s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.9375rem;line-height:1.5}h1{letter-spacing:-.025em;color:var(--color-text);font-size:1.5rem;font-weight:700}h2{letter-spacing:-.02em;color:var(--color-text);font-size:1.25rem;font-weight:600}h3{color:var(--color-text);font-size:1rem;font-weight:600}button{cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.25rem;display:inline-flex}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 1px 2px #10b98133}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:0 2px 4px #10b9814d}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-text-secondary)}.btn-danger{background-color:var(--color-error);color:#fff;box-shadow:0 1px 2px #ef444433}.btn-danger:hover:not(:disabled){background-color:#dc2626;box-shadow:0 2px 4px #ef44444d}.btn-ghost{color:var(--color-text-secondary);background:0 0;padding:.375rem .75rem}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:box-shadow var(--transition-normal);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md)}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.5rem .75rem;font-size:.875rem;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #10b9811a}input::placeholder{color:var(--color-text-muted)}.status-available{color:var(--color-success)}.status-charging{color:var(--color-info)}.status-unavailable{color:var(--color-text-secondary)}.status-faulted{color:var(--color-error)}.badge{border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:500;line-height:1.25rem;display:inline-flex}.badge-success{background:var(--color-success-light);color:#065f46}.badge-warning{background:var(--color-warning-light);color:#92400e}.badge-error{background:var(--color-error-light);color:#991b1b}.badge-info{background:var(--color-info-light);color:#1e40af}.badge-neutral{background:var(--color-border-light);color:var(--color-text-secondary)}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.page-header-info{flex-direction:column;gap:.25rem;display:flex}.page-header-info .subtitle{color:var(--color-text-secondary);font-size:.875rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:480px;max-height:90vh;animation:.2s ease-out modal-enter;overflow-y:auto}@keyframes modal-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal h2{margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--color-text);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.form-group .hint,.form-group .help-text{color:var(--color-text-muted);margin-top:.25rem;font-size:.75rem;display:block}.modal-actions{border-top:1px solid var(--color-border);gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.modal-actions button{flex:1}.empty-state{text-align:center;color:var(--color-text-secondary);padding:3rem 2rem}.empty-state p{margin-bottom:.5rem}.empty-state .hint{margin-bottom:1.5rem;font-size:.875rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@media (width<=767px){h1{font-size:1.25rem}h2{font-size:1.1rem}.page-header{flex-direction:column;align-items:stretch;gap:.75rem}.page-header .btn-primary{align-self:flex-start}.modal{max-width:100%}.empty-state{padding:2rem 1rem}}@media (width>=768px) and (width<=1024px){h1{font-size:1.375rem}}
