.toast-container[data-v-b2c7d66a]{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast[data-v-b2c7d66a]{border-radius:var(--radius-lg);min-width:300px;max-width:420px;box-shadow:var(--shadow-xl);pointer-events:all;cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.toast-success[data-v-b2c7d66a]{background:var(--color-surface);border-color:var(--color-success);color:var(--color-success-dark);border-left:4px solid var(--color-success)}.toast-danger[data-v-b2c7d66a]{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger-dark);border-left:4px solid var(--color-danger)}.toast-warning[data-v-b2c7d66a]{background:var(--color-surface);border-color:var(--color-warning);color:var(--color-warning-dark);border-left:4px solid var(--color-warning)}.toast-info[data-v-b2c7d66a]{background:var(--color-surface);border-color:var(--color-info);color:var(--color-info-dark);border-left:4px solid var(--color-info)}.toast-icon[data-v-b2c7d66a]{flex-shrink:0;margin-top:1px}.toast-title[data-v-b2c7d66a]{font-weight:600;font-size:var(--font-size-sm);margin-bottom:2px}.toast-message[data-v-b2c7d66a]{font-size:var(--font-size-xs);opacity:.85}.toast-enter-active[data-v-b2c7d66a]{transition:all .3s}.toast-leave-active[data-v-b2c7d66a]{transition:all .2s}.toast-enter-from[data-v-b2c7d66a],.toast-leave-to[data-v-b2c7d66a]{opacity:0;transform:translate(100%)}.toast-move[data-v-b2c7d66a]{transition:transform .3s}:root{--color-primary:#1e40af;--color-primary-light:#3b5fc0;--color-primary-dark:#1e3a8a;--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-700:#1d4ed8;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#475569;--color-gray-700:#334155;--color-gray-800:#1e293b;--color-gray-900:#0f172a;--color-gray-950:#020617;--color-success:#059669;--color-success-light:#d1fae5;--color-success-dark:#065f46;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-warning-dark:#92400e;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-danger-dark:#991b1b;--color-info:#0891b2;--color-info-light:#cffafe;--color-info-dark:#164e63;--color-bg:#f8fafc;--color-surface:#fff;--color-surface-2:#f1f5f9;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-text:#1e293b;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-text-inverse:#fff;--sidebar-bg:#0f172a;--sidebar-text:#cbd5e1;--sidebar-text-active:#fff;--sidebar-active-bg:#1e40afb3;--sidebar-hover-bg:#ffffff0f;--sidebar-border:#ffffff14;--sidebar-width:260px;--sidebar-collapsed-width:64px;--topbar-height:60px;--topbar-bg:#ffffffeb;--topbar-border:#e2e8f0;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.875rem;--font-size-md:.9375rem;--font-size-lg:1rem;--font-size-xl:1.125rem;--font-size-2xl:1.25rem;--font-size-3xl:1.5rem;--font-size-4xl:1.875rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 10px 30px #0000001a, 0 4px 8px #0000000a;--shadow-xl:0 20px 50px #0000001f, 0 8px 16px #0000000f;--shadow-primary:0 4px 16px #1e40af40;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.35s ease;--glass-bg:#ffffffb8;--glass-border:#ffffff80;--glass-blur:blur(20px);--glass-shadow:0 8px 32px #00000014, inset 0 1px 0 #fff9}[data-theme=dark]{--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-2:#162032;--color-border:#334155;--color-border-light:#243044;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-primary:#3b82f6;--color-primary-light:#60a5fa;--color-primary-dark:#2563eb;--color-primary-50:#3b82f61a;--color-primary-100:#3b82f62e;--color-primary-200:#3b82f64d;--color-primary-700:#93c5fd;--color-success:#10b981;--color-success-light:#10b98121;--color-success-dark:#6ee7b7;--color-warning:#f59e0b;--color-warning-light:#f59e0b21;--color-warning-dark:#fcd34d;--color-danger:#ef4444;--color-danger-light:#ef444421;--color-danger-dark:#fca5a5;--color-info:#0ea5e9;--color-info-light:#0ea5e921;--color-info-dark:#7dd3fc;--color-gray-50:#ffffff05;--color-gray-100:#ffffff0f;--color-gray-200:#334155;--color-gray-300:#475569;--topbar-bg:#162032f2;--topbar-border:#243044;--glass-bg:#162032cc;--glass-border:#47556980;--shadow-sm:0 1px 3px #00000080, 0 1px 2px #0000004d;--shadow-md:0 4px 12px #0000008c, 0 2px 4px #0000004d;--shadow-lg:0 10px 30px #000000a6, 0 4px 8px #00000059;--shadow-xl:0 20px 50px #000000bf, 0 8px 16px #0006;--shadow-primary:0 4px 16px #3b82f666}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#1e293b 25%,#334155 50%,#1e293b 75%) 0 0/200% 100%;animation:1.5s infinite shimmer}[data-theme=dark] .badge-gray{color:var(--color-text-secondary);background:#ffffff14}[data-theme=dark] table.data-table tbody tr:hover td{background:#ffffff08}[data-theme=dark] .btn-secondary:hover:not(:disabled){border-color:var(--color-border);background:#ffffff12}[data-theme=dark] .btn-ghost:hover:not(:disabled){color:var(--color-text);background:#ffffff12}[data-theme=dark] .btn-success:hover:not(:disabled){background:#059669;border-color:#059669}[data-theme=dark] .btn-warning:hover:not(:disabled){background:#b45309;border-color:#b45309}[data-theme=dark] .btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}img,svg{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-muted{color:var(--color-text-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.flex-1{flex:1}.w-full{width:100%}.min-w-0{min-width:0}.overflow-hidden{overflow:hidden}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow)}.card-body{padding:var(--space-6)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}table.data-table thead th{text-align:left;font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);background:var(--color-surface-2);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px}table.data-table tbody td{color:var(--color-text);border-bottom:1px solid var(--color-border-light);vertical-align:middle;padding:13px 16px}table.data-table tbody tr:last-child td{border-bottom:none}table.data-table tbody tr:hover td{background:var(--color-gray-50)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.form-input{width:100%;font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:9px 14px;font-family:inherit}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1e40af1a}.form-input:disabled{opacity:.6;cursor:not-allowed}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:5px;padding:3px 10px;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-primary{background:var(--color-primary-100);color:var(--color-primary-dark)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info-dark)}.badge-gray{background:var(--color-gray-100);color:var(--color-gray-600)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease both}.animate-slide-in{animation:slideInLeft var(--transition-slow) ease both}.skeleton{background:linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.page-container{padding:var(--space-6) var(--space-8);max-width:1400px;margin:0 auto;animation:.3s fadeIn}.page-header{margin-bottom:var(--space-6)}.page-title{font-size:var(--font-size-2xl);color:var(--color-text);letter-spacing:-.02em;font-weight:700}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.gap-4{gap:1rem}.gap-6{gap:1.5rem}@media (width<=1024px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.page-container{padding:var(--space-4)}}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-base)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:all var(--transition-base)}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(12px)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.divider{background:var(--color-border);height:1px;margin:var(--space-6) 0}.avatar{border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-sm);background:var(--color-primary-100);color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar-sm{width:32px;height:32px;font-size:var(--font-size-xs)}.avatar-md{width:40px;height:40px}.avatar-lg{width:48px;height:48px;font-size:var(--font-size-lg)}.avatar-xl{width:56px;height:56px;font-size:var(--font-size-xl)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--color-gray-900);color:#fff;font-size:var(--font-size-xs);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:999;padding:5px 10px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}
