:root {
  --background: 216 48% 98%;
  --foreground: 218 47% 10%;
  --primary: 24 95% 53%;
  --primary-foreground: 0 0% 100%;
  --secondary: 218 64% 16%;
  --secondary-foreground: 0 0% 100%;
  --muted: 216 18% 92%;
  --muted-foreground: 217 15% 38%;
  --destructive: 0 78% 55%;
  --destructive-foreground: 0 0% 100%;
  --border: 216 22% 84%;
  --card: 0 0% 100%;
  --accent: 43 96% 56%;
  --shadow-sm: 0 6px 18px rgba(7,17,31,.08);
  --shadow-md: 0 16px 40px rgba(7,17,31,.12);
  --shadow-lg: 0 24px 70px rgba(7,17,31,.20);
  --transition-fast: 160ms ease;
  --transition-smooth: 280ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: .75rem;
  --radius-md: 1.1rem;
  --radius-lg: 1.6rem;
}
.dark {
  --background: 218 52% 7%;
  --foreground: 210 35% 96%;
  --primary: 24 95% 58%;
  --primary-foreground: 0 0% 100%;
  --secondary: 217 38% 14%;
  --secondary-foreground: 210 35% 96%;
  --muted: 218 26% 18%;
  --muted-foreground: 216 18% 74%;
  --destructive: 0 72% 58%;
  --destructive-foreground: 0 0% 100%;
  --border: 217 24% 24%;
  --card: 218 42% 11%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, Poppins, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  min-height: 100vh;
}
button, a, input, select { -webkit-tap-highlight-color: transparent; }
input, select, textarea { font-size: max(16px, 1rem); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid hsl(var(--primary) / .45); outline-offset: 3px; }
.glass { background: hsl(var(--card) / .78); backdrop-filter: blur(18px); border: 1px solid hsl(var(--border) / .72); }
.hero-grid { background-image: radial-gradient(circle at 18% 12%, hsl(var(--primary) / .20), transparent 30%), radial-gradient(circle at 88% 8%, hsl(var(--accent) / .24), transparent 28%), linear-gradient(135deg, hsl(var(--secondary)), hsl(218 55% 8%)); }
.bottom-safe { padding-bottom: calc(.75rem + env(safe-area-inset-bottom)); }
.top-safe { padding-top: env(safe-area-inset-top); }
.seat { min-width: 44px; min-height: 44px; border-radius: .8rem; transition: var(--transition-fast); }
.seat.available { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); }
.seat.selected { background: hsl(var(--primary)); color: white; border: 1px solid hsl(var(--primary)); transform: translateY(-2px); }
.seat.locked { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px dashed hsl(var(--border)); }
.seat.booked { background: hsl(var(--destructive) / .15); color: hsl(var(--destructive)); border: 1px solid hsl(var(--destructive) / .25); }
.skeleton { background: linear-gradient(90deg, hsl(var(--muted)), hsl(var(--card)), hsl(var(--muted))); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print { .no-print { display: none !important; } body { background: white; color: black; } }