:root{--bg-main:#0b0f19;--bg-surface:#111827;--bg-surface-elevated:#1f2937;--bg-surface-hover:#283548;--primary:#2563eb;--primary-light:#3b82f6;--primary-dark:#1d4ed8;--primary-glow:#3b82f640;--secondary:#0284c7;--accent:#f59e0b;--accent-glow:#f59e0b33;--success:#10b981;--success-glow:#10b98133;--danger:#ef4444;--danger-glow:#ef444440;--warning:#f59e0b;--text-main:#f9fafb;--text-muted:#9ca3af;--text-dim:#6b7280;--border:#374151;--border-light:#4b5563;--border-focus:#3b82f6;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0009, 0 4px 6px -2px #0006;--shadow-glow:0 0 20px var(--primary-glow);--font-heading:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:700}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.glass-panel{-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);background:#111827d9;border:1px solid #37415199}.glass-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-md);background:#1f2937b3;border:1px solid #4b556366;transition:all .25s}.glass-card:hover{border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 8px 24px #0006}@keyframes pulse-live{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.live-pulse{animation:2s infinite pulse-live}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.3s cubic-bezier(.16,1,.3,1) forwards fadeIn}input,select,textarea{font-family:var(--font-body)}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--primary-glow);outline:none;border-color:var(--primary-light)!important}button{cursor:pointer;font-family:var(--font-heading);transition:all .2s}button:active{transform:scale(.98)}
