:root{--primary:#3b82f6;--primary-dark:#2563eb;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--accent-500:#8b5cf6;--accent-600:#7c3aed;--success-500:#10b981;--warning-500:#f59e0b;--error-500:#ef4444;--info-500:#06b6d4;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-body:#f8fafc;--bg-page:linear-gradient(135deg, #f8fafc 0%, #f1f5f9 50%, #e2e8f0 100%);--bg-card:#ffffffd9;--bg-card-solid:#fff;--bg-sidebar:linear-gradient(180deg, #0f172a 0%, #1e293b 100%);--bg-header:#ffffffe6;--bg-hover:#3b82f614;--bg-active:#3b82f61f;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--text-inverse:#f8fafc;--border-color:#e2e8f0cc;--border-color-strong:#e2e8f0;--border-radius-sm:6px;--border-radius-md:10px;--border-radius-lg:16px;--border-radius-xl:24px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-glow:0 0 20px #3b82f64d;--glass-bg:#ffffffbf;--glass-border:#ffffff80;--glass-backdrop:blur(20px) saturate(180%);--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:72px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Consolas, Monaco, monospace}[data-theme=dark]{--bg-body:#0a0f1c;--bg-page:linear-gradient(135deg, #0a0f1c 0%, #0f172a 50%, #1e293b 100%);--bg-card:#1e293bb3;--bg-card-solid:#1e293b;--bg-sidebar:linear-gradient(180deg, #020617 0%, #0f172a 100%);--bg-header:#0f172ad9;--bg-hover:#3b82f626;--bg-active:#3b82f633;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-muted:#475569;--text-inverse:#0f172a;--border-color:#33415599;--border-color-strong:#334155;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0003;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0003;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0003;--shadow-xl:0 20px 25px -5px #0006, 0 8px 10px -6px #0003;--shadow-glow:0 0 30px #3b82f666;--glass-bg:#1e293bb3;--glass-border:#ffffff14}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-base), color var(--transition-base);font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray-400);background-clip:content-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--gray-600)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--glass-border)}.gradient-text{background:linear-gradient(135deg, var(--primary-500) 0%, var(--accent-500) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.card-hover{transition:transform var(--transition-base), box-shadow var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn{border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-300)}.btn-danger{background:linear-gradient(135deg, var(--error-500) 0%, #dc2626 100%);color:#fff}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--primary-600)}.input{width:100%;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);transition:all var(--transition-fast);padding:12px 16px;font-size:14px}.input:focus{border-color:var(--primary-400);outline:none;box-shadow:0 0 0 3px #3b82f626}.input::placeholder{color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base);overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.tag{border-radius:20px;align-items:center;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.tag-primary{color:var(--primary-600);background:#3b82f61f}.tag-success{color:var(--success-500);background:#10b9811f}.tag-warning{color:var(--warning-500);background:#f59e0b1f}.tag-error{color:var(--error-500);background:#ef44441f}[data-theme=dark] .tag-primary{background:#3b82f633}[data-theme=dark] .tag-success{background:#10b98133}[data-theme=dark] .tag-warning{background:#f59e0b33}[data-theme=dark] .tag-error{background:#ef444433}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:.4s ease-out fadeIn}.animate-slide-in{animation:.4s ease-out slideIn}@media (width<=768px){:root{--sidebar-width:100%;--header-height:64px}}#app{width:100%;min-height:100vh}.page-enter-active,.page-leave-active{transition:opacity 80ms}.page-enter-from{opacity:.6}.page-leave-to{opacity:0}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.data-table th{text-align:left;color:var(--text-secondary);background:var(--bg-card);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:14px 16px;font-weight:600}.data-table th:first-child{border-radius:var(--border-radius-md) 0 0 0}.data-table th:last-child{border-radius:0 var(--border-radius-md) 0 0}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);transition:background var(--transition-fast);padding:14px 16px}.data-table tbody tr:hover td{background:var(--bg-hover)}.data-table tbody tr:last-child td:first-child{border-radius:0 0 0 var(--border-radius-md)}.data-table tbody tr:last-child td:last-child{border-radius:0 0 var(--border-radius-md) 0}.form-group{margin-bottom:20px}.form-label{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-hint{color:var(--text-tertiary);margin-top:6px;font-size:12px}.form-error{color:var(--error-500);margin-top:6px;font-size:12px}.pagination{justify-content:flex-end;align-items:center;gap:8px;padding:16px 0;display:flex}.pagination-btn{min-width:36px;height:36px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0 12px;font-size:14px;display:flex}.pagination-btn:hover:not(:disabled){color:var(--primary-600);border-color:var(--primary-400);background:var(--bg-hover)}.pagination-btn.active{color:#fff;background:linear-gradient(135deg, var(--primary-600) 0%, var(--primary-500) 100%);border-color:#0000;box-shadow:0 2px 8px #2563eb59}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card-solid);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:560px;max-height:90vh;animation:.3s ease-out modalEnter;overflow:hidden}@keyframes modalEnter{0%{opacity:0;transform:scale(.95)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border-color);padding:20px 24px}.modal-title{color:var(--text-primary);font-size:18px;font-weight:600}.modal-body{max-height:calc(90vh - 140px);padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);background:var(--bg-card);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);transition:all var(--transition-base);padding:24px}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-label{color:var(--text-tertiary);margin-bottom:8px;font-size:13px}.stat-value{color:var(--text-primary);margin-bottom:8px;font-size:32px;font-weight:700}.stat-change{align-items:center;gap:4px;font-size:13px;font-weight:500;display:inline-flex}.stat-change.positive{color:var(--success-500)}.stat-change.negative{color:var(--error-500)}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-wrapper .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.search-input-wrapper input{padding-left:42px;padding-right:14px}.loading-spinner{border:2px solid var(--border-color);border-top-color:var(--primary-500);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--gray-200) 25%, var(--gray-300) 50%, var(--gray-200) 75%);border-radius:var(--border-radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}[data-theme=dark] .skeleton{background:linear-gradient(90deg, var(--gray-700) 25%, var(--gray-600) 50%, var(--gray-700) 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-icon{width:80px;height:80px;color:var(--text-muted);opacity:.5;margin-bottom:16px}.empty-title{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:500}.empty-desc{color:var(--text-tertiary);font-size:14px}.admin-layout[data-v-5ea655b1]{background:var(--bg-page);min-height:100vh;display:flex}.sidebar[data-v-5ea655b1]{width:var(--sidebar-width);background:var(--bg-sidebar);z-index:100;flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 24px #00000026}.sidebar-brand[data-v-5ea655b1]{cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid #ffffff0f;align-items:center;gap:14px;padding:24px 20px;display:flex}.sidebar-brand[data-v-5ea655b1]:hover{background:#ffffff08}.logo-wrapper[data-v-5ea655b1]{border-radius:var(--border-radius-md);flex-shrink:0;width:44px;height:44px;overflow:hidden;box-shadow:0 4px 15px #3b82f666}.logo-wrapper svg[data-v-5ea655b1]{width:100%;height:100%}.brand-text[data-v-5ea655b1]{flex-direction:column;display:flex}.brand-name[data-v-5ea655b1]{color:#fff;letter-spacing:-.5px;font-size:18px;font-weight:700}.brand-tagline[data-v-5ea655b1]{color:#ffffff80;margin-top:2px;font-size:11px}.sidebar-nav[data-v-5ea655b1]{flex:1;padding:20px 16px;overflow-y:auto}.nav-section[data-v-5ea655b1]{margin-bottom:24px}.nav-section-title[data-v-5ea655b1]{text-transform:uppercase;letter-spacing:.5px;color:#ffffff59;margin-bottom:10px;padding:0 12px;font-size:11px;font-weight:600;display:block}.nav-item[data-v-5ea655b1]{color:#fff9;cursor:pointer;transition:all var(--transition-fast);border-radius:var(--border-radius-md);align-items:center;gap:12px;margin-bottom:4px;padding:12px 14px;font-size:14px;font-weight:500;display:flex;position:relative}.nav-item[data-v-5ea655b1]:hover{color:#ffffffe6;background:#ffffff0f}.nav-item.active[data-v-5ea655b1]{color:#fff;background:linear-gradient(135deg,#3b82f640 0%,#8b5cf626 100%);box-shadow:0 2px 8px #3b82f633}.nav-icon[data-v-5ea655b1]{opacity:.8;flex-shrink:0;align-items:center;width:20px;height:20px;display:flex}.nav-icon[data-v-5ea655b1] svg{width:20px;height:20px}.nav-item.active .nav-icon[data-v-5ea655b1]{opacity:1}.nav-label[data-v-5ea655b1]{white-space:nowrap;flex:1}.nav-indicator[data-v-5ea655b1]{background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);border-radius:50%;width:6px;height:6px;position:absolute;right:12px;box-shadow:0 0 8px #3b82f699}.sidebar-footer[data-v-5ea655b1]{border-top:1px solid #ffffff0f;padding:16px}.user-info[data-v-5ea655b1]{border-radius:var(--border-radius-md);background:#ffffff0d;align-items:center;gap:12px;padding:12px;display:flex}.user-avatar[data-v-5ea655b1]{color:#ffffffe6;background:linear-gradient(135deg,#3b82f64d 0%,#8b5cf633 100%);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.user-avatar svg[data-v-5ea655b1]{width:20px;height:20px}.user-details[data-v-5ea655b1]{flex-direction:column;display:flex}.user-role[data-v-5ea655b1]{color:#ffffffe6;font-size:13px;font-weight:600}.user-status[data-v-5ea655b1]{color:#ffffff80;align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.status-dot[data-v-5ea655b1]{background:#10b981;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse-5ea655b1;box-shadow:0 0 6px #10b981}@keyframes pulse-5ea655b1{0%,to{opacity:1}50%{opacity:.5}}.main-area[data-v-5ea655b1]{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;display:flex}.topbar[data-v-5ea655b1]{height:var(--header-height);background:var(--bg-header);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border-color);z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:sticky;top:0}.page-title[data-v-5ea655b1]{color:var(--text-primary);letter-spacing:-.5px;font-size:22px;font-weight:700}.topbar-actions[data-v-5ea655b1]{align-items:center;gap:12px;display:flex}.action-btn[data-v-5ea655b1]{color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.action-btn[data-v-5ea655b1]:hover{color:var(--primary-600);border-color:var(--primary-400);background:var(--bg-hover);transform:translateY(-1px)}.action-btn svg[data-v-5ea655b1]{width:18px;height:18px}.theme-toggle[data-v-5ea655b1]{border-radius:50%;padding:10px}.theme-toggle .icon-sun[data-v-5ea655b1],.theme-toggle .icon-moon[data-v-5ea655b1]{justify-content:center;align-items:center;width:20px;height:20px;display:flex}.theme-toggle .icon-sun[data-v-5ea655b1]{color:#f59e0b}.theme-toggle .icon-moon[data-v-5ea655b1]{color:#8b5cf6}.logout-btn[data-v-5ea655b1]{color:var(--error-500);background:linear-gradient(135deg,#ef44441a 0%,#ef44440d 100%);border-color:#ef444433}.logout-btn[data-v-5ea655b1]:hover{color:#dc2626;background:linear-gradient(135deg,#ef444426 0%,#ef44441a 100%);border-color:#ef44444d}.content[data-v-5ea655b1]{min-height:calc(100vh - var(--header-height));flex-direction:column;flex:1;padding:32px;display:flex;overflow-y:auto}.content[data-v-5ea655b1]>*{flex:1;min-height:0}.page-enter-active[data-v-5ea655b1],.page-leave-active[data-v-5ea655b1]{transition:opacity 80ms}.page-enter-from[data-v-5ea655b1]{opacity:.6}.page-leave-to[data-v-5ea655b1]{opacity:0;transform:translateY(-10px)}@media (width<=768px){.sidebar[data-v-5ea655b1]{transition:transform var(--transition-base);transform:translate(-100%)}.sidebar.open[data-v-5ea655b1]{transform:translate(0)}.main-area[data-v-5ea655b1]{margin-left:0}.topbar[data-v-5ea655b1]{padding:0 16px}.content[data-v-5ea655b1]{padding:16px}}
