/* ============================================================================
   RaceStrat — Design tokens (source unique) — v2 « pastel vanille »
   Gestion de course karting d'endurance.
   Direction : moderne, jeune, pastel + dégradés doux ; vanille (jaune pastel)
   en signature. Thème SOMBRE par défaut, clair via [data-theme] / prefers.
   Polices de l'app (Barlow / Barlow Semi Condensed / Spline Sans Mono),
   auto-hébergées (OFL) — aucun CDN. Voir public/brand/fonts/.
   ========================================================================== */

/* ---- Polices auto-hébergées (sous-ensemble latin, swap) ------------------ */
@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;src:url("./fonts/barlow-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;src:url("./fonts/barlow-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url("./fonts/barlow-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;src:url("./fonts/barlow-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("./fonts/barlow-semi-condensed-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("./fonts/barlow-semi-condensed-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("./fonts/barlow-semi-condensed-latin-700-normal.woff2") format("woff2");}
@font-face{font-family:"Spline Sans Mono";font-style:normal;font-weight:400;font-display:swap;src:url("./fonts/spline-sans-mono-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"Spline Sans Mono";font-style:normal;font-weight:500;font-display:swap;src:url("./fonts/spline-sans-mono-latin-500-normal.woff2") format("woff2");}
@font-face{font-family:"Spline Sans Mono";font-style:normal;font-weight:600;font-display:swap;src:url("./fonts/spline-sans-mono-latin-600-normal.woff2") format("woff2");}
@font-face{font-family:"Spline Sans Mono";font-style:normal;font-weight:700;font-display:swap;src:url("./fonts/spline-sans-mono-latin-700-normal.woff2") format("woff2");}

/* ---- Tokens non colorés (identiques aux deux thèmes) --------------------- */
:root{
  --rs-font-title:"Barlow Semi Condensed", system-ui, sans-serif;  /* titres, labels, logotype */
  --rs-font-ui:"Barlow", system-ui, -apple-system, sans-serif;     /* interface et texte */
  --rs-font-mono:"Spline Sans Mono", ui-monospace, monospace;      /* chronos et données */

  --rs-text-xs:0.75rem; --rs-text-sm:0.875rem; --rs-text-base:1rem; --rs-text-lg:1.125rem;
  --rs-text-xl:1.375rem; --rs-text-2xl:1.75rem; --rs-text-3xl:2.25rem;
  --rs-text-hero:clamp(2.5rem, 6vw, 4.5rem);
  --rs-leading-body:1.45; --rs-leading-title:1.1;

  --rs-space-1:4px; --rs-space-2:8px; --rs-space-3:12px; --rs-space-4:16px;
  --rs-space-6:24px; --rs-space-8:32px; --rs-space-12:48px; --rs-space-16:64px; --rs-space-24:96px;

  --rs-radius-sm:8px; --rs-radius-md:12px; --rs-radius-lg:18px; --rs-radius-pill:999px;

  --rs-dur-1:120ms; --rs-dur-2:160ms; --rs-dur-3:220ms; --rs-ease:cubic-bezier(.2,.7,.2,1);
  --rs-tap:44px;
}

/* ---- THÈME SOMBRE (défaut) — pastel sur base chaude sombre --------------- */
:root{
  --rs-bg-0:#15131C;      /* fond de page (charcoal violet doux) */
  --rs-bg-1:#1E1B27;      /* cartes */
  --rs-bg-2:#28242F;      /* relief, survols */
  --rs-border:#342F3E;    /* séparateurs */
  --rs-text-1:#F3F0F8;
  --rs-text-2:#B4ABC2;
  --rs-text-3:#8C8499;

  --rs-accent:#F7D774;        /* VANILLE (jaune) — action, donnée clé, focus */
  --rs-on-accent:#2A2410;     /* encre sombre sur vanille */
  --rs-accent-soft:rgba(247,215,116,.16);
  --rs-success:#5FD39A;       /* vert — conforme, en piste */
  --rs-warning:#F6B45A;       /* ambre — seuil proche */
  --rs-danger:#F0707E;        /* rouge doux — infraction */
  --rs-on-status:#1A1206;     /* encre sombre sur pastilles pleines de statut */

  /* Dégradé UNIQUE : vanille mono-teinte (vanille→ambre). Jamais sur la donnée. */
  --rs-accent-grad:linear-gradient(135deg,#FDE8AC 0%,#F3C455 100%);
  --rs-brand-grad:var(--rs-accent-grad);   /* alias (pas d'arc-en-ciel) */
  --rs-surface-grad:radial-gradient(130% 90% at 50% -15%, rgba(247,215,116,.06), transparent 58%), var(--rs-bg-0);

  --rs-shadow:none;                 /* en sombre : marche de fond + bordure */
  --rs-shadow-accent:0 8px 28px rgba(247,215,116,.16);
  --rs-accent-halo:rgba(247,215,116,.12);
  color-scheme:dark;
}

/* ---- THÈME CLAIR : système (si pas de choix explicite "dark") ------------ */
@media (prefers-color-scheme:light){ :root:not([data-theme="dark"]){
  --rs-bg-0:#F1F3F6; --rs-bg-1:#FFFFFF; --rs-bg-2:#E7EAF0; --rs-border:#D3D8E1;
  --rs-text-1:#121620;            /* near-black, contraste fort */
  --rs-text-2:#3C4350; --rs-text-3:#5E6675;
  --rs-accent:#875C00;            /* ambre foncé (contraste ≥4.5:1 sur blanc) — texte/liens/focus */
  --rs-on-accent:#241D08; --rs-accent-soft:rgba(135,92,0,.12);
  --rs-success:#0E7A45; --rs-warning:#8A5300; --rs-danger:#BE2F3C; --rs-on-status:#241D08;
  --rs-accent-grad:linear-gradient(135deg,#FCE39A 0%,#EDB63E 100%);  /* vanille→ambre mono */
  --rs-brand-grad:var(--rs-accent-grad);
  --rs-surface-grad:radial-gradient(130% 90% at 50% -15%, rgba(237,182,62,.10), transparent 58%), var(--rs-bg-0);
  --rs-shadow:0 1px 2px rgba(18,22,32,.06), 0 10px 30px rgba(18,22,32,.08);
  --rs-shadow-accent:0 10px 28px rgba(237,182,62,.28);
  --rs-accent-halo:rgba(237,182,62,.14);
  color-scheme:light;
}}

/* ---- THÈME CLAIR : choix explicite ---------------------------------------- */
:root[data-theme="light"]{
  --rs-bg-0:#F1F3F6; --rs-bg-1:#FFFFFF; --rs-bg-2:#E7EAF0; --rs-border:#D3D8E1;
  --rs-text-1:#121620; --rs-text-2:#3C4350; --rs-text-3:#5E6675;
  --rs-accent:#875C00; --rs-on-accent:#241D08; --rs-accent-soft:rgba(135,92,0,.12);
  --rs-success:#0E7A45; --rs-warning:#8A5300; --rs-danger:#BE2F3C; --rs-on-status:#241D08;
  --rs-accent-grad:linear-gradient(135deg,#FCE39A 0%,#EDB63E 100%);
  --rs-brand-grad:var(--rs-accent-grad);
  --rs-surface-grad:radial-gradient(130% 90% at 50% -15%, rgba(237,182,62,.10), transparent 58%), var(--rs-bg-0);
  --rs-shadow:0 1px 2px rgba(18,22,32,.06), 0 10px 30px rgba(18,22,32,.08);
  --rs-shadow-accent:0 10px 28px rgba(237,182,62,.28);
  --rs-accent-halo:rgba(237,182,62,.14);
  color-scheme:light;
}

/* ---- Base partagée -------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0; background:var(--rs-surface-grad); background-attachment:fixed; color:var(--rs-text-1);
  font-family:var(--rs-font-ui); font-size:var(--rs-text-base); line-height:var(--rs-leading-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3{font-family:var(--rs-font-title); line-height:var(--rs-leading-title); margin:0}
.rs-mono,.rs-num{font-family:var(--rs-font-mono); font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1}
/* Texte en dégradé vanille (titres hero uniquement, jamais sur la donnée) */
.rs-grad-text{background:var(--rs-brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--rs-accent); outline-offset:2px; border-radius:var(--rs-radius-sm);
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
