@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-gray-25:#fcfcfd;--color-gray-50:#f9fafb;--color-gray-100:#f2f4f7;--color-gray-200:#eaecf0;--color-gray-300:#d0d5dd;--color-gray-400:#98a2b3;--color-gray-500:#667085;--color-gray-600:#475467;--color-gray-700:#344054;--color-gray-800:#1d2939;--color-gray-900:#101828;--color-gray-950:#0c111d;--color-primary-25:#f5f5ff;--color-primary-50:#eef0ff;--color-primary-100:#e0e3ff;--color-primary-200:#c7caff;--color-primary-300:#a4a7fc;--color-primary-400:#8183f7;--color-primary-500:#6366f1;--color-primary-600:#4f46e5;--color-primary-700:#4338ca;--color-primary-800:#3730a3;--color-primary-900:#312e81;--color-primary-950:#1e1b4b;--color-success-50:#ecfdf5;--color-success-100:#d1fae5;--color-success-500:#10b981;--color-success-600:#059669;--color-success-700:#047857;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-warning-700:#b45309;--color-error-50:#fef2f2;--color-error-100:#fee2e2;--color-error-500:#ef4444;--color-error-600:#dc2626;--color-error-700:#b91c1c;--color-info-50:#eff6ff;--color-info-100:#dbeafe;--color-info-500:#3b82f6;--color-info-600:#2563eb;--surface-primary:#fff;--surface-secondary:var(--color-gray-50);--surface-tertiary:var(--color-gray-100);--surface-inverse:var(--color-gray-900);--surface-overlay:#10182899;--text-primary:var(--color-gray-900);--text-secondary:var(--color-gray-600);--text-tertiary:var(--color-gray-500);--text-placeholder:var(--color-gray-400);--text-inverse:#fff;--text-brand:var(--color-primary-600);--border-primary:var(--color-gray-200);--border-secondary:var(--color-gray-300);--border-focus:var(--color-primary-500);--border-error:var(--color-error-500);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.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;--font-light:300;--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-0:0;--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;--space-20:5rem;--space-24:6rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #1018281a, 0 1px 2px #1018280f;--shadow-md:0 4px 8px -2px #1018281a, 0 2px 4px -2px #1018280f;--shadow-lg:0 12px 16px -4px #10182814, 0 4px 6px -2px #10182808;--shadow-xl:0 20px 24px -4px #10182814, 0 8px 8px -4px #10182808;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-drawer:.35s cubic-bezier(.32, .72, 0, 1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--topbar-height:64px;--content-max-width:1440px;--drawer-width:480px}[data-theme=dark]{--surface-primary:var(--color-gray-950);--surface-secondary:var(--color-gray-900);--surface-tertiary:var(--color-gray-800);--surface-inverse:var(--color-gray-50);--surface-overlay:#000000b3;--text-primary:var(--color-gray-50);--text-secondary:var(--color-gray-400);--text-tertiary:var(--color-gray-500);--text-placeholder:var(--color-gray-600);--text-inverse:var(--color-gray-900);--text-brand:var(--color-primary-400);--border-primary:var(--color-gray-800);--border-secondary:var(--color-gray-700);--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 8px -2px #0006, 0 2px 4px -2px #0000004d;--shadow-lg:0 12px 16px -4px #0006, 0 4px 6px -2px #0003;--shadow-xl:0 20px 24px -4px #0006, 0 8px 8px -4px #0003}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--surface-secondary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-3xl);letter-spacing:-.025em}h2{font-size:var(--text-2xl);letter-spacing:-.02em}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-md)}h6{font-size:var(--text-base)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}a{color:var(--text-brand);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-700)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--text-base);font-weight:var(--font-medium);line-height:var(--leading-tight);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-700);border-color:var(--color-primary-700)}.btn-secondary{background-color:var(--surface-primary);color:var(--text-secondary);border-color:var(--border-secondary)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-secondary);color:var(--text-primary)}.btn-danger{background-color:var(--color-error-600);color:#fff;border-color:var(--color-error-600)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-700);border-color:var(--color-error-700)}.btn-ghost{color:var(--text-secondary);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--surface-tertiary);color:var(--text-primary)}.btn-success{background-color:var(--color-success-600);color:#fff;border-color:var(--color-success-600)}.btn-success:hover:not(:disabled){background-color:var(--color-success-700);border-color:var(--color-success-700)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.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{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.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(--text-primary);background-color:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-placeholder)}.form-input.error,.form-textarea.error{border-color:var(--border-error)}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px var(--color-error-100)}.form-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.form-error{font-size:var(--text-xs);color:var(--color-error-600)}.form-textarea{resize:vertical;min-height:100px}.card{background-color:var(--surface-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6)}.card-sm{padding:var(--space-4)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-primary)}.card-subtitle{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-1)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);line-height:var(--leading-normal);display:inline-flex}.badge-gray{background-color:var(--color-gray-100);color:var(--color-gray-700)}.badge-primary{background-color:var(--color-primary-50);color:var(--color-primary-700)}.badge-success{background-color:var(--color-success-50);color:var(--color-success-700)}.badge-warning{background-color:var(--color-warning-50);color:var(--color-warning-700)}.badge-error{background-color:var(--color-error-50);color:var(--color-error-700)}.badge-info{background-color:var(--color-info-50);color:var(--color-info-600)}.badge-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.badge-success .badge-dot{background-color:var(--color-success-500)}.badge-warning .badge-dot{background-color:var(--color-warning-500)}.badge-error .badge-dot{background-color:var(--color-error-500)}.badge-primary .badge-dot{background-color:var(--color-primary-500)}.badge-gray .badge-dot{background-color:var(--color-gray-500)}.avatar{border-radius:var(--radius-full);background-color:var(--color-primary-100);color:var(--color-primary-700);font-weight:var(--font-semibold);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.avatar-sm{width:32px;height:32px;font-size:var(--text-xs)}.avatar-md{width:40px;height:40px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-md)}.avatar img{object-fit:cover;width:100%;height:100%}.empty-state{text-align:center;padding:var(--space-16) var(--space-8);flex-direction:column;justify-content:center;align-items:center;max-width:420px;margin:0 auto;display:flex}.empty-state-icon{border-radius:var(--radius-lg);background-color:var(--surface-tertiary);width:48px;height:48px;color:var(--text-tertiary);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.empty-state-title{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--text-base);color:var(--text-tertiary);margin-bottom:var(--space-6);line-height:var(--leading-relaxed)}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#ebebeb 8%,#f5f5f5 18%,#ebebeb 33%) 0 0/800px 100%;animation:1.5s linear infinite shimmer}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-title{width:60%;height:20px;margin-bottom:var(--space-3)}.skeleton-avatar{border-radius:var(--radius-full);width:40px;height:40px}.skeleton-card{height:120px}.overlay{background-color:var(--surface-overlay);z-index:40;opacity:0;visibility:hidden;transition:opacity var(--transition-slow), visibility var(--transition-slow);position:fixed;inset:0}.overlay.active{opacity:1;visibility:visible}.drawer{width:var(--drawer-width);background-color:var(--surface-primary);border-left:1px solid var(--border-primary);z-index:50;max-width:100vw;transition:transform var(--transition-drawer);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.drawer.open{transform:translate(0)}.drawer-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-primary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-body{padding:var(--space-6);flex:1;overflow-y:auto}.drawer-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-primary);flex-shrink:0;display:flex}.table-container{border:1px solid var(--border-primary);border-radius:var(--radius-lg);background-color:var(--surface-primary);overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background-color:var(--surface-secondary);border-bottom:1px solid var(--border-primary);white-space:nowrap}td{padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--text-primary);border-bottom:1px solid var(--border-primary);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr{transition:background-color var(--transition-fast)}tbody tr:hover{background-color:var(--surface-secondary)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border-primary);display:flex}.tab{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--text-brand);border-bottom-color:var(--color-primary-600)}.app-layout{width:100%;min-height:100vh;display:flex;overflow-x:hidden}.app-main{margin-left:var(--sidebar-width);transition:margin-left var(--transition-base);flex-direction:column;flex:1;min-width:0;display:flex;overflow-x:hidden}.app-content{padding:var(--space-6) var(--space-8);max-width:var(--content-max-width);box-sizing:border-box;flex:1;width:100%;min-width:0}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-header-left{gap:var(--space-1);flex-direction:column;display:flex}.page-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);letter-spacing:-.02em}.page-subtitle{font-size:var(--text-base);color:var(--text-tertiary)}.page-actions{align-items:center;gap:var(--space-3);display:flex}.grid{gap:var(--space-6);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)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.w-full{width:100%}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.divider{background-color:var(--border-primary);height:1px;margin:var(--space-6) 0}.tooltip-wrapper{position:relative}.tooltip{padding:var(--space-1) var(--space-2);background-color:var(--color-gray-900);color:#fff;font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);margin-bottom:4px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.tooltip-wrapper:hover .tooltip{opacity:1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-400)}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}@media (max-width:1024px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}.app-main{margin-left:0}.app-content{padding:var(--space-4) var(--space-4)}}@media (max-width:768px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.drawer{width:100vw}}@media print{.sidebar,.topbar,.btn{display:none!important}.app-main{margin-left:0!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-sonner-toaster]{font-family:var(--font-sans,inherit)!important}[data-sonner-toast]{border-radius:12px!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}
