:root{--bg:#101012;--surface:#141418;--surface-alt:#1a1a1e;--raised:#222228;--border:#ffffff14;--border-focus:#ff5c4d;--text:#fff;--text-muted:#888;--text-dim:#ffffff59;--accent:#ff5c4d;--accent-hover:#e84838;--accent-soft:#ff5c4d1a;--green:#3ecf8e;--green-soft:#3ecf8e1a;--yellow:#f5a623;--yellow-soft:#f5a6231a;--red:#dc2626;--red-soft:#dc26261a;--purple:#7c3aed;--purple-soft:#7c3aed1a;--orange:#f0883e;--orange-soft:#f0883e1a;--cyan:#3ecf8e;--cyan-soft:#3ecf8e1a;--font:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius:10px;--radius-lg:14px;--radius-sm:6px;--shadow:0 2px 8px #00000026;--transition:.15s ease}[data-theme=light]{--bg:#f5f3ef;--surface:#fff;--surface-alt:#eceae5;--raised:#fafafa;--border:#0000001a;--border-focus:#ff5c4d;--text:#111;--text-muted:#666;--text-dim:#00000059;--accent:#ff5c4d;--accent-hover:#e84838;--accent-soft:#ff5c4d14;--green:#059669;--green-soft:#05966914;--yellow:#b45309;--yellow-soft:#b4530914;--red:#dc2626;--red-soft:#dc262614;--purple:#7c3aed;--purple-soft:#7c3aed14;--orange:#f0883e;--orange-soft:#f0883e14;--cyan:#059669;--cyan-soft:#05966914}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font);background-color:var(--bg);color:var(--text);transition:background-color var(--transition), color var(--transition);line-height:1.5}#root{width:100%;height:100vh;overflow:hidden}.atlas-app{background-color:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font);overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}*{scrollbar-color:var(--border) var(--surface);scrollbar-width:thin}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.animate-pulse{animation:pulse var(--transition) infinite}.animate-spin{animation:1s linear infinite spin}.animate-fade-in{animation:fade-in var(--transition)}.animate-slide-in{animation:slide-in var(--transition)}
