/*
  Feuille de style du site public habitleague.io.

  Règle stricte : tout ce qui suit est repris À L'IDENTIQUE de
  src/theme/tokens.ts de l'app. Aucune couleur, aucun rayon, aucune police
  inventée pour le web. Si un token change dans l'app, il change ici.

  Inter et JetBrains Mono sont les polices bundlées de l'app (Inter ≈ SF Pro,
  JetBrains Mono ≈ SF Mono). On les charge depuis Google Fonts avec des piles
  de repli système, pour que le rendu reste correct si le chargement échoue.
*/
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

:root {
  /* Surfaces */
  --bg: #0A0B0E;
  --surface: #111318;
  --surface-hi: #171A21;
  --line: rgba(255, 255, 255, 0.06);
  --line-strong: rgba(255, 255, 255, 0.10);
  /* Texte, quatre niveaux */
  --text: #F2F2F4;
  --muted: #8A8E99;
  --dim: #5A5E68;
  --faint: #3A3E48;
  /* Marque */
  --accent: #A8FF3E;
  --accent-dim: rgba(168, 255, 62, 0.15);
  --accent-ink: #0A0B0E;
  /* Sémantique de données */
  --positive: #8EE29A;
  --negative: #FF6B5E;
  /* Rayons */
  --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-xl: 20px; --r-pill: 999px;

  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Le halo radial de l'app (cf. RadialGlow), posé derrière le contenu. */
.glow {
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(120% 55% at 50% 0%, rgba(168, 255, 62, 0.10) 0%, rgba(168, 255, 62, 0) 62%);
}

/* ── Barre et pied de page, pour les pages de contenu ───────────────────── */
/*
  L'en-tête ne porte QUE le logo. Les mentions légales vivent en pied de page,
  comme sur n'importe quel site sérieux : une barre de navigation qui ne
  contiendrait que « Support, Privacy, Terms » place en haut de page ce que
  personne ne vient chercher.
*/
header.site {
  position: sticky; top: 0; z-index: 10;
  border-bottom: 1px solid var(--line);
  background: rgba(10, 11, 14, 0.86);
  backdrop-filter: blur(10px);
}
header.site .inner { max-width: 760px; margin: 0 auto; padding: 15px 24px; }
footer.site { border-top: 1px solid var(--line); margin-top: 26px; }
footer.site .inner {
  max-width: 760px; margin: 0 auto; padding: 26px 24px 34px;
  display: flex; align-items: center; gap: 14px 22px; flex-wrap: wrap;
}

/* Le logo, c'est l'icône de l'app plus le nom. Même mark aux deux endroits. */
.brand {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--mono); font-size: 12.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--text); text-decoration: none;
}
.brand span { color: var(--accent); }
.brandMark { width: 26px; height: 26px; border-radius: 28%; overflow: hidden; flex: none; display: block; }
.brandMark svg { display: block; width: 100%; height: 100%; }
.brandSmall { font-size: 11.5px; }
.brandSmall .brandMark { width: 22px; height: 22px; }

.liens { display: flex; gap: 18px; flex-wrap: wrap; }
.liens a {
  font-family: var(--mono); font-size: 10.5px; font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--dim); text-decoration: none;
}
.liens a:hover, .liens a[aria-current='page'] { color: var(--accent); }
.copy {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--faint);
}
.spacer { flex: 1; }

/* ── Contenu ────────────────────────────────────────────────────────────── */
.wrap { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; padding: 34px 24px 84px; }
h1 { font-weight: 600; font-size: 32px; line-height: 1.16; letter-spacing: -0.022em; margin: 8px 0 6px; }
h2 { font-weight: 600; font-size: 19px; letter-spacing: -0.012em; margin: 40px 0 10px; }
h3 { font-weight: 600; font-size: 15px; margin: 24px 0 6px; }
p, li { color: var(--muted); }
a { color: var(--accent); }
.eyebrow {
  font-family: var(--mono); font-size: 11px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin: 0;
}
.updated { font-family: var(--mono); font-size: 11.5px; color: var(--dim); margin-top: 0; }
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 20px 22px; margin: 18px 0;
}
.card h3 { margin-top: 0; }
table {
  width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 14.5px;
  display: block; overflow-x: auto;
}
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--muted); }
th { color: var(--text); font-weight: 600; white-space: nowrap; }
ul { padding-left: 20px; } li { margin: 6px 0; }

/* ── Écran d'accueil, liste d'attente, exactement une hauteur d'écran ───── */
.ecran {
  position: relative; z-index: 1;
  min-height: 100svh; min-height: 100dvh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 24px; gap: 0;
}
.marque { width: 78px; height: 78px; border-radius: 22%; overflow: hidden; margin-bottom: 26px; }
.motMarque {
  font-family: var(--mono); font-size: 13px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--text); margin: 0 0 20px;
}
.motMarque span { color: var(--accent); }
.ecran .eyebrow { margin-bottom: 14px; }
.ecran h1 {
  margin: 0 0 14px; text-align: center; max-width: 15ch;
  font-size: clamp(30px, 8vw, 44px); line-height: 1.08; letter-spacing: -0.03em;
}
.ecran .accroche {
  margin: 0 0 30px; text-align: center; max-width: 34ch;
  font-size: 15.5px; line-height: 1.55; color: var(--muted);
}
form { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 380px; }
input[type='email'] {
  height: 52px; padding: 0 16px;
  background: var(--surface); color: var(--text);
  border: 1px solid var(--line-strong); border-radius: var(--r-md);
  font-family: var(--sans); font-size: 16px; outline: none;
  transition: border-color .15s ease;
}
input[type='email']::placeholder { color: var(--faint); }
input[type='email']:focus { border-color: var(--accent); }
button {
  height: 52px; border: 0; border-radius: 14px; cursor: pointer;
  background: var(--accent); color: var(--accent-ink);
  font-family: var(--sans); font-weight: 600; font-size: 15px; letter-spacing: -0.005em;
  transition: opacity .15s ease;
}
button:hover { opacity: .9; }
button:disabled { opacity: .5; cursor: default; }
.finePrint {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.06em;
  color: var(--dim); text-align: center; margin: 14px 0 0;
}
.message { font-size: 14px; text-align: center; margin: 14px 0 0; min-height: 20px; }
.message.ok { color: var(--positive); }
.message.ko { color: var(--negative); }
.pied {
  position: absolute; bottom: 24px; left: 0; right: 0;
  display: flex; flex-direction: column; align-items: center; gap: 9px;
}
.pied .liens a { color: var(--faint); }
.pied .liens a:hover { color: var(--accent); }

@media (max-width: 520px) {
  h1 { font-size: 26px; }
  .marque { width: 66px; height: 66px; margin-bottom: 20px; }
  nav.site a { margin-left: 11px; }
}
