:root {
  --background: 225 8% 13%;
  --foreground: 0 0% 100%;
  --primary: 235 86% 65%;
  --primary-foreground: 0 0% 100%;
  --secondary: 225 7% 18%;
  --secondary-foreground: 0 0% 100%;
  --muted: 220 8% 72%;
  --muted-foreground: 220 8% 72%;
  --destructive: 358 78% 60%;
  --destructive-foreground: 0 0% 100%;
  --border: 225 7% 27%;
  --card: 225 7% 16%;
  --accent: 178 72% 46%;
  --shadow-sm: 0 6px 18px rgba(0,0,0,.18);
  --shadow-md: 0 14px 38px rgba(0,0,0,.28);
  --shadow-lg: 0 24px 70px rgba(0,0,0,.42);
  --transition-fast: 140ms ease;
  --transition-smooth: 260ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 26px;
}
.dark {
  --background: 225 8% 13%;
  --foreground: 0 0% 100%;
  --primary: 235 86% 65%;
  --secondary: 225 7% 18%;
  --muted: 220 8% 72%;
  --destructive: 358 78% 60%;
  --border: 225 7% 27%;
  --card: 225 7% 16%;
}
html, body { min-height: 100%; background: hsl(var(--background)); color: hsl(var(--foreground)); }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Arial, sans-serif; overflow: hidden; }
* { box-sizing: border-box; }
button, a, input, textarea, select { transition: var(--transition-smooth); }
input, textarea, select { font-size: max(16px, 1rem); }
.glass { background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.035)); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.1); }
.scrollbar::-webkit-scrollbar { width: 8px; height: 8px; }
.scrollbar::-webkit-scrollbar-thumb { background: hsla(var(--muted), .22); border-radius: 999px; }
.safe-bottom { padding-bottom: calc(0.75rem + env(safe-area-inset-bottom)); }
.safe-top { padding-top: env(safe-area-inset-top); }
.dz-gradient { background: radial-gradient(circle at 20% 0%, hsla(var(--primary), .34), transparent 34%), radial-gradient(circle at 90% 10%, rgba(45,212,191,.18), transparent 35%), hsl(var(--background)); }
.pulse-ring { box-shadow: 0 0 0 0 hsla(var(--primary), .55); animation: pulseRing 2.2s infinite; }
@keyframes pulseRing { 70% { box-shadow: 0 0 0 14px hsla(var(--primary), 0); } 100% { box-shadow: 0 0 0 0 hsla(var(--primary), 0); } }