/* =========================================================================
   Design tokens — refonte graphique garmin-coach
   Source unique de vérité pour couleurs, rayons, ombres, typo.
   Importé avant style.css. Réutilisable par toutes les pages.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  /* Couleurs — système sémantique (intensité = accent, discipline = teinte) */
  --c-primary:        oklch(0.6 0.15 150);   /* Vert endurance / facile */
  --c-primary-ink:    oklch(0.46 0.13 150);  /* Vert encre (texte/accents) */
  --c-primary-soft:   oklch(0.95 0.05 150);  /* Vert doux (fond badge) */

  --c-hard:           oklch(0.64 0.16 40);   /* Terracotta intensité */
  --c-hard-ink:       oklch(0.52 0.15 38);
  --c-hard-soft:      oklch(0.955 0.05 45);

  --c-swim:           oklch(0.6 0.11 220);   /* Natation (cyan) */
  --c-swim-ink:       oklch(0.48 0.11 222);
  --c-swim-soft:      oklch(0.95 0.04 220);

  --c-bike:           oklch(0.66 0.12 68);   /* Vélo (ambre) */
  --c-bike-ink:       oklch(0.5 0.11 66);
  --c-bike-soft:      oklch(0.96 0.04 72);

  --c-app-bg:         oklch(0.985 0.004 150); /* Fond app */
  --c-page-bg:        oklch(0.955 0.004 260); /* Fond neutre */

  --c-title:          oklch(0.22 0.02 262);   /* Texte titre */
  --c-body:           oklch(0.3 0.01 260);    /* Texte corps */
  --c-muted:          oklch(0.5 0.01 260);    /* Texte secondaire */
  --c-muted-2:        oklch(0.58 0.01 260);
  --c-border:         oklch(0.93 0.005 260);  /* Bordure carte */
  --c-tile:           oklch(0.97 0.004 260);  /* Fond tuile neutre */
  --c-tile-2:         oklch(0.975 0.004 260);

  /* Accent par défaut (surchargé par carte via --accent*) */
  --accent:      var(--c-primary);
  --accent-ink:  var(--c-primary-ink);
  --accent-soft: var(--c-primary-soft);

  /* Rayons */
  --r-card: 22px;
  --r-tile: 16px;
  --r-tile-sm: 14px;
  --r-pill: 20px;
  --r-icon: 10px;
  --r-btn: 13px;

  /* Ombres */
  --sh-card: 0 12px 28px -20px oklch(0.3 0.03 260 / 0.4);
  --sh-day:  0 6px 14px -4px oklch(0.6 0.15 150 / 0.6);
  --sh-btn:  0 10px 22px -10px oklch(0.6 0.15 150 / 0.8);

  /* Familles */
  --font-sans: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
}

/* L'attribut hidden doit toujours l'emporter, même sur nos display:flex/grid */
[hidden] { display: none !important; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes pop    { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
