/* ================================================================
   VAYLO — THÈME DE SAISON « NUIT ALPINE » (hiver 2026-27)
   Maquette A validée par le client le 2026-09-25. Actif via la classe « saison-hiver » sur
   <html> (index.html) ; chaque règle passe par html.saison-hiver, donc retirer la classe =
   retour exact au thème classique (style.css). Polices hébergées : hiver-fonts.css.
   Parties : 1 jetons, fond, en-tête, navigation, bandeau, menus · 2 cartes value, tiroir,
   courbe · 3 comparateur, classements, écarts · 4 accueil, connexion, abonnement.
   ================================================================ */

/* ================================================================
   THÈME DE SAISON « NUIT ALPINE » — PARTIE 1 : jetons, fond, en-tête, navigation, filtres,
   bandeau des étapes, états vides, menus et fenêtres.
   Tout passe par html.saison-hiver : retirer cette classe de <html> = retour au thème classique.
   ================================================================ */

/* ── Jetons du thème (maquette A validée le 2026-09-25). Les parties 2 à 4 s'en servent. ── */
html.saison-hiver {
  /* nuit & relief */
  --nuit:      #081221;
  --nuit-2:    #0b1834;
  --ciel:      #102246;
  --crete:     #132a50;
  --crete-2:   #1a3564;
  /* surfaces « givre » (translucides sur la nuit) */
  --givre:     rgba(150,195,255,.055);
  --givre-2:   rgba(150,195,255,.045);
  --givre-3:   rgba(150,195,255,.08);
  --filet:     rgba(190,222,255,.14);
  --filet-2:   rgba(190,222,255,.22);
  --filet-doux: rgba(190,222,255,.08);
  /* textes (tous ≥ 4.5:1 sur --nuit) */
  --neige:     #eaf6ff;
  --neige-2:   #f2f8ff;
  --t1:        #dce8f5;
  --t2:        #c9d8ea;
  --t3:        #a9bdd4;
  --t4:        #93a8c2;
  --t5:        #8ea3bd;
  --encre:     #07142a;             /* texte sur fond neige (onglet actif, boutons pleins) */
  /* lumières */
  --glace:     #6fd3ff;
  --aurore-1:  #45c8ff;
  --aurore-2:  #8f7dff;
  /* VALUE : « vert fort » (choix du client le 2026-09-25, plus visible que le vert aurore qui se
     confondait avec les bleus glacés), 3 intensités. Couleur réglée ICI SEULEMENT. */
  --val-rgb:   0,255,136;           /* la couleur VALUE, en composantes (pour les halos) */
  --val:       rgb(var(--val-rgb)); /* ≥ 7 % : pastille pleine */
  --val-ink:   #002814;             /* texte sur --val */
  --val-txt:   #4dffa6;             /* 3-7 % : chiffre vert sur fond teinté */
  --val-soft:  #b3ffd6;             /* libellé discret sur fond value */
  --val-bg:    rgba(var(--val-rgb),.13);
  --val-bd:    rgba(var(--val-rgb),.5);
  /* REPÈRE UNIQUE « meilleure cote » (partout le même) : cadre NEIGE. Le vert ne dit plus
     qu'une chose — « value » — au lieu de servir aussi à « meilleure cote ». */
  --mc-bd:     rgba(234,246,255,.78);
  --mc-fill:   rgba(234,246,255,.09);
  --mc-txt:    #ffffff;
  --mc-lab:    var(--t2);           /* libellé « Meilleure cote » */
  /* camps : identité SEULEMENT (jamais « meilleure ») — luminosités très différentes */
  --camp-a:    #a8dcff;  --camp-a-ink: #062033;
  --camp-b:    #e8683f;  --camp-b-ink: #2a0d05;
  --fair:      #d3dbe6;
  /* polices (hébergées : css/hiver-fonts.css) */
  --f-display: 'Unbounded', 'Manrope', system-ui, sans-serif;
  --f-texte:   'Manrope', system-ui, -apple-system, sans-serif;
  --f-mono:    'JetBrains Mono', ui-monospace, 'SF Mono', monospace;

  /* ── Remappage des jetons du thème classique : tout ce qui n'est pas restylé explicitement
        passe déjà en « nuit alpine ». ── */
  --bg:        var(--nuit);
  --bg-2:      var(--nuit-2);
  --bg2:       var(--nuit-2);
  --panel:     #0e1b33;
  --panel-2:   #13243f;
  --panel2:    #13243f;
  --panel-3:   #0b172c;
  --panel-grad: #0e1b33;
  --line:      rgba(190,222,255,.16);
  --line-soft: rgba(190,222,255,.10);
  --border:    rgba(190,222,255,.10);
  --border2:   rgba(190,222,255,.22);
  --txt:       var(--neige);
  --text:      var(--neige);
  --txt-2:     var(--t2);
  --muted:     var(--t3);
  --dim:       var(--t4);
  --ev:        var(--val);
  --green:     var(--val);
  --ev-deep:   #1fcf85;
  --green-dim: var(--val-txt);
  --green-bg:  rgba(var(--val-rgb),.12);
  --green-bd:  rgba(var(--val-rgb),.40);
  --cyan:      var(--glace);
  --A:         var(--camp-a);
  --B:         var(--camp-b);
  --A-fill:    rgba(168,220,255,.10);
  --B-fill:    rgba(232,104,63,.10);
  --best-bd:   var(--mc-bd);
  --best-fill: var(--mc-fill);
  --best-txt:  var(--mc-txt);
  --grad-acc:  linear-gradient(180deg, #f2f8ff 0%, #dcecff 100%);
  --sans:      var(--f-texte);
  --mono:      var(--f-mono);
  --ski:       #5aa9ff;
  --biath:     #b99cff;
  --fond:      #ff8cc0;
  --saut:      #eef3f8;
  color-scheme: dark;
}
html.saison-hiver body {
  background: var(--nuit);
  color: var(--t1);
  font-family: var(--f-texte);
}

/* ── Éléments propres au thème : visibles ici, masqués en classique ── */
html.saison-hiver .sp-emo,
html.saison-hiver .vt-emo { display: none; }

/* ================================================================
   1-A. PICTOGRAMMES (masques SVG) — remplacent les émojis du balisage.
   Chaque élément concerné passe en font-size:0 (l'émoji disparaît) et reçoit
   un fond coloré découpé par l'un de ces masques (trait 2 px, currentColor).
   ================================================================ */
html.saison-hiver {
  --ic-flake:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5v19M3.8 7.25l16.4 9.5M3.8 16.75l16.4-9.5M9.4 3.9 12 6.2l2.6-2.3M9.4 20.1 12 17.8l2.6 2.3M3.6 10.6l3.3-1-.7-3.4M20.4 13.4l-3.3 1 .7 3.4M3.6 13.4l3.3 1-.7 3.4M20.4 10.6l-3.3-1 .7-3.4'/%3E%3C/svg%3E");
  --ic-mont:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20.5 8.6 9.2l3.6 5.6 2.4-3.4 7.4 9.1z'/%3E%3Cpath d='M6.3 13.2l2.3 1.4 1.7-1.7'/%3E%3Cpath d='M18.5 2.5v6M15.9 4l5.2 3M15.9 7l5.2-3'/%3E%3C/svg%3E");
  --ic-flag:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21V3.5'/%3E%3Cpath d='M6 4.5h11.5l-2.8 4 2.8 4H6'/%3E%3C/svg%3E");
  --ic-clock:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
  --ic-pause:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M10 8.5v7M14 8.5v7'/%3E%3C/svg%3E");
  --ic-bell:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 16v-5a6 6 0 0 1 12 0v5l1.6 2H4.4z'/%3E%3Cpath d='M10 20.5a2.2 2.2 0 0 0 4 0'/%3E%3C/svg%3E");
  --ic-pct:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.5 5.5l-13 13'/%3E%3Ccircle cx='7.5' cy='7.5' r='2.5'/%3E%3Ccircle cx='16.5' cy='16.5' r='2.5'/%3E%3C/svg%3E");
  --ic-sliders:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h9M17 7h3M4 17h3M11 17h9'/%3E%3Ccircle cx='15' cy='7' r='2'/%3E%3Ccircle cx='9' cy='17' r='2'/%3E%3C/svg%3E");
  --ic-medal:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='5'/%3E%3Cpath d='M8.6 11.3 6 3h4l2 5 2-5h4l-2.6 8.3'/%3E%3C/svg%3E");
  --ic-drop:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5c3.6 4.2 6 7.4 6 10.5a6 6 0 0 1-12 0c0-3.1 2.4-6.3 6-10.5z'/%3E%3C/svg%3E");
  --ic-laptop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='11' rx='2'/%3E%3Cpath d='M2 19.5h20'/%3E%3C/svg%3E");
  --ic-lock:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='9.5' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
  --ic-key:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15.5' r='4'/%3E%3Cpath d='M11 12.5l8.5-8.5M16 7.5l2.3 2.3M13.7 9.8l2 2'/%3E%3C/svg%3E");
  --ic-chart:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 20v-8M12 20V5M18 20v-5M3 20.5h18'/%3E%3C/svg%3E");
  --ic-eye:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --ic-out:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4'/%3E%3Cpath d='M9.5 16.5 5 12l4.5-4.5M5 12h10.5'/%3E%3C/svg%3E");
  --ic-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239db2cc' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4 4'/%3E%3C/svg%3E");
  --ic-refresh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 12a7.5 7.5 0 1 1-2.2-5.3'/%3E%3Cpath d='M19.5 4.5v4h-4'/%3E%3C/svg%3E");
  /* hauteur du ciel (décor) et du bandeau d'en-tête */
  --sky-h: 120px;
}

/* ================================================================
   1-B. FOND & DÉCOR : ciel de nuit, aurore, crêtes (derrière l'en-tête seulement)
   ================================================================ */
html.saison-hiver .hv-sky {
  display: block;
  position: absolute; left: 0; right: 0; top: 0; height: var(--sky-h);
  overflow: hidden; pointer-events: none;
  background: linear-gradient(180deg, var(--ciel) 0%, var(--nuit-2) 100%);
}
html.saison-hiver .hv-aurore {
  position: absolute; left: 50%; top: 0; transform: translateX(-50%);
  width: max(100%, 900px); height: 100%;
}
html.saison-hiver .hv-cretes {
  position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
  width: max(100%, 1100px); height: 40px; display: block;
}
/* Le contenu passe devant le décor (sans créer de contexte d'empilement : menus et
   fenêtres gardent leur z-index global). */
html.saison-hiver .wrap { position: relative; }

/* ================================================================
   1-C. BARRE DU HAUT : marque, pastille « en direct », aide, compte
   ================================================================ */
html.saison-hiver .topbar {
  gap: 6px; min-height: 72px; padding: 14px 0 0; align-items: center; align-content: flex-start;
}
html.saison-hiver .topbar::after { display: none; }
html.saison-hiver .brand { gap: 9px; margin-right: 6px; }
html.saison-hiver .brand .logo {
  width: 32px; height: 32px; border-radius: 0; border: 0;
  background: none; box-shadow: none; color: var(--neige);
}
html.saison-hiver .brand .logo svg { width: 30px; height: 30px; filter: none; }
html.saison-hiver .brand .logo svg path + path { stroke: var(--glace); }
html.saison-hiver .brand h1 {
  font-family: var(--f-display); font-weight: 600; font-size: 21px;
  letter-spacing: -.01em; line-height: 1.1; color: var(--neige);
}
html.saison-hiver .brand .sub { font-size: 12px; font-weight: 500; color: var(--t4); margin-top: 2px; letter-spacing: 0; }

/* Pastille « en direct » : glace (le vert est réservé à la value). */
html.saison-hiver .live {
  height: 36px; box-sizing: border-box; gap: 9px; padding: 0 14px 0 12px;
  border: 0; border-radius: 999px;
  background: rgba(111,211,255,.08); box-shadow: inset 0 0 0 1px rgba(111,211,255,.24);
  color: var(--neige); font-size: 13px; font-weight: 700; letter-spacing: 0;
}
html.saison-hiver .dot { width: 8px; height: 8px; background: var(--glace); }
html.saison-hiver .dot::after { color: var(--glace); }
/* setFreshness() colore en ligne (var(--green)) : on ne remplace QUE l'état normal, l'alerte
   « données figées » (var(--orange)) reste visible telle quelle. */
html.saison-hiver .dot[style*="--green"] { background: var(--glace) !important; }
html.saison-hiver #freshness[style*="--green"] { color: var(--neige) !important; }
/* « en direct » en gras, « maj il y a N min » plus discret ; empilés sur deux lignes au téléphone. */
html.saison-hiver #freshness .fr-a { font-weight: 800; }
html.saison-hiver #freshness .fr-b { font-weight: 500; color: var(--t3); }
@media (max-width: 720px) {
  html.saison-hiver #freshness { display: inline-flex; flex-direction: column; line-height: 14px; font-size: 12px; white-space: nowrap; }
  html.saison-hiver #freshness .fr-s { display: none; }
  /* alerte « données figées… » (texte d'un seul tenant) : sur deux lignes, points de suspension */
  html.saison-hiver #freshness:not(:has(.fr-a)) {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
    white-space: normal; overflow: hidden; min-width: 0;
  }
}

/* Aide & compte : cible 44 px, pastille visible de 36-38 px (bordure transparente). */
html.saison-hiver .help-btn,
html.saison-hiver .acct-btn {
  width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 4px solid transparent; background-clip: padding-box;
  display: grid; place-items: center; cursor: pointer;
  transition: background-color .15s ease, box-shadow .15s ease;
}
html.saison-hiver .help-btn {
  background-color: rgba(150,195,255,.07);
  box-shadow: inset 0 0 0 1px rgba(190,222,255,.2);
  color: #dcecff; font: 800 16px/1 var(--f-texte);
}
html.saison-hiver .help-btn:hover { background-color: rgba(150,195,255,.14); color: var(--neige); box-shadow: inset 0 0 0 1px rgba(190,222,255,.36); }
html.saison-hiver .acct-btn {
  background-color: #1a3560; background-image: none; box-shadow: inset 0 0 0 1px rgba(234,246,255,.32);
  color: var(--neige); font: 800 12.5px/1 var(--f-texte); letter-spacing: .02em; filter: none;
}
html.saison-hiver .acct-btn:hover { background-color: #22427a; filter: none; }

/* ================================================================
   1-D. ONGLETS DE VUE (Value / Comparateur / Écarts)
   ================================================================ */
html.saison-hiver .viewtoggle {
  display: grid; grid-template-columns: repeat(3, minmax(132px, auto)); gap: 0;
  width: fit-content; max-width: 100%; margin: 44px auto 12px;
  border-radius: 14px; background: rgba(150,195,255,.06);
  box-shadow: inset 0 0 0 1px rgba(190,222,255,.14);
}
html.saison-hiver .vt-btn,
html.saison-hiver .viewtoggle .vt-btn {
  height: 44px; padding: 0 18px; gap: 7px; border: 0; border-radius: 14px;
  background: transparent; color: #b9cadd; box-shadow: none;
  font: 700 14px/1 var(--f-texte); letter-spacing: 0;
}
html.saison-hiver .vt-btn:hover { color: var(--neige); background: rgba(150,195,255,.06); }
html.saison-hiver .vt-btn.on {
  background: #e6f3ff; color: var(--encre); font-weight: 800; box-shadow: none;
}
html.saison-hiver .vt-n {
  display: inline-block; font: 700 12px/18px var(--f-mono); font-variant-numeric: tabular-nums;
  padding: 0 6px; border-radius: 6px;
  background: rgba(var(--val-rgb),.14); color: var(--val-txt);
}
html.saison-hiver .vt-n:empty { display: none; }
html.saison-hiver .vt-btn.on .vt-n { background: var(--encre); color: var(--val); }

/* Trier par : segment à 2 choix, pictogrammes à trait */
html.saison-hiver .tri-bar { gap: 12px; margin: 0 0 12px; }
html.saison-hiver .tri-lbl { font-size: 13px; font-weight: 700; color: var(--t3); letter-spacing: 0; }
html.saison-hiver .tri {
  display: inline-grid; grid-template-columns: repeat(2, minmax(118px, 1fr)); gap: 0; padding: 0;
  border: 0; border-radius: 12px;
  background: var(--givre-2); box-shadow: inset 0 0 0 1px rgba(190,222,255,.14);
}
html.saison-hiver .tri-opt {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 40px; padding: 0 14px; border-radius: 12px;
  font: 700 13px/1 var(--f-texte); color: #b9cadd;
}
html.saison-hiver .tri-opt:hover { color: var(--neige); }
html.saison-hiver .tri-opt.on {
  background: rgba(234,246,255,.13); color: var(--neige); font-weight: 800;
  box-shadow: inset 0 0 0 1px rgba(234,246,255,.4);
}
html.saison-hiver .hv-ic {
  display: inline-block; width: 16px; height: 16px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ================================================================
   1-E. CHIFFRES CLÉS (#stats) : 3 tuiles sobres (ordinateur), une barre (mobile)
   ================================================================ */
html.saison-hiver .stats { gap: 12px; margin: 4px 0 14px; }
html.saison-hiver .stat {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  padding: 13px 18px; border: 0; border-radius: 14px;
  background: var(--givre-2); box-shadow: inset 0 0 0 1px rgba(190,222,255,.12);
  transition: none;
}
html.saison-hiver .stat::before,
html.saison-hiver .stat::after { display: none; }
html.saison-hiver .stat:hover { transform: none; border-color: transparent; box-shadow: inset 0 0 0 1px rgba(190,222,255,.2); }
html.saison-hiver .stat .num {
  font: 700 24px/1.1 var(--f-mono); font-variant-numeric: tabular-nums; letter-spacing: -.02em;
}
html.saison-hiver .stat .lbl {
  margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--t3);
}

/* ================================================================
   1-F. FILTRES : puces de sport, recherche, rafraîchir
   ================================================================ */
html.saison-hiver .filters { gap: 8px 10px; margin-bottom: 14px; }
html.saison-hiver .chips { gap: 8px; }
html.saison-hiver .chip {
  min-height: 40px; box-sizing: border-box; gap: 8px; padding: 0 14px; border-radius: 12px;
  border: 1px solid rgba(190,222,255,.16); background: var(--givre-2); color: var(--t2);
  font: 700 13px/1 var(--f-texte); box-shadow: none;
}
html.saison-hiver .chip:hover { color: var(--neige); border-color: rgba(190,222,255,.3); }
html.saison-hiver .chip.on {
  color: var(--neige); font-weight: 800;
  border-color: var(--glace); background: rgba(111,211,255,.14); box-shadow: none;
}
html.saison-hiver .chip.on[data-sp="alpine_skiing"]        { border-color: var(--ski);   background: rgba(90,169,255,.16); }
html.saison-hiver .chip.on[data-sp="biathlon"]             { border-color: var(--biath); background: rgba(185,156,255,.16); }
html.saison-hiver .chip.on[data-sp="cross_country_skiing"] { border-color: var(--fond);  background: rgba(255,140,192,.15); }
html.saison-hiver .chip.on[data-sp="ski_jumping"]          { border-color: var(--saut);  background: rgba(238,243,248,.13); }
html.saison-hiver .chip .sdot {
  width: 8px; height: 8px; border-radius: 50%; transform: none;
  box-shadow: 0 0 0 1px rgba(234,246,255,.22);
}
html.saison-hiver .chip .cnt {
  font: 600 12px/1 var(--f-mono); color: var(--t5); background: none; border: 0; padding: 0;
}
html.saison-hiver .chip.on .cnt { color: #bfe0ff; background: none; }

html.saison-hiver #f-search {
  height: 40px; box-sizing: border-box; min-width: 210px;
  padding: 0 14px 0 40px; border-radius: 12px;
  border: 1px solid rgba(190,222,255,.16);
  background: var(--givre-2) var(--ic-search) no-repeat 13px 50% / 18px 18px;
  color: var(--neige); font: 500 14px var(--f-texte);
}
html.saison-hiver #f-search::placeholder { color: var(--t4); }
html.saison-hiver #f-search:focus { border-color: var(--glace); box-shadow: 0 0 0 3px rgba(111,211,255,.18); }

html.saison-hiver #f-refresh {
  width: 40px; height: 40px; padding: 0; flex: none; border-radius: 12px;
  border: 1px solid rgba(190,222,255,.16); background: var(--givre-2);
  font-size: 0; color: var(--t2); display: grid; place-items: center;
}
html.saison-hiver #f-refresh::before {
  content: ""; width: 18px; height: 18px; background: currentColor;
  -webkit-mask: var(--ic-refresh) center / contain no-repeat; mask: var(--ic-refresh) center / contain no-repeat;
}
html.saison-hiver #f-refresh:hover { color: var(--neige); border-color: rgba(190,222,255,.34); transform: rotate(90deg); }

/* ================================================================
   1-G. BARRES DE NAVIGATION DU COMPARATEUR ET DES ÉCARTS
   course (niv. 1) · épreuve (niv. 2) · marché (niv. 3) · écarts
   ================================================================ */
html.saison-hiver .course-bar,
html.saison-hiver .market-bar { gap: 8px; margin: 2px 0 12px; }
html.saison-hiver .cs-pill,
html.saison-hiver .mk-pill,
html.saison-hiver .eb-pill {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 40px; box-sizing: border-box; padding: 0 16px; border-radius: 12px;
  border: 1px solid rgba(190,222,255,.18); background: var(--givre-2); color: var(--t2);
  font: 700 13px/1.2 var(--f-texte); box-shadow: none;
}
html.saison-hiver .cs-pill::before { content: none; }
html.saison-hiver .cs-pill:hover,
html.saison-hiver .mk-pill:hover,
html.saison-hiver .eb-pill:hover { color: var(--neige); border-color: rgba(190,222,255,.32); }
/* niveau 1 : la course = filtre (liseré neige) */
html.saison-hiver .cs-pill.on {
  color: var(--neige); font-weight: 800; border-color: var(--neige); background: var(--givre-3); box-shadow: none;
}
/* niveau 2 : l'épreuve = onglet plein (comme la maquette) */
html.saison-hiver .mk-pill.on {
  color: var(--encre); font-weight: 800; border-color: #e6f3ff; background: #e6f3ff;
}
/* niveau 3 : le marché = soulignement glace */
html.saison-hiver .submarket-bar { gap: 4px; margin: -2px 0 14px; border-bottom: 1px solid var(--filet-doux); }
html.saison-hiver .sub-pill {
  min-height: 40px; box-sizing: border-box; padding: 0 10px; margin-bottom: -1px;
  font: 650 13px/1.2 var(--f-texte); color: var(--t3);
  border-bottom: 2px solid transparent;
}
html.saison-hiver .sub-pill:hover { color: var(--neige); }
html.saison-hiver .sub-pill.on { color: var(--neige); font-weight: 800; border-bottom-color: var(--glace); }
html.saison-hiver .sub-pill.soon { color: var(--t4); }
html.saison-hiver .sub-pill .soon-tag {
  font-size: 11px; background: var(--givre-3); color: var(--t3); border-radius: 6px; padding: 2px 6px;
}
html.saison-hiver .sub-pill.on .soon-tag { background: rgba(111,211,255,.16); color: var(--neige); }
/* écarts */
html.saison-hiver .ecart-bar { gap: 8px; margin: 8px 0 14px; }
html.saison-hiver .eb-pill { border-radius: 999px; padding: 0 14px; font-size: 13px; }
html.saison-hiver .eb-pill em { font: 600 12px/1 var(--f-mono); color: var(--t4); margin-left: 4px; }
html.saison-hiver .eb-pill.on { color: var(--neige); font-weight: 800; border-color: var(--neige); background: var(--givre-3); }
html.saison-hiver .eb-pill.on em { color: var(--t2); opacity: 1; }
html.saison-hiver .eb-count { color: var(--t3); font-size: 12.5px; font-family: var(--f-mono); }

/* ================================================================
   1-H. SPORTS D'HIVER : bandeau « Prochaines étapes » (1re = forfait de ski)
   ================================================================ */
html.saison-hiver .hiver-bar {
  margin: 4px 0 16px; padding: 0; border: 0; border-radius: 0; background: none;
}
html.saison-hiver .hv-hd { align-items: center; gap: 6px 10px; margin-bottom: 8px; }
html.saison-hiver .hv-hd .t {
  display: inline-flex; align-items: center; gap: 7px;
  font: 800 13px/18px var(--f-texte); letter-spacing: 0; text-transform: none; color: var(--neige);
}
html.saison-hiver .hv-hd .t::before {
  content: ""; width: 16px; height: 16px; flex: none; background: var(--sport, var(--glace));
  -webkit-mask: var(--ic-flag) center / contain no-repeat; mask: var(--ic-flag) center / contain no-repeat;
}
html.saison-hiver .hv-bk { font-size: 12px; font-weight: 700; color: var(--t1); }
html.saison-hiver .hv-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
html.saison-hiver .hv-st {
  position: relative; display: grid;
  /* le compte à rebours (court) garde sa largeur, l'épreuve prend le reste et s'abrège */
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "cd ep" "lieu lieu" "dt dt";
  column-gap: 8px; row-gap: 2px; align-items: baseline;
  min-height: 66px; box-sizing: border-box; padding: 7px 11px;
  border: 0; border-radius: 12px;
  background: rgba(150,195,255,.04); box-shadow: inset 0 0 0 1px rgba(190,222,255,.13);
}
/* 1re étape : le « forfait » — liseré neige, bord droit en pointillés et deux encoches */
html.saison-hiver .hv-st:first-child {
  border-radius: 12px 0 0 12px; box-shadow: none;
  background: rgba(234,246,255,.08);
  border: 1px solid rgba(234,246,255,.34); border-right: 1.5px dashed rgba(190,222,255,.34);
}
html.saison-hiver .hv-st:first-child::before,
html.saison-hiver .hv-st:first-child::after {
  content: ""; position: absolute; right: -8px; width: 14px; height: 14px; border-radius: 50%;
  background: var(--nuit); pointer-events: none;
}
html.saison-hiver .hv-st:first-child::before { top: -8px; }
html.saison-hiver .hv-st:first-child::after  { bottom: -8px; }
html.saison-hiver .hv-st .hv-cd { grid-area: cd; }
html.saison-hiver .hv-st .hv-ep { grid-area: ep; }
html.saison-hiver .hv-st .hv-lieu { grid-area: lieu; }
html.saison-hiver .hv-st .hv-dt { grid-area: dt; justify-self: stretch; min-width: 0; }
html.saison-hiver .hv-cd {
  display: inline; justify-self: start; min-width: 0; padding: 0; border: 0; border-radius: 0; background: none;
  white-space: nowrap;
  font: 700 15px/18px var(--f-display); letter-spacing: -.01em; color: #bcd0e6;
}
html.saison-hiver .hv-st:first-child .hv-cd { color: var(--neige); }
html.saison-hiver .hv-cd.soon { color: var(--sport, var(--glace)); background: none; }
html.saison-hiver .hv-cd.live {
  display: inline-block; font: 800 12px/18px var(--f-texte); padding: 0 7px; border-radius: 6px;
  background: var(--val); color: var(--val-ink);
}
html.saison-hiver .hv-ep {
  font-size: 12px; line-height: 16px; font-weight: 700; color: var(--t1); text-align: right;
  min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.saison-hiver .hv-lieu { font-size: 14px; line-height: 18px; font-weight: 800; color: var(--t1); margin-top: 2px; }
html.saison-hiver .hv-st:first-child .hv-lieu { color: var(--neige); }
html.saison-hiver .hv-pays {
  margin-left: 3px; font: 600 12px/1 var(--f-mono); letter-spacing: .04em; color: var(--t3);
}
html.saison-hiver .hv-dt {
  font: 500 12px/16px var(--f-mono); font-variant-numeric: tabular-nums; color: #b3c4d8;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.saison-hiver .hv-st:first-child .hv-dt { color: #c3d3e6; }

/* Écran d'attente d'un sport d'hiver (date de reprise + compte à rebours) */
html.saison-hiver .hv-wait {
  padding: 34px 22px 30px; margin: 4px 0 10px; border-radius: 18px;
  border: 1px solid var(--filet);
  background:
    radial-gradient(520px 220px at 50% 0%, color-mix(in srgb, var(--sport, var(--glace)) 14%, transparent), transparent 70%),
    var(--givre-2);
  color: var(--t2); line-height: 1.55;
}
html.saison-hiver .hv-wait .hv-ico {
  font-size: 0; line-height: 0; width: 52px; height: 52px; margin: 0 auto 12px;
  background: var(--sport, var(--glace));
  -webkit-mask: var(--ic-mont) center / contain no-repeat; mask: var(--ic-mont) center / contain no-repeat;
}
html.saison-hiver .hv-wait > b {
  font: 600 18px/1.35 var(--f-display); letter-spacing: -.01em; color: var(--neige);
}
html.saison-hiver .hv-wait p { font-size: 14px; color: var(--t2); }
html.saison-hiver .hv-wait .hv-note { font-size: 13px; color: var(--t4); max-width: 44ch; margin-inline: auto; }
html.saison-hiver .hv-big { gap: 8px; margin: 14px 0 4px; }
html.saison-hiver .hv-big .n {
  font: 700 56px/1 var(--f-mono); font-variant-numeric: tabular-nums; letter-spacing: -.04em;
  color: var(--sport, var(--glace));
  text-shadow: 0 0 28px color-mix(in srgb, var(--sport, var(--glace)) 35%, transparent);
}
html.saison-hiver .hv-big .u { font-size: 13px; font-weight: 800; letter-spacing: .14em; color: var(--t3); }
html.saison-hiver .hv-go {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; margin-top: 16px; padding: 0 18px; border-radius: 12px; cursor: pointer;
  border: 1px solid rgba(234,246,255,.34); background: rgba(234,246,255,.08);
  color: var(--neige); font: 700 14px/1.2 var(--f-texte);
}
html.saison-hiver .hv-go:hover { background: rgba(234,246,255,.14); border-color: rgba(234,246,255,.5); }

/* ================================================================
   1-I. ÉTATS VIDES & SQUELETTES
   ================================================================ */
html.saison-hiver .empty { color: var(--t3); font-size: 15px; }
html.saison-hiver .empty .big,
html.saison-hiver .cmp-soon .cs-ico {
  display: block; font-size: 0; line-height: 0; width: 40px; height: 40px; margin: 0 auto 14px;
  opacity: 1; background: var(--t4);
  -webkit-mask: var(--ic-flake) center / contain no-repeat; mask: var(--ic-flake) center / contain no-repeat;
}
html.saison-hiver .cmp-soon .cs-ico {
  background: var(--glace);
  -webkit-mask-image: var(--ic-clock); mask-image: var(--ic-clock);
}
html.saison-hiver .cmp-empty { color: var(--t3); font-size: 14px; }
html.saison-hiver .cmp-soon { color: var(--t2); }
html.saison-hiver .cmp-soon b { color: var(--neige); }
html.saison-hiver .fresh { color: var(--glace); }

html.saison-hiver .sk {
  background: linear-gradient(90deg, rgba(150,195,255,.06) 0%, rgba(150,195,255,.14) 40%, rgba(150,195,255,.06) 80%);
  background-size: 300% 100%;
}
html.saison-hiver .sk-card,
html.saison-hiver .sk-tbl {
  border: 0; border-radius: 16px; background: var(--givre-2);
  box-shadow: inset 0 0 0 1px rgba(190,222,255,.1);
}
html.saison-hiver .sk-row,
html.saison-hiver .sk-tr { border-color: var(--filet-doux); }
html.saison-hiver .sk-row.m { border-top-color: var(--filet-doux); }
html.saison-hiver .sk-box { border-color: var(--filet-doux); background: rgba(150,195,255,.025); }

/* ================================================================
   1-J. MENU DE COMPTE
   ================================================================ */
html.saison-hiver .acct-menu {
  top: 50px; width: 328px; padding: 6px; border-radius: 16px;
  border: 1px solid var(--filet-2);
  background: linear-gradient(180deg, #11234a 0%, #0d1a31 90px, #0d1a31 100%);
  box-shadow: 0 24px 60px rgba(0,0,0,.6), inset 0 1px 0 rgba(234,246,255,.05);
}
html.saison-hiver .acct-head { padding: 10px 10px 8px; gap: 11px; }
html.saison-hiver .acct-av-lg {
  width: 40px; height: 40px; border-radius: 50%; border: 0;
  background: #1a3560; box-shadow: inset 0 0 0 1px rgba(234,246,255,.32);
  color: var(--neige); font: 800 14px/1 var(--f-texte);
}
html.saison-hiver .acct-email { font-size: 14px; font-weight: 700; color: var(--neige); }
html.saison-hiver .acct-status { font-size: 12.5px; color: var(--val-txt); font-weight: 700; }
html.saison-hiver .acct-expiry { font-size: 12.5px; color: var(--t4); padding: 0 10px 10px; font-family: var(--f-texte); }
html.saison-hiver .acct-sep { background: var(--filet-doux); margin: 4px 0; }

html.saison-hiver .msec { border-bottom: 1px solid var(--filet-doux); }
html.saison-hiver .mrow {
  min-height: 48px; padding: 12px 12px; gap: 11px; border-radius: 10px;
  color: var(--t1); font: 600 14.5px/1.2 var(--f-texte);
}
html.saison-hiver .mrow:hover,
html.saison-hiver .msec.on .mrow { background: var(--givre-3); color: var(--neige); }
html.saison-hiver .mic {
  width: 20px; height: 20px; font-size: 0; line-height: 0; flex: none; background: var(--t3);
  -webkit-mask: var(--ic-sliders) center / contain no-repeat; mask: var(--ic-sliders) center / contain no-repeat;
}
html.saison-hiver .msec[data-sec="tg"] .mic     { -webkit-mask-image: var(--ic-bell);    mask-image: var(--ic-bell); }
html.saison-hiver .msec[data-sec="kelly"] .mic  { -webkit-mask-image: var(--ic-pct);     mask-image: var(--ic-pct); }
html.saison-hiver .msec[data-sec="books"] .mic  { -webkit-mask-image: var(--ic-sliders); mask-image: var(--ic-sliders); }
html.saison-hiver .msec[data-sec="sports"] .mic { -webkit-mask-image: var(--ic-medal);   mask-image: var(--ic-medal); }
html.saison-hiver .msec[data-sec="liq"] .mic    { -webkit-mask-image: var(--ic-drop);    mask-image: var(--ic-drop); }
html.saison-hiver .msec[data-sec="dev"] .mic    { -webkit-mask-image: var(--ic-laptop);  mask-image: var(--ic-laptop); }
html.saison-hiver .msec[data-sec="pwd"] .mic    { -webkit-mask-image: var(--ic-lock);    mask-image: var(--ic-lock); }
html.saison-hiver .msec[data-sec="api"] .mic    { -webkit-mask-image: var(--ic-key);     mask-image: var(--ic-key); }
html.saison-hiver .msec.on .mic,
html.saison-hiver .mrow:hover .mic { background: var(--glace); }
html.saison-hiver .mval {
  font: 600 12.5px/1.3 var(--f-texte); color: var(--t3);
  background: var(--givre-2); border: 1px solid var(--filet); border-radius: 999px; padding: 3px 10px;
}
html.saison-hiver .mval.on { color: #bfe6ff; background: rgba(111,211,255,.10); border-color: rgba(111,211,255,.34); }
html.saison-hiver .mchev { color: var(--t4); font-size: 18px; }
html.saison-hiver .mbody { padding: 4px 12px 14px; }

html.saison-hiver .acct-tg-head { color: var(--neige); }
html.saison-hiver .acct-tg-head b { color: var(--val-txt); }
html.saison-hiver .acct-tg-ic { display: none; }
html.saison-hiver .acct-tg-sub { font-size: 12.5px; color: var(--t3); line-height: 1.5; margin: 4px 0 10px; }
html.saison-hiver .acct-tg-btn {
  min-height: 42px; padding: 9px 12px; border-radius: 11px;
  border: 1px solid rgba(234,246,255,.34); background: rgba(234,246,255,.08);
  color: var(--neige); font: 700 13.5px/1.2 var(--f-texte); filter: none;
}
html.saison-hiver .acct-tg-btn:hover { background: rgba(234,246,255,.14); filter: none; }
html.saison-hiver .acct-tg-btn.off { background: transparent; border-color: var(--filet-2); color: var(--t3); }

html.saison-hiver .acct-books-list { gap: 6px; }
html.saison-hiver .bk-chip {
  min-height: 36px; box-sizing: border-box; display: inline-flex; align-items: center;
  font: 600 12.5px/1 var(--f-texte); padding: 0 12px; border-radius: 10px;
  border: 1px solid var(--filet); background: var(--givre-2); color: var(--t3);
}
html.saison-hiver .bk-chip:hover { color: var(--neige); border-color: var(--filet-2); }
html.saison-hiver .bk-chip.on { color: var(--neige); font-weight: 800; border-color: var(--neige); background: var(--givre-3); }

html.saison-hiver .kseg button {
  min-height: 40px; border-radius: 10px; background: var(--givre-2); border: 1px solid var(--filet);
  color: var(--t2); font: 700 13.5px/1 var(--f-mono);
}
html.saison-hiver .kseg button:hover { border-color: var(--filet-2); color: var(--neige); }
html.saison-hiver .kseg button.on { background: #e6f3ff; border-color: #e6f3ff; color: var(--encre); font-weight: 800; }
html.saison-hiver .kex { font-size: 12.5px; color: var(--t3); background: var(--givre-2); border: 1px solid var(--filet-doux); border-radius: 10px; }
html.saison-hiver .kex b { color: var(--neige); font-family: var(--f-mono); }
html.saison-hiver .acct-dev-row { background: var(--givre-2); color: var(--t2); font-size: 12.5px; }
html.saison-hiver .acct-dev-row.cur { background: var(--givre-3); border: 1px solid var(--filet-2); }

html.saison-hiver .acct-books input[type=range]::-webkit-slider-runnable-track { background: var(--filet-2); }
html.saison-hiver .acct-books input[type=range]::-webkit-slider-thumb { background: var(--neige); border-color: var(--glace); }
html.saison-hiver .acct-books input[type=range]::-moz-range-track { background: var(--filet-2); }
html.saison-hiver .acct-books input[type=range]::-moz-range-thumb { background: var(--neige); border-color: var(--glace); }

html.saison-hiver .acct-api-empty,
html.saison-hiver .acct-api-meta { font-size: 12px; color: var(--t4); }
html.saison-hiver .acct-api-row { border-color: var(--filet); background: var(--givre-2); }
html.saison-hiver .acct-api-info code,
html.saison-hiver .acct-api-keybox code { font-family: var(--f-mono); font-size: 12px; color: var(--neige); }
html.saison-hiver .acct-api-del { color: var(--t4); min-width: 32px; min-height: 32px; }
html.saison-hiver .acct-api-label {
  min-height: 42px; box-sizing: border-box; border-radius: 10px;
  border: 1px solid var(--filet); background: var(--nuit-2); color: var(--neige); font: 500 13px var(--f-texte);
}
html.saison-hiver .acct-api-label::placeholder { color: var(--t4); }
html.saison-hiver .acct-api-label:focus { border-color: var(--glace); }
html.saison-hiver .acct-api-warn { font-size: 12px; }
html.saison-hiver .acct-api-keybox { border-color: var(--filet-2); background: var(--givre-3); }
html.saison-hiver .acct-api-keybox button { border-color: rgba(234,246,255,.34); color: var(--neige); font-size: 12px; }
html.saison-hiver .acct-api-msg { font-size: 12.5px; color: var(--t2); }
html.saison-hiver .acct-api-msg.ok,
html.saison-hiver #acct-api-docs { color: var(--glace); }

html.saison-hiver .acct-item {
  min-height: 44px; padding: 10px 12px; gap: 11px; color: var(--t1); font: 600 14px/1.2 var(--f-texte);
}
html.saison-hiver .acct-item:hover { background: var(--givre-3); color: var(--neige); }
html.saison-hiver .acct-item .ai {
  width: 20px; height: 20px; font-size: 0; line-height: 0; opacity: 1; background: var(--t3);
  -webkit-mask: var(--ic-eye) center / contain no-repeat; mask: var(--ic-eye) center / contain no-repeat;
}
html.saison-hiver #acct-admin .ai  { -webkit-mask-image: var(--ic-chart); mask-image: var(--ic-chart); }
html.saison-hiver #acct-logout .ai { -webkit-mask-image: var(--ic-out);   mask-image: var(--ic-out); background: currentColor; }
html.saison-hiver .acct-item.logout { color: #ff9a8a; }
html.saison-hiver .acct-item.logout:hover { background: rgba(255,120,100,.10); color: #ffb3a6; }

/* ================================================================
   1-K. FENÊTRES (#intro, #admin) & ÉCRAN DE PAUSE
   ================================================================ */
html.saison-hiver .modal-overlay { background: rgba(4,10,24,.8); backdrop-filter: blur(6px); }
html.saison-hiver .modal {
  border-radius: 20px; border: 1px solid var(--filet-2);
  background: linear-gradient(180deg, #11244b 0%, #0d1a31 150px, #0d1a31 100%);
  box-shadow: 0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(234,246,255,.06);
  color: var(--t1);
}
html.saison-hiver .modal-x {
  top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(150,195,255,.07); border: 0; box-shadow: inset 0 0 0 1px rgba(190,222,255,.2);
  color: var(--t2); font-size: 14px;
}
html.saison-hiver .modal-x:hover { color: var(--neige); box-shadow: inset 0 0 0 1px rgba(190,222,255,.4); }
html.saison-hiver .modal-logo {
  width: 52px; height: 52px; border-radius: 16px; border: 0; color: var(--neige);
  background: linear-gradient(180deg, var(--ciel) 0%, var(--nuit-2) 100%);
  box-shadow: inset 0 0 0 1px var(--filet-2);
}
html.saison-hiver .modal-logo svg { filter: none; }
html.saison-hiver .modal-logo svg path + path { stroke: var(--glace); }
html.saison-hiver .modal h2 { font: 600 21px/1.25 var(--f-display); letter-spacing: -.01em; color: var(--neige); }
html.saison-hiver .modal-lead { font-size: 14.5px; color: var(--t2); }
html.saison-hiver .modal-lead b { color: var(--neige); }
html.saison-hiver .modal-section { font-size: 12px; letter-spacing: .12em; color: var(--t4); }
html.saison-hiver .modal-list li { font-size: 13.5px; color: var(--t3); }
html.saison-hiver .modal-list .k { color: var(--neige); }
html.saison-hiver .modal-list .k.green { color: var(--val-txt); }
html.saison-hiver .modal-note { font-size: 12.5px; color: var(--t4); }
html.saison-hiver .cta {
  min-height: 48px; border-radius: 12px; background: #e6f3ff; color: var(--encre);
  font: 800 15px/1.2 var(--f-texte); box-shadow: none; filter: none;
}
html.saison-hiver .cta:hover { background: #ffffff; box-shadow: 0 10px 26px -14px rgba(111,211,255,.7); filter: none; }

/* Panneau d'administration */
html.saison-hiver .admin-section { font-size: 12px; letter-spacing: .12em; color: var(--t4); }
html.saison-hiver .admin-stat { background: var(--givre-2); border-color: var(--filet-doux); border-radius: 12px; }
html.saison-hiver .admin-stat::before { background: var(--filet); }
html.saison-hiver .admin-stat .n { font-family: var(--f-mono); color: var(--neige); }
html.saison-hiver .admin-stat .l { font-size: 12px; color: var(--t4); }
html.saison-hiver .admin-stat.rev .n { color: var(--val); }
html.saison-hiver .admin-stat.rev::before { background: var(--val); }
html.saison-hiver .admin-grant input[type=email],
html.saison-hiver .admin-grant input[type=number] {
  background: var(--nuit-2); border-color: var(--filet); color: var(--neige); min-height: 42px; box-sizing: border-box;
}
html.saison-hiver .admin-grant input:focus { border-color: var(--glace); }
html.saison-hiver .admin-grant button { background: #e6f3ff; color: var(--encre); min-height: 42px; }
html.saison-hiver .admin-msg { color: var(--val-txt); }
html.saison-hiver .admin-row { background: var(--givre-2); border-color: var(--filet-doux); color: var(--t1); }
html.saison-hiver .admin-row .ar-email { color: var(--neige); }
html.saison-hiver .admin-row .ar-exp { font-size: 12px; font-family: var(--f-mono); color: var(--t4); }
html.saison-hiver .admin-row .ar-badge { font-size: 12px; }
html.saison-hiver .admin-row .ar-badge.on { background: var(--val-bg); color: var(--val-txt); }
html.saison-hiver .admin-row .ar-badge.off { background: var(--givre-3); color: var(--t3); }
html.saison-hiver .admin-row .ar-act,
html.saison-hiver .admin-maint .ar-act { border-color: var(--filet); color: var(--t3); min-height: 32px; }
html.saison-hiver .admin-row .ar-act.grant,
html.saison-hiver .admin-row .ar-act.resume,
html.saison-hiver .admin-maint .ar-act.resume { border-color: var(--val-bd); color: var(--val-txt); }
html.saison-hiver .admin-maint { background: var(--givre-2); border-color: var(--filet); }
html.saison-hiver .admin-maint .am-off,
html.saison-hiver .admin-maint .am-note { color: var(--t4); font-size: 12px; }

/* Écran d'un abonné en pause */
html.saison-hiver .pause-view {
  background: linear-gradient(180deg, var(--ciel) 0%, var(--nuit) 45%);
}
html.saison-hiver .pause-view .pv-card {
  border: 1px solid var(--filet); border-radius: 20px; background: var(--givre); color: var(--t2);
  backdrop-filter: blur(4px);
}
html.saison-hiver .pause-view .pv-icon {
  font-size: 0; line-height: 0; width: 44px; height: 44px; margin: 0 auto 14px; background: var(--glace);
  -webkit-mask: var(--ic-pause) center / contain no-repeat; mask: var(--ic-pause) center / contain no-repeat;
}
html.saison-hiver .pause-view h2 { font: 600 20px/1.3 var(--f-display); color: var(--neige); }
html.saison-hiver .pause-view p { color: var(--t3); }
html.saison-hiver .pause-view .pv-ok { color: var(--t1); }
html.saison-hiver .pause-view .pv-ok b { color: var(--val-txt); }
html.saison-hiver .pause-view .pv-mini { font-size: 12px; color: var(--t4); }
html.saison-hiver .pause-view .pv-btn {
  min-height: 44px; border-radius: 12px; border: 1px solid rgba(234,246,255,.34);
  background: rgba(234,246,255,.08); color: var(--neige); font-weight: 700;
}
html.saison-hiver .pause-view .pv-btn:hover { background: rgba(234,246,255,.14); color: var(--neige); border-color: rgba(234,246,255,.5); }

/* ================================================================
   1-L. FOCUS VISIBLE (clavier)
   ================================================================ */
html.saison-hiver :focus-visible { outline: 2px solid var(--glace); outline-offset: 2px; }
html.saison-hiver .vt-btn:focus-visible,
html.saison-hiver .tri-opt:focus-visible,
html.saison-hiver .mrow:focus-visible,
html.saison-hiver .acct-item:focus-visible { outline-offset: -2px; }
html.saison-hiver #f-search:focus-visible,
html.saison-hiver .acct-api-label:focus-visible { outline: none; }

/* ================================================================
   1-M. ADAPTATIONS D'ÉCRAN
   ================================================================ */
@media (max-width: 900px) {
  html.saison-hiver .stat { padding: 12px 14px; }
  html.saison-hiver .stat .num { font-size: 21px; }
}

@media (max-width: 720px) {
  html.saison-hiver { --sky-h: 80px; }
  /* tout le profil tient dans l'écran : pics resserrés et enneigés, comme la maquette (390 px) */
  html.saison-hiver .hv-cretes { height: 30px; width: 100%; left: 0; transform: none; }
  html.saison-hiver .topbar { flex-wrap: nowrap; gap: 4px; min-height: 52px; padding: 8px 0 0; }
  html.saison-hiver .brand { gap: 8px; margin-right: 2px; flex: none; }
  html.saison-hiver .brand .logo { width: 28px; height: 28px; }
  html.saison-hiver .brand .logo svg { width: 27px; height: 27px; }
  html.saison-hiver .brand h1 { font-size: 19px; }
  html.saison-hiver .live {
    flex: 0 1 auto; min-width: 0; height: 36px; gap: 8px; padding: 0 11px 0 10px;
    font-size: 12px; font-weight: 700;
  }
  html.saison-hiver .help-btn { margin-left: auto; }
  html.saison-hiver .help-btn,
  html.saison-hiver .acct-btn { flex: none; }

  html.saison-hiver .viewtoggle {
    width: auto; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 28px 0 8px;
  }
  html.saison-hiver .viewtoggle .vt-btn { padding: 0 6px; }

  html.saison-hiver .tri-bar { justify-content: stretch; margin: 0 0 8px; }
  html.saison-hiver .tri-lbl { flex: none; }
  html.saison-hiver .tri { flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html.saison-hiver .tri-opt { height: 44px; }

  /* chiffres clés : UNE barre compacte */
  html.saison-hiver .stats {
    display: flex; align-items: center; gap: 0; height: 36px; margin: 0 0 8px; padding: 0 6px;
    border-radius: 12px; background: var(--givre-2); box-shadow: inset 0 0 0 1px rgba(190,222,255,.12);
  }
  html.saison-hiver .stat {
    position: relative; flex: 1 1 auto; justify-content: center; flex-wrap: nowrap;
    gap: 6px; padding: 0 6px; background: none; box-shadow: none; border-radius: 0; white-space: nowrap;
  }
  html.saison-hiver .stat:hover { box-shadow: none; }
  html.saison-hiver .stat + .stat::before {
    display: block; content: ""; position: absolute; left: 0; top: 50%; bottom: auto;
    width: 1px; height: 16px; transform: translateY(-50%); background: rgba(190,222,255,.16);
  }
  html.saison-hiver .stat .num { font-size: 16px; }
  html.saison-hiver .stat .lbl { font-size: 12px; letter-spacing: 0; }

  html.saison-hiver .filters { gap: 8px; margin-bottom: 12px; }
  html.saison-hiver .chips { padding: 0 0 2px; gap: 8px; }
  html.saison-hiver .chip { min-height: 44px; padding: 0 14px; font-size: 13px; }
  html.saison-hiver #f-search { height: 44px; }
  html.saison-hiver #f-refresh { width: 44px; height: 44px; }

  html.saison-hiver .cs-pill,
  html.saison-hiver .mk-pill,
  html.saison-hiver .eb-pill,
  html.saison-hiver .sub-pill { min-height: 44px; font-size: 13px; }
  html.saison-hiver .cs-pill,
  html.saison-hiver .mk-pill { padding: 0 14px; }
  /* course et marché : UNE ligne qui défile (comme les puces de sport) au lieu de s'empiler */
  html.saison-hiver .course-bar,
  html.saison-hiver .submarket-bar {
    flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden;
    scrollbar-width: none; -webkit-overflow-scrolling: touch;
  }
  html.saison-hiver .course-bar::-webkit-scrollbar,
  html.saison-hiver .submarket-bar::-webkit-scrollbar { display: none; }
  html.saison-hiver .course-bar { padding: 2px; margin-inline: -2px; }
  html.saison-hiver .cs-pill,
  html.saison-hiver .sub-pill { flex: none; white-space: nowrap; }
  /* filet du bas peint en ombre interne : le soulignement actif reste entier malgré le défilement */
  html.saison-hiver .submarket-bar { border-bottom: 0; box-shadow: inset 0 -1px 0 var(--filet-doux); }
  html.saison-hiver .sub-pill { margin-bottom: 0; }

  /* bandeau des étapes : bande de billets qui défile (lieu et dates lisibles en entier) ;
     l'épreuve passe sous la date */
  html.saison-hiver .hiver-bar:not(.compact) .hv-list {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(176px, 1fr);
    overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent);
            mask-image: linear-gradient(90deg, #000 88%, transparent);
  }
  html.saison-hiver .hiver-bar:not(.compact) .hv-list::-webkit-scrollbar { display: none; }
  html.saison-hiver .hiver-bar:not(.compact) .hv-st { scroll-snap-align: start; }
  html.saison-hiver .hiver-bar.compact .hv-list { grid-template-columns: minmax(0, 1fr); }
  html.saison-hiver .hiver-bar:not(.compact) .hv-st {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "cd" "lieu" "dt" "ep";
    padding: 7px 9px; row-gap: 1px;
  }
  html.saison-hiver .hiver-bar:not(.compact) .hv-ep {
    text-align: left; font-weight: 600; color: var(--t2);
    /* l'épreuve et le genre sur deux lignes au plus (au lieu d'être coupés dès la 1re) */
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal;
  }
  html.saison-hiver .hv-lieu { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  html.saison-hiver .hv-wait { padding: 28px 16px 24px; }
  html.saison-hiver .hv-big .n { font-size: 48px; }
  html.saison-hiver .hv-go { width: 100%; }

  html.saison-hiver .acct-menu { top: 58px; width: auto; }
  html.saison-hiver .bk-chip,
  html.saison-hiver .kseg button,
  html.saison-hiver .acct-tg-btn,
  html.saison-hiver .acct-api-label { min-height: 44px; }
  html.saison-hiver .acct-api-del { min-width: 44px; min-height: 44px; }
  html.saison-hiver .modal-x { width: 44px; height: 44px; top: 8px; right: 8px; }
  html.saison-hiver .admin-row .ar-act,
  html.saison-hiver .admin-maint .ar-act { min-height: 44px; }
}

@media (max-width: 560px) {
  html.saison-hiver .wrap { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 374px) {
  html.saison-hiver .wrap { padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 400px) {
  html.saison-hiver .brand h1 { font-size: 18px; }
  html.saison-hiver .brand .logo { width: 26px; height: 26px; border-radius: 0; }
  html.saison-hiver .stat .num { font-size: 15px; }
  html.saison-hiver .stat .lbl { font-size: 12px; }
  html.saison-hiver .tri-lbl { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html.saison-hiver .dot::after,
  html.saison-hiver .sk { animation: none; }
}


/* ================================================================
   THÈME DE SAISON « NUIT ALPINE » — PARTIE 2 : cartes de pari (.vc), badge de value,
   bloc « meilleure cote », métriques, tiroir « Comparer les books » (.btable) et
   courbe d'évolution de la cote (.hist).
   Jetons : voir hiver-1-base.css. Maquette : Main.dc.html (cartes Odermatt / Gut-Behrami).
   ================================================================ */

/* ── 2.1 Carte : surface givre, rayon 20, filet lumineux en haut ── */
html.saison-hiver .list { gap: 12px; }
html.saison-hiver .vc {
  border-radius: 20px;
  border: 1px solid var(--filet);
  /* givre posé sur la nuit : la carte est opaque, le décor ne passe jamais sous les chiffres */
  background: linear-gradient(var(--givre), var(--givre)), var(--nuit);
  box-shadow: inset 0 1px 0 rgba(234,246,255,.06), 0 16px 30px -20px rgba(0,0,0,.9);
  padding: 14px 20px 16px;
  color: var(--t1);
  font-family: var(--f-texte);
}
/* La barre latérale colorée et l'auréole du thème classique disparaissent. */
html.saison-hiver .vc::before,
html.saison-hiver .vc.sure::before {
  left: 28px; right: 28px; top: 0; bottom: auto; width: auto; height: 1px; z-index: 1;
  background: linear-gradient(90deg, rgba(234,246,255,0), rgba(234,246,255,.55), rgba(234,246,255,0));
}
html.saison-hiver .vc::after { display: none; }
html.saison-hiver .vc:hover {
  border-color: var(--filet-2); transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(234,246,255,.08), 0 20px 36px -22px rgba(0,0,0,.95);
}
html.saison-hiver .vc.open {
  border-color: rgba(234,246,255,.26);
  box-shadow: inset 0 1px 0 rgba(234,246,255,.08), 0 22px 44px -26px rgba(0,0,0,.95);
}
/* Carte ciblée par un lien Telegram (?bet=id) : éclat vert aurore. */
html.saison-hiver .vc.focus-bet { animation: hvBetFocus 2.6s ease-out; }
@keyframes hvBetFocus {
  0%   { box-shadow: 0 0 0 0 rgba(var(--val-rgb),0); }
  15%  { box-shadow: 0 0 0 3px rgba(var(--val-rgb),.8), 0 0 30px rgba(var(--val-rgb),.35); }
  100% { box-shadow: 0 0 0 0 rgba(var(--val-rgb),0); }
}

/* ── 2.2 En-tête : badge de value · sport · books · date ── */
html.saison-hiver .vc-top {
  min-height: 36px; padding: 0; gap: 8px; flex-wrap: nowrap;
  border: 0; background: none;
}
html.saison-hiver .vc-edge {
  height: 36px; box-sizing: border-box; flex: none;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 0 12px 0 10px; border-radius: 10px; clip-path: none;
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 22px; line-height: 26px; font-weight: 700; letter-spacing: -.01em;
  background: transparent; color: var(--val-txt); box-shadow: inset 0 0 0 1px var(--val-bd);
  animation: none; filter: none;
}
html.saison-hiver .vc-edge small {
  font-family: var(--f-mono); font-size: 17px; font-weight: inherit; letter-spacing: 0;
  opacity: 1; margin-left: 1px;
}
/* Flèche montante (dessinée en masque : suit la couleur du texte). */
html.saison-hiver .vc-edge::before {
  content: ""; width: 15px; height: 15px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* 3 intensités : t1 contour seul · t2 fond teinté · t3/t4 pastille pleine + halo */
html.saison-hiver .vc-edge.t1 { background: transparent; color: var(--val-txt); box-shadow: inset 0 0 0 1px var(--val-bd); }
html.saison-hiver .vc-edge.t2 { background: var(--val-bg); color: var(--val-txt); box-shadow: inset 0 0 0 1px var(--val-bd); }
html.saison-hiver .vc-edge.t3,
html.saison-hiver .vc-edge.t4 {
  background: var(--val); color: var(--val-ink); font-weight: 800;
  box-shadow: 0 0 0 3px rgba(var(--val-rgb),.16), 0 6px 18px -6px rgba(var(--val-rgb),.6);
}
html.saison-hiver .vc-edge.t4 {
  box-shadow: 0 0 0 3px rgba(var(--val-rgb),.24), 0 0 22px rgba(var(--val-rgb),.42), 0 6px 18px -6px rgba(var(--val-rgb),.7);
}

html.saison-hiver .vc-sport {
  margin-left: auto; min-width: 0; gap: 6px; padding: 0;
  font-family: var(--f-texte); font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none;
  color: var(--t1); background: none; border: 0; white-space: nowrap;
}
html.saison-hiver .vc-sport .sdot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex: none; transform: none;
}
html.saison-hiver .vc-books {
  flex: none; border: 0; padding: 0; white-space: nowrap;
  font-size: 12px; font-weight: 600; color: var(--t3);
}
html.saison-hiver .vc-books::before { content: "· "; }
html.saison-hiver .vc-when {
  flex: none; margin-left: 0; padding: 0; gap: 0; border: 0; border-radius: 0; background: none;
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 12px; line-height: 18px; font-weight: 600; color: #c3d3e6; white-space: nowrap;
}
html.saison-hiver .vc-when::before { content: "·"; margin-right: 5px; font-family: var(--f-texte); color: var(--t3); }
html.saison-hiver .vc-when .k { display: none; }

/* ── 2.3 Corps : contexte, « À PARIER » + nom, adversaire ; meilleure cote ── */
html.saison-hiver .vc .vc-body {
  margin-top: 14px; padding: 0; gap: 20px; align-items: center;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
}
html.saison-hiver .vc-left {
  display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 0; min-width: 0;
}
html.saison-hiver .vc-ctx {
  flex: 1 1 100%; min-width: 0; margin: 0 0 6px;
  font-size: 13px; line-height: 18px; font-weight: 700; color: var(--t2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.saison-hiver .vc-ctx b { color: var(--t1); }
html.saison-hiver .vc-kicker {
  flex: none; margin: 0; height: 22px; box-sizing: border-box;
  display: inline-flex; align-items: center; padding: 0 7px; border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(234,246,255,.45);
  font-family: var(--f-texte); font-size: 12px; font-weight: 800; letter-spacing: .05em;
  text-transform: uppercase; color: var(--neige);
}
html.saison-hiver .vc .vc-body .vc-pick {
  flex: 1 1 0; min-width: 0;
  font-family: var(--f-display); font-size: 25px; line-height: 1.25; font-weight: 600;
  letter-spacing: -.01em; color: var(--neige-2); overflow-wrap: anywhere;
}
html.saison-hiver .vc-vs {
  flex: 1 1 100%; min-width: 0; margin-top: 4px; gap: 7px;
  font-size: 13px; line-height: 18px; font-weight: 600; color: var(--t3);
}
html.saison-hiver .vc-vs .vsb {
  border: 0; padding: 0; border-radius: 0;
  font-family: var(--f-mono); font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--t5);
}

/* Pastille de camp (lettre A / B) : identité du camp SEULEMENT. */
html.saison-hiver .camp-l {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 18px; height: 18px; border-radius: 5px; margin-right: 8px; vertical-align: 3px;
  font-family: var(--f-texte); font-style: normal; font-size: 12px; line-height: 1; font-weight: 800;
  letter-spacing: 0;
}
html.saison-hiver .camp-l.a { background: var(--camp-a); color: var(--camp-a-ink); }
html.saison-hiver .camp-l.b { background: var(--camp-b); color: var(--camp-b-ink); }
html.saison-hiver .vc-vs .camp-l { margin-right: 0; vertical-align: 0; }

/* Bloc « meilleure cote » = repère unique (cadre mc-bd + fond mc-fill). */
html.saison-hiver .vc-best {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
  column-gap: 10px; row-gap: 0;
  min-height: 62px; box-sizing: border-box; padding: 7px 7px 7px 14px;
  border: 0; border-radius: 14px;
  background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .vc-best .lb {
  grid-column: 1; font-size: 12px; line-height: 14px; font-weight: 700;
  letter-spacing: 0; text-transform: none; color: var(--mc-lab);
}
html.saison-hiver .vc-best .lb::first-letter { text-transform: uppercase; }
html.saison-hiver .vc-odds-row {
  grid-column: 1; min-width: 0; min-height: 34px;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; row-gap: 2px;
}
html.saison-hiver .vc-odds {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 32px; line-height: 34px; font-weight: 700; letter-spacing: -.03em;
  color: var(--mc-txt); text-shadow: none;
}
html.saison-hiver .vc-bookchip {
  gap: 6px; padding: 0; border: 0; border-radius: 0; background: none;
  font-family: var(--f-texte); font-size: 13px; font-weight: 800; color: var(--neige); white-space: nowrap;
}
html.saison-hiver .vc-bookchip .bd {
  width: 10px; height: 10px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(234,246,255,.35);
}
html.saison-hiver .vc .vc-btn {
  grid-column: 2; grid-row: 1 / span 2;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: auto; min-height: 48px; height: 48px; box-sizing: border-box; padding: 0 18px;
  border: 0; border-radius: 11px;
  background: var(--neige); color: var(--encre); box-shadow: none; filter: none;
  font-family: var(--f-texte); font-size: 15px; font-weight: 800; letter-spacing: 0; white-space: nowrap;
  text-decoration: none;
}
html.saison-hiver .vc .vc-btn:hover { background: #ffffff; box-shadow: 0 0 0 3px rgba(234,246,255,.14); }

/* Liens de pari : pas de soulignement, zone tactile agrandie sans décaler la mise en page. */
html.saison-hiver .betlink { color: inherit; text-decoration: none; }
html.saison-hiver .vc .betlink { position: relative; }
html.saison-hiver .vc .betlink::after { content: ""; position: absolute; inset: -8px -4px; }
html.saison-hiver .vc .betlink:hover { filter: none; }
html.saison-hiver .vc .betlink:hover .vc-odds { text-decoration: underline dotted 2px; text-underline-offset: 5px; }
html.saison-hiver .betlink:focus-visible,
html.saison-hiver .vc .vc-btn:focus-visible,
html.saison-hiver .vc-expand:focus-visible,
html.saison-hiver .btable a:focus-visible {
  outline: 2px solid var(--glace); outline-offset: 2px; border-radius: 8px;
}

/* ── 2.4 « Aussi en value » : repli discret ── */
html.saison-hiver .vc-alt {
  margin-top: 8px; padding: 0; border: 0; gap: 4px 12px;
  font-size: 13px; line-height: 18px; font-weight: 500; color: var(--t3);
}
html.saison-hiver .vc-alt .lb {
  font-size: 13px; letter-spacing: 0; text-transform: none; opacity: 1; color: var(--t3);
}
html.saison-hiver .vc-alt .lb::after { content: "\00a0:"; }
/* Même graisse pour tous les books de la liste, qu'ils aient un lien de pari ou non. */
html.saison-hiver .vc-alt-i {
  gap: 5px; padding: 0; border: 0; border-radius: 0; white-space: nowrap;
  font-weight: 800; color: var(--t1);
}
html.saison-hiver .vc-alt-i .betlink { display: inline-flex; align-items: center; gap: 5px; font-weight: 800; color: var(--t1); }
html.saison-hiver .vc-alt-i .bd {
  width: 9px; height: 9px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(234,246,255,.45);
}
html.saison-hiver .vc-alt-i b {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-weight: 700; color: var(--val-txt);
}
html.saison-hiver .vc-alt-i .am {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-size: 12.5px; font-weight: 700; color: var(--t1);
}
html.saison-hiver .vc-alt-i .am::before { content: "· "; font-family: var(--f-texte); font-weight: 500; color: var(--t3); }

/* ── 2.5 Métriques : 6 colonnes sur grand écran, 3 × 2 sinon ── */
html.saison-hiver .vc-metrics {
  margin-top: 12px; gap: 0; background: none;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid rgba(190,222,255,.12); border-bottom: 1px solid rgba(190,222,255,.12);
}
html.saison-hiver .vc-alt + .vc-metrics { margin-top: 8px; }
html.saison-hiver .vc-m { background: none; padding: 7px 10px 7px 0; min-width: 0; }
/* Le soulignement pointillé des infobulles (.tip) est réservé ici à la cote fair. */
html.saison-hiver .vc-m.tip { border-bottom: 0; }
html.saison-hiver .vc-m .k {
  font-family: var(--f-texte); font-size: 12px; line-height: 14px; font-weight: 600;
  letter-spacing: 0; text-transform: none; color: var(--t4);
}
html.saison-hiver .vc-m .v {
  margin-top: 1px; font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 14px; line-height: 17px; font-weight: 600; color: var(--t1);
}
html.saison-hiver .vc-m .v.pin { color: var(--t1); }
/* Fair = ligne de référence : soulignement pointillé (même code que dans le tiroir). */
html.saison-hiver .vc-m:first-child .v {
  font-weight: 700; color: var(--fair);
  text-decoration: underline dotted rgba(211,219,230,.75); text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
html.saison-hiver .vc-m:nth-child(5) .v { font-weight: 700; color: var(--neige); }

/* Confiance : 3 barres montantes + libellé. */
html.saison-hiver .vc-conf { margin-top: 1px; height: 17px; gap: 2px; align-items: flex-end; padding-bottom: 2px; box-sizing: border-box; }
html.saison-hiver .vc-conf i {
  width: 4px; border-radius: 1px; background: rgba(220,232,245,.2); flex: none;
}
html.saison-hiver .vc-conf i:nth-child(1) { height: 5px; }
html.saison-hiver .vc-conf i:nth-child(2) { height: 9px; }
html.saison-hiver .vc-conf i:nth-child(3) { height: 13px; }
html.saison-hiver .vc-conf i.f,
html.saison-hiver .vc-conf.mid i.f,
html.saison-hiver .vc-conf.warn i.f,
html.saison-hiver .vc-conf.bad i.f { background: var(--t1); }
html.saison-hiver .vc-conf b {
  align-self: center; margin-left: 5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-family: var(--f-texte); font-size: 13px; line-height: 17px; font-weight: 700; color: var(--neige);
}

/* ── 2.6 Pied : bouton « Comparer les books » ── */
html.saison-hiver .vc-foot {
  display: flex; flex-direction: column; align-items: stretch; gap: 6px;
  margin-top: 10px; padding: 0; border: 0; background: none;
}
/* L'émoji de tête (⚖️) est dans un .sp-emo déjà masqué par la partie 1 : aucun ::first-letter ici,
   sinon c'est le « C » de « Comparer » qui disparaît. */
html.saison-hiver .vc-expand {
  display: block; width: 100%; min-height: 44px; box-sizing: border-box; padding: 0 14px;
  border-radius: 12px; border: 1px solid var(--filet-2); background: transparent;
  font-family: var(--f-texte); font-size: 13px; line-height: 42px; font-weight: 700; color: var(--t1);
  text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer;
}
html.saison-hiver .vc-expand:hover { background: rgba(234,246,255,.05); border-color: rgba(234,246,255,.3); }
html.saison-hiver .vc.open .vc-expand {
  border-color: rgba(234,246,255,.3); background: rgba(234,246,255,.07); color: var(--neige); font-weight: 800;
}
html.saison-hiver .vc-chev {
  display: inline-block; width: 16px; height: 16px; margin-left: 4px; vertical-align: middle; margin-top: -2px;
  font-size: 0; color: transparent; background: var(--t1);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .18s ease;
}
html.saison-hiver .vc.open .vc-chev { transform: rotate(180deg); background: var(--neige); }
/* Note de pied (compétition d'un marché dérivé) : elle répète le contexte déjà affiché en haut
   de carte (« UFC » sous « UFC ») et n'existe pas dans la maquette → masquée dans ce thème. */
html.saison-hiver .vc-footnote { display: none; }

/* ── 2.7 Tiroir « Toutes les cotes » ── */
html.saison-hiver .vc-cmp {
  margin-top: 0; padding: 14px 0 0; border: 0; background: none;
}
html.saison-hiver .drawer-h {
  justify-content: space-between; align-items: center; gap: 4px 12px; padding: 0 0 6px;
}
html.saison-hiver .drawer-h .t {
  font-family: var(--f-texte); font-size: 12px; line-height: 16px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase; color: var(--t3);
}
html.saison-hiver .drawer-h .s { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--t3); }
html.saison-hiver .drawer-h .s::before {
  content: ""; display: inline-block; width: 16px; height: 11px; margin-right: 6px; vertical-align: -1px;
  border-radius: 3px; background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .tscroll { padding: 0; }
/* Largeur fixe : le tableau tient dans la carte (les noms de camp passent à la ligne). */
html.saison-hiver .btable { min-width: 0; width: 100%; table-layout: fixed; }
html.saison-hiver .btable thead th:first-child { width: 34%; }
html.saison-hiver .btable thead th.ca,
html.saison-hiver .btable thead th.cb { white-space: normal; overflow-wrap: anywhere; line-height: 18px; vertical-align: bottom; }
html.saison-hiver .btable tr.refrow td.bk { white-space: normal; }
html.saison-hiver .btable th,
html.saison-hiver .btable td {
  padding: 9px 10px; font-size: 13px; line-height: 20px;
  background: none; background-color: transparent; border-left: 0;
}
html.saison-hiver .btable th:first-child,
html.saison-hiver .btable td:first-child { padding-left: 6px; }
html.saison-hiver .btable thead th {
  padding-top: 4px; padding-bottom: 6px;
  font-family: var(--f-texte); font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none;
  color: var(--t4); border-bottom: 1px solid var(--filet);
}
html.saison-hiver .btable thead th.ca,
html.saison-hiver .btable thead th.cb { font-weight: 800; color: var(--t1); }
/* Pastilles de camp dans les en-têtes (le camp se lit à la lettre, pas à la couleur du texte). */
html.saison-hiver .btable thead th.ca::before,
html.saison-hiver .btable thead th.cb::before {
  display: inline-flex; align-items: center; justify-content: center; vertical-align: -4px;
  width: 18px; height: 18px; border-radius: 5px; margin-right: 6px;
  font-size: 12px; line-height: 1; font-weight: 800;
}
html.saison-hiver .btable thead th.ca::before { content: "A"; background: var(--camp-a); color: var(--camp-a-ink); }
html.saison-hiver .btable thead th.cb::before { content: "B"; background: var(--camp-b); color: var(--camp-b-ink); }
html.saison-hiver .btable td {
  border-bottom: 1px solid var(--filet-doux);
  font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--t2);
}
html.saison-hiver .btable td.bk {
  font-family: var(--f-texte); font-weight: 700; color: var(--t1);
}
html.saison-hiver .btable td a { color: inherit; text-decoration: none; }
html.saison-hiver .bkdot {
  width: 9px; height: 9px; border-radius: 3px; margin-right: 7px; vertical-align: 0;
  box-shadow: 0 0 0 1px rgba(234,246,255,.35);
}
html.saison-hiver .vcb-link {
  display: inline-flex; align-items: center; justify-content: center; position: relative;
  width: 26px; height: 22px; margin-left: 4px; vertical-align: 0; border-radius: 6px;
  font-size: 13px; font-weight: 800; color: var(--t3); filter: none;
}
html.saison-hiver .vcb-link::after { content: ""; position: absolute; inset: -11px -6px; }
html.saison-hiver .vcb-link:hover { color: var(--neige); background: rgba(234,246,255,.08); }
html.saison-hiver .dash { color: var(--t5); }
/* Ligne fair : référence en pointillés (jamais un book). */
html.saison-hiver .btable tr.refrow td {
  background: rgba(211,219,230,.06); color: var(--fair); font-weight: 700;
  border-top: 1px dashed rgba(211,219,230,.35); border-bottom: 1px dashed rgba(211,219,230,.35);
}
html.saison-hiver .btable tr.refrow td.colA,
html.saison-hiver .btable tr.refrow td.colB {
  background: rgba(211,219,230,.06);
  text-decoration: underline dotted rgba(211,219,230,.75); text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
html.saison-hiver .btable tr.refrow td.bk { font-weight: 800; color: var(--fair); }
html.saison-hiver .btable tr.refrow td em {
  margin-left: 6px; font-family: var(--f-texte); font-style: normal; font-size: 12px; font-weight: 600;
  letter-spacing: 0; text-transform: none; color: var(--t4);
}
/* Meilleure cote du camp : le repère unique, posé autour du chiffre. */
html.saison-hiver .btable td.hit { color: var(--mc-txt); box-shadow: none; }
html.saison-hiver .btable td.hit::after { display: none; }
html.saison-hiver .btable td.hit span {
  display: inline-block; padding: 1px 6px; border-radius: 6px; line-height: 18px;
  background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
  font-weight: 800; color: var(--mc-txt);
}
html.saison-hiver .vcb-load,
html.saison-hiver .vcb-empty { padding: 10px 2px; font-size: 13px; color: var(--t3); }
html.saison-hiver .vcb-load { animation: hvPulse 1.4s ease-in-out infinite; }
@keyframes hvPulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }

/* ── 2.8 Courbe d'évolution de la cote ── */
html.saison-hiver .hist { margin-top: 14px; padding: 0; border: 0; border-radius: 0; background: none; }
html.saison-hiver .hist-h { align-items: center; margin-bottom: 4px; }
html.saison-hiver .hist-h .t {
  min-width: 0; font-size: 12px; line-height: 18px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--t3);
}
/* L'émoji 📈 est dans un .sp-emo masqué par la partie 1 (pas de ::first-letter : il mangerait le « É »). */
html.saison-hiver .hist-var {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 13px; line-height: 18px; font-weight: 700; color: var(--t1); white-space: nowrap;
}
html.saison-hiver .hist-var b,
html.saison-hiver .hist-var.monte,
html.saison-hiver .hist-var.monte b,
html.saison-hiver .hist-var.baisse,
html.saison-hiver .hist-var.baisse b { color: var(--t1); font-weight: 800; }
html.saison-hiver .hist-var b { color: var(--neige); }
html.saison-hiver .hist-var::before {
  content: ""; width: 11px; height: 11px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M14 8l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h14M14 8l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.saison-hiver .hist-var.monte::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17l6-6 4 4 6-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17l6-6 4 4 6-7'/%3E%3Cpath d='M15 8h5v5'/%3E%3C/svg%3E");
}
html.saison-hiver .hist-var.baisse::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7l6 6 4-4 6 7'/%3E%3Cpath d='M15 16h5v-5'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7l6 6 4-4 6 7'/%3E%3Cpath d='M15 16h5v-5'/%3E%3C/svg%3E");
}
html.saison-hiver .hist-plot {
  position: relative; margin-top: 4px;
  /* repères horizontaux discrets (les chiffres restent au-dessus, jamais sur le décor) */
  background: linear-gradient(rgba(211,219,230,.1), rgba(211,219,230,.1)) 0 33% / 100% 1px no-repeat,
              linear-gradient(rgba(211,219,230,.1), rgba(211,219,230,.1)) 0 67% / 100% 1px no-repeat;
}
html.saison-hiver .hist-svg { height: 72px; }
html.saison-hiver .hl-odds { stroke: var(--val); stroke-width: 2; }
html.saison-hiver .hl-fair { stroke: var(--fair); stroke-width: 1.6; stroke-dasharray: 1.5 4; stroke-linecap: round; }
html.saison-hiver .hl-dot {
  width: 8px; height: 8px; margin: -4px 0 0 -4px; background: var(--val);
  box-shadow: 0 0 0 3px rgba(var(--val-rgb),.2), 0 0 10px rgba(var(--val-rgb),.5);
}
html.saison-hiver .hist-f {
  margin-top: 4px; align-items: center; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--t4);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
html.saison-hiver .hist-f .lg { gap: 5px; }
html.saison-hiver .hist-f .lg i { width: 14px; border-top: 2px solid var(--val); }
html.saison-hiver .hist-f .lg i.lf { border-top: 2px dotted var(--fair); margin-left: 8px; }
html.saison-hiver .hist-empty {
  padding: 11px 12px; border: 1px dashed var(--filet); border-radius: 12px;
  font-size: 13px; line-height: 1.5; color: var(--t3);
}

/* ── 2.9 Largeurs ── */
@media (max-width: 1080px) {
  html.saison-hiver .vc-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  html.saison-hiver .vc-m:nth-child(n+4) { border-top: 1px solid var(--filet-doux); }
  /* « Confiance haute / moyenne » : la clé dit déjà « Confiance » → on n'affiche que le niveau. */
  html.saison-hiver .vc-conf .cf-k { display: none; }
}
@media (max-width: 900px) {
  html.saison-hiver .vc .vc-body { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}
@media (max-width: 720px) {
  html.saison-hiver .list { gap: 10px; }
  html.saison-hiver .vc { padding: 12px 14px 14px; }
  html.saison-hiver .vc .vc-body { margin-top: 12px; }
  html.saison-hiver .vc .vc-body .vc-pick { font-size: 19px; line-height: 26px; }
  /* Date : portée à droite de la ligne de contexte, comme la maquette (en-tête = 36 px fixes). */
  html.saison-hiver .vc-when {
    position: absolute; top: 60px; right: 14px; z-index: 2; line-height: 18px;
  }
  html.saison-hiver .vc-when::before { content: none; }
  html.saison-hiver .vc:has(.vc-when) .vc-ctx { padding-right: 96px; }
  html.saison-hiver .vc:has(.vc-when) .vc-body:not(:has(.vc-ctx)) { padding-top: 24px; }
  html.saison-hiver .vc-m { padding: 3px 6px 3px 0; min-height: 35px; box-sizing: border-box; }
  html.saison-hiver .vc .vc-btn { padding: 0 16px; }
  /* « Aussi en value » : lien de pari haut de 44 px sans décaler la ligne (marges négatives). */
  html.saison-hiver .vc-alt-i .betlink { padding: 13px 0; margin: -13px 0; }
  html.saison-hiver .vc-alt-i .betlink::after { inset: 0 -4px; }
  /* Tiroir : lignes de 44 px (cotes cliquables) */
  html.saison-hiver .btable th,
  html.saison-hiver .btable td { padding: 12px 6px; font-size: 13px; }
  html.saison-hiver .btable thead th { padding: 4px 6px 6px; font-size: 12px; }
  html.saison-hiver .btable tr.refrow td.bk em { display: block; margin-left: 0; line-height: 16px; }
}
@media (max-width: 400px) {
  html.saison-hiver .vc .vc-body .vc-pick { font-size: 18px; }
  html.saison-hiver .vc-odds { font-size: 30px; }
  html.saison-hiver .btable th,
  html.saison-hiver .btable td,
  html.saison-hiver .btable thead th { font-size: 12.5px; }
  html.saison-hiver .btable thead th { font-size: 12px; }
}

/* « aussi en value » : « miser » en texte discret, seul le pourcentage en chiffres. */
html.saison-hiver .vc-alt-i .am { font-family: var(--f-texte); font-weight: 500; color: var(--t3); }
html.saison-hiver .vc-alt-i .am b { font-family: var(--f-mono); font-weight: 700; color: var(--t1); }


/* ================================================================
   THÈME DE SAISON « NUIT ALPINE » — PARTIE 3 : tableaux du comparateur.
   En-tête et légende, liste balayable des duels (+ tiroir des books), tableau
   Vainqueur / Classement (outright), vue Écarts.
   Rappels : repère « meilleure cote » UNIQUE = cadre --mc-bd + fond --mc-fill ;
   camps A / B = identité seulement ; value en 3 intensités (t1 / t2 / t3-t4) ;
   rien sous 12 px ; chiffres en --f-mono tabulaires ; les tableaux défilent dans
   LEUR conteneur, jamais la page.
   NB : chaque règle ici est plus spécifique que style.css, y compris que ses
   @media : toute variante mobile est donc redéclarée dans les @media de ce fichier.
   ================================================================ */

/* ── 1. En-tête de section et légende ── */
html.saison-hiver .cmp-head { gap: 6px 12px; margin: 8px 0 12px; }
html.saison-hiver .cmp-head h3 {
  font-family: var(--f-display); font-size: 16px; line-height: 1.5; font-weight: 600;
  letter-spacing: -.01em; color: var(--neige);
}
html.saison-hiver .cmp-head-sub { font-size: 13px; font-weight: 500; color: var(--t3); }

html.saison-hiver .cmp-legend {
  gap: 8px 18px; font-size: 12px; font-weight: 600; color: var(--t3); margin-bottom: 10px;
}
html.saison-hiver .cmp-legend b { color: var(--t1); font-weight: 800; }
html.saison-hiver .cl-sw { border-radius: 5px; border-color: var(--mc-bd); background: var(--mc-fill); }
html.saison-hiver .cl-sw.best { border-color: var(--mc-bd); background: var(--mc-fill); }
html.saison-hiver .cl-sw.val  { border-color: var(--val-bd); background: var(--val-bg); }
html.saison-hiver .cl-sw.gap  { border-color: var(--neige); background: var(--neige); }
/* Légende « meilleure cote » : échantillon du repère unique (cadre + fond), pas d'étoile. */
html.saison-hiver .cl-star {
  display: inline-block; width: 20px; height: 13px; vertical-align: -2px; border-radius: 5px;
  margin-right: 5px; overflow: hidden; font-size: 0; color: transparent;   /* overflow : ligne de base = bas du bloc, comme .cl-sw */
  background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}

/* Pictogramme « bientôt » de l'état vide : émoji masqué dans le thème hiver. */
html.saison-hiver .cmp-soon .cs-ico { display: none; }
html.saison-hiver .cmp-soon, html.saison-hiver .cmp-empty { color: var(--t3); }
html.saison-hiver .cmp-soon b { color: var(--neige); }


/* ================================================================
   2. FACE À FACE — liste balayable (.listwrap)
   ================================================================ */
html.saison-hiver .listwrap {
  --grid: 104px minmax(150px, 200px) minmax(220px, 1fr) minmax(220px, 1fr) 108px 84px 32px;
  border: 1px solid var(--filet); border-radius: 18px;
  background: var(--givre-2);
  box-shadow: inset 0 1px 0 rgba(234,246,255,.05);
  overflow: hidden;
}

/* En-tête de colonnes */
html.saison-hiver .rhead {
  display: grid; grid-template-columns: var(--grid);
  grid-template-areas: "st ctx oa ob fair liq chev";
  gap: 10px 12px; align-items: center; min-height: 36px; padding: 8px 16px;
  background: transparent; border-bottom: 1px solid rgba(190,222,255,.12);
  font-family: var(--f-texte); font-size: 12px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--t4); white-space: nowrap;
}
html.saison-hiver .rhead .h-oa,
html.saison-hiver .rhead .h-ob { color: var(--t4); padding-left: 10px; overflow: hidden; text-overflow: ellipsis; }
html.saison-hiver .rhead .h-oa::before,
html.saison-hiver .rhead .h-ob::before {
  content: "A"; display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; margin-right: 7px; vertical-align: -4px; border-radius: 5px;
  font-size: 12px; font-weight: 800; letter-spacing: 0;
  background: var(--camp-a); color: var(--camp-a-ink);
}
html.saison-hiver .rhead .h-ob::before { content: "B"; background: var(--camp-b); color: var(--camp-b-ink); }
html.saison-hiver .rhead .h-fair { text-align: right; }
html.saison-hiver .rhead .h-liq { text-align: right; }

/* Bandeaux de groupe : pastille + titre + « · N duels » */
html.saison-hiver .grp {
  align-items: center; gap: 4px 8px; padding: 6px 16px; min-height: 30px;
  background: rgba(150,195,255,.03);
  border-top: 1px solid var(--filet-doux); border-bottom: 1px solid var(--filet-doux);
}
html.saison-hiver .grp:first-of-type { border-top: 0; }
html.saison-hiver .grp::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; flex: none;
  box-shadow: inset 0 0 0 1.5px var(--t5);
}
html.saison-hiver .grp.val { background: rgba(var(--val-rgb),.045); }
html.saison-hiver .grp.val::before { background: var(--val); box-shadow: 0 0 10px rgba(var(--val-rgb),.55); }
html.saison-hiver .grp .gt {
  font-family: var(--f-texte); font-size: 13px; font-weight: 800; letter-spacing: 0;
  text-transform: none; color: var(--t1);
}
html.saison-hiver .grp.val .gt { color: var(--neige); }
html.saison-hiver .grp .gc {
  font-family: var(--f-texte); font-size: 13px; font-weight: 600; color: var(--t3);
}
html.saison-hiver .grp .gc::before { content: "· "; }
html.saison-hiver .grp .gnote { font-size: 13px; color: var(--t3); line-height: 1.5; margin: 0 0 2px 16px; }

/* Une ligne de duel */
html.saison-hiver .row { border-bottom: 1px solid rgba(190,222,255,.07); }
html.saison-hiver .row:last-child { border-bottom: 0; }
html.saison-hiver .row::before { background: transparent; width: 3px; }
html.saison-hiver .row.val::before { background: var(--val); box-shadow: 0 0 12px rgba(var(--val-rgb),.45); }
html.saison-hiver .row.noref::before { background: transparent; }
html.saison-hiver .row:hover { background: rgba(150,195,255,.035); }
html.saison-hiver .row[open] { background: rgba(150,195,255,.05); }
html.saison-hiver .row[open] > .rl { border-bottom: 1px solid var(--filet-doux); }

html.saison-hiver .rl {
  grid-template-columns: var(--grid);
  grid-template-areas: "st ctx oa ob fair liq chev";
  gap: 10px 12px; align-items: center; padding: 6px 16px; min-height: 58px;
}
html.saison-hiver .rl:focus-visible { outline: 2px solid var(--glace); outline-offset: -3px; }

/* 1 — verdict value : 3 intensités */
html.saison-hiver .stchip {
  display: inline-flex; align-items: center; height: 30px; box-sizing: border-box;
  padding: 0 10px; border-radius: 9px;
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 15px; font-weight: 700; letter-spacing: -.01em; line-height: 1;
}
html.saison-hiver .stchip.v { gap: 5px; padding-left: 8px; }
html.saison-hiver .stchip.v::before {
  content: ""; width: 12px; height: 12px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.saison-hiver .stchip.v,
html.saison-hiver .stchip.v.t1 {                       /* < 3 % : contour seul */
  background: transparent; color: var(--val-txt); box-shadow: inset 0 0 0 1px var(--val-bd);
}
html.saison-hiver .stchip.v.t2 {                       /* 3-7 % : fond teinté */
  background: var(--val-bg); color: var(--val-txt); box-shadow: inset 0 0 0 1px var(--val-bd);
}
html.saison-hiver .stchip.v.t3,
html.saison-hiver .stchip.v.t4,
html.saison-hiver .stchip.v.sure {                     /* ≥ 7 % et gain garanti : pastille pleine */
  background: var(--val); color: var(--val-ink); font-weight: 800;
  box-shadow: 0 0 0 3px rgba(var(--val-rgb),.16), 0 6px 18px -6px rgba(var(--val-rgb),.6);
}
html.saison-hiver .stchip.z {
  height: auto; padding: 0; background: transparent; border: 0; box-shadow: none;
  font-size: 16px; color: var(--t5);
}
html.saison-hiver .stchip.q {
  background: transparent; color: var(--t3); border: 1px dashed var(--filet-2); box-shadow: none;
}
html.saison-hiver .stsub { margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--t4); }
html.saison-hiver .row.val .stsub { color: var(--t2); }

/* 2 — épreuve, sous-titre, date/heure */
html.saison-hiver .ctx1 {
  font-family: var(--f-texte); font-size: 14px; line-height: 18px; font-weight: 800; color: #e3eefa;
}
html.saison-hiver .ctx2 { font-size: 12px; line-height: 16px; font-weight: 600; color: var(--t3); }

html.saison-hiver .ctx3 {
  margin-top: 1px; font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 12px; line-height: 16px; font-weight: 600; color: var(--t2);
}
html.saison-hiver .ctx3.soon {
  margin-top: 3px; padding: 1px 7px; border-radius: 6px;
  background: var(--neige); color: var(--encre); font-weight: 800;
}
/* Le « ⏱ » est dans un .sp-emo, déjà masqué par hiver-1 : aucun ::first-letter ici. */
html.saison-hiver .ctx3.off { font-family: var(--f-texte); font-weight: 600; color: var(--t4); }

/* 3 & 4 — meilleure cote de chaque camp : [A] nom / book · mise ……… cote */
html.saison-hiver .c-o {
  display: block; min-height: 46px; box-sizing: border-box;
  padding: 5px 76px 5px 40px; border-radius: 12px;
  background: rgba(150,195,255,.035);
  box-shadow: inset 0 0 0 1px var(--filet-doux);
}
html.saison-hiver .c-o.oa, html.saison-hiver .c-o.ob { background: rgba(150,195,255,.035); box-shadow: inset 0 0 0 1px var(--filet-doux); }
html.saison-hiver .c-o::before {
  content: "A"; position: absolute; left: 10px; top: 50%; margin-top: -10px;
  width: 20px; height: 20px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-texte); font-size: 12px; font-weight: 800;
  background: var(--camp-a); color: var(--camp-a-ink);
}
html.saison-hiver .c-o.ob::before { content: "B"; background: var(--camp-b); color: var(--camp-b-ink); }
/* Camp qui BAT le fair : boîte neutre, comme l'autre camp (les deux affichent déjà leur
   meilleure cote). La value se lit à la cote verte, à « Miser x % » et au verdict. */
html.saison-hiver .c-o.oa.hit,
html.saison-hiver .c-o.ob.hit {
  background: rgba(150,195,255,.035);
  box-shadow: inset 0 0 0 1px var(--filet-doux);
}
html.saison-hiver .onm,
html.saison-hiver .c-o.ob .onm {
  font-family: var(--f-texte); font-size: 14px; line-height: 18px; font-weight: 800;
  letter-spacing: 0; text-transform: none; color: #e3eefa;
  white-space: normal; overflow-wrap: break-word;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
html.saison-hiver .c-o.hit .onm { color: var(--neige); }
html.saison-hiver .oline { gap: 4px 8px; margin-top: 1px; min-height: 20px; }
/* Le cadre classique (.hit::after + .hit > span relatif) est remplacé par le repère ci-dessus. */
html.saison-hiver .c-o.hit::after { display: none; }
html.saison-hiver .c-o.hit > span { position: static; z-index: auto; }
/* La cote, calée à droite sur toute la hauteur de la cellule (avec ou sans lien de pari) */
html.saison-hiver .c-o .oline > .onumwrap,
html.saison-hiver .c-o .oline > .onum {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
}
html.saison-hiver .onum {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2;
  color: var(--t1); border-bottom: 0;
}
/* Pas de pointillé au repos (réservé à la cote fair) : soulignement plein au survol. */
html.saison-hiver .onumwrap:hover .onum {
  text-decoration: underline; text-decoration-color: var(--val);
  text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
html.saison-hiver .c-o.hit .onum { color: var(--val-txt); }
html.saison-hiver .onum.na { color: var(--t5); border-bottom: 0; }
html.saison-hiver .obk {
  gap: 6px; padding: 0; border: 0; background: transparent; border-radius: 0;
  font-size: 12px; font-weight: 700; color: var(--t2);
}
html.saison-hiver .obk .bd,
html.saison-hiver .rd .bd {
  width: 9px; height: 9px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(234,246,255,.4);
}
/* « Valeur » : redondant avec le cadre, la cote verte et le verdict → retiré pour aérer. */
html.saison-hiver .vtag { display: none; }
html.saison-hiver .ktag {
  padding: 0; border: 0; border-radius: 0; background: transparent;
  font-family: var(--f-mono); font-size: 12px; font-weight: 700; color: var(--val-txt);
}
html.saison-hiver .ktag.split {
  padding: 0 6px; border: 1px solid var(--val-bd); border-radius: 6px; color: var(--val-txt); background: transparent;
}

/* 5 & 6 — fair Pinnacle et liquidité */
html.saison-hiver .c-fair { text-align: right; }
html.saison-hiver .c-fair .k, html.saison-hiver .c-liq .k {
  font-size: 12px; font-weight: 800; letter-spacing: .06em; color: var(--t4);
}
html.saison-hiver .c-fair .v {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 14px; font-weight: 700; color: var(--fair);
  text-decoration: underline dotted rgba(211,219,230,.75); text-decoration-thickness: 1.5px;
  text-underline-offset: 4px;
}
html.saison-hiver .c-liq .v {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 14px; font-weight: 700; color: #e3eefa;
}
html.saison-hiver .c-fair .v.off,
html.saison-hiver .c-liq .v.off { color: var(--t5); text-decoration: none; }

/* Chevron du tiroir */
html.saison-hiver .chev {
  width: 30px; height: 30px; border-radius: 9px; font-size: 0;
  color: var(--t3); background: var(--givre); border: 1px solid var(--filet);
}
/* Même chevron dessiné que les cartes (.vc-chev) ; le glyphe « ▾ » est masqué (font-size 0).
   La rotation à l'ouverture vient déjà de .row[open] .chev (style.css). */
html.saison-hiver .chev::before {
  content: ""; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.saison-hiver .row:hover .chev { color: var(--neige); border-color: var(--filet-2); }
html.saison-hiver .row[open] .chev { color: var(--glace); border-color: rgba(111,211,255,.45); }

/* Tiroir : détail des books */
html.saison-hiver .rd { padding: 12px 16px 14px 19px; background: rgba(8,18,33,.55); }
html.saison-hiver .rdt { font-size: 12px; font-weight: 800; letter-spacing: .1em; color: var(--t2); }
html.saison-hiver .rds { font-size: 12.5px; color: var(--t3); }
html.saison-hiver .rdf { font-size: 13px; line-height: 1.6; color: var(--t3); }
html.saison-hiver .rdf b { color: var(--neige); }
html.saison-hiver .rdf b.pos { color: var(--val-txt); }

html.saison-hiver .rd .tscroll {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--filet); border-radius: 12px; background: var(--givre-2);
}
html.saison-hiver .rd .btable { border-collapse: separate; border-spacing: 0; }
html.saison-hiver .rd .btable th,
html.saison-hiver .rd .btable td { padding: 8px 12px; font-size: 14px; }
html.saison-hiver .rd .btable thead th {
  font-family: var(--f-texte); font-size: 12px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--t4); background: transparent;
  border-bottom: 1px solid rgba(190,222,255,.12);
}
/* Noms des camps : casse normale et coupure aux mots (comme le tiroir Value) ; le camp se lit
   à la pastille A / B posée par hiver-2. */
html.saison-hiver .rd .btable thead th.ca,
html.saison-hiver .rd .btable thead th.cb {
  font-size: 13px; line-height: 18px; font-weight: 800; letter-spacing: 0; text-transform: none;
  color: var(--t1); background: transparent;
  white-space: normal; overflow-wrap: break-word; hyphens: auto;
}
html.saison-hiver .rd .btable thead th.cb { border-left: 1px solid var(--filet-doux); }
html.saison-hiver .rd .btable td {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--t2);
  border-bottom: 1px solid rgba(190,222,255,.07);
}
html.saison-hiver .rd .btable tr:last-child td { border-bottom: 0; }
html.saison-hiver .rd .btable td.bk { font-family: var(--f-texte); font-weight: 700; color: var(--t1); }
html.saison-hiver .rd .btable td.colA { background-color: rgba(168,220,255,.04); }
html.saison-hiver .rd .btable td.colB { background-color: rgba(232,104,63,.04); border-left: 1px solid var(--filet-doux); }
html.saison-hiver .rd .btable td.best,
html.saison-hiver .rd .btable td.best.valu {
  color: var(--mc-txt); font-weight: 800;
  box-shadow: inset 0 0 0 999px var(--mc-fill), inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .rd .btable td.best.valu { color: var(--val-txt); }
/* Cote dans un lien (ou un span) : le repère devient une pastille autour du chiffre, dessinée
   derrière (::before), pour garder une cible tactile haute sans grossir la pastille. Une cote
   en texte nu garde le fond de cellule (arrondi) tant que le JS ne l'entoure pas d'un <span>. */
html.saison-hiver .rd .btable td.best:has(> a, > span:not(.dash)) { box-shadow: none; }
/* Repli, cote en texte nu : même pastille, dessinée par la cellule, calée à droite sur le
   chiffre (largeur en ch : 4 à 5 chiffres tabulaires). */
html.saison-hiver .rd .btable td.best:not(:has(> a, > span:not(.dash))) {
  position: relative; z-index: 0; box-shadow: none;
}
html.saison-hiver .rd .btable td.best:not(:has(> a, > span:not(.dash)))::before {
  content: ""; position: absolute; z-index: -1; right: 6px; top: 50%; height: 22px;
  width: calc(4.5ch + 12px); transform: translateY(-50%); border-radius: 6px;
  background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .rd .btable td.best > a,
html.saison-hiver .rd .btable td.best > span:not(.dash) {
  position: relative; z-index: 0; display: inline-block;
  padding: 1px 6px; margin: -1px -6px; text-decoration: none; border-bottom: 0;
}
html.saison-hiver .rd .btable td.best > a::before,
html.saison-hiver .rd .btable td.best > span:not(.dash)::before {
  content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 50%; height: 22px;
  transform: translateY(-50%); border-radius: 6px;
  background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .rd .btable tr.refrow td { color: var(--fair); background-color: rgba(211,219,230,.04); }
html.saison-hiver .rd .btable tr.refrow td.bk { color: var(--t2); }
html.saison-hiver .rd .btable tr.refrow td.bk em { font-size: 12px; color: var(--t4); }
html.saison-hiver .rd .btable td.noref { font-family: var(--f-texte); font-size: 13px; color: var(--t3); }
html.saison-hiver .rd .btable td .dash { color: var(--t5); }
html.saison-hiver .rd .btable td a,
html.saison-hiver .cmp-tbl td a,
html.saison-hiver .ec-mise a {
  border-bottom: 0; text-decoration: underline dotted rgba(220,232,245,.35);
  text-decoration-thickness: 1px; text-underline-offset: 3px;
}
html.saison-hiver .rd .btable td a:hover { text-decoration-color: var(--val); }


/* ================================================================
   3. TABLEAU OUTRIGHT (Vainqueur / Podium / Classement)
   ================================================================ */
html.saison-hiver .cmp-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border-radius: 16px; border: 1px solid var(--filet);
  background: var(--givre-2); box-shadow: inset 0 1px 0 rgba(234,246,255,.05);
}
html.saison-hiver .cmp-tbl { border-collapse: separate; border-spacing: 0; font-size: 14px; }
html.saison-hiver .cmp-tbl th,
html.saison-hiver .cmp-hd th {
  height: 36px; padding: 8px; background: transparent;
  font-family: var(--f-texte); font-size: 12px; font-weight: 800;
  letter-spacing: 0; text-transform: none; color: var(--t2);
  border-bottom: 1px solid rgba(190,222,255,.12);
}
html.saison-hiver .cmp-tbl th:first-child,
html.saison-hiver .cmp-tbl th:last-child {
  letter-spacing: .06em; text-transform: uppercase; color: var(--t4);
}
html.saison-hiver .cmp-tbl th:first-child { padding-left: 16px; }
html.saison-hiver .cmp-hd .th-sub {
  display: inline; margin-left: 3px; font-size: 12px; font-weight: 800;
  letter-spacing: .06em; color: var(--t4);
}
html.saison-hiver .cmp-tbl td {
  height: 34px; padding: 4px 8px; font-size: 14px;
  border-bottom: 1px solid rgba(190,222,255,.07);
}
html.saison-hiver .cmp-r td { border-bottom: 1px solid rgba(190,222,255,.07); }
html.saison-hiver .cmp-r:last-child td { border-bottom: 0; }
html.saison-hiver .cmp-r:hover td { background-color: rgba(234,246,255,.04); }

html.saison-hiver .cmp-tbl td.cc-name {
  padding-left: 16px; font-family: var(--f-texte); font-size: 14px; font-weight: 800; color: #e3eefa;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
html.saison-hiver .cc-name .betlink:hover { text-decoration-color: var(--val); }

html.saison-hiver .cc {
  text-align: center; font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-weight: 600; color: var(--t2);
}
html.saison-hiver .cmp-tbl td a:hover { text-decoration-color: var(--val); filter: brightness(1.15); }
html.saison-hiver .cc.empty { color: var(--t5); font-weight: 400; }
/* Meilleure cote de la ligne : pastille au repère unique, dessinée DERRIÈRE le chiffre. */
html.saison-hiver .cc.best {
  position: relative; z-index: 0; color: var(--mc-txt); font-weight: 800;
  box-shadow: none; background: transparent;
}
html.saison-hiver .cc.best::after { display: none; }
html.saison-hiver .cc.best::before {
  content: ""; position: absolute; z-index: -1; top: 5px; bottom: 5px; left: 50%;
  width: min(88px, calc(100% - 8px)); transform: translateX(-50%);
  border-radius: 7px; background: var(--mc-fill); box-shadow: inset 0 0 0 1.5px var(--mc-bd);
}
html.saison-hiver .cc.best a { text-decoration-color: rgba(239,255,247,.35); }
/* Pas d'étoile : le repère unique (pastille cadre + fond) suffit, et le vert reste à la value. */
html.saison-hiver .cc-star { display: none; }
/* Classe prévue (cote qui bat un fair) : même logique que la value. */
html.saison-hiver .cc.val { background-color: var(--val-bg); color: var(--val-txt); }

/* Colonne Écart (points de probabilité) */
html.saison-hiver .cmp-tbl td.cc-gap {
  text-align: right; padding-right: 16px; font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 13px; font-weight: 600; color: #b9cadd;
}
html.saison-hiver .cc-gap.notable { color: var(--neige); font-weight: 800; }
html.saison-hiver .cc-gap.muted { font-family: var(--f-texte); font-size: 12px; font-weight: 600; color: var(--t4); }
html.saison-hiver .cc-gap.hot { position: relative; z-index: 0; color: var(--encre); font-weight: 800; }
html.saison-hiver .cc-gap.hot::before {
  content: ""; position: absolute; z-index: -1; top: 4px; bottom: 4px; right: 10px;
  width: min(108px, calc(100% - 16px)); border-radius: 7px; background: var(--neige);
}
html.saison-hiver .cc-mise {
  margin-top: 1px; font-family: var(--f-mono); font-size: 12px; font-weight: 700; color: var(--val-txt);
}
html.saison-hiver .cc-gap.hot .cc-mise { color: var(--encre); }


/* ================================================================
   4. VUE ÉCARTS
   ================================================================ */
html.saison-hiver .ecarts { gap: 10px; }
html.saison-hiver .ec-row {
  background: var(--givre-2); border: 1px solid var(--filet-doux);
  border-left: 3px solid var(--t5); border-radius: 14px; padding: 12px 16px;
  box-shadow: inset 0 1px 0 rgba(234,246,255,.04);
}
html.saison-hiver .ec-row:hover { background: var(--givre-3); border-color: var(--filet); }
html.saison-hiver .ec-row.gros { border-left-color: var(--neige); }
html.saison-hiver .ec-row.notable { border-left-color: var(--glace); }
html.saison-hiver .ec-row.faible { border-left-color: var(--t5); }
html.saison-hiver .ec-row.ouvert { border-color: var(--filet); background: rgba(150,195,255,.06); }
html.saison-hiver .ec-row.gros.ouvert { border-left-color: var(--neige); }
html.saison-hiver .ec-row.notable.ouvert { border-left-color: var(--glace); }

html.saison-hiver .ec-who { font-family: var(--f-texte); font-size: 15px; font-weight: 800; color: var(--neige); }
html.saison-hiver .ec-ep { font-size: 12.5px; font-weight: 500; color: var(--t3); margin-top: 3px; }
/* ecartRow passe par sportTag() : l'émoji est dans un .sp-emo masqué, rien à neutraliser ici. */

/* Jauge : axe 0-100 % de probabilité */
html.saison-hiver .ec-jauge { height: 44px; margin: 0; }
html.saison-hiver .ec-track {
  top: 19px; height: 6px; border-radius: 3px; border: 0; background: rgba(190,222,255,.1);
}
html.saison-hiver .ec-row:hover .ec-track { border: 0; background: rgba(190,222,255,.14); }
html.saison-hiver .ec-seg {
  top: 19px; height: 6px; border-radius: 3px;
  background: linear-gradient(90deg, var(--val), rgba(220,232,245,.7));
}
html.saison-hiver .ec-pin { top: 14px; height: 16px; background: var(--t3); }
html.saison-hiver .ec-pin.best { background: var(--val); box-shadow: 0 0 8px rgba(var(--val-rgb),.6); }
html.saison-hiver .ec-end { font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-size: 12px; font-weight: 700; line-height: 14px; }
html.saison-hiver .ec-end.best { top: 0; color: var(--val-txt); }
html.saison-hiver .ec-end.cons { bottom: 0; color: var(--t3); }

html.saison-hiver .ec-pts { font-family: var(--f-mono); }
html.saison-hiver .ec-pts b { font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--neige); }
html.saison-hiver .ec-row.notable .ec-pts b { color: var(--glace); }
html.saison-hiver .ec-row.faible .ec-pts b { color: var(--t2); }
html.saison-hiver .ec-pts em { font-size: 12px; font-weight: 700; color: var(--t4); }
html.saison-hiver .ec-chevron { font-size: 12px; color: var(--t4); margin-top: 4px; }
html.saison-hiver .ec-row:hover .ec-chevron,
html.saison-hiver .ec-row.ouvert .ec-chevron { color: var(--neige); }

html.saison-hiver .ec-amt {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums;
  font-size: 18px; font-weight: 800; color: var(--val-txt);
}
html.saison-hiver .ec-amt.off { font-size: 14px; font-weight: 700; color: var(--t4); }
html.saison-hiver .ec-mise { font-size: 12.5px; font-weight: 600; color: var(--t2); margin-top: 3px; }
html.saison-hiver .ec-mise a {
  font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-weight: 800; color: var(--neige);
}
html.saison-hiver .ec-mise a:hover { text-decoration-color: var(--val); }
html.saison-hiver .ec-ev { font-size: 12px; color: var(--t4); margin-top: 2px; }
html.saison-hiver .ec-pourquoi { font-size: 12px; line-height: 1.4; color: var(--t4); }

/* Tiroir des books */
html.saison-hiver .ec-books { gap: 8px; margin-top: 2px; padding-top: 12px; border-top: 1px dashed var(--filet); }
html.saison-hiver .ec-bchip {
  gap: 7px; min-height: 32px; box-sizing: border-box; padding: 4px 12px; border-radius: 999px;
  background: var(--givre); border: 1px solid var(--filet);
  font-size: 12.5px; font-weight: 700; color: var(--t2);
}
html.saison-hiver .ec-bchip b { font-family: var(--f-mono); font-variant-numeric: tabular-nums; font-weight: 800; color: var(--neige); }
html.saison-hiver .ec-bchip .bd { width: 9px; height: 9px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(234,246,255,.4); }
html.saison-hiver .ec-bchip.best { background: var(--mc-fill); border: 1.5px solid var(--mc-bd); color: var(--mc-txt); }
html.saison-hiver .ec-bchip.best b { color: var(--mc-txt); }
html.saison-hiver .ec-bchip.absent { opacity: 1; border-style: dashed; background: transparent; color: var(--t5); }
html.saison-hiver .ec-bchip.absent b { color: var(--t5); }
html.saison-hiver a.ec-bchip:hover { border-color: var(--filet-2); background: var(--givre-3); }
html.saison-hiver a.ec-bchip.best:hover { border-color: var(--val); }
html.saison-hiver .ec-raison { font-size: 12px; color: var(--t3); }


/* ================================================================
   5. ADAPTATION AUX LARGEURS
   ================================================================ */
@media (max-width: 1080px) {
  html.saison-hiver .listwrap { --grid: 104px minmax(0, 1fr) minmax(0, 1fr) 32px; }
  html.saison-hiver .rhead { display: none; }
  html.saison-hiver .rl {
    grid-template-areas: "st ctx ctx chev" "st oa ob chev" "st fair liq chev";
    row-gap: 8px; padding: 12px 16px;
  }
  html.saison-hiver .c-st { align-self: start; padding-top: 2px; }
  html.saison-hiver .c-fair .k, html.saison-hiver .c-liq .k { display: inline; }
  html.saison-hiver .c-fair, html.saison-hiver .c-liq { text-align: left; }
  html.saison-hiver .chev { align-self: start; }
}

@media (max-width: 720px) {
  html.saison-hiver .cmp-head h3 { font-size: 15px; }
}

/* Téléphone : un camp par ligne, pleine largeur (cote lisible, cible ≥ 44 px). */
@media (max-width: 640px) {
  html.saison-hiver .listwrap { --grid: minmax(0, auto) minmax(0, 1fr); border-radius: 16px; }
  html.saison-hiver .rl {
    grid-template-areas: "st ctx" "oa oa" "ob ob" "fair liq";
    gap: 8px 10px; padding: 12px 12px 12px 14px;
  }
  html.saison-hiver .c-st { align-self: start; padding-top: 0; max-width: 150px; }
  html.saison-hiver .c-ctx { text-align: right; padding-right: 40px; }
  /* Épreuve et sous-titre : jusqu'à 2 lignes plutôt qu'une coupure (la hauteur ne manque pas). */
  html.saison-hiver .c-ctx .ctx1,
  html.saison-hiver .c-ctx .ctx2 {
    white-space: normal; overflow-wrap: break-word;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  html.saison-hiver .chev { position: absolute; top: 12px; right: 10px; }
  html.saison-hiver .c-o { min-height: 50px; padding: 6px 80px 6px 40px; }
  html.saison-hiver .onum { font-size: 20px; }
  html.saison-hiver .c-o .oline > .onumwrap { padding: 11px 0; }  /* cible tactile ≥ 44 px */
  html.saison-hiver .c-fair { text-align: left; }
  html.saison-hiver .c-liq { text-align: right; }
  html.saison-hiver .grp { padding: 6px 14px; }
  html.saison-hiver .grp .gnote { margin-left: 16px; }
  html.saison-hiver .rd { padding: 12px 12px 14px 14px; }
  /* Détail des books : lignes de 44 px, cotes cliquables sur toute la hauteur (marges négatives :
     aucun décalage). */
  html.saison-hiver .rd .btable th,
  html.saison-hiver .rd .btable td { padding: 12px 10px; font-size: 13px; }
  html.saison-hiver .rd .btable thead th { padding: 6px 8px 8px; font-size: 12px; }
  html.saison-hiver .rd .btable thead th.ca,
  html.saison-hiver .rd .btable thead th.cb { font-size: 13px; }
  html.saison-hiver .rd .btable td a,
  html.saison-hiver .rd .btable td.best > a { display: inline-block; padding: 12px 6px; margin: -12px -6px; }
  html.saison-hiver .rd .btable td.best:not(:has(> a, > span:not(.dash)))::before { right: 4px; }
}

@media (max-width: 560px) {
  html.saison-hiver .cmp-tbl,
  html.saison-hiver .cmp-tbl td,
  html.saison-hiver .cmp-tbl.outright td { font-size: 13px; }
  html.saison-hiver .cmp-tbl th,
  html.saison-hiver .cmp-hd th { font-size: 12px; padding: 8px 4px; }
  html.saison-hiver .cmp-tbl th:first-child { padding-left: 12px; }
  html.saison-hiver .cmp-tbl td { padding: 4px 4px; height: 44px; }
  html.saison-hiver .cmp-tbl td.cc-name { padding-left: 12px; font-size: 13px; }
  html.saison-hiver .cmp-tbl td.cc-gap { padding-right: 10px; font-size: 12px; }
  html.saison-hiver .cc-gap.hot::before { right: 4px; width: calc(100% - 8px); }
  html.saison-hiver .cc.best::before { top: 7px; bottom: 7px; width: calc(100% - 6px); }
  /* Cotes et noms cliquables sur toute la hauteur de la ligne (44 px), sans décalage. */
  html.saison-hiver .cmp-tbl td a { display: inline-block; padding: 15px 4px; margin: -15px -4px; }
  /* Noms figés à gauche pendant le défilement horizontal vers les autres books. */
  html.saison-hiver .cmp-tbl.outright tr > :first-child {
    position: sticky; left: 0; z-index: 1;
    background: linear-gradient(var(--givre-2), var(--givre-2)), var(--nuit);
    box-shadow: 1px 0 0 var(--filet);
  }
  html.saison-hiver .cmp-tbl.outright .cmp-r:hover > td:first-child {
    background: linear-gradient(rgba(234,246,255,.04), rgba(234,246,255,.04)),
                linear-gradient(var(--givre-2), var(--givre-2)), var(--nuit);
  }
  html.saison-hiver .cmp-legend { font-size: 12px; gap: 6px 12px; }
}

@media (max-width: 860px) {
  html.saison-hiver .ec-row { gap: 10px 14px; padding: 12px 14px; }
  html.saison-hiver .ec-act { text-align: left; }
  html.saison-hiver .ec-bchip { min-height: 44px; padding: 6px 14px; }
  html.saison-hiver .ec-who { font-size: 14.5px; }
  /* Lien de pari « @2.00 PMU » : cible de 44 px sans décaler la ligne (marges négatives). */
  html.saison-hiver .ec-mise a { display: inline-block; padding: 13px 8px; margin: -13px -8px; }
}

@media (max-width: 400px) {
  html.saison-hiver .cmp-tbl,
  html.saison-hiver .cmp-tbl td,
  html.saison-hiver .cmp-tbl th { font-size: 12px; }
  html.saison-hiver .c-o { padding-right: 74px; }
  html.saison-hiver .onum { font-size: 18px; }
}


/* ================================================================
   THÈME DE SAISON « NUIT ALPINE » — PARTIE 4 : page d'accueil (#landing) et fenêtre de
   connexion / abonnement (#paywall).
   Tout passe par html.saison-hiver. Décor (aurore, crêtes) en images de fond CSS : aucun
   élément ajouté, rien ne change en thème classique.
   ================================================================ */

/* ── Images de décor (SVG en data-URI) ── */
html.saison-hiver .lp,
html.saison-hiver .paywall {
  --lp-aurore: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 240' preserveAspectRatio='none'><defs><filter id='b' filterUnits='userSpaceOnUse' x='-120' y='-120' width='630' height='480'><feGaussianBlur stdDeviation='16'/></filter></defs><g filter='url(%23b)' fill='none' stroke-linecap='round'><path d='M-40 96 C60 26 160 126 260 56 S400 16 440 46' stroke='%2345c8ff' stroke-width='34' opacity='.15'/><path d='M-40 146 C80 96 180 176 290 116 S410 82 440 106' stroke='%238f7dff' stroke-width='24' opacity='.12'/><path d='M120 34 C200 8 280 64 420 26' stroke='%2345c8ff' stroke-width='22' opacity='.09'/></g></svg>");
  --lp-crete-loin: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 64' preserveAspectRatio='none'><path d='M0 30L18 26L36 29L58 18L74 24L96 12L112 19L136 8L152 15L170 11L192 22L214 16L236 26L262 14L282 20L306 7L324 15L346 12L368 22L390 30V64H0Z' fill='%231a3564'/><path d='M0 30L18 26L36 29L58 18L74 24L96 12L112 19L136 8L152 15L170 11L192 22L214 16L236 26L262 14L282 20L306 7L324 15L346 12L368 22L390 30' fill='none' stroke='%23c8e6ff' stroke-opacity='.3' stroke-width='1' vector-effect='non-scaling-stroke'/><path d='M52 20.6L58 18L64 20.2M90 14.6L96 12L102 14.8M129 11L136 8L143 11.2M256 16.6L262 14L268 16.4M299 10L306 7L313 10.4' fill='none' stroke='%23eaf6ff' stroke-opacity='.7' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke'/></svg>");
  --lp-crete-mi: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 64' preserveAspectRatio='none'><path d='M0 40L26 36L50 41L78 30L102 38L128 32L156 42L186 33L210 39L238 29L266 37L292 31L320 40L350 33L372 38L390 40V64H0Z' fill='%2310254a'/></svg>");
  --lp-crete-pres: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 64' preserveAspectRatio='none'><path d='M0 52L40 47L72 52L110 45L150 51L190 46L232 53L270 47L312 52L350 46L390 52V64H0Z' fill='%23081221'/></svg>");
  --lp-fleche: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>");
  --lp-coche: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>");
}

/* Le décor global de l'appli (partie 1) n'a rien à faire sur l'accueil : il a le sien. */
html.saison-hiver body.landing .hv-sky { display: none; }
html.saison-hiver body.landing { background: var(--nuit); }

/* ── Conteneur : pleine largeur, contenu ≤ 1040 px. --lp-pad = gouttière latérale, réutilisée
      par les blocs « plein cadre » (en-tête, héros) via des marges négatives exactes. ── */
html.saison-hiver .lp {
  --lp-pad: max(16px, calc((100vw - 1040px) / 2));
  max-width: none; margin: 0;
  padding: 0 var(--lp-pad) 40px;
  color: var(--t1);
  font-family: var(--f-texte);
  font-variant-numeric: tabular-nums;
}
html.saison-hiver #landing .hv-ic {
  display: inline-block; flex: none; width: 20px; height: 20px;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}
html.saison-hiver #landing .vt-emo { display: none; }
html.saison-hiver #landing button:focus-visible,
html.saison-hiver #paywall button:focus-visible {
  outline: 2px solid var(--glace); outline-offset: 2px;
}

/* ── En-tête visiteur ── */
html.saison-hiver .lp-nav {
  margin: 0 calc(-1 * var(--lp-pad));
  padding: 6px var(--lp-pad);
  gap: 4px;
  background: rgba(15,33,69,.9);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
html.saison-hiver .lp-brand {
  gap: 8px; min-height: 44px; margin-right: auto;
  color: var(--neige); letter-spacing: 0;
}
html.saison-hiver .lp-brand b {
  font-family: var(--f-display); font-weight: 600; font-size: 18px; letter-spacing: -.01em;
}
html.saison-hiver .lp-mark { width: 24px; height: 24px; color: var(--neige); }
html.saison-hiver .lp-nav-act { gap: 2px; }

/* Boutons de l'accueil : plein = neige, secondaire = contour givre. */
html.saison-hiver .lp-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 22px; border: 0; border-radius: 13px;
  background: var(--neige); color: var(--encre);
  font-family: var(--f-texte); font-size: 15px; font-weight: 800; letter-spacing: 0;
  box-shadow: 0 12px 28px -16px rgba(111,211,255,.7);
  transition: background .15s ease, transform .1s ease;
}
html.saison-hiver .lp-cta:hover { background: #ffffff; transform: translateY(-1px); }
html.saison-hiver .lp-ghost {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0 20px; border: 0; border-radius: 13px;
  background: rgba(234,246,255,.04); color: var(--neige);
  box-shadow: inset 0 0 0 1px rgba(234,246,255,.36);
  font-family: var(--f-texte); font-size: 14px; font-weight: 700; white-space: nowrap;
  transition: background .15s ease, box-shadow .15s ease;
}
html.saison-hiver .lp-ghost:hover { background: rgba(234,246,255,.09); box-shadow: inset 0 0 0 1px rgba(234,246,255,.6); }
html.saison-hiver .lp-nav-act .lp-ghost {
  display: inline-flex; min-height: 44px; padding: 0 10px; border-radius: 10px;
  background: none; box-shadow: none; color: var(--t1); font-size: 13px; font-weight: 700;
}
html.saison-hiver .lp-nav-act .lp-ghost:hover { color: #fff; background: rgba(234,246,255,.06); }
html.saison-hiver .lp-cta.sm {
  min-height: 44px; padding: 0 13px; border-radius: 12px; font-size: 13px; white-space: nowrap;
  box-shadow: none;
}

/* ── Héros : ciel de nuit, aurore discrète en haut, crêtes qui le ferment ── */
html.saison-hiver .lp-hero {
  position: relative; isolation: isolate;
  margin: 0 calc(-1 * var(--lp-pad));
  padding: 26px var(--lp-pad) 0;
  border-bottom: 0;
  background:
    var(--lp-aurore) center top / 100% 250px no-repeat,
    linear-gradient(180deg, #0f2145 0%, #0c1a38 55%, #0a1731 100%);
}
html.saison-hiver .lp-eyebrow,
html.saison-hiver .lp-niche .lp-eyebrow {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; line-height: 16px; font-weight: 700;
  letter-spacing: 0; text-transform: none; color: var(--t2);
}
html.saison-hiver .lp-eyebrow::before {
  content: ""; flex: none; width: 18px; height: 2px; border-radius: 1px; background: var(--glace);
}
html.saison-hiver .lp-hero h1 {
  margin: 10px 0 0; max-width: 760px;
  font-family: var(--f-display); font-weight: 600;
  font-size: 24px; line-height: 30px; letter-spacing: -.015em;
  color: #eef7ff; text-wrap: balance;
}
/* 2e phrase : bloc à part, atténué (maquette A) — le seul accent vif reste le bouton « Commencer ». */
html.saison-hiver .lp-hero h1 em { display: block; font-style: normal; color: #c3d3e6; text-wrap: balance; }
html.saison-hiver .lp-lead {
  margin: 14px 0 0; max-width: 680px;
  font-size: 14px; line-height: 21px; font-weight: 500; color: #b9cadd;
}
html.saison-hiver .lp-lead b { font-weight: 800; color: var(--neige); }
html.saison-hiver .lp-lead2 { margin-top: 10px; color: var(--t3); }
html.saison-hiver .lp-lead2 b { color: var(--t1); }

/* Forfait de saison : billet à encoches (les encoches sont de vrais trous : masque). */
html.saison-hiver .lp-saison:not([hidden]) {
  --stub: 112px;
  display: flex; position: relative;
  margin-top: 18px; max-width: 560px; min-height: 132px;
  border-radius: 18px;
  background: rgba(150,195,255,.07);
  box-shadow: inset 0 0 0 1px var(--filet-2);
  -webkit-mask-image:
    radial-gradient(circle 9px at calc(100% - var(--stub)) 0, #0000 92%, #000 100%),
    radial-gradient(circle 9px at calc(100% - var(--stub)) 100%, #0000 92%, #000 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    radial-gradient(circle 9px at calc(100% - var(--stub)) 0, #0000 92%, #000 100%),
    radial-gradient(circle 9px at calc(100% - var(--stub)) 100%, #0000 92%, #000 100%);
  mask-composite: intersect;
}
html.saison-hiver .lps-main { flex: 1; min-width: 0; padding: 14px 12px 12px 16px; }
html.saison-hiver .lps-k {
  display: flex; align-items: center; gap: 7px; min-height: 16px; white-space: nowrap;
  font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--t2);
}
html.saison-hiver #landing .lps-k .hv-ic { width: 15px; height: 15px; stroke-width: 2; color: var(--neige); }
html.saison-hiver .lps-t {
  margin: 6px 0 0; font-family: var(--f-display);
  font-size: 18px; line-height: 24px; font-weight: 600; letter-spacing: 0; color: #eef7ff;
}
html.saison-hiver .lps-sports {
  list-style: none; margin: 8px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px;
}
html.saison-hiver .lps-sports li {
  display: flex; align-items: center; gap: 7px; min-height: 20px; white-space: nowrap;
  font-size: 13px; font-weight: 700; color: var(--t1);
}
html.saison-hiver .lps-sports li i {
  flex: none; width: 8px; height: 8px; border-radius: 50%; font-style: normal;
}
html.saison-hiver .lps-sports li i.neige {
  background: var(--saut); box-shadow: 0 0 0 1px rgba(234,246,255,.35);
}
html.saison-hiver .lps-stub {
  position: relative; flex: none; width: var(--stub); box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 18px 8px 12px; text-align: center;
  border-left: 1.5px dashed rgba(190,222,255,.34);
}
html.saison-hiver .lps-stub::before {            /* fente de perforation */
  content: ""; position: absolute; left: 50%; top: 8px; margin-left: -11px;
  width: 22px; height: 5px; border-radius: 3px;
  background: var(--nuit-2); box-shadow: inset 0 0 0 1px rgba(190,222,255,.28);
}
html.saison-hiver .lps-lieu {
  max-width: 100%; overflow-wrap: anywhere;
  font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--t2);
}
html.saison-hiver .lps-j {
  margin-top: 4px; white-space: nowrap;
  font-family: var(--f-display); font-size: 32px; line-height: 36px; font-weight: 700;
  letter-spacing: -.02em; color: #eef7ff; font-variant-numeric: tabular-nums;
}
html.saison-hiver .lps-date {
  margin-top: 4px; max-width: 96px;
  font-size: 12px; line-height: 16px; font-weight: 700; color: var(--t2);
}

/* Appels à l'action : deux colonnes égales, la flèche sur « Commencer ». */
html.saison-hiver .lp-actions {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
  margin: 14px 0 0; max-width: 560px;
}
html.saison-hiver .lp-actions .lp-cta::after {
  content: ""; flex: none; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: var(--lp-fleche) center / contain no-repeat;
  mask: var(--lp-fleche) center / contain no-repeat;
}

/* Chiffres : sous les crêtes. Les crêtes (3 plans) + la nuit sont peintes derrière le bloc,
   sur toute la largeur, et se terminent 2 px au-dessus : jamais sous un chiffre. */
html.saison-hiver .lp-stats {
  position: relative;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
  margin-top: 76px;
  border-radius: 14px;
  background: rgba(150,195,255,.05);
  box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver .lp-stats::before {
  content: ""; position: absolute; z-index: -1;
  top: -58px; bottom: 0;
  left: calc(-1 * var(--lp-pad)); right: calc(-1 * var(--lp-pad));
  pointer-events: none;
  background:
    var(--lp-crete-pres) 0 0 / 330px 56px repeat-x,
    var(--lp-crete-mi)   0 0 / 430px 56px repeat-x,
    var(--lp-crete-loin) 0 0 / 600px 56px repeat-x,
    linear-gradient(var(--nuit), var(--nuit)) 0 55px / 100% calc(100% - 55px) no-repeat;
}
html.saison-hiver .lp-stats div {
  min-width: 0; padding: 9px 6px 10px 10px;
  background: none; border: 0; border-radius: 0;
  border-left: 1px solid rgba(190,222,255,.12);
}
html.saison-hiver .lp-stats div:first-child { border-left: 0; padding-left: 12px; }
html.saison-hiver .lp-stats b {
  font-family: var(--f-mono); font-size: 20px; line-height: 24px; font-weight: 700;
  letter-spacing: 0; color: #eef7ff; font-variant-numeric: tabular-nums;
}
html.saison-hiver .lp-stats span {
  margin-top: 2px; font-size: 12px; line-height: 15px; font-weight: 600; color: var(--t3);
}

/* ── Sections ── */
html.saison-hiver .lp-sec { padding: 28px 0 4px; border-bottom: 0; }
html.saison-hiver .lp-sec h2 {
  margin: 0; font-family: var(--f-display); font-weight: 600;
  font-size: 16px; line-height: 22px; letter-spacing: -.01em; color: #eef7ff; text-wrap: balance;
}
html.saison-hiver .lp-sub {
  margin-top: 6px; max-width: 680px;
  font-size: 13px; line-height: 19px; font-weight: 500; color: #b3c4d8;
}
html.saison-hiver .lp-note {
  margin-top: 10px; font-style: normal;
  font-size: 13px; line-height: 18px; font-weight: 500; color: #9fb3cc;
}

/* « Pourquoi Pinnacle » : frise en trois étapes reliées par un pointillé. */
html.saison-hiver .lp-sec:not(.lp-niche) .lp-steps {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 14px;
}
html.saison-hiver .lp-sec:not(.lp-niche) .lp-step {
  position: relative;
  display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 12px; align-items: start; align-content: start;
  padding: 0; background: none; border: 0; border-radius: 0;
}
html.saison-hiver .lp-sec:not(.lp-niche) .lp-step:not(:last-child)::after {
  content: ""; position: absolute; left: 15px; top: 36px; bottom: -10px;
  border-left: 1.5px dashed rgba(190,222,255,.3); pointer-events: none;
}
html.saison-hiver .lp-step .n {
  grid-row: 1 / span 2; margin: 0;
  width: 32px; height: 32px; border-radius: 10px;
  background: #0e1b31; box-shadow: inset 0 0 0 1px rgba(190,222,255,.32);
  font-family: var(--f-mono); font-size: 14px; font-weight: 700; color: var(--neige);
}
html.saison-hiver .lp-sec:not(.lp-niche) .lp-step:nth-child(3) .n {
  background: #0b2427; box-shadow: inset 0 0 0 1px var(--val-bd); color: var(--val-txt);
}
html.saison-hiver .lp-step h3 {
  margin: 0; font-size: 14px; line-height: 20px; font-weight: 800; letter-spacing: 0; color: #eef7ff;
}
html.saison-hiver .lp-step p { margin: 0; font-size: 13px; line-height: 18px; font-weight: 500; color: #a9bbd0; }
html.saison-hiver .lp-step b { color: var(--t1); font-weight: 700; }

/* Galerie « À quoi ça ressemble » : masquée en hiver. Les captures (/img/apercu-*.webp) montrent
   l'ANCIEN thème (vert fluo, émojis) avec un texte de 3 à 5 px sur téléphone, et la maquette A n'a
   pas cette section : la carte « Ce que tu lis en trois secondes » joue ce rôle. Pour la rétablir,
   il faudra des captures du thème hiver. */
html.saison-hiver #landing .lp-sec:has(> .lp-shot) { display: none; }

/* « Ce que tu lis en trois secondes » : deux camps côte à côte, repère meilleure cote unique. */
html.saison-hiver .lp-demo {
  position: relative;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
  margin-top: 12px; max-width: 620px; padding: 14px;
  border-radius: 18px; background: var(--givre); border: 1px solid var(--filet);
  box-shadow: inset 0 1px 0 rgba(234,246,255,.06);
}
html.saison-hiver .lp-demo::before {
  content: ""; position: absolute; left: 28px; right: 28px; top: -1px; height: 1px;
  background: linear-gradient(90deg, rgba(234,246,255,0), rgba(234,246,255,.55), rgba(234,246,255,0));
}
html.saison-hiver .lp-demo-head { grid-column: 1 / -1; margin: 0; min-height: 28px; }
html.saison-hiver .lp-tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--t1);
}
html.saison-hiver .lp-tag::before {          /* pastille du sport (ski alpin) */
  content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--ski);
}
html.saison-hiver .lp-badge {
  display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 10px;
  border-radius: 9px; background: var(--val-bg); box-shadow: inset 0 0 0 1px var(--val-bd);
  color: var(--val-txt); font-size: 12px; font-weight: 800; letter-spacing: .08em; white-space: nowrap;
}
html.saison-hiver .lp-badge b {
  font-family: var(--f-mono); font-size: 14px; font-weight: 700; letter-spacing: 0;
}
html.saison-hiver .lp-demo-row {
  min-width: 0;
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  padding: 10px 12px; border: 0; border-radius: 12px;
  background: rgba(150,195,255,.05); box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver .lp-demo-row span {
  flex: none; display: flex; align-items: center; gap: 7px; max-width: 100%;
  font-size: 12px; line-height: 18px; font-weight: 700; color: var(--t1);
}
html.saison-hiver .lp-demo-row span::before {
  content: "A"; flex: none; width: 18px; height: 18px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  background: var(--camp-a); color: var(--camp-a-ink); font-size: 12px; font-weight: 800;
}
html.saison-hiver .lp-demo-row + .lp-demo-row span::before {
  content: "B"; background: var(--camp-b); color: var(--camp-b-ink);
}
html.saison-hiver .lp-demo-row b {
  width: auto; text-align: left; padding: 0 7px; margin-left: -8.5px;
  border: 1.5px solid transparent; border-radius: 9px;
  font-family: var(--f-mono); font-size: 26px; line-height: 32px; font-weight: 700;
  letter-spacing: -.03em; color: #e3eefa;
}
html.saison-hiver .lp-demo-row b.best {
  border-color: var(--mc-bd); background: var(--mc-fill); color: var(--mc-txt);
}
html.saison-hiver .lp-demo-row i {
  display: inline-flex; align-items: center; gap: 6px;
  width: auto; text-align: left; font-style: normal;
  font-size: 12px; line-height: 18px; font-weight: 700; color: var(--t1);
}
html.saison-hiver .lp-demo-row i::before {   /* carré de couleur du book (couleurs de app.js) */
  content: ""; flex: none; width: 9px; height: 9px; border-radius: 3px;
  background: #e2001a; box-shadow: 0 0 0 1px rgba(234,246,255,.35);   /* Winamax */
}
html.saison-hiver .lp-demo-row + .lp-demo-row i::before { background: #ffd200; }   /* Unibet */
html.saison-hiver .lp-demo-meta {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
  margin: 2px 0 0; padding-top: 10px; border-top: 1px solid rgba(190,222,255,.12);
}
html.saison-hiver .lp-demo-meta div { padding: 0; background: none; border: 0; border-radius: 0; min-width: 0; }
html.saison-hiver .lp-demo-meta span {
  margin: 0; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--t4); white-space: nowrap;
}
html.saison-hiver .lp-demo-meta b {
  display: inline-block; margin-top: 2px;
  font-family: var(--f-mono); font-size: 15px; line-height: 20px; font-weight: 700;
  color: #e3eefa; white-space: nowrap;
}
html.saison-hiver .lp-demo-meta div:first-child b {   /* fair : pointillé, convention du site */
  color: var(--fair); border-bottom: 1.5px dotted rgba(211,219,230,.75);
}
/* La note « Exemple illustratif » suit la carte dans le balisage : on la soude visuellement
   au bas de la carte (comme dans la maquette) — même fond, même filet, coins du bas arrondis. */
html.saison-hiver .lp-demo:has(+ .lp-note) {
  padding-bottom: 0; border-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0;
}
html.saison-hiver .lp-demo + .lp-note {
  max-width: 620px; margin-top: 0; padding: 10px 14px 14px;
  background: var(--givre); border: 1px solid var(--filet); border-top: 0; border-radius: 0 0 18px 18px;
}

/* « Pas seulement un comparateur » : tuiles avec icône à trait. */
html.saison-hiver .lp-feats {
  grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px;
}
html.saison-hiver .lp-feats > div {
  display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; align-content: start;
  column-gap: 8px; row-gap: 6px; min-width: 0;
  padding: 10px 12px 12px; border: 0; border-radius: 12px;
  background: rgba(150,195,255,.05); box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver #landing .lp-feats .hv-ic { color: var(--t1); }
html.saison-hiver .lp-feats h4 {
  margin: 0; min-width: 0; font-size: 13px; line-height: 17px; font-weight: 800; letter-spacing: 0; color: #eef7ff;
}
html.saison-hiver .lp-feats p {
  grid-column: 1 / -1; margin: 0; font-size: 13px; line-height: 18px; color: var(--t3);
}

/* « Le parti pris » : trois cartes à icône. */
html.saison-hiver .lp-niche .lp-eyebrow { margin-bottom: 10px; }
html.saison-hiver .lp-niche .lp-steps {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 14px;
}
html.saison-hiver .lp-niche .lp-step {
  display: block; padding: 16px; border: 0; border-radius: 14px;
  background: var(--givre); box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver .lp-niche .lp-step .n {
  display: flex; width: 36px; height: 36px; margin: 0 0 12px;
  background: rgba(111,211,255,.08); box-shadow: inset 0 0 0 1px rgba(111,211,255,.32);
  color: var(--glace); font-size: 18px;
}
html.saison-hiver .lp-niche .lp-step h3 { margin-bottom: 6px; font-size: 14px; line-height: 20px; }
html.saison-hiver .lp-niche .lp-step p { font-size: 13px; line-height: 19px; color: var(--t3); }

/* Couverture */
html.saison-hiver .lp-cover { gap: 10px; margin-top: 14px; }
html.saison-hiver .lp-cover > div {
  padding: 16px; border: 0; border-radius: 14px;
  background: var(--givre); box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver .lp-cover h4 {
  margin: 0 0 12px; font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--t2);
}
html.saison-hiver .lp-pill {
  margin: 0 6px 6px 0; padding: 6px 11px; border: 0; border-radius: 9px;
  background: rgba(150,195,255,.06); box-shadow: inset 0 0 0 1px var(--filet);
  font-size: 13px; font-weight: 700; color: var(--t1);
}
html.saison-hiver .lp-pill.ref {
  color: var(--fair); box-shadow: none; border: 1.5px dotted rgba(211,219,230,.75); padding: 4.5px 9.5px;
}

/* Formules */
html.saison-hiver .lp-plans { gap: 12px; margin-top: 14px; }
html.saison-hiver .lp-plan {
  padding: 20px; border: 1px solid var(--filet); border-radius: 18px; background: var(--givre);
}
html.saison-hiver .lp-plan.pro { border-color: rgba(111,211,255,.45); background: rgba(111,211,255,.06); }
html.saison-hiver .lp-plan-name {
  font-size: 12px; font-weight: 800; letter-spacing: .1em; color: var(--t2);
}
html.saison-hiver .lp-plan.pro .lp-plan-name { color: var(--glace); }
html.saison-hiver .lp-plan-flag {
  padding: 2px 8px; border: 1px solid rgba(111,211,255,.4); border-radius: 999px;
  background: rgba(111,211,255,.08); color: var(--glace);
  font-size: 12px; letter-spacing: .02em; text-transform: none;
}
html.saison-hiver .lp-amount b {
  font-family: var(--f-mono); font-size: 26px; font-weight: 700; letter-spacing: -.02em; color: #eef7ff;
}
html.saison-hiver .lp-plan ul { margin: 16px 0 20px; }
html.saison-hiver .lp-plan li { padding: 6px 0 6px 24px; font-size: 14px; line-height: 20px; color: var(--t1); }
html.saison-hiver .lp-plan li b { color: var(--neige); }
html.saison-hiver .lp-plan li::before {
  content: ""; top: 9px; width: 14px; height: 14px; background: var(--glace);
  -webkit-mask: var(--lp-coche) center / contain no-repeat;
  mask: var(--lp-coche) center / contain no-repeat;
}
html.saison-hiver .lp-plan .lp-cta,
html.saison-hiver .lp-ghost.wide { width: 100%; }
html.saison-hiver .lp-plan-note { font-size: 13px; line-height: 19px; color: var(--t4); }

/* Pied (mention légale : 13 px partout, téléphone compris) */
html.saison-hiver .lp-foot {
  margin-top: 28px; padding: 20px 0 8px; border-top: 1px solid var(--filet-doux);
  font-size: 13px; line-height: 19px; color: var(--t4);
}
html.saison-hiver .lp-foot b { color: var(--t2); }

/* ── Téléphone étroit : l'en-tête ne tient plus avec deux boutons ── */
@media (max-width: 370px) {
  html.saison-hiver .lp-nav-act .lp-ghost { display: none; }
}

/* ── Tablette / ordinateur ── */
@media (min-width: 720px) {
  html.saison-hiver .lp-nav { padding-top: 10px; padding-bottom: 10px; }
  html.saison-hiver .lp-brand b { font-size: 20px; }
  html.saison-hiver .lp-mark { width: 28px; height: 28px; }
  html.saison-hiver .lp-nav-act { gap: 8px; }
  html.saison-hiver .lp-nav-act .lp-ghost { padding: 0 14px; font-size: 14px; }
  html.saison-hiver .lp-cta.sm { padding: 0 16px; font-size: 14px; }

  html.saison-hiver .lp-hero {
    padding-top: 56px;
    background:
      var(--lp-aurore) center top / 100% 330px no-repeat,
      linear-gradient(180deg, #0f2145 0%, #0c1a38 55%, #0a1731 100%);
  }
  html.saison-hiver .lp-eyebrow { font-size: 13.5px; }
  html.saison-hiver .lp-hero h1 { margin-top: 16px; font-size: clamp(30px, 4vw, 44px); line-height: 1.16; }
  html.saison-hiver .lp-lead { margin-top: 18px; font-size: 16.5px; line-height: 1.6; }
  html.saison-hiver .lp-lead2 { font-size: 15px; }
  html.saison-hiver .lp-actions { margin-top: 26px; grid-template-columns: repeat(2, max-content); gap: 12px; }
  html.saison-hiver .lp-actions .lp-cta { padding: 0 28px; font-size: 16px; min-height: 52px; }
  html.saison-hiver .lp-actions .lp-ghost { padding: 0 24px; font-size: 15px; min-height: 52px; }
  html.saison-hiver .lp-stats { margin-top: 88px; }
  html.saison-hiver .lp-stats::before {
    top: -72px;
    background:
      var(--lp-crete-pres) 0 0 / 520px 70px repeat-x,
      var(--lp-crete-mi)   0 0 / 700px 70px repeat-x,
      var(--lp-crete-loin) 0 0 / 980px 70px repeat-x,
      linear-gradient(var(--nuit), var(--nuit)) 0 69px / 100% calc(100% - 69px) no-repeat;
  }
  html.saison-hiver .lp-stats div { padding: 16px 12px 16px 20px; }
  html.saison-hiver .lp-stats div:first-child { padding-left: 20px; }
  html.saison-hiver .lp-stats b { font-size: 28px; line-height: 32px; }
  html.saison-hiver .lp-stats span { margin-top: 4px; font-size: 13px; line-height: 18px; }

  html.saison-hiver .lp-sec { padding: 56px 0 8px; }
  html.saison-hiver .lp-sec h2 { font-size: clamp(20px, 2.1vw, 25px); line-height: 1.3; }
  html.saison-hiver .lp-sub { margin-top: 10px; font-size: 15.5px; line-height: 1.6; }
  html.saison-hiver .lp-note { font-size: 13.5px; }

  html.saison-hiver .lp-sec:not(.lp-niche) .lp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 26px; }
  html.saison-hiver .lp-sec:not(.lp-niche) .lp-step { grid-template-columns: minmax(0, 1fr); }
  html.saison-hiver .lp-step .n { grid-row: auto; margin-bottom: 14px; width: 36px; height: 36px; font-size: 15px; }
  html.saison-hiver .lp-sec:not(.lp-niche) .lp-step:not(:last-child)::after {
    left: 48px; right: -28px; top: 18px; bottom: auto; border-left: 0; border-top: 1.5px dashed rgba(190,222,255,.3);
  }
  html.saison-hiver .lp-step h3 { font-size: 16px; line-height: 22px; margin-bottom: 6px; }
  html.saison-hiver .lp-step p { font-size: 14px; line-height: 21px; }

  html.saison-hiver .lp-demo { margin-top: 18px; padding: 18px; gap: 12px; }
  html.saison-hiver .lp-demo:has(+ .lp-note) { padding-bottom: 0; }
  html.saison-hiver .lp-demo + .lp-note { padding: 12px 18px 18px; }
  html.saison-hiver .lp-demo-row { padding: 12px 14px; }
  html.saison-hiver .lp-demo-row span, html.saison-hiver .lp-demo-row i { font-size: 13px; }
  html.saison-hiver .lp-demo-row b { font-size: 30px; line-height: 36px; }
  html.saison-hiver .lp-demo-meta b { font-size: 17px; }

  html.saison-hiver .lp-feats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
  html.saison-hiver .lp-feats > div { padding: 16px 16px 18px; column-gap: 10px; row-gap: 8px; grid-template-columns: 22px minmax(0, 1fr); }
  html.saison-hiver #landing .lp-feats .hv-ic { width: 22px; height: 22px; }
  html.saison-hiver .lp-feats h4 { font-size: 15px; line-height: 20px; }
  html.saison-hiver .lp-feats p { font-size: 14px; line-height: 20px; }

  html.saison-hiver .lp-niche .lp-steps { gap: 14px; margin-top: 22px; }
  html.saison-hiver .lp-niche .lp-step { padding: 20px; }
  html.saison-hiver .lp-niche .lp-step h3 { font-size: 16px; }
  html.saison-hiver .lp-niche .lp-step p { font-size: 14px; line-height: 21px; }

  html.saison-hiver .lp-cover, html.saison-hiver .lp-plans { gap: 14px; margin-top: 22px; }
  html.saison-hiver .lp-cover > div { padding: 20px; }
  html.saison-hiver .lp-plan { padding: 26px; }
  html.saison-hiver .lp-amount b { font-size: 34px; }
  html.saison-hiver .lp-foot { margin-top: 40px; }
}

/* Ordinateur : le forfait de saison se range à droite du titre (s'il est affiché). */
@media (min-width: 900px) {
  html.saison-hiver .lp-hero:has(> .lp-saison:not([hidden])) {
    display: grid; grid-template-columns: minmax(0, 1fr) 380px; column-gap: 48px;
    grid-template-areas: "eb tk" "h1 tk" "ld tk" "ld2 tk" "act tk" "st st";
    align-items: start;
  }
  html.saison-hiver .lp-hero > .lp-eyebrow { grid-area: eb; }
  html.saison-hiver .lp-hero > h1 { grid-area: h1; }
  html.saison-hiver .lp-hero > .lp-lead { grid-area: ld; }
  html.saison-hiver .lp-hero > .lp-lead2 { grid-area: ld2; }
  html.saison-hiver .lp-hero > .lp-actions { grid-area: act; }
  html.saison-hiver .lp-hero > .lp-stats { grid-area: st; }
  html.saison-hiver .lp-hero > .lp-saison:not([hidden]) {
    grid-area: tk; align-self: center; margin-top: 0; max-width: none; min-height: 150px;
    --stub: 128px;
  }
  html.saison-hiver .lps-main { padding: 18px 14px 16px 20px; }
  html.saison-hiver .lps-t { font-size: 20px; line-height: 26px; }
  html.saison-hiver .lps-j { font-size: 36px; line-height: 40px; }
}

/* ================================================================
   Fenêtre de connexion / création de compte / abonnement (#paywall)
   ================================================================ */
html.saison-hiver .paywall {
  padding: 16px;
  background:
    var(--lp-aurore) center top / 100% 300px no-repeat,
    var(--lp-crete-pres) 0 100% / 330px 56px repeat-x,
    var(--lp-crete-mi)   0 100% / 430px 56px repeat-x,
    var(--lp-crete-loin) 0 100% / 600px 56px repeat-x,
    linear-gradient(180deg, #0f2145 0%, #0b1834 55%, var(--nuit) 100%);
  font-family: var(--f-texte);
}
html.saison-hiver .pw-card {
  position: relative; max-width: 420px;
  padding: 28px 20px 22px;
  border: 1px solid var(--filet-2); border-radius: 22px;
  background: rgba(12,25,48,.94);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px -24px rgba(0,0,0,.85), inset 0 1px 0 rgba(234,246,255,.06);
  color: var(--t1);
}
html.saison-hiver .pw-card::before {
  content: ""; position: absolute; left: 36px; right: 36px; top: -1px; height: 1px;
  background: linear-gradient(90deg, rgba(234,246,255,0), rgba(234,246,255,.55), rgba(234,246,255,0));
}
html.saison-hiver .pw-logo {
  width: 54px; height: 54px; margin-bottom: 14px; border-radius: 16px;
  color: var(--neige); background: rgba(111,211,255,.07);
  border: 1px solid rgba(111,211,255,.3); box-shadow: none;
}
html.saison-hiver .pw-logo svg { width: 30px; height: 30px; filter: none; }
html.saison-hiver .pw-title {
  font-family: var(--f-display); font-size: 26px; font-weight: 600; letter-spacing: -.01em; color: #eef7ff;
}
html.saison-hiver .pw-tag { margin: 6px 0 20px; font-size: 13.5px; line-height: 19px; color: var(--t3); }

html.saison-hiver .pw-tabs {
  gap: 4px; padding: 4px; margin-bottom: 14px; border: 0; border-radius: 14px;
  background: rgba(4,10,22,.5); box-shadow: inset 0 0 0 1px var(--filet);
}
html.saison-hiver .pw-tab {
  min-height: 44px; padding: 0 6px; border-radius: 10px;
  font-family: var(--f-texte); font-size: 14px; font-weight: 700; color: var(--t3);
}
html.saison-hiver .pw-tab:hover { color: var(--neige); }
html.saison-hiver .pw-tab.on { background: var(--neige); color: var(--encre); box-shadow: 0 4px 14px -8px rgba(0,0,0,.8); }

html.saison-hiver .pw-email {
  display: block; min-height: 50px; margin-bottom: 10px; padding: 0 14px;
  text-align: left; font-family: var(--f-texte); font-size: 16px; font-weight: 500;
  color: var(--neige); background: rgba(4,10,22,.55);
  border: 1px solid var(--filet-2); border-radius: 12px;
}
html.saison-hiver .pw-email::placeholder { color: var(--t4); }
html.saison-hiver .pw-email:focus {
  outline: none; border-color: var(--glace); box-shadow: 0 0 0 3px rgba(111,211,255,.18);
}

html.saison-hiver .pw-cta {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 50px; padding: 0 16px; border: 0; border-radius: 13px;
  background: var(--neige); color: var(--encre);
  font-family: var(--f-texte); font-size: 16px; font-weight: 800;
  box-shadow: 0 12px 30px -16px rgba(111,211,255,.7);
}
html.saison-hiver .pw-cta:hover { background: #ffffff; filter: none; }
html.saison-hiver .pw-cta.pw-alt {
  margin-top: 8px; background: rgba(234,246,255,.04); color: var(--neige); border: 0;
  box-shadow: inset 0 0 0 1px rgba(234,246,255,.36); font-weight: 700;
}
html.saison-hiver .pw-cta.pw-alt:hover { background: rgba(234,246,255,.09); }
html.saison-hiver .pw-link {
  min-height: 44px; margin-top: 6px; padding: 0 10px;
  font-family: var(--f-texte); font-size: 13px; font-weight: 600; color: var(--t3);
  text-underline-offset: 3px;
}
html.saison-hiver .pw-link:hover { color: var(--neige); }

html.saison-hiver .pw-hello { margin: 0 0 14px; font-size: 13.5px; line-height: 20px; color: var(--t3); }
html.saison-hiver .pw-hello b { color: var(--neige); }
html.saison-hiver .pw-list { gap: 10px; margin-bottom: 20px; }
html.saison-hiver .pw-list li {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 13.5px; line-height: 19px; color: var(--t2);
}
html.saison-hiver .pw-list b { color: var(--neige); }
html.saison-hiver #paywall .vt-emo { display: none; }
html.saison-hiver #paywall .hv-ic {
  display: inline-block; flex: none; width: 16px; height: 16px; margin-top: 1.5px;
  fill: none; stroke: var(--glace); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}
html.saison-hiver .pw-price {
  margin: 4px 0 16px; font-family: var(--f-mono); font-size: 28px; font-weight: 700;
  letter-spacing: -.02em; color: #eef7ff;
}

html.saison-hiver .pw-msg {
  margin-top: 12px; padding: 9px 12px; border-radius: 10px;
  font-size: 13.5px; line-height: 19px; font-weight: 600;
  color: #ffd98a; background: rgba(255,200,90,.08); box-shadow: inset 0 0 0 1px rgba(255,210,120,.3);
}
html.saison-hiver .pw-msg.err { color: #ffae9c; background: rgba(255,110,90,.09); box-shadow: inset 0 0 0 1px rgba(255,140,120,.36); }
html.saison-hiver .pw-msg.ok  { color: var(--val-txt); background: var(--val-bg); box-shadow: inset 0 0 0 1px var(--val-bd); }
html.saison-hiver .pw-foot { margin-top: 16px; font-size: 12px; line-height: 17px; color: var(--t4); }

html.saison-hiver .pw-preview-x {
  top: calc(12px + env(safe-area-inset-top, 0px));
  min-height: 44px; padding: 0 16px; border: 1px solid var(--filet-2); border-radius: 999px;
  background: rgba(12,25,48,.88); color: var(--t1);
  font-family: var(--f-texte); font-size: 13px; font-weight: 700;
}
html.saison-hiver .pw-preview-x:hover { border-color: var(--glace); color: var(--neige); }
html.saison-hiver .pw-back { left: 12px; right: auto; }

@media (max-width: 560px) {
  html.saison-hiver .paywall { padding: 68px 16px 24px; }
  html.saison-hiver .pw-card { padding: 26px 18px 20px; }
  html.saison-hiver .pw-title { font-size: 24px; }
}
@media (min-width: 720px) {
  html.saison-hiver .pw-card { padding: 34px 32px 26px; }
  html.saison-hiver .pw-title { font-size: 28px; }
}

/* Pied de page : le numéro de téléphone ne se coupe pas sur deux lignes. */
html.saison-hiver .lp-foot b { white-space: nowrap; }



/* Légendes : le cadre « meilleure cote » est BLANC dans ce thème (vert en classique). */
html.saison-hiver .mc-c { display: none; }
html.saison-hiver .mc-h { display: inline; }

/* ── « Pourquoi c'est intéressant » (ski alpin) — version nuit alpine. Icône SVG (jamais
      d'émoji), textes ≥ 12 px, contraste ≥ 4.5:1 (--t2 / --t3 sur la nuit). ── */
html.saison-hiver .why-btn { font-family: var(--f-texte); font-size: 12px; font-weight: 700; color: var(--t3);
  letter-spacing: .02em; }
html.saison-hiver .why-btn:hover,
html.saison-hiver .why-btn[aria-expanded="true"] { color: var(--glace); }
html.saison-hiver .cmp-tbl td.cc-name .why-btn { margin-top: 4px; }
html.saison-hiver .cmp-r.has-why:has(+ .why-row:not([hidden])) td { border-bottom: 0; }
html.saison-hiver .why-row td { height: auto; padding: 0; border-bottom: 1px solid rgba(190,222,255,.07);
  background: rgba(150,195,255,.03); }
html.saison-hiver .why-box { padding: 4px 16px 12px; }
html.saison-hiver .why-list { font-family: var(--f-texte); font-size: 13px; line-height: 19px; font-weight: 600;
  color: var(--t2); padding-left: 0; list-style: none; }
html.saison-hiver .why-list li { position: relative; padding-left: 14px; }
html.saison-hiver .why-list li::before { content: ""; position: absolute; left: 2px; top: 8px; width: 5px; height: 5px;
  border-radius: 50%; background: var(--glace); opacity: .75; }
html.saison-hiver .ofiche { font-family: var(--f-texte); font-size: 12px; line-height: 16px; font-weight: 600;
  color: var(--t3); margin-top: 4px; }
html.saison-hiver .c-o:has(.ofiche)::before { top: 8px; margin-top: 0; }
html.saison-hiver .why-duel { border-color: var(--filet-doux); background: rgba(150,195,255,.035); border-radius: 12px; }
html.saison-hiver .why-h { font-family: var(--f-texte); font-weight: 800; letter-spacing: .08em; color: var(--t3); }
html.saison-hiver .why-nm { font-family: var(--f-texte); font-weight: 800; color: #e3eefa; }
html.saison-hiver .why-col.ca .why-nm { color: var(--camp-a); }
html.saison-hiver .why-col.cb .why-nm { color: var(--camp-b); }
@media (max-width: 560px) {
  html.saison-hiver .why-box { padding: 2px 12px 12px; }
  html.saison-hiver .cmp-tbl td.cc-name .why-btn { font-size: 12px; }
}

/* ── « Globe de cristal » : calendrier de la saison au-dessus d'un classement de Coupe du monde
      (app.js calendrierSaison). FAITS seulement : courses au calendrier par discipline et écart
      avec la saison passée. Écart en NEUTRE (le vert est réservé à la value). Règles de base sans
      préfixe (thème classique), puis version nuit alpine. Textes ≥ 12 px, lisible à 390 px. ── */
.gcal { margin: 0 0 12px; padding: 10px 12px 11px; border: 1px solid var(--line-soft); border-radius: 12px; }
.gcal-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.gcal-ico { flex: none; display: block; color: var(--muted); }
.gcal-t { font-size: 14px; line-height: 20px; font-weight: 800; color: var(--txt); }
.gcal-s { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--dim); }
.gcal-l { display: flex; flex-wrap: wrap; gap: 6px; margin: 9px 0 0; padding: 0; list-style: none; }
.gcal-i { display: inline-flex; align-items: baseline; gap: 5px; min-width: 0; padding: 5px 8px 5px 9px;
  border: 1px solid var(--line-soft); border-radius: 9px; font-size: 13px; line-height: 18px; color: var(--txt-2); }
.gcal-n { font-weight: 800; color: var(--txt); font-variant-numeric: tabular-nums; }
.gcal-lib { overflow-wrap: anywhere; }
.gcal-d { align-self: center; margin-left: 2px; padding: 1px 6px; border-radius: 6px; font-size: 12px; line-height: 16px;
  font-weight: 800; font-variant-numeric: tabular-nums; color: var(--txt-2); background: rgba(150,180,230,.1); }
.gcal-d.egal { color: var(--dim); background: none; box-shadow: inset 0 0 0 1px var(--line-soft); }
.gcal-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gcal-note { margin: 8px 0 0; font-size: 12px; line-height: 17px; font-weight: 500; color: var(--dim); }
.gcal-nw { white-space: nowrap; }

html.saison-hiver .gcal { border-color: var(--filet-doux); border-radius: 16px; background: var(--givre-2); }
html.saison-hiver .gcal-ico { color: var(--glace); }
html.saison-hiver .gcal-t { font-family: var(--f-display); font-size: 14px; font-weight: 600; letter-spacing: -.01em; color: var(--neige); }
html.saison-hiver .gcal-s { font-family: var(--f-texte); font-weight: 600; color: var(--t3); }
html.saison-hiver .gcal-i { font-family: var(--f-texte); font-weight: 600; color: var(--t2);
  border-color: var(--filet-doux); background: var(--givre); border-radius: 10px; }
html.saison-hiver .gcal-i.total { border-color: var(--filet-2); }
html.saison-hiver .gcal-n { font-family: var(--f-mono); font-weight: 700; color: var(--neige); }
html.saison-hiver .gcal-d { font-family: var(--f-mono); font-weight: 700; color: var(--glace); background: rgba(111,211,255,.1); }
html.saison-hiver .gcal-d.moins { color: var(--t2); background: rgba(150,195,255,.08); }
html.saison-hiver .gcal-d.egal { color: var(--t4); background: none; box-shadow: inset 0 0 0 1px var(--filet-doux); }
html.saison-hiver .gcal-note { font-family: var(--f-texte); font-weight: 600; color: var(--t4); }
@media (max-width: 560px) {
  .gcal { padding: 9px 10px 10px; }
  .gcal-s { flex-basis: 100%; }
  html.saison-hiver .gcal { padding: 9px 10px 10px; }
  html.saison-hiver .gcal-i { padding: 4px 7px 4px 8px; }
}

/* ================================================================
   ONGLET HIVER (analyse de course) — thème « Nuit alpine ».
   La mise en page est dans style.css (.hx-*, jetons --hx-*) : ici on remappe les jetons sur ceux
   du thème et on ajoute les reflets « givre ». Maquettes : Analyse-Mobile / Analyse-Ordinateur.
   ================================================================ */
html.saison-hiver .hx {
  --hx-card: var(--givre); --hx-card-2: var(--givre-2);
  --hx-bd: var(--filet); --hx-bd-2: var(--filet-doux);
  --hx-t0: var(--neige-2); --hx-t1: var(--neige); --hx-t2: var(--t2); --hx-t3: var(--t3); --hx-t4: var(--t4);
  --hx-acc: var(--glace); --hx-acc-ink: var(--encre);
  --hx-avis-bg: linear-gradient(180deg, rgba(111,211,255,.11) 0%, rgba(150,195,255,.05) 100%);
  --hx-avis-bd: rgba(111,211,255,.34);
  --hx-val: var(--val); --hx-val-ink: var(--val-ink); --hx-val-txt: var(--val-txt);
  --hx-val-bg: var(--val-bg); --hx-val-bd: var(--val-bd);
  --hx-mc-bd: var(--mc-bd); --hx-mc-fill: var(--mc-fill); --hx-mc-txt: var(--mc-txt);
  --hx-btn: var(--neige); --hx-btn-ink: var(--encre);
  --hx-dot-p: var(--neige); --hx-dot-t: #7f9bc0; --hx-dot-h: var(--t5);
  --hx-teinte: rgba(150,195,255,.08);
  --hx-disp: var(--f-display); --hx-mono: var(--f-mono);
  color: var(--t2); font-family: var(--f-texte);
}
/* Titres en Unbounded 600 (la graisse 800 du classique est trop lourde dans cette police) */
html.saison-hiver .hx-h2, html.saison-hiver .hx-verdict, html.saison-hiver .hx-titre h1,
html.saison-hiver .hx-c-lieu b, html.saison-hiver .hx-pk-nom, html.saison-hiver .hx-idee-t { font-weight: 600; }
html.saison-hiver .hx-h2 { color: #eef7ff; }
/* Cartes « givre » : liseré de lumière en haut + ombre portée de la maquette */
html.saison-hiver .hx-card, html.saison-hiver .hx-head, html.saison-hiver .hx-pick, html.saison-hiver .hx-panel, html.saison-hiver .hx-idee {
  box-shadow: inset 0 1px 0 rgba(234,246,255,.06), 0 16px 30px -20px rgba(0,0,0,.9);
}
html.saison-hiver .hx-card::before, html.saison-hiver .hx-head::before, html.saison-hiver .hx-pick:not(.evite)::before {
  content: ""; position: absolute; left: 28px; right: 28px; top: -1px; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, rgba(234,246,255,0), rgba(234,246,255,.55), rgba(234,246,255,0));
}
html.saison-hiver .hx-card:hover { border-color: rgba(111,211,255,.5); }
html.saison-hiver .hx-avis { box-shadow: inset 0 1px 0 rgba(234,246,255,.08), 0 18px 36px -22px rgba(0,0,0,.95); }
html.saison-hiver .hx-gap.t3 { box-shadow: 0 0 0 3px rgba(var(--val-rgb),.16), 0 6px 18px -6px rgba(var(--val-rgb),.6); }
html.saison-hiver .hx-gs.t3 { box-shadow: 0 0 0 2px rgba(var(--val-rgb),.16); }
html.saison-hiver .hx-sports .chip { min-height: 44px; }
html.saison-hiver .hx-etatv { background: var(--givre-2); border-color: rgba(190,222,255,.24); }
html.saison-hiver .hx-t.froid { color: var(--glace); }
/* Onglet Hiver : flocon à trait, et 4 onglets dans la barre */
html.saison-hiver .vt-btn .hv-ic { width: 16px; height: 16px; }
html.saison-hiver .viewtoggle { grid-template-columns: repeat(4, minmax(118px, auto)); }
@media (max-width: 720px) {
  html.saison-hiver .viewtoggle { grid-template-columns: repeat(4, auto); }
  html.saison-hiver .viewtoggle .vt-btn { padding: 0 8px; gap: 5px; font-size: 13px; }
}
@media (max-width: 374px) {
  html.saison-hiver .viewtoggle .vt-btn .hv-ic { display: none; }
}

/* Favoris écartés (retraite, saison blanche, inactivité) et favori non coté (absence probable) */
.hx-abs { flex: none; font: 700 10px/1 var(--hx-mono); text-transform: uppercase; letter-spacing: .04em; color: var(--hx-t2); border: 1px solid currentColor; border-radius: 4px; padding: 2px 4px; opacity: .85; }
.hx-fr.hx-absent .hx-fn b { color: var(--hx-t3); }
.hx-ecartes { display: flex; align-items: flex-start; gap: 6px; margin: 8px 0 0; font-size: 12px; line-height: 17px; font-weight: 600; color: var(--hx-t3); }
.hx-ecartes .hx-ic { flex: none; width: 14px; height: 14px; margin-top: 1.5px; }
.hx-ecartes b { color: var(--hx-t2); font-weight: 800; }

/* ── Cotes boostées (analyse de course) ── promos des books, jugées face au consensus. Vrai boost
   = vert plein (--val, comme une value) ; boost cosmétique = neutre, il ne vaut pas mieux que le
   marché. Jetons --hx-* : même rendu hors saison d'hiver. */
.hx-bst-l { display: flex; flex-direction: column; gap: 10px; }
.hx-bst { min-width: 0; padding: 12px 14px; border-radius: 20px; background: var(--hx-card); border: 1px solid var(--hx-bd); }
.hx-bst.vrai { border-color: var(--hx-val-bd); box-shadow: 0 0 0 1px var(--hx-val-bg) inset; }
.hx-bst-r1 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; min-height: 26px; }
.hx-bst-mise { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--hx-t3); white-space: nowrap; }
.hx-bst-mise b { font: 700 12px var(--hx-mono); color: var(--hx-t1); }
.hx-bst-sel { margin: 8px 0 6px; font: 800 16px/22px var(--hx-disp); color: var(--hx-t0); letter-spacing: -.01em; overflow-wrap: anywhere; }
.hx-bst-r2 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.hx-bst-prix { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.hx-bst-prix s { font: 600 15px var(--hx-mono); color: var(--hx-t3); }
.hx-bst-prix .hx-ic { width: 14px; height: 14px; color: var(--hx-t3); }
.hx-bst-prix b { font: 700 22px/26px var(--hx-mono); color: var(--hx-mc-txt); letter-spacing: -.02em; }
.hx-bst.vrai .hx-bst-prix b { color: var(--hx-val-txt); }
.hx-bst-cons { font-size: 12px; font-weight: 600; color: var(--hx-t3); }
.hx-bst-cons b { font: 700 12px var(--hx-mono); color: var(--hx-t2); }
.hx-bst-r2 .hx-parier { margin-left: auto; }
.hx-bst-v { display: flex; align-items: flex-start; gap: 6px; margin: 10px 0 0; padding: 7px 10px; border-radius: 10px;
  font-size: 13px; line-height: 18px; font-weight: 700; color: var(--hx-t2); box-shadow: inset 0 0 0 1px var(--hx-bd); }
.hx-bst-v .hx-ic { flex: none; width: 15px; height: 15px; margin-top: 1.5px; stroke-width: 2.4; }
.hx-bst.vrai .hx-bst-v { background: var(--hx-val); color: var(--hx-val-ink); box-shadow: none; font-weight: 800; }
.hx-bst-vide { display: flex; align-items: center; gap: 6px; margin: 14px 0 0; font-size: 12px; line-height: 17px; font-weight: 600; color: var(--hx-t3); }
.hx-bst-vide .hx-ic { flex: none; width: 14px; height: 14px; }

/* ── Onglet Hiver : « Voir toute la saison » (app.js hxSaisonBloc). Les prochaines courses restent en
      cartes ; la suite de la saison se déplie en lignes compactes groupées par étape (lieu + dates).
      Jetons --hx-* : même mise en page dans les deux thèmes, reflets givre en nuit alpine.
      Cibles ≥ 44 px, textes ≥ 12 px, lisible à 390 px. ── */
.hx-sn { margin: 14px 0 0; }
.hx-sn > .hx-sn-btn { width: 100%; justify-content: center; }
.hx-sn-btn .hx-ic { width: 18px; height: 18px; }
.hx-sn-n { font-weight: 600; color: var(--hx-t3); white-space: nowrap; }
.hx-sn-btn[aria-busy="true"] { color: var(--hx-t3); }
.hx-sn.ouvert { margin-top: 6px; }
.hx-ets { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); align-items: start; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hx-et { min-width: 0; padding: 10px 12px 6px; border-radius: 16px; background: var(--hx-card); border: 1px solid var(--hx-bd); }
.hx-et-t { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; min-width: 0; padding: 0 2px 6px;
  border-bottom: 1px solid var(--hx-bd-2); }
.hx-et-d { font: 700 13px/18px var(--hx-mono); color: var(--hx-acc); white-space: nowrap; }
.hx-et-l { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; }
.hx-et-l b { font: 800 16px/22px var(--hx-disp); color: var(--hx-t0); letter-spacing: -.01em; overflow-wrap: anywhere; }
.hx-et-n { margin-left: auto; font-size: 12px; line-height: 18px; font-weight: 600; color: var(--hx-t3); white-space: nowrap; }
.hx-scs { margin: 0; padding: 0; list-style: none; }
.hx-scs li + li { border-top: 1px solid var(--hx-bd-2); }
.hx-sc { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 4px 2px; color: inherit; text-decoration: none; }
.hx-sc:hover .hx-sc-d { color: var(--hx-t0); }
.hx-sc:focus-visible { outline: 2px solid var(--hx-acc); outline-offset: 2px; border-radius: 8px; }
.hx-sc-j { flex: none; width: 8em; font: 600 12px/18px var(--hx-mono); color: var(--hx-t2); white-space: nowrap; }
.hx-sc-d { flex: 1; min-width: 0; font-size: 14px; line-height: 19px; font-weight: 700; color: var(--hx-t1); overflow-wrap: anywhere; }
.hx-sc-bk { display: block; font-size: 12px; line-height: 16px; font-weight: 700; color: var(--hx-acc); }
.hx-sc-h { flex: none; display: inline-flex; align-items: center; gap: 4px; font: 600 12px/18px var(--hx-mono); color: var(--hx-t3); white-space: nowrap; }
.hx-sc-h .hx-ic { width: 14px; height: 14px; }
.hx-sc .hx-c-go { flex: none; margin-left: 0; width: 16px; height: 16px; }
.hx-sn-pied { display: flex; justify-content: center; margin: 12px 0 0; }
html.saison-hiver .hx-et { background: var(--givre); border-color: var(--filet-doux); border-radius: 18px; }
html.saison-hiver .hx-et-l b { font-weight: 600; }
html.saison-hiver .hx-sc-d { font-family: var(--f-texte); }
@media (max-width: 560px) {
  .hx-ets { grid-template-columns: minmax(0, 1fr); }
  .hx-et { padding: 9px 10px 4px; }
  .hx-sc { gap: 8px; }
}

/* ── Entraînements de descente / super-G (analyse de course) ── FAITS constatés : rang et écart à
   chaque entraînement de la semaine, jamais de pronostic. « À surveiller » = teinte de l'avis ;
   rappel en petit en bas. Jetons --hx-* : même rendu hors saison d'hiver. */
.hx-en-ss { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.hx-en-s { min-width: 0; padding: 8px 10px; border-radius: 14px; background: var(--hx-card-2); box-shadow: inset 0 0 0 1px var(--hx-bd-2); }
.hx-en-sh { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.hx-en-n { font: 700 13px/18px var(--hx-mono); color: var(--hx-t1); white-space: nowrap; }
.hx-en-d { font-size: 12px; line-height: 18px; font-weight: 600; color: var(--hx-t3); }
.hx-en-st { margin-left: auto; font: 700 12px/18px var(--hx-mono); letter-spacing: .02em; color: var(--hx-t3); }
.hx-en-s.annulee .hx-en-n { color: var(--hx-t3); text-decoration: line-through; }
.hx-en-t { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.hx-en-t li { display: inline-flex; align-items: baseline; gap: 5px; min-width: 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--hx-t2); }
.hx-en-t b { font-weight: 700; color: var(--hx-t1); overflow-wrap: anywhere; }
.hx-en-t li.fav b, .hx-en-l b.fav { font-weight: 800; color: var(--hx-t0); }
.hx-en-r, .hx-en-e { font: 600 12px/18px var(--hx-mono); color: var(--hx-t3); white-space: nowrap; }
.hx-en-w { margin: 12px 0 0; padding: 10px 12px; border-radius: 14px; background: var(--hx-avis-bg); box-shadow: inset 0 0 0 1px var(--hx-avis-bd); }
.hx-en-w h3 { margin: 0 0 8px; font-size: 13px; line-height: 18px; font-weight: 800; color: var(--hx-t1); }
.hx-en-w h3 span { display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--hx-t3); }
.hx-en-w ul, .hx-en-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hx-en-w li { display: flex; gap: 8px; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--hx-t2); }
.hx-en-w .hx-ic { flex: none; width: 15px; height: 15px; margin-top: 1.5px; color: var(--hx-acc); }
.hx-en-w b { font-weight: 800; color: var(--hx-t0); }
.hx-en-l { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--hx-bd-2); }
.hx-en-l li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; font-size: 13px; line-height: 18px; }
.hx-en-l b { min-width: 0; font-weight: 700; color: var(--hx-t1); overflow-wrap: anywhere; }
.hx-en-l span { font: 600 12px/18px var(--hx-mono); color: var(--hx-t2); }
.hx-en-note { display: flex; align-items: flex-start; gap: 6px; margin: 12px 0 0; font-size: 12px; line-height: 17px; font-weight: 600; color: var(--hx-t3); }
.hx-en-note .hx-ic { flex: none; width: 14px; height: 14px; margin-top: 1.5px; }
/* Fiche « Pourquoi » qui cite des rangs d'entraînement : même rappel, en petit */
.why-note { margin: 6px 0 0; font-size: 12px; line-height: 16px; font-weight: 500; color: var(--muted); }
html.saison-hiver .why-note { color: var(--t4); }
.why-duel > .why-note { grid-column: 1 / -1; }

/* ── Liste de départ du biathlon (analyse de course) ── FAITS de la liste officielle IBU : dossard et
   heure de départ des favoris et des cotés, bloc « Absents de la liste » teinté comme l'avis. Jetons
   --hx-* : même rendu hors saison d'hiver. */
.hx-abs.hl { font-size: 12px; }
.hx-ld-vide { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--hx-t2); }
.hx-ld-vide .hx-ic { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--hx-t3); }
.hx-ld-abs { margin: 0 0 12px; padding: 10px 12px; border-radius: 14px; background: var(--hx-avis-bg); box-shadow: inset 0 0 0 1px var(--hx-avis-bd); }
.hx-ld-abs h3 { margin: 0 0 8px; font-size: 13px; line-height: 18px; font-weight: 800; color: var(--hx-t1); }
.hx-ld-abs h3 span { display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--hx-t3); }
.hx-ld-abs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hx-ld-abs li { display: flex; gap: 8px; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--hx-t2); }
.hx-ld-abs .hx-ic { flex: none; width: 15px; height: 15px; margin-top: 1.5px; color: var(--hx-acc); }
.hx-ld-abs b { font-weight: 800; color: var(--hx-t0); overflow-wrap: anywhere; }
.hx-ld-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.hx-ld-l li { display: grid; grid-template-columns: 3.2em minmax(0, 1fr) auto; align-items: baseline; gap: 10px;
  min-height: 32px; padding: 6px 0; border-top: 1px solid var(--hx-bd-2); font-size: 13px; line-height: 18px; }
.hx-ld-l li.hx-ld-th { min-height: 0; padding: 0 0 4px; border-top: 0; font-size: 12px; line-height: 16px; font-weight: 700; color: var(--hx-t3); }
.hx-ld-l b { min-width: 0; font-weight: 700; color: var(--hx-t1); overflow-wrap: anywhere; }
.hx-ld-l li.fav b { font-weight: 800; color: var(--hx-t0); }
.hx-ld-dos, .hx-ld-h { font: 600 12px/18px var(--hx-mono); color: var(--hx-t2); white-space: nowrap; }
.hx-ld-th .hx-ld-dos, .hx-ld-th .hx-ld-h { font-family: inherit; line-height: 16px; color: var(--hx-t3); }
.hx-ld-h { text-align: right; }
/* ── Page de course vivante (2026-09-28) ── bouton « Actualiser » (icône à trait, cible 44 px),
   heure du dernier relevé des cotes, bandeau « Course annulée », carte annulée dans la liste.
   Jetons --hx-* : même rendu hors saison d'hiver ; le thème Nuit alpine n'ajoute que le givre. */
.hx-actu { margin-left: auto; min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center;
  gap: 6px; padding: 0 12px; border-radius: 12px; border: 1px solid var(--hx-bd); background: var(--hx-teinte);
  color: var(--hx-t1); font-family: inherit; font-size: 13px; font-weight: 800; line-height: 1; cursor: pointer; }
.hx-pill + .hx-actu { margin-left: 0; }
.hx-actu .hx-ic { width: 17px; height: 17px; stroke-width: 2.1; }
.hx-actu:hover { border-color: var(--hx-acc); }
.hx-actu:focus-visible { outline: 2px solid var(--hx-acc); outline-offset: 2px; }
.hx-actu[aria-busy="true"] { cursor: progress; }
.hx-actu.tourne .hx-ic { animation: hx-tourne .9s linear infinite; }
@keyframes hx-tourne { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .hx-actu.tourne .hx-ic { animation: none; opacity: .5; } }
@media (min-width: 960px) { .hx-next.dsk + .hx-actu { margin-left: 0; } }
@media (max-width: 959px) {                     /* téléphone : « Pas encore coté » est déjà dans l'en-tête, */
  .hx-nav .hx-pill { display: none; }           /* la pastille poussait « Actualiser » à la ligne */
  .hx-nav .hx-pill + .hx-actu { margin-left: auto; }
}
html.saison-hiver .hx-actu { background: var(--givre-2); border-color: rgba(190,222,255,.24); }
html.saison-hiver .hx-actu:hover { border-color: rgba(111,211,255,.5); }

.hx-maj { display: flex; align-items: center; gap: 6px; margin: -4px 0 10px; font-size: 12px; line-height: 16px;
  font-weight: 600; color: var(--hx-t3); }
.hx-maj .hx-ic { width: 14px; height: 14px; }

.hx-annul { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; padding: 12px 14px; border-radius: 16px;
  background: rgba(255,194,71,.10); border: 1px solid rgba(255,194,71,.45); color: var(--hx-t1); }
.hx-annul .hx-ic { flex: none; width: 22px; height: 22px; margin-top: 1px; color: #ffc247; stroke-width: 2.2; }
.hx-annul p { margin: 0; display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 19px; font-weight: 600; color: var(--hx-t2); }
.hx-annul b { font: 800 16px/21px var(--hx-disp); color: var(--hx-t0); letter-spacing: -.01em; }
html.saison-hiver .hx-annul b { font-weight: 600; }

.hx-c-j.annul { background: rgba(255,194,71,.16); color: #ffd27a; }
.hx-card.annulee .hx-c-lieu b, .hx-card.annulee .hx-c-disc { color: var(--hx-t3); }
.hx-card.annulee .hx-c-att { display: inline-flex; align-items: center; gap: 6px; }
.hx-card.annulee .hx-c-att .hx-ic { width: 14px; height: 14px; }
a.hx-btn { text-decoration: none; }

/* Liste de départ COMPLÈTE du ski alpin (FIS, 2026-10-23) : tous les dossards, drapeau et cote vainqueur. */
.hx-ld-tout { max-height: 34rem; overflow-y: auto; }
.hx-ld-fl { margin-right: 6px; }
.hx-ld-tout .hx-ld-h small { font: 500 11px/16px var(--hx-sans, inherit); color: var(--hx-t3); }

/* Récap des conseils de fin de course (2026-10-24). */
.hx-cs-b { margin: 0 0 10px; font: 600 15px/22px var(--hx-sans, inherit); color: var(--hx-t1); }
.hx-cs-b .pos { color: #00e37a; } .hx-cs-b .neg { color: #ff7a85; }
.hx-cs-ul { list-style: none; margin: 0; padding: 0; }
.hx-cs-l { display: grid; grid-template-columns: 1.6em minmax(0, 1fr) auto; gap: 8px; align-items: start;
  padding: 9px 0; border-top: 1px solid rgba(255,255,255,.07); }
.hx-cs-l:first-child { border-top: 0; }
.hx-cs-t b { color: var(--hx-t0); } .hx-cs-t i { font-style: normal; color: var(--hx-t3); }
.hx-cs-t small { display: block; font-size: 12.5px; line-height: 18px; color: var(--hx-t2); }
.hx-cs-t small.hx-cs-is { color: var(--hx-t3); }
.hx-cs-r { font: 700 12px/18px var(--hx-mono); color: var(--hx-t2); text-transform: uppercase; }
.hx-cs-l.gagne .hx-cs-r { color: #00e37a; } .hx-cs-l.perdu .hx-cs-r { color: #ff7a85; }
