:root{
  --bg:#05070f;--bg-2:#0f1424;--bg-3:#000;
  --glass-bg:linear-gradient(135deg,rgba(20,26,45,.85),rgba(8,11,20,.95));
  --glass-border:rgba(139,92,246,.15);--glass-border-hover:rgba(139,92,246,.55);
  --accent:#8b5cf6;--accent-2:#6366f1;--accent-3:#06b6d4;--accent-4:#ec4899;
  --success:#10b981;--danger:#ef4444;--warning:#f59e0b;--info:#3b82f6;
  --text:#f3f4f6;--text-muted:#94a3b8;--text-dim:#64748b;
  --radius-sm:8px;--radius:14px;--radius-lg:20px;--radius-xl:24px;
  --shadow-sm:0 4px 12px rgba(0,0,0,.35);
  --shadow:0 20px 45px -20px rgba(0,0,0,.8);
  --shadow-glow:0 25px 55px -20px rgba(139,92,246,.35);
  --transition:.3s cubic-bezier(.4,0,.2,1);
  --transition-fast:.15s ease;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;
  --font-display:'Orbitron',sans-serif;--font-body:'Plus Jakarta Sans',sans-serif;
  --z-bg:0;--z-app:2;--z-sidebar:10;--z-nav:100;--z-modal:9997;--z-toast:9998;--z-load:9999;
}
[data-theme="dark"]{color-scheme:dark}
.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}
.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}
.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.text-muted{color:var(--text-muted)}
.text-dim{color:var(--text-dim)}.font-display{font-family:var(--font-display)}
.w-100{width:100%}.text-center{text-align:center}.mt-3{margin-top:var(--space-3)}.mb-3{margin-bottom:var(--space-3)}
.toast-close{background:transparent;border:none;color:#fff;font-size:18px;line-height:1;cursor:pointer;margin-left:8px;opacity:.8}
.toast-close:hover{opacity:1}
.skeleton{background:linear-gradient(90deg,rgba(30,41,59,.4) 25%,rgba(51,65,85,.7) 50%,rgba(30,41,59,.4) 75%);background-size:200% 100%;animation:skelShimmer 1.5s infinite;border-radius:var(--radius)}
@keyframes skelShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skel-card{height:120px;margin-bottom:12px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}