*{margin:0;padding:0;box-sizing:border-box}:root{--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--font-sans: "Space Grotesk", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--accent-primary: #6366f1;--accent-secondary: #818cf8;--accent-glow: rgba(99, 102, 241, .3);--success: #22c55e;--warning: #eab308;--error: #ef4444}[data-theme=dark]{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-elevated: #22222e;--text-primary: #f0f0f5;--text-secondary: #a0a0b0;--text-muted: #606070;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5)}[data-theme=light]{--bg-primary: #f8f9fb;--bg-secondary: #ffffff;--bg-tertiary: #f0f1f4;--bg-elevated: #e8e9ed;--text-primary: #1a1a2e;--text-secondary: #4a4a5a;--text-muted: #8a8a9a;--border-subtle: rgba(0, 0, 0, .06);--border-default: rgba(0, 0, 0, .1);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12)}html,body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background-color:var(--bg-primary)}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-primary);color:#fff}*:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-pulse{animation:pulse 1.5s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}
