:root {
  /* Tokens base (HSL) */
  --background: 0 0% 100%;
  --foreground: 222.2 47.4% 11.2%;

  --muted: 210 40% 96.1%;
  --muted-foreground: 215.4 16.3% 46.9%;

  --popover: 0 0% 100%;
  --popover-foreground: 222.2 47.4% 11.2%;

  --card: 0 0% 100%;
  --card-foreground: 222.2 47.4% 11.2%;

  --border: 214.3 31.8% 91.4%;
  --input: 214.3 31.8% 91.4%;
  --ring: 215 20.2% 65.1%;

  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;

  --secondary: 210 40% 96.1%;
  --secondary-foreground: 222.2 47.4% 11.2%;

  --accent: 160 84% 39%;
  --accent-foreground: 160 100% 97%;

  --radius: 0.75rem;

  /* Extras do projeto */
  --gradient-hero: linear-gradient(180deg, hsl(210 20% 98%), hsl(0 0% 100%));
  --shadow-elegant: 0 10px 30px -10px hsl(var(--primary) / 0.25);
}

.dark {
  --background: 222.2 84% 4.9%;
  --foreground: 210 40% 98%;

  --muted: 217.2 32.6% 17.5%;
  --muted-foreground: 215 20.2% 65.1%;

  --popover: 222.2 84% 4.9%;
  --popover-foreground: 210 40% 98%;

  --card: 222.2 84% 4.9%;
  --card-foreground: 210 40% 98%;

  --border: 217.2 32.6% 17.5%;
  --input: 217.2 32.6% 17.5%;
  --ring: 215 20.2% 65.1%;

  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;

  --secondary: 217.2 32.6% 17.5%;
  --secondary-foreground: 210 40% 98%;

  --accent: 160 84% 39%;
  --accent-foreground: 160 100% 97%;
}

* { border-color: hsl(var(--border)); }
body { background: hsl(var(--background)); color: hsl(var(--foreground)); font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }

/* Utilitários compatíveis com o app */
.bg-hero-gradient { background: var(--gradient-hero); }
.btn-hero { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .875rem 1.25rem; border-radius: .75rem; color: hsl(var(--primary-foreground)); background: hsl(var(--primary)); box-shadow: var(--shadow-elegant); transition: transform .15s ease, filter .15s ease; }
.btn-hero:hover { filter: brightness(1.05); transform: translateY(-1px); }
.shadow-elevated { box-shadow: var(--shadow-elegant); }
.hover-elevate { transition: transform .2s ease, box-shadow .2s ease; }
.hover-elevate:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -10px hsl(var(--foreground) / .15); }
.time-chip { padding: .25rem .5rem; border-radius: .5rem; background: hsl(var(--accent)); color: hsl(var(--accent-foreground)); min-width: 2ch; text-align: center; }

/* Embla */
.embla { position: relative; }
.embla__viewport { overflow: hidden; }
.embla__container { display: flex; gap: 1rem; }
.embla__slide { flex: 0 0 80%; min-width: 0; }
@media (min-width: 640px) { .embla__slide { flex-basis: 48%; } }
@media (min-width: 1024px) { .embla__slide { flex-basis: 32%; } }

/* Modal exit intent */
#exit-modal.hidden { display: none; }

/* Acessibilidade focus */
:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 2px; }
