/*
 * Design tokens GoSortir — repris fidèlement de mobile/src/theme.ts
 * (refonte "dark neon" fin 2026) pour que le site soit reconnaissable en
 * un coup d'œil par quelqu'un qui utilise déjà l'app.
 *
 * Thème clair/sombre : le sombre est la palette de marque (fond quasi noir,
 * accent vert citron) — c'est elle qui est déclarée dans le bloc `:root`
 * NU pour rester l'identité par défaut si jamais le petit script de
 * `components/meta.php` échouait à s'exécuter (dégradation gracieuse).
 * Le clair est une VRAIE palette pensée pour un fond clair (pas juste
 * inversée) : mêmes teintes de marque, neutres repensés. Le thème réel
 * appliqué (auto = système, ou choix explicite mémorisé) pose
 * `data-theme="light"` / `"dark"` sur <html> — voir le script inline dans
 * meta.php et assets/js/theme-toggle.js.
 */
:root {
  /* Marque — identique dans les deux thèmes */
  --gs-primary: #c4ff3d;
  --gs-primary-dark: #a6e01f;
  --gs-primary-light: #d6ff70;
  /* Texte porté PAR le citron (boutons, badges) : jamais blanc, le contraste
     y serait mauvais — toujours ce quasi-noir, dans les deux thèmes. */
  --gs-on-primary: #0a0a0f;
  --gs-secondary: #9d4edd;
  --gs-secondary-dark: #7b2cbf;
  --gs-secondary-light: #c599f5;
  --gs-accent: #ffc857;

  /* Feedback — identique dans les deux thèmes, déjà assez saturés pour tenir sur les deux fonds */
  --gs-success: #34d399;
  --gs-warning: #f59e0b;
  --gs-error: #ff5c5c;
  --gs-info: #5ac8fa;

  /* Surfaces — thème SOMBRE (défaut) */
  --gs-bg: #0a0a0f;
  --gs-surface: #16161d;
  --gs-surface-elevated: #1d1d26;
  --gs-surface-muted: #1e1e26;

  /* Texte — thème sombre */
  --gs-text: #f5f5f7;
  --gs-text-secondary: #8a8a94;
  --gs-text-tertiary: #5c5c66;

  --gs-border: rgba(255, 255, 255, 0.1);
  --gs-overlay: rgba(0, 0, 0, 0.6);

  /* Dégradés — chacun a un rôle unique, pas de doublon proche en teinte :
     go = accents ponctuels, sunset = badge "dernières places", night = fond
     section la plus sombre, fresh = accents "fraîcheur"/sport. */
  --gs-gradient-go: linear-gradient(120deg, #ff3d77 0%, #9d4edd 100%);
  --gs-gradient-sunset: linear-gradient(120deg, #ff5caa 0%, #ffb03b 100%);
  --gs-gradient-night: linear-gradient(160deg, #1b1023 0%, #0a0a0f 100%);
  --gs-gradient-fresh: linear-gradient(120deg, #34d399 0%, #5ac8fa 100%);

  /* Rayons — identiques à radius{} de l'app */
  --gs-radius-sm: 8px;
  --gs-radius-md: 14px;
  --gs-radius-lg: 20px;
  --gs-radius-xl: 24px;
  --gs-radius-xxl: 30px;
  --gs-radius-pill: 999px;

  /* Ombres — sur fond sombre, une ombre noire classique ne se voit pas : la
     profondeur vient d'un halo lumineux plutôt que d'un assombrissement. */
  --gs-shadow-card: 0 8px 30px rgba(0, 0, 0, 0.35);
  --gs-shadow-elevated: 0 16px 48px rgba(0, 0, 0, 0.45);
  --gs-shadow-glow: 0 10px 32px rgba(196, 255, 61, 0.35);
  --gs-shadow-glow-purple: 0 10px 32px rgba(157, 78, 221, 0.35);

  /* Typographie — mêmes polices que l'application mobile : Unbounded pour la
     voix de marque (titres, chiffres, accroches), Plus Jakarta Sans pour
     tout ce qui se lit (texte, UI, boutons). */
  --gs-font-display: 'Unbounded', 'Segoe UI', sans-serif;
  --gs-font-body: 'Plus Jakarta Sans', 'Segoe UI', sans-serif;

  /* Rythme */
  --gs-space-1: 8px;
  --gs-space-2: 16px;
  --gs-space-3: 24px;
  --gs-space-4: 32px;
  --gs-space-5: 48px;
  --gs-space-6: 64px;
  --gs-space-7: 96px;
  --gs-space-8: 128px;

  --gs-container: 1180px;
  --gs-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --gs-ease-snap: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Thème CLAIR — fond crème chaud (jamais blanc pur), cartes blanches qui se
   détachent par l'ombre plutôt que par une bordure. Appliqué soit parce que
   le système est en clair (et qu'aucun choix explicite n'a été mémorisé),
   soit parce que l'utilisateur a choisi "Clair" dans le bouton de bascule. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme='dark']) {
    --gs-bg: #f2f0e9;
    --gs-surface: #ffffff;
    --gs-surface-elevated: #ffffff;
    --gs-surface-muted: #eae7de;

    --gs-text: #1a1a1d;
    --gs-text-secondary: #6b6b70;
    --gs-text-tertiary: #9a9a9e;

    --gs-border: rgba(20, 18, 10, 0.1);
    --gs-overlay: rgba(20, 18, 10, 0.45);

    --gs-shadow-card: 0 8px 30px rgba(58, 42, 26, 0.1);
    --gs-shadow-elevated: 0 16px 48px rgba(58, 42, 26, 0.16);
  }
}

:root[data-theme='light'] {
  --gs-bg: #f2f0e9;
  --gs-surface: #ffffff;
  --gs-surface-elevated: #ffffff;
  --gs-surface-muted: #eae7de;

  --gs-text: #1a1a1d;
  --gs-text-secondary: #6b6b70;
  --gs-text-tertiary: #9a9a9e;

  --gs-border: rgba(20, 18, 10, 0.1);
  --gs-overlay: rgba(20, 18, 10, 0.45);

  --gs-shadow-card: 0 8px 30px rgba(58, 42, 26, 0.1);
  --gs-shadow-elevated: 0 16px 48px rgba(58, 42, 26, 0.16);
}
