:root{--color-brand-primary:#0b0b0b;--color-brand-secondary:#1f2937;--color-brand-accent:#3b82f6;--color-success:#059669;--color-success-light:#d1fae5;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-info:#2563eb;--color-info-light:#dbeafe;--color-background:#fafafa;--color-surface:#fff;--color-surface-muted:#f5f5f5;--color-surface-hover:#f3f4f6;--color-surface-selected:#eff6ff;--color-border:#e5e7eb;--color-border-muted:#f3f4f6;--color-border-focus:#3b82f6;--color-border-danger:#dc2626;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-inverse:#fff;--color-text-accent:#3b82f6;--font-family-sans:"Inter","SF Pro Display",-apple-system,BlinkMacSystemFont,sans-serif;--font-family-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.625;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:300ms cubic-bezier(0.4,0,0.2,1);--transition-slow:500ms cubic-bezier(0.4,0,0.2,1);--z-dropdown:10;--z-sticky:20;--z-fixed:30;--z-modal-backdrop:40;--z-modal:50;--z-popover:60;--z-tooltip:70;--z-toast:80}*{box-sizing:border-box}html{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background)}:focus{outline:2px solid var(--color-border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-brand-accent);color:var(--color-text-inverse);border-color:var(--color-brand-accent)}.btn-primary:hover:not(:disabled){background-color:#2563eb;border-color:#2563eb;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-destructive{background-color:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-destructive:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.input{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);transition:all var(--transition-fast)}.input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.input:invalid{border-color:var(--color-border-danger)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-info{background-color:var(--color-info-light);color:var(--color-info)}.table{width:100%;border-collapse:collapse;background-color:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.table th{background-color:var(--color-surface-muted);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.table td,.table th{padding:var(--spacing-4)}.table td{border-bottom:1px solid var(--color-border-muted)}.table tr:hover{background-color:var(--color-surface-hover)}.sidebar{background-color:var(--color-surface);border-right:1px solid var(--color-border);height:100vh;width:280px;position:fixed;left:0;top:0;z-index:var(--z-fixed);transition:transform var(--transition-normal)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-fast);margin:0 var(--spacing-2);border-radius:var(--radius-lg)}.sidebar-item:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-item.active{background-color:var(--color-surface-selected);color:var(--color-brand-accent);font-weight:var(--font-weight-medium)}.skeleton{background:linear-gradient(90deg,var(--color-surface-muted) 25%,var(--color-surface-hover) 50%,var(--color-surface-muted) 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}}