/* ============================================================
   Design system — tokens, reset, base typographique
   Inspiration : ccup.io (SaaS clair, personnalisable, convivial)
   ============================================================ */
:root {
  /* Couleur de marque (personnalisable façon ccup) */
  --brand: #0e9f6e;
  --brand-600: #0c8a5f;
  --brand-700: #0a7150;
  --brand-50: #e8f6ef;
  --brand-100: #cdeede;

  /* Encre & neutres */
  --ink: #0f1b2d;
  --ink-soft: #33415c;
  --muted: #6b7a90;
  --faint: #9aa7b8;

  /* Surfaces */
  --bg: #eceff4;
  --surface: #ffffff;
  --surface-2: #f5f8fa;
  --line: #e4e8ee;
  --line-strong: #d3dae3;

  /* Sémantique */
  --live: #e5484d;
  --gold: #e7b53c;
  --silver: #a7b1bd;
  --bronze: #cd8b5b;
  --warn: #e08600;

  /* Rayons */
  --r-xs: 8px;
  --r-sm: 12px;
  --r: 16px;
  --r-lg: 22px;
  --r-pill: 999px;

  /* Espacements */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;

  /* Ombres */
  --shadow-sm: 0 1px 2px rgba(15, 27, 45, .06), 0 1px 1px rgba(15, 27, 45, .04);
  --shadow: 0 8px 24px rgba(15, 27, 45, .08);
  --shadow-lg: 0 20px 48px rgba(15, 27, 45, .16);

  /* Typo */
  --font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --display: "Sora", var(--font);

  /* Gabarit */
  --header-h: 66px;
  --tabbar-h: 66px;
  --maxw: 1000px;
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--display);
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--ink);
  font-weight: 700;
}

h1 { font-size: clamp(1.6rem, 4vw, 2.1rem); }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.05rem; }

a { color: var(--brand-700); text-decoration: none; }
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; }
small { font-size: .8rem; color: var(--muted); }
strong { font-weight: 700; }
sup { font-size: .62em; }

:focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 2px;
  border-radius: 6px;
}

::selection { background: var(--brand-100); }
