svg[data-v-b2ef3600]{display:inline-block;vertical-align:middle}:root{--primary-color: #2563eb;--primary-light: #3b82f6;--primary-dark: #1d4ed8;--primary-hover: #1e40af;--primary-active: #1e3a8a;--secondary-color: #8b5cf6;--secondary-light: #a78bfa;--secondary-dark: #7c3aed;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--info-color: #06b6d4;--online-color: #10b981;--offline-color: #ef4444;--bg-primary: #fafafa;--bg-secondary: #ffffff;--bg-sidebar: #0f172a;--bg-topbar: #ffffff;--bg-card: #ffffff;--bg-input: #f8fafc;--bg-hover: #f1f5f9;--bg-success: #ecfdf5;--bg-error: #fef2f2;--bg-warning: #fffbeb;--bg-info: #f0fdfa;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-muted: #94a3b8;--text-light: #ffffff;--text-dark: #0f172a;--text-success: #059669;--text-error: #dc2626;--text-warning: #d97706;--text-info: #0891b2;--border-color: #e2e8f0;--border-light: #f1f5f9;--border-dark: #cbd5e1;--border-hover: #94a3b8;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-hover: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-primary: 0 0 0 3px rgb(37 99 235 / .1);--shadow-sidebar: 0 0 15px rgb(0 0 0 / .1);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--border-radius: 8px;--border-radius-large: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--primary-gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);--secondary-gradient: linear-gradient(135deg, var(--secondary-color) 0%, var(--secondary-light) 100%);--accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--success-gradient: linear-gradient(135deg, #10b981 0%, #34d399 100%);--error-gradient: linear-gradient(135deg, #ef4444 0%, #f87171 100%);--warning-gradient: linear-gradient(135deg, var(--warning-color) 0%, #fbbf24 100%);--danger-gradient: var(--error-gradient);--login-bg-gradient-start: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--login-bg-gradient-end: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--login-card-bg: rgba(255, 255, 255, .98);--login-input-bg: #ffffff;--login-input-border: #e2e8f0;--login-button-gradient-start: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);--login-button-gradient-end: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%)}@media (prefers-color-scheme: dark){:root{--primary-color: #60a5fa;--primary-light: #93c5fd;--primary-dark: #3b82f6;--primary-hover: #2563eb;--primary-active: #1d4ed8;--secondary-color: #a78bfa;--secondary-light: #c4b5fd;--secondary-dark: #8b5cf6;--success-color: #34d399;--warning-color: #fbbf24;--error-color: #f87171;--info-color: #22d3ee;--online-color: #34d399;--offline-color: #f87171;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-sidebar: #0f172a;--bg-topbar: #1e293b;--bg-card: #1e293b;--bg-input: #0f172a;--bg-hover: #334155;--bg-success: #064e3b;--bg-error: #7f1d1d;--bg-warning: #78350f;--bg-info: #0c4a6e;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-muted: #64748b;--text-light: #0f172a;--text-dark: #f8fafc;--text-success: #34d399;--text-error: #f87171;--text-warning: #fbbf24;--text-info: #22d3ee;--border-color: #334155;--border-light: #1e293b;--border-dark: #475569;--border-hover: #64748b;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .4);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .4), 0 8px 10px -6px rgb(0 0 0 / .4);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .3), 0 1px 2px -1px rgb(0 0 0 / .3);--shadow-hover: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .4);--shadow-primary: 0 0 0 3px rgb(96 165 250 / .2);--shadow-sidebar: 0 0 20px rgb(0 0 0 / .5);--success-gradient: linear-gradient(135deg, #34d399 0%, #10b981 100%);--warning-gradient: linear-gradient(135deg, var(--warning-color) 0%, #f59e0b 100%);--error-gradient: linear-gradient(135deg, #f87171 0%, #ef4444 100%);--danger-gradient: var(--error-gradient);--login-bg-gradient-start: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);--login-bg-gradient-end: linear-gradient(135deg, #334155 0%, #1e293b 100%);--login-card-bg: rgba(30, 41, 59, .98);--login-input-bg: #0f172a;--login-input-border: #334155;--login-button-gradient-start: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);--login-button-gradient-end: linear-gradient(135deg, #a78bfa 0%, #8b5cf6 100%)}}.sidebar[data-v-207f3c5a]{width:280px;background:#fff;border-right:1px solid #e5e7eb;height:100vh;position:fixed;left:0;top:0;transition:all var(--transition-normal) ease;display:flex;flex-direction:column;z-index:1000;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.sidebar.collapsed[data-v-207f3c5a]{width:80px}.sidebar-header[data-v-207f3c5a]{padding:var(--spacing-xl);border-bottom:1px solid #f3f4f6;display:flex;align-items:center;gap:var(--spacing-lg);height:72px;background:#fafafa;position:relative}.logo[data-v-207f3c5a]{width:40px;height:40px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);flex-shrink:0;box-shadow:0 2px 4px #3b82f64d;transition:all var(--transition-normal) ease}.brand[data-v-207f3c5a]{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:#1f2937;margin:0;flex:1;white-space:nowrap;overflow:hidden;letter-spacing:-.5px}.collapse-btn[data-v-207f3c5a]{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--border-radius);transition:all var(--transition-fast) ease;flex-shrink:0}.collapse-btn[data-v-207f3c5a]:hover{background:var(--bg-hover);color:var(--text-sidebar)}.sidebar.collapsed .collapse-btn svg[data-v-207f3c5a]{transform:rotate(180deg)}.sidebar-nav[data-v-207f3c5a]{flex:1;padding:var(--spacing-lg) 0;overflow-y:auto}.nav-section[data-v-207f3c5a]{margin-bottom:var(--spacing-xl)}.nav-section-title[data-v-207f3c5a]{font-size:.75rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 var(--spacing-md) var(--spacing-sm);padding:0}.nav-item[data-v-207f3c5a]{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-xl);color:#6b7280;text-decoration:none;transition:all var(--transition-fast) ease;position:relative;white-space:nowrap;overflow:hidden;margin:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-weight:var(--font-weight-medium)}.nav-item[data-v-207f3c5a]:hover{background:#f9fafb;color:#374151;transform:translate(2px)}.nav-item.active[data-v-207f3c5a]{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 6px -1px #3b82f64d,0 2px 4px -2px #3b82f64d;font-weight:var(--font-weight-semibold);border:1px solid #1d4ed8}.nav-item.active[data-v-207f3c5a]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:var(--primary-color);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.nav-icon[data-v-207f3c5a]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;fill:currentColor;transition:all var(--transition-fast) ease;flex-shrink:0;opacity:.8}.nav-text[data-v-207f3c5a]{font-size:.875rem;font-weight:500;white-space:nowrap}.sidebar-footer[data-v-207f3c5a]{padding:var(--spacing-xl);border-top:1px solid #f3f4f6;background:#fafafa}.user-info[data-v-207f3c5a]{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#fff;border-radius:var(--radius-lg);transition:all var(--transition-fast) ease;border:1px solid #e5e7eb}.user-avatar[data-v-207f3c5a]{width:36px;height:36px;border-radius:50%;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0;box-shadow:var(--shadow-sm);transition:all var(--transition-fast) ease}.user-details[data-v-207f3c5a]{flex:1;min-width:0}.username[data-v-207f3c5a]{font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role[data-v-207f3c5a]{font-size:var(--font-size-xs);color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn[data-v-207f3c5a]{background:#fff;border:1px solid #d1d5db;color:#6b7280;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-fast) ease;width:100%;text-align:center;font-weight:var(--font-weight-medium);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.logout-btn[data-v-207f3c5a]:hover{background:#f9fafb;color:#374151;border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}@media (max-width: 768px){.sidebar[data-v-207f3c5a]{transform:translate(-100%);transition:transform var(--transition-normal) ease}.sidebar.mobile-open[data-v-207f3c5a]{transform:translate(0)}.sidebar.collapsed[data-v-207f3c5a]{transform:translate(-100%)}}@media (prefers-color-scheme: dark){.sidebar[data-v-207f3c5a]{background:#1f2937;border-right-color:#374151}.sidebar-header[data-v-207f3c5a]{background:#111827;border-bottom-color:#374151}.brand[data-v-207f3c5a]{color:#f9fafb}.nav-item[data-v-207f3c5a]{color:#d1d5db}.nav-item[data-v-207f3c5a]:hover{background:#374151;color:#f9fafb}.nav-item.active[data-v-207f3c5a]{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-color:#1d4ed8}.sidebar-footer[data-v-207f3c5a]{background:#111827;border-top-color:#374151}.user-info[data-v-207f3c5a]{background:#374151;border-color:#4b5563}.username[data-v-207f3c5a]{color:#f9fafb}.user-role[data-v-207f3c5a]{color:#d1d5db}.logout-btn[data-v-207f3c5a]{background:#374151;border-color:#4b5563;color:#d1d5db}.logout-btn[data-v-207f3c5a]:hover{background:#4b5563;color:#f9fafb;border-color:#6b7280}}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}.login-container{min-height:100vh;width:100%;position:relative;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);background-size:400% 400%;animation:gradient 15s ease infinite;display:flex;align-items:center;justify-content:center}.app-layout{display:flex;height:100vh;overflow:hidden;background:var(--bg-primary)}.main-container{flex:1;display:flex;flex-direction:column;margin-left:280px;transition:margin-left var(--transition-normal) ease;background:var(--bg-primary)}.main-container.sidebar-collapsed{margin-left:80px}.top-bar{background:var(--bg-topbar);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);padding:0 var(--spacing-xl);display:flex;align-items:center;justify-content:space-between;height:72px;position:sticky;top:0;z-index:100;transition:all var(--transition-normal) ease;box-shadow:var(--shadow-sm)}.top-bar-left{display:flex;align-items:center;gap:var(--spacing-lg);flex:1}.top-bar-right{display:flex;align-items:center;gap:var(--spacing-xl)}.sidebar-toggle{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast) ease;display:none}.sidebar-toggle:hover{background:var(--bg-hover);color:var(--primary-color)}.stat-value{font-weight:var(--font-weight-bold);color:var(--text-primary);font-size:var(--font-size-md)}.user-menu{position:relative}.user-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);transition:all var(--transition-fast) ease;color:var(--text-secondary);cursor:pointer;background:var(--bg-input);border:1px solid var(--border-color)}.user-info:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:translateY(-1px)}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);box-shadow:var(--shadow-sm);flex-shrink:0}.user-details{display:flex;flex-direction:column;min-width:0}.username{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--font-weight-medium)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-sm);min-width:180px;z-index:200}.user-menu:after{content:"";position:absolute;top:calc(100% - 4px);right:0;left:0;height:8px;background:transparent;z-index:199}.dropdown-item{width:100%;background:none;border:none;padding:var(--spacing-sm) var(--spacing-md);text-align:left;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md)}.dropdown-item:hover{background:var(--bg-hover)}.main-content{flex:1;padding:var(--spacing-2xl);overflow-y:auto;background:var(--bg-primary)}.mobile-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.public-container{min-height:100vh;background:var(--bg-primary)}.route-skeleton{display:grid;gap:12px}.skel{background:linear-gradient(90deg,#eee,#f5f5f5,#eee);background-size:200% 100%;animation:skel 1.2s infinite;border-radius:8px}.skel-card{height:180px}.skel-row{height:18px}@keyframes skel{0%{background-position:0% 0}to{background-position:-200% 0}}@media (max-width: 768px){.sidebar-toggle{display:block}.main-container,.main-container.sidebar-collapsed{margin-left:0}.top-bar{padding:0 var(--spacing-lg);height:64px}.search-container{max-width:240px}.device-stats,.user-role{display:none}.main-content{padding:var(--spacing-lg)}}@media (max-width: 480px){.top-bar{padding:0 var(--spacing-md)}.top-bar-left{gap:var(--spacing-sm)}.search-container{max-width:160px}.user-details{display:none}.main-content{padding:var(--spacing-md)}.device-stats{display:none}}.page-transitioning{opacity:.8;transition:opacity var(--transition-normal) ease}.offline-banner{background:#fdecea;color:#b71c1c;border-bottom:1px solid #f5c6cb;padding:8px 16px;text-align:center}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-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;background-color:#f8f9fa;color:#333}#app{height:100vh}button{transition:all .2s ease}button:disabled{opacity:.6;cursor:not-allowed!important}a{color:#3498db;text-decoration:none;transition:color .2s ease}a:hover{color:#2980b9}input,select,textarea{transition:border-color .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{outline:none}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.d-flex{display:flex}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.w-100{width:100%}.h-100{height:100%}.hidden{display:none}@media (max-width: 768px){.container{padding:1rem}.modal-content{width:95%;margin:.5rem}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner{border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;width:20px;height:20px;animation:spin 1s linear infinite;display:inline-block;margin-right:.5rem}.success-message{background-color:#d4edda;color:#155724;padding:.75rem;border-radius:4px;border:1px solid #c3e6cb;margin-bottom:1rem}.error-message{background-color:#f8d7da;color:#721c24;padding:.75rem;border-radius:4px;border:1px solid #f5c6cb;margin-bottom:1rem}.warning-message{background-color:#fff3cd;color:#856404;padding:.75rem;border-radius:4px;border:1px solid #ffeaa7;margin-bottom:1rem}.info-message{background-color:#d1ecf1;color:#0c5460;padding:.75rem;border-radius:4px;border:1px solid #bee5eb;margin-bottom:1rem}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.card-header{padding:1rem 1.5rem;border-bottom:1px solid #ecf0f1;background-color:#f8f9fa}.card-body{padding:1.5rem}.card-footer{padding:1rem 1.5rem;border-top:1px solid #ecf0f1;background-color:#f8f9fa}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid #ecf0f1}.table th{background-color:#f8f9fa;font-weight:600;color:#495057}.table tbody tr:hover{background-color:#f8f9fa}.badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:500;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge-primary{background-color:#007bff;color:#fff}.badge-success{background-color:#28a745;color:#fff}.badge-warning{background-color:#ffc107;color:#212529}.badge-danger{background-color:#dc3545;color:#fff}.badge-info{background-color:#17a2b8;color:#fff}.badge-secondary{background-color:#6c757d;color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}
