/* ==========================================================================
   Sport Pulse : page « Scores et calendrier ».
   Chargée APRÈS accueil.css (jetons, en-tête, onglets du bandeau « En direct »,
   titres à liseré rouge, tableaux de classement, publicité, pied de page) :
   ici, seulement ce qui est propre à la page.
   ========================================================================== */

/* Navigation : « Scores » est la page courante */
.nav-principale__lien--actif { border-bottom-color: var(--rouge); }

/* ---------- Titre de page (gabarit « Les derniers articles ») ---------- */
.scores { padding-top: 26px; }
.scores__tete { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; }
.scores__titre { font-weight: 700; font-size: 30px; line-height: 1.1; letter-spacing: -.01em; }
.scores__date { font-size: 15px; color: var(--texte-3); }

.scores__grille {
  margin-top: 18px; display: grid; gap: 28px;
  grid-template-columns: minmax(0, 1fr) 320px; align-items: start;
}

/* ---------- Colonne principale : une carte blanche, comme le bandeau « En direct » ---------- */
.scores__principal {
  background: var(--blanc); border: 1px solid #EDEFF2; border-radius: var(--rayon); box-shadow: var(--ombre);
  min-width: 0;
}

/* Barre des jours + onglets de sport : collée en haut de l'écran pendant le défilement */
.scores__barre {
  position: sticky; top: 0; z-index: 6; background: var(--blanc);
  border-bottom: 1px solid var(--bordure); border-radius: var(--rayon) var(--rayon) 0 0;
}
/* 17 jours (J-3 à J+13) : la barre défile. En bureau, les flèches rondes du rail de l'accueil encadrent la liste
   (jamais posées sur un libellé) et elle avance par pages de jours entiers, de même largeur (scores.js, calerJours) :
   aucun libellé coupé. Sur téléphone, on la fait glisser au doigt. */
.jours { display: flex; border-bottom: 1px solid var(--bordure); }
.jours__liste {
  flex: 1 1 auto; min-width: 0; display: flex; overflow-x: auto; scrollbar-width: none; padding: 0 8px;
  margin-bottom: -1px; /* le soulignement rouge du jour choisi recouvre le filet de la barre */
}
.jours__liste::-webkit-scrollbar { display: none; }
.jours__liste li { flex: 1 0 auto; }
.jours--mesure .jours__liste li { flex: 0 0 auto; }
.jours--pages .jours__liste { padding: 0; scroll-snap-type: x mandatory; }
.jours--pages .jours__liste li { flex: 0 0 var(--jour-largeur); scroll-snap-align: start; }
.jours .rail-bouton {
  position: static; transform: none; flex: none; align-self: center;
  width: 30px; height: 30px; margin: 0 8px;
}
.jours .rail-bouton .ico { width: 16px; height: 16px; }
.jours .rail-bouton:disabled { visibility: hidden; } /* place gardée : les jours ne bougent pas */
.jour {
  display: block; text-align: center; white-space: nowrap; text-decoration: none;
  padding: 14px 10px 11px; border-bottom: 3px solid transparent;
  font-size: 14.5px; font-weight: 600; line-height: 1.2; color: var(--texte-2);
  font-variant-numeric: tabular-nums;
}
.jour:hover { color: var(--texte); border-bottom-color: var(--bordure-2); }
.jour--vide { color: var(--texte-3); font-weight: 500; }
.jour--actif, .jour--actif:hover { color: var(--texte); font-weight: 700; border-bottom-color: var(--rouge); }
.jour:focus-visible { outline-offset: -3px; }

.scores__onglets { padding: 10px 14px; }
.scores__onglets .onglet-direct:focus-visible { outline-offset: 0; }

/* ---------- Compétitions ---------- */
.scores__liste { min-height: 240px; }
.scores__liste > .etat { padding: 28px 18px; }
/* Jour sans match pour l'onglet : lien vers le prochain jour qui en a, aligné sur le texte du message */
.scores__liste > .etat__suite { margin-top: -18px; padding: 0 18px 28px 46px; }
.compet__tete {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 18px; background: var(--fond); border-bottom: 1px solid var(--bordure);
}
.compet + .compet .compet__tete { border-top: 1px solid var(--bordure); }
.compet__titre {
  font-family: var(--police-etroite); font-weight: 700; font-size: 16px; line-height: 1.15;
  text-transform: uppercase; letter-spacing: .02em;
  border-left: 3px solid var(--rouge); padding-left: 9px;
}
.compet--turf .compet__titre { border-left-color: var(--vert); }
.compet__classement {
  flex: none; border: 0; background: none; padding: 2px 0; cursor: pointer;
  color: var(--bleu); font-weight: 600; font-size: 13.5px;
}
.compet__classement:hover { text-decoration: underline; text-underline-offset: 3px; }
.compet__liste > .rencontre + .rencontre { border-top: 1px solid var(--bordure); }
/* Lien profond : la ligne défile juste sous la barre collante, jamais dessous */
.rencontre, .compet { scroll-margin-top: calc(var(--hauteur-barre, 100px) + 8px); }
.compet__plus { margin: 4px 18px 14px 110px; }
.compet__plus .ico { transform: none; }
.compet__plus:hover .ico { transform: translateY(2px); }
.compet__plus[aria-expanded="true"] .ico { transform: rotate(180deg); }

/* ---------- Une ligne = un match, une course ou une séance ---------- */
.rencontre__ligne {
  display: grid; grid-template-columns: 76px minmax(0, 1fr) auto 16px; align-items: center; column-gap: 16px;
  width: 100%; padding: 11px 18px; border: 0; background: none; text-align: left; cursor: pointer;
  color: inherit; font: inherit;
}
.rencontre__ligne:hover { background: #FAFBFC; }
.rencontre__ligne:focus-visible { outline-offset: -3px; }
.rencontre--ouverte > .rencontre__ligne { background: var(--fond); }

.rencontre__statut { display: flex; flex-direction: column; gap: 3px; line-height: 1.2; font-variant-numeric: tabular-nums; min-width: 0; }
.rencontre__haut { font-size: 15px; font-weight: 600; color: var(--texte); }
.rencontre__bas { font-size: 12.5px; color: var(--texte-3); }
.rencontre--termine .rencontre__haut { color: var(--texte-3); font-weight: 500; }
.rencontre__statut--live .rencontre__haut { color: var(--rouge); font-weight: 700; }
.rencontre__statut--attente .rencontre__bas { color: #9A3412; }
.rencontre__statut--tbd .rencontre__haut { font-size: 12.5px; font-weight: 500; color: var(--texte-3); }

.rencontre__chevron { grid-column: -2 / -1; width: 16px; height: 16px; color: var(--texte-3); transition: transform .2s ease; }
.rencontre--ouverte .rencontre__chevron { transform: rotate(180deg); }
.rencontre__ligne:hover .rencontre__chevron { color: var(--texte); }

/* Équipes l'une sous l'autre, score aligné à droite (comme les cartes du bandeau) */
.rencontre__equipes { grid-column: 2 / 4; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rencontre__equipe { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.rencontre .logo-equipe, .rencontre .logo-initiales { width: 22px; height: 22px; }
.rencontre__nom { font-size: 15.5px; line-height: 1.25; color: var(--texte-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rencontre__equipe--gagnant .rencontre__nom { color: var(--texte); font-weight: 700; }
.rencontre--a_venir .rencontre__nom, .rencontre--live .rencontre__nom { color: var(--texte); }
.rencontre__score {
  min-width: 30px; text-align: right; font-size: 16.5px; font-weight: 700; line-height: 1.25;
  font-variant-numeric: tabular-nums;
}
.rencontre--termine .rencontre__equipe:not(.rencontre__equipe--gagnant) .rencontre__score { color: var(--texte-3); font-weight: 600; }
.rencontre__sets { display: flex; }
.rencontre__set { width: 24px; text-align: center; font-size: 15.5px; color: var(--texte-3); font-variant-numeric: tabular-nums; }
.rencontre__set--gagne { color: var(--texte); font-weight: 700; }

/* Turf (une course) et F1 (une séance) */
.course { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.course__titre { display: block; min-width: 0; line-height: 1.25; }
.course__code {
  display: inline-block; margin-right: 8px; font-family: var(--police-etroite); font-weight: 700; font-size: 14px; letter-spacing: .02em;
  color: var(--texte-3); font-variant-numeric: tabular-nums;
}
.course__prix { font-size: 15.5px; font-weight: 600; line-height: 1.25; color: var(--texte); min-width: 0; overflow-wrap: anywhere; }
.course__quinte {
  margin-left: 8px; white-space: nowrap; font-family: var(--police-etroite); font-weight: 700; font-size: 13px;
  letter-spacing: .06em; text-transform: uppercase; color: var(--rouge);
}
.course__infos { font-size: 13px; line-height: 1.3; color: var(--texte-3); }
.course__arrivee {
  font-family: var(--police-etroite); font-weight: 700; font-size: 19px; letter-spacing: .01em;
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
.course__resultat { font-size: 14px; font-weight: 600; white-space: nowrap; }

/* Squelettes de chargement */
.sq-rencontre { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--bordure); }

.scores__note { padding: 12px 18px 14px; font-size: 13px; color: var(--texte-3); border-top: 1px solid var(--bordure); }

/* ---------- Fiche du match, dépliée sous sa ligne ---------- */
.fiche {
  display: grid; grid-template-rows: 1fr; background: var(--fond);
  transition: grid-template-rows .22s ease, opacity .22s ease;
}
.fiche--entree, .fiche--sortie { grid-template-rows: 0fr; opacity: 0; }
.fiche__interieur { overflow: hidden; min-height: 0; }
.fiche__contenu { padding: 2px 18px 16px 110px; }
@media (prefers-reduced-motion: reduce) {
  .fiche, .rencontre__chevron { transition: none; }
}
.fiche__chargement { padding: 6px 0 10px; max-width: 520px; }
.fiche .etat { padding: 8px 0 12px; }
.fiche__infos { font-size: 14px; line-height: 1.4; color: var(--texte-2); margin-bottom: 14px; }
.fiche__vide { font-size: 14px; color: var(--texte-2); }
.fiche__titre {
  font-family: var(--police-etroite); font-weight: 700; font-size: 14px; line-height: 1.2;
  letter-spacing: .06em; text-transform: uppercase; color: var(--texte-3); margin-bottom: 8px;
}
.fiche__bloc + .fiche__bloc, .fiche__colonnes + .fiche__bloc, .fiche__bloc + .fiche__colonnes { margin-top: 20px; }
.fiche__colonnes { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.fiche__colonnes--une { grid-template-columns: minmax(0, 560px); }
.fiche__colonnes > .fiche__bloc { margin-top: 0; }
.fiche__pied { display: flex; justify-content: flex-end; margin-top: 14px; }
.fiche__fermer .ico { transform: none; }
.fiche__fermer:hover .ico { transform: translateY(-2px); }
.fiche .tableau td, .fiche .tableau th { border-bottom-color: var(--bordure-2); }
/* Colonnes de texte (jockey, entraîneur, pays, écurie) : l'en-tête suit l'alignement à gauche des valeurs */
.tableau th.tableau__second { text-align: left; }
.fiche__defile { overflow-x: auto; }

/* Faits marquants : domicile à gauche, minute au centre, extérieur à droite */
.faits__equipes, .fait { display: grid; grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); column-gap: 6px; }
.faits__equipes { font-size: 13px; font-weight: 700; color: var(--texte-2); padding-bottom: 6px; }
.faits__equipes span:first-child { text-align: right; }
.faits__equipes span:last-child { grid-column: 3; }
.fait { align-items: baseline; padding: 6px 0; border-top: 1px solid var(--bordure-2); }
.fait__minute { text-align: center; font-weight: 700; font-size: 13.5px; color: var(--texte-2); font-variant-numeric: tabular-nums; }
.fait__texte { display: flex; flex-direction: column; min-width: 0; font-size: 14.5px; line-height: 1.3; color: var(--texte); }
.fait--domicile .fait__texte { align-items: flex-end; text-align: right; }
.fait__texte--fort .fait__joueur { font-weight: 700; }
.fait__type { font-size: 12.5px; color: var(--texte-3); }
.fait__score { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Statistiques : valeurs de part et d'autre, barre fine partagée dessous */
.stats { display: flex; flex-direction: column; gap: 11px; }
.stat { display: grid; grid-template-columns: minmax(64px, auto) minmax(0, 1fr) minmax(64px, auto); column-gap: 8px; grid-template-areas: "d l x" "b b b"; row-gap: 5px; align-items: baseline; }
.stat dd { margin: 0; }
.stat__libelle { grid-area: l; text-align: center; font-size: 13.5px; color: var(--texte-2); }
.stat__valeur { font-size: 15px; font-weight: 600; color: var(--texte-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.stat__valeur--d { grid-area: d; }
.stat__valeur--x { grid-area: x; text-align: right; }
.stat__valeur--fort { color: var(--texte); font-weight: 700; }
.stat__barre { grid-area: b; display: flex; gap: 3px; height: 4px; }
.stat__part { min-width: 2px; border-radius: 2px; background: var(--bordure-2); }
.stat__part--fort { background: var(--texte-2); }

/* Compositions */
.compos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; max-width: 640px; }
.compos__nom { font-weight: 700; font-size: 14.5px; margin-bottom: 6px; }
.compos__liste li { font-size: 14px; line-height: 1.6; color: var(--texte-2); }
.compos__remplacements { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--bordure-2); }
.compos__remplacements li { font-size: 13px; line-height: 1.5; color: var(--texte-3); }
.compos__minute { display: inline-block; min-width: 36px; font-weight: 600; color: var(--texte-2); font-variant-numeric: tabular-nums; }

/* Classement de la compétition dans la fiche : les deux équipes (± une place), surlignées en blanc sur le gris */
.tableau--mini { max-width: 560px; }
.tableau--mini .tableau__equipe span { max-width: none; }
.fiche .tableau--mini tr.tableau__ligne--match th, .fiche .tableau--mini tr.tableau__ligne--match td { background: var(--blanc); }
.fiche__classement { margin-top: 8px; }

/* Tennis : score par set */
.tableau--sets { max-width: 560px; }
.tableau--sets th.tableau__nom { width: auto; }
.tableau--sets th:not(.tableau__nom), .tableau--sets td { text-align: center; width: 48px; white-space: nowrap; }
.tableau--sets tbody th.tableau__nom { color: var(--texte); }
.tableau--sets .tableau__ligne--gagnant th { font-weight: 700; }
.tableau--sets td.tableau__total { font-weight: 700; color: var(--texte); }

/* F1 : podium */
.podium li { display: flex; gap: 10px; font-size: 15px; line-height: 1.5; }
.podium__rang { min-width: 34px; font-weight: 700; font-variant-numeric: tabular-nums; }
.podium--colonnes { columns: 2; column-gap: 36px; max-width: 560px; }
.podium--colonnes li { break-inside: avoid; }

/* Turf : arrivée et partants */
.fiche__arrivee { display: flex; align-items: baseline; gap: 12px; margin: 0 0 2px; }
.fiche__arrivee-libelle { font-size: 14px; color: var(--texte-2); }
.fiche__arrivee-numeros {
  font-family: var(--police-etroite); font-weight: 700; font-size: 30px; line-height: 1.1;
  letter-spacing: .01em; font-variant-numeric: tabular-nums;
}
.fiche__arrivee + .fiche__bloc { margin-top: 16px; }
.tableau--partants { max-width: 640px; }
.tableau--partants tbody th.tableau__nom { color: var(--texte); }
.tableau--partants .tableau__second { white-space: nowrap; }
.tableau--partants td.partant__cote { font-weight: 600; }
.tableau--partants .partant--place th.tableau__nom { font-weight: 700; }
.tableau--partants .partant--np th.tableau__nom, .tableau--partants .partant--np td { color: var(--texte-3); }
.tableau--partants td.partant__place { text-align: right; }
.partant__np { margin-left: 8px; font-size: 12px; font-weight: 500; color: var(--texte-3); }
.tableau--rapports { max-width: 520px; }
.tableau--rapports tbody th.tableau__nom { color: var(--texte); font-weight: 500; }
.tableau--rapports th:not(.tableau__nom), .tableau--rapports td { white-space: nowrap; }
.tableau--replie .rapport--suite { display: none; }
.tableau--replie tr:nth-last-child(1 of :not(.rapport--suite)) td, .tableau--replie tr:nth-last-child(1 of :not(.rapport--suite)) th { border-bottom: 0; }
.fiche__rapports { margin-top: 8px; }
.fiche__rapports .ico { transform: none; }
.fiche__rapports[aria-expanded="true"] .ico { transform: rotate(180deg); }

/* ---------- Colonne droite ---------- */
.scores__cote { position: sticky; top: var(--cote-haut, 16px); }
.scores-classement__nom { margin-top: 12px; font-weight: 700; font-size: 15px; line-height: 1.25; }
.scores-classement__choix { margin-top: 12px; } /* sélecteur du classement (créé par scores.js), comme sur l'accueil */
.scores-classement .classements__table { margin-top: 4px; }
.scores-classement .lien-fleche { margin-top: 10px; }
.tableau tr.tableau__ligne--match th, .tableau tr.tableau__ligne--match td { background: var(--fond); font-weight: 700; }
.tableau tr.tableau__ligne--match th .tableau__equipe span { font-weight: 700; }
.tableau tr.tableau__ellipse td { text-align: left; padding: 2px 4px; color: var(--texte-3); line-height: 1; }

/* ---------- Meilleurs sites de paris : liste compacte, une ligne cliquable par opérateur ---------- */
.operateurs__liste { margin-top: 12px; border-top: 1px solid var(--bordure); }
.operateur { border-bottom: 1px solid var(--bordure); }
.operateur[aria-hidden="true"] { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px 0; }
.operateur__lien {
  display: grid; grid-template-columns: 14px 36px minmax(0, 1fr) auto 14px; gap: 10px; align-items: center;
  padding: 10px 0; color: inherit; text-decoration: none;
}
a.operateur__lien:hover { background: #FAFBFC; }
a.operateur__lien:hover .operateur__nom { color: var(--bleu); text-decoration: underline; text-underline-offset: 3px; }
.operateur__rang {
  font-family: var(--police-etroite); font-weight: 700; font-size: 15px; color: var(--texte-3);
  text-align: center; font-variant-numeric: tabular-nums;
}
.operateur__logo { width: 36px; height: 36px; border-radius: 6px; object-fit: cover; background: var(--fond); }
.operateur__logo--texte { display: grid; place-items: center; font-weight: 700; font-size: 13px; color: var(--texte-2); }
.operateur__id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.operateur__nom { font-weight: 700; font-size: 15px; line-height: 1.2; }
.operateur__offre { font-size: 12.5px; line-height: 1.3; color: var(--texte-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.operateur__bonus { text-align: right; line-height: 1; white-space: nowrap; }
.operateur__jusqua { display: block; margin-bottom: 1px; font-size: 10.5px; color: var(--texte-3); }
.operateur__montant { font-family: var(--police-etroite); font-weight: 700; font-size: 21px; color: var(--texte); }
.operateurs[data-type="hippique"] .operateur__montant, .operateurs--hippique .operateur__montant { color: var(--vert); }
.operateur__fleche { width: 14px; height: 14px; color: var(--texte-3); }
.operateurs__liste .etat { padding: 14px 0; }
.operateurs__mention { margin-top: 10px; font-size: 12.5px; line-height: 1.45; color: var(--texte-3); }
.operateurs__mention:empty { display: none; }
.operateurs__mention + .lien-fleche { margin-top: 6px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
  .scores__grille { grid-template-columns: minmax(0, 1fr); }
  .scores__cote {
    position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start;
  }
  .scores__cote > .pub { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .scores { padding-top: 18px; }
  .scores__titre { font-size: 26px; }
  .scores__date { font-size: 14px; }
  .scores__grille { margin-top: 12px; }
  /* La liste prend toute la largeur de l'écran, comme les panneaux de l'accueil sur téléphone */
  .scores__principal { margin-inline: calc(-1 * var(--goutte)); border-radius: 0; border-left: 0; border-right: 0; box-shadow: none; }
  .scores__barre { border-radius: 0; box-shadow: 0 1px 0 var(--bordure); }
  .jours__liste { padding: 0 6px; }
  .jours__liste li { flex: none; }
  .jour { padding: 13px 11px 10px; font-size: 14px; }
  .scores__onglets { padding: 8px 10px; }

  .compet__tete { padding: 9px 16px; }
  .compet__plus { margin: 4px 16px 14px 88px; }
  .rencontre__ligne { grid-template-columns: 60px minmax(0, 1fr) auto 14px; column-gap: 12px; padding: 10px 16px; }
  .rencontre__haut { font-size: 14.5px; }
  .rencontre__bas { font-size: 12px; }
  .rencontre__chevron { width: 14px; height: 14px; }
  .rencontre__nom, .course__prix { font-size: 15px; }
  .rencontre__set { width: 20px; font-size: 15px; }
  /* Turf : l'arrivée passe sous la course pour laisser la place au nom du prix */
  .rencontre__ligne--course { grid-template-rows: auto auto; }
  .rencontre__ligne--course .rencontre__statut, .rencontre__ligne--course .rencontre__chevron { grid-row: 1 / 3; }
  .rencontre__ligne--course .course { grid-column: 2 / 4; }
  .rencontre__ligne--course .course__arrivee, .rencontre__ligne--course .course__resultat { grid-column: 2 / 4; grid-row: 2; margin-top: 4px; }
  .course__arrivee { font-size: 17px; }
  .sq-rencontre { grid-template-columns: 60px minmax(0, 1fr); padding: 12px 16px; }

  .fiche__contenu { padding: 4px 16px 16px; }
  .fiche__colonnes { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .compos { gap: 18px; }
  .fait__texte { font-size: 14px; }
  .faits__equipes, .fait { grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr); column-gap: 4px; }
  .fait__minute { font-size: 12.5px; }
  .podium--colonnes { columns: 1; }
  .partants__entraineur { display: none; }
  .fiche__arrivee-numeros { font-size: 26px; }

  .scores__cote { grid-template-columns: minmax(0, 1fr); }
}
