@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#dbeafe;--color-primary-dark:#1e40af;--color-primary-50:#eff6ff;--color-accent:#0ea5e9;--color-accent-hover:#0284c7;--color-success:#10b981;--color-success-light:#d1fae5;--color-success-dark:#059669;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-warning-dark:#d97706;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-danger-dark:#dc2626;--color-info:#6366f1;--color-info-light:#e0e7ff;--color-info-dark:#4f46e5;--color-bg:#f8fafc;--color-bg-card:#fff;--color-bg-sidebar:#0f172a;--color-bg-sidebar-hover:#1e293b;--color-bg-input:#fff;--color-bg-hover:#f1f5f9;--color-bg-muted:#f1f5f9;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#94a3b8;--color-text-inverse:#f8fafc;--color-text-sidebar:#cbd5e1;--color-text-sidebar-active:#fff;--color-border:#e2e8f0;--color-border-focus:#2563eb;--color-border-light:#f1f5f9;--shadow-xs:0 1px 2px rgba(0,0,0,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.06);--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.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:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:60px;--max-content-width:1400px}[data-theme=dark]{--color-bg:#0f172a;--color-bg-card:#1e293b;--color-bg-sidebar:#020617;--color-bg-sidebar-hover:#0f172a;--color-bg-input:#1e293b;--color-bg-hover:#334155;--color-bg-muted:#1e293b;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-border:#334155;--color-border-light:#1e293b;--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 6px rgba(0,0,0,.3);--shadow-lg:0 10px 15px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight);color:var(--color-text)}h1{font-size:var(--text-3xl);font-weight:700}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--text-sm);font-weight:500;line-height:1.5;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-text-muted)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-md)}.btn-icon{padding:var(--space-2);width:36px;height:36px}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-muted)}.form-input.error{border-color:var(--color-danger)}.form-error{font-size:var(--text-xs);color:var(--color-danger)}.form-textarea{min-height:100px;resize:vertical}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-bg-muted)}.table-container{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse}th{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-bg-muted);text-align:left;border-bottom:1px solid var(--color-border)}td,th{padding:var(--space-3) var(--space-4)}td{font-size:var(--text-sm);border-bottom:1px solid var(--color-border-light);vertical-align:middle}tr:hover td{background:var(--color-bg-hover)}tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:var(--color-primary-light);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)}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-base)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card .stat-label{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.stat-card .stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-top:var(--space-1)}.stat-card .stat-change{font-size:var(--text-xs);margin-top:var(--space-1);display:flex;align-items:center;gap:var(--space-1)}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-danger)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-muted)}.empty-state svg{width:64px;height:64px;margin-bottom:var(--space-4);opacity:.3}.empty-state h3{color:var(--color-text-secondary);margin-bottom:var(--space-2)}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.spinner-lg{width:40px;height:40px;border-width:3px}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast)}.modal{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:560px;max-height:85vh;overflow-y:auto;animation:slideUp var(--transition-base)}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-3)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toast{position:fixed;bottom:var(--space-6);right:var(--space-6);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:500;z-index:2000;animation:slideInRight var(--transition-base);display:flex;align-items:center;gap:var(--space-2)}.toast-success{background:var(--color-success);color:#fff}.toast-error{background:var(--color-danger);color:#fff}.toast-warning{background:var(--color-warning);color:#000}.toast-info{background:var(--color-info);color:#fff}@keyframes slideInRight{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.page-header h1{font-size:var(--text-2xl)}.page-header-actions{display:flex;gap:var(--space-3)}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:var(--space-6)}.grid-2,.grid-3{display:grid;gap:var(--space-6)}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:var(--space-6)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-4);gap:var(--space-4)}@media (max-width:1024px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.data-list{list-style:none}.data-list li{display:flex;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);font-size:var(--text-sm)}.data-list li:last-child{border-bottom:none}.data-list .label{color:var(--color-text-secondary)}.data-list .value{font-weight:500}.tabs{display:flex;border-bottom:2px solid var(--color-border);gap:0;margin-bottom:var(--space-6)}.tab{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:-2px;cursor:pointer;transition:all var(--transition-fast);background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-family)}.tab:hover{color:var(--color-text);background:var(--color-bg-hover)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-sidebar);font-size:var(--text-sm);font-weight:400;transition:all var(--transition-fast);text-decoration:none;cursor:pointer}.sidebar-nav-item:hover{background:var(--color-bg-sidebar-hover);color:var(--color-text-sidebar-active)}.sidebar-nav-item.active{background:var(--color-primary);color:#fff;font-weight:500}.sidebar-nav-item svg{width:20px;height:20px;flex-shrink:0}.page-transition{animation:fadeIn var(--transition-base)}