:root{--primary: #2563eb;--primary-light: #3b82f6;--primary-dark: #1d4ed8;--bg-dark: #0f172a;--bg-card: #1e293b;--bg-surface: #334155;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--border: #334155;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Montserrat,system-ui,sans-serif;background:var(--bg-dark);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary-light);text-decoration:none}a:hover{text-decoration:underline}.btn,.btn-danger,.btn-secondary,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:var(--radius);font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn:disabled,.btn-danger:disabled,.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600}.badge.badge-success{background:#22c55e26;color:var(--success)}.badge.badge-warning{background:#f59e0b26;color:var(--warning)}.badge.badge-danger{background:#ef444426;color:var(--danger)}.badge.badge-info{background:#3b82f626;color:var(--primary-light)}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--primary-light);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
