/* ================================================================
   REBOUNDLY — charte graphique v2.0 (09/2026)
   Source : https://reply-auto-stop.lovable.app
   Fond sombre, lecture claire, cobalt réservé aux signaux.
   Polices auto-hébergées (OFL 1.1) — CSP font-src 'self'.
   ================================================================ */

@font-face{
  font-family:"Barlow";font-style:normal;font-weight:300;font-display:swap;
  src:url("fonts/barlow-latin-ext-300.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:300;font-display:swap;
  src:url("fonts/barlow-latin-300.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/barlow-latin-ext-400.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/barlow-latin-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/barlow-latin-ext-500.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/barlow-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/barlow-latin-ext-600.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;
  src:url("fonts/barlow-latin-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/barlow-latin-ext-700.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Barlow";font-style:normal;font-weight:700;font-display:swap;
  src:url("fonts/barlow-latin-700.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/jetbrains-mono-latin-ext-400.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("fonts/jetbrains-mono-latin-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/jetbrains-mono-latin-ext-500.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("fonts/jetbrains-mono-latin-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  /* palette nommée (swatches de la charte) */
  --paper:#F4F0E8;
  --cobalt:#2457D6;
  --encre-nom:#17202A;
  --coral:#E85D3F;

  /* UI dark (oklch de la charte, hex de repli) */
  --bg:#1A1B1E;
  --fg:var(--paper);
  --card-bg:#222328;
  --muted:#2A2B30;
  --muted-fg:#9AA3B2;
  --border:rgba(255,255,255,.11);
  --cobalt-hover:#1D48C4;
  --on-accent:var(--paper);
  --overlay:rgba(12,13,16,.78);

  /* fonds (anciens noms, pour ne pas tout réécrire) */
  --sable:var(--bg);
  --surface:var(--card-bg);
  --surface-2:var(--muted);
  --bordure:var(--border);
  --bordure-forte:rgba(255,255,255,.18);
  /* Trois rôles de texte, pas plus :
     --encre        contenu (titres, labels de champ, valeurs)
     --sourdine     secondaire (aides, dates, placeholders, nav inactive)
     --brique-text  action uniquement (liens, bouton texte, nav active)
     --rust         négatif. Le cobalt FILL ne s'écrit jamais. */
  --encre:var(--paper);
  --encre-2:var(--muted-fg);
  --sourdine:var(--muted-fg);
  /* accent unique — cobalt = FILL (CTA, nav active, pastilles).
     #2457D6 en TEXTE sur fond sombre : ~2.8:1, illisible.
     --brique-text = cobalt éclairci, lecture (~6.5:1), réservé à l'action. */
  --brique:var(--cobalt);
  --brique-hover:var(--cobalt-hover);
  --brique-text:#7B9BFF;
  --brique-voile:rgba(36,87,214,.18);
  --lagune:var(--cobalt);
  --repondu:var(--brique-text);
  --repondu-voile:rgba(36,87,214,.18);
  --attente:#D4A24A;
  --attente-voile:rgba(212,162,74,.16);
  --stoppe:var(--muted-fg);
  --stoppe-voile:var(--muted);

  --display:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --serif:var(--display);
  --sans:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --r-card:16px;
  --r-btn:8px;
  --r-ctl:8px;
  --r-badge:6px;
  --ombre:none;
  --sidebar-w:216px;

  --ink:var(--encre);
  --ink-deep:var(--encre);
  --ink-light:var(--encre-2);
  --paper-dim:var(--surface-2);
  --card:var(--surface);
  --field:var(--muted);
  --gold:var(--brique);
  --gold-dim:var(--brique-hover);
  --gold-text:var(--brique-text);
  --rust:var(--coral);
  --moss:var(--repondu);
  --text-muted:var(--sourdine);
  --text-on-ink:var(--on-accent);
  --text-on-ink-dim:var(--sourdine);
  --line:var(--bordure);
  --line-soft:var(--bordure);
  --hover-wash:var(--surface-2);

  --ease:cubic-bezier(.4,0,.2,1);
}

html{color-scheme:dark;}

::selection{background:var(--cobalt);color:var(--on-accent);}

/* Lockup : anneau cobalt + point d'arrêt. Rien de littéral. */
.brand-lockup{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--display);font-weight:700;font-size:1.35rem;
  letter-spacing:.04em;text-transform:uppercase;color:var(--encre);
  line-height:1;
}
.brand-symbol{
  background:var(--cobalt);border-radius:50%;
  place-items:center;width:40px;height:40px;
  display:inline-grid;position:relative;flex-shrink:0;
}
.brand-symbol span{
  background:var(--paper);border-radius:50%;width:14px;height:14px;
}
.brand-symbol.large{width:90px;height:90px;}
.brand-symbol.large span{background:var(--bg);width:30px;height:30px;}
.brand-symbol.sm{width:32px;height:32px;}
.brand-symbol.sm span{width:11px;height:11px;}

.logo, .side-logo{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--display);font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--encre);
}
.logo .brand-symbol, .side-logo .brand-symbol,
.admin-brand .brand-symbol{
  width:32px;height:32px;
}
.logo .brand-symbol span, .side-logo .brand-symbol span,
.admin-brand .brand-symbol span{width:11px;height:11px;}
.logo-word{font-family:var(--display);font-weight:700;letter-spacing:.04em;text-transform:uppercase;}

.meta{
  font-family:var(--mono);letter-spacing:.08em;
  color:var(--muted-fg);font-size:12px;font-weight:500;
  text-transform:uppercase;
}
