.sidebar[data-v-70f5597a]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--gradient-sidebar);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-brand[data-v-70f5597a]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--border-subtle)}.brand-icon[data-v-70f5597a]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0}.brand-icon img[data-v-70f5597a]{width:36px;height:36px;object-fit:contain}.brand-text[data-v-70f5597a]{display:flex;flex-direction:column}.brand-name[data-v-70f5597a]{font-weight:700;font-size:var(--font-size-md);color:var(--text-primary);line-height:1.2}.brand-sub[data-v-70f5597a]{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.sidebar-nav[data-v-70f5597a]{flex:1;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.nav-section[data-v-70f5597a]{margin-bottom:var(--space-2)}.nav-label[data-v-70f5597a]{display:block;padding:var(--space-2) var(--space-3);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.nav-item[data-v-70f5597a]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast);text-decoration:none}.nav-item[data-v-70f5597a]:hover{background:#ffffff0d;color:var(--text-primary)}.nav-item.router-link-exact-active[data-v-70f5597a]{background:#3b82f61f;color:var(--accent-blue);font-weight:500}.nav-item.router-link-exact-active .nav-icon[data-v-70f5597a]{stroke:var(--accent-blue)}.nav-icon[data-v-70f5597a]{width:18px;height:18px;flex-shrink:0;stroke:var(--text-muted);transition:stroke var(--transition-fast)}.sidebar-footer[data-v-70f5597a]{padding:var(--space-4);border-top:1px solid var(--border-subtle);display:flex;justify-content:center}.version-badge[data-v-70f5597a]{font-size:var(--font-size-xs);color:var(--text-muted);background:var(--bg-glass);padding:2px 10px;border-radius:var(--radius-full);border:1px solid var(--border-subtle)}@media(max-width:768px){.sidebar[data-v-70f5597a]{transform:translate(-100%)}}.app-header[data-v-999a1eff]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:50;height:var(--header-height);transition:background var(--transition-normal)}.page-title[data-v-999a1eff]{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary)}.header-right[data-v-999a1eff]{display:flex;align-items:center;gap:var(--space-4)}.btn-icon[data-v-999a1eff]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-medium);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.btn-icon[data-v-999a1eff]:hover{background:var(--bg-glass);color:var(--text-primary);border-color:var(--border-accent)}.user-menu[data-v-999a1eff]{display:flex;align-items:center;gap:var(--space-3)}.user-avatar[data-v-999a1eff]{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-medium)}.user-name[data-v-999a1eff]{font-size:var(--font-size-sm);color:var(--text-secondary)}.login-screen[data-v-2864bdfb]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);position:relative;overflow:hidden}.login-glow[data-v-2864bdfb]{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(59,130,246,.12),transparent 70%);pointer-events:none}.login-card[data-v-2864bdfb]{width:100%;max-width:420px;padding:var(--space-10);text-align:center;position:relative;z-index:1}.login-brand[data-v-2864bdfb]{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8)}.login-icon[data-v-2864bdfb]{width:64px;height:64px;display:flex;align-items:center;justify-content:center}.login-icon img[data-v-2864bdfb]{width:64px;height:64px;object-fit:contain}.login-title[data-v-2864bdfb]{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary)}.login-subtitle[data-v-2864bdfb]{font-size:var(--font-size-sm);color:var(--text-muted)}.login-body[data-v-2864bdfb]{display:flex;flex-direction:column;gap:var(--space-5)}.login-desc[data-v-2864bdfb]{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.7}.login-error[data-v-2864bdfb]{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#f87171;font-size:var(--font-size-sm)}.btn-google[data-v-2864bdfb]{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);border:1px solid var(--border-medium);border-radius:var(--radius-md);background:#ffffff0d;color:var(--text-primary);font-size:var(--font-size-base);font-weight:500;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast)}.btn-google[data-v-2864bdfb]:hover:not(:disabled){background:#ffffff1a;border-color:var(--border-accent);box-shadow:var(--shadow-glow)}.btn-google[data-v-2864bdfb]:disabled{opacity:.6;cursor:not-allowed}.g-signin-fallback[data-v-2864bdfb]{display:flex;justify-content:center}.app-shell[data-v-510d8669]{display:flex;min-height:100vh;background:var(--bg-primary);position:relative}.dev-banner[data-v-510d8669]{position:fixed;top:0;left:0;right:0;background:linear-gradient(90deg,#f59e0b,#d97706);color:#000;text-align:center;padding:4px 0;font-size:12px;font-weight:600;z-index:9999;letter-spacing:.5px}.app-shell[data-v-510d8669]:before{content:"";position:fixed;top:0;left:0;right:0;height:400px;background:var(--gradient-glow);pointer-events:none;z-index:0}.main-content[data-v-510d8669]{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;position:relative;z-index:1;min-height:100vh}.page-container[data-v-510d8669]{flex:1;padding:var(--space-6);animation:fadeIn .3s ease-out}.page-enter-active[data-v-510d8669],.page-leave-active[data-v-510d8669]{transition:opacity .2s ease,transform .2s ease}.page-enter-from[data-v-510d8669]{opacity:0;transform:translateY(8px)}.page-leave-to[data-v-510d8669]{opacity:0;transform:translateY(-4px)}@media(max-width:768px){.main-content[data-v-510d8669]{margin-left:0}}:root,[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .85);--bg-card-hover: rgba(255, 255, 255, .95);--bg-glass: rgba(0, 0, 0, .02);--bg-input: rgba(0, 0, 0, .03);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-accent: #2563eb;--accent-blue: #2563eb;--accent-cyan: #0891b2;--accent-purple: #7c3aed;--accent-green: #059669;--accent-amber: #d97706;--accent-red: #dc2626;--accent-pink: #db2777;--gradient-brand: linear-gradient(135deg, #2563eb, #0891b2);--gradient-card: linear-gradient(135deg, rgba(37, 99, 235, .04), rgba(8, 145, 178, .02));--gradient-sidebar: linear-gradient(180deg, #ffffff, #f8fafc);--gradient-glow: radial-gradient(ellipse at 50% 0%, rgba(37, 99, 235, .06), transparent 70%);--border-subtle: rgba(0, 0, 0, .06);--border-medium: rgba(0, 0, 0, .1);--border-accent: rgba(37, 99, 235, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(37, 99, 235, .08);--scrollbar-thumb: rgba(0, 0, 0, .15);--scrollbar-thumb-hover: rgba(0, 0, 0, .25);--badge-green-bg: rgba(5, 150, 105, .1);--badge-green-text: #059669;--badge-green-border: rgba(5, 150, 105, .2);--badge-red-bg: rgba(220, 38, 38, .1);--badge-red-text: #dc2626;--badge-red-border: rgba(220, 38, 38, .2);--badge-amber-bg: rgba(217, 119, 6, .1);--badge-amber-text: #d97706;--badge-amber-border: rgba(217, 119, 6, .2);--badge-blue-bg: rgba(37, 99, 235, .1);--badge-blue-text: #2563eb;--badge-blue-border: rgba(37, 99, 235, .2);--badge-purple-bg: rgba(124, 58, 237, .1);--badge-purple-text: #7c3aed;--badge-purple-border: rgba(124, 58, 237, .2);--badge-gray-bg: rgba(100, 116, 139, .08);--badge-gray-text: #64748b;--badge-gray-border: rgba(100, 116, 139, .15);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--font-size-xs: .975rem;--font-size-sm: 1.056rem;--font-size-base: 1.138rem;--font-size-md: 1.3rem;--font-size-lg: 1.463rem;--font-size-xl: 1.625rem;--font-size-2xl: 1.95rem;--font-size-3xl: 2.438rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 260px;--sidebar-collapsed: 72px;--header-height: 64px}[data-theme=dark]{--bg-primary: #0a0e1a;--bg-secondary: #111827;--bg-card: rgba(17, 24, 39, .7);--bg-card-hover: rgba(17, 24, 39, .9);--bg-glass: rgba(255, 255, 255, .03);--bg-input: rgba(255, 255, 255, .05);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-accent: #60a5fa;--accent-blue: #3b82f6;--accent-cyan: #06b6d4;--accent-purple: #8b5cf6;--accent-green: #10b981;--accent-amber: #f59e0b;--accent-red: #ef4444;--accent-pink: #ec4899;--gradient-brand: linear-gradient(135deg, #3b82f6, #06b6d4);--gradient-card: linear-gradient(135deg, rgba(59, 130, 246, .08), rgba(6, 182, 212, .04));--gradient-sidebar: linear-gradient(180deg, #0f172a, #0a0e1a);--gradient-glow: radial-gradient(ellipse at 50% 0%, rgba(59, 130, 246, .15), transparent 70%);--border-subtle: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .1);--border-accent: rgba(59, 130, 246, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(59, 130, 246, .15);--scrollbar-thumb: rgba(255, 255, 255, .1);--scrollbar-thumb-hover: rgba(255, 255, 255, .2);--badge-green-bg: rgba(16, 185, 129, .15);--badge-green-text: #34d399;--badge-green-border: rgba(16, 185, 129, .25);--badge-red-bg: rgba(239, 68, 68, .15);--badge-red-text: #f87171;--badge-red-border: rgba(239, 68, 68, .25);--badge-amber-bg: rgba(245, 158, 11, .15);--badge-amber-text: #fbbf24;--badge-amber-border: rgba(245, 158, 11, .25);--badge-blue-bg: rgba(59, 130, 246, .15);--badge-blue-text: #60a5fa;--badge-blue-border: rgba(59, 130, 246, .25);--badge-purple-bg: rgba(139, 92, 246, .15);--badge-purple-text: #a78bfa;--badge-purple-border: rgba(139, 92, 246, .25);--badge-gray-bg: rgba(148, 163, 184, .1);--badge-gray-text: #94a3b8;--badge-gray-border: rgba(148, 163, 184, .15)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;min-height:100vh;overflow-x:hidden;transition:background var(--transition-normal),color var(--transition-normal)}a{color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-cyan)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.glass-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all var(--transition-normal)}.glass-card:hover{background:var(--bg-card-hover);border-color:var(--border-medium);box-shadow:var(--shadow-glow)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase}.badge-green{background:var(--badge-green-bg);color:var(--badge-green-text);border:1px solid var(--badge-green-border)}.badge-red{background:var(--badge-red-bg);color:var(--badge-red-text);border:1px solid var(--badge-red-border)}.badge-amber{background:var(--badge-amber-bg);color:var(--badge-amber-text);border:1px solid var(--badge-amber-border)}.badge-blue{background:var(--badge-blue-bg);color:var(--badge-blue-text);border:1px solid var(--badge-blue-border)}.badge-purple{background:var(--badge-purple-bg);color:var(--badge-purple-text);border:1px solid var(--badge-purple-border)}.badge-gray{background:var(--badge-gray-bg);color:var(--badge-gray-text);border:1px solid var(--badge-gray-border)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.data-table th{text-align:left;padding:var(--space-3) var(--space-4);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-glass)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .4s ease-out forwards}.animate-slide-in{animation:slideInLeft .3s ease-out forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.spinner{width:24px;height:24px;border:2px solid var(--border-subtle);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .6s linear infinite}.spinner-lg{width:40px;height:40px;border-width:3px}.input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);color:var(--text-primary);font-family:var(--font-family);outline:none;transition:all var(--transition-fast);width:100%}.input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f626}.input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast);font-family:var(--font-family);white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--gradient-brand);color:#fff;border:none}.btn-primary:hover{box-shadow:var(--shadow-glow)}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-medium)}.btn-outline:hover{background:var(--bg-glass);color:var(--text-primary);border-color:var(--border-accent)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-12);color:var(--text-muted)}.error-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-8);border:1px solid var(--badge-red-border);background:var(--badge-red-bg);border-radius:var(--radius-lg);text-align:center}.error-container .error-title{color:var(--accent-red);font-weight:600}.error-container .error-message{color:var(--text-muted);font-size:var(--font-size-sm);max-width:400px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-12);color:var(--text-muted);font-size:var(--font-size-sm)}
