*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0f;--bg-secondary: #111118;--bg-card: #16161f;--bg-hover: #1e1e2a;--bg-input: #1a1a24;--border: #2a2a3a;--border-focus: #5b5bf6;--accent: #5b5bf6;--accent-dim: rgba(91, 91, 246, .15);--accent-hover: #7070ff;--success: #22c55e;--success-dim: rgba(34, 197, 94, .12);--error: #ef4444;--error-dim: rgba(239, 68, 68, .12);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .12);--text-primary: #f0f0f8;--text-secondary: #8888aa;--text-muted: #55556a;--text-accent: #8888ff;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-fa: "Vazirmatn", sans-serif;--font-mono: "JetBrains Mono", monospace;--transition: .18s ease;--bg-header: rgba(10,10,15,.92);--overlay-bg: rgba(10,10,15,.88)}html[data-theme=light]{--bg-primary: #f4f4f9;--bg-secondary: #eeeef8;--bg-card: #ffffff;--bg-hover: #e8e8f5;--bg-input: #f0f0fa;--border: #e0e0ee;--border-focus: #5b5bf6;--accent: #5b5bf6;--accent-dim: rgba(91, 91, 246, .1);--accent-hover: #7070ff;--success: #16a34a;--success-dim: rgba(22, 163, 74, .12);--error: #dc2626;--error-dim: rgba(220, 38, 38, .12);--warning: #d97706;--warning-dim: rgba(217, 119, 6, .12);--text-primary: #1a1a2e;--text-secondary: #64648a;--text-muted: #9494b0;--text-accent: #5b5bf6;--bg-header: rgba(244,244,249,.92);--overlay-bg: rgba(240,240,248,.88)}html{font-family:var(--font-fa);background:var(--bg-primary);color:var(--text-primary);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}body{min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes barBounce{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes glowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress-pulse{0%{transform:translate(-100%)}to{transform:translate(400%)}}.fade-in{animation:fadeIn .3s ease both}
