/* LE C.P.H. — le championnat provincial d'hiver par équipes de club.
   Feuille de match, calendrier des rencontres, classements par série.
   S'appuie sur les composants du poste (.adm-*) et du site ; ne redéfinit
   que ce qui n'existe nulle part ailleurs : une rencontre, une partie. */

.cph-rencontres { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .35rem; }
.cph-rencontre {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .6rem;
  padding: .45rem .6rem; border-radius: .6rem; background: color-mix(in oklab, currentColor 5%, transparent);
}
.cph-rencontre.est-mienne { outline: 2px solid color-mix(in oklab, var(--jaune, #d9a400) 70%, transparent); outline-offset: -2px; }
.cph-serie { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.cph-affiche { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .5rem; text-decoration: none; color: inherit; min-width: 0; }
.cph-affiche:hover .cph-equipe { text-decoration: underline; }
.cph-equipe { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cph-equipe.droite { text-align: right; }
.cph-score { font-variant-numeric: tabular-nums; font-weight: 800; font-size: .95rem; min-width: 3.4rem; text-align: center;
  padding: .1rem .5rem; border-radius: .5rem; background: color-mix(in oklab, currentColor 8%, transparent); }
.cph-score:not(.est-joue) { font-weight: 500; font-size: .78rem; opacity: .7; }
.cph-meta { font-size: .78rem; opacity: .7; white-space: nowrap; }
@media (max-width: 720px) {
  .cph-rencontre { grid-template-columns: auto minmax(0, 1fr); }
  .cph-meta, .cph-rencontre > .pastille { grid-column: 2; justify-self: start; }
}

/* La tête d'une rencontre : les deux équipes et le score en grand. */
.cph-tete { padding: 1rem 1.1rem; }
.cph-resultat { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1rem; }
.cph-camp { display: flex; flex-direction: column; font-weight: 800; font-size: 1.15rem; line-height: 1.15; }
.cph-camp small { font-weight: 500; font-size: .78rem; opacity: .7; }
.cph-camp.droite { text-align: right; }
.cph-chiffres { display: inline-flex; align-items: baseline; gap: .25rem; font-variant-numeric: tabular-nums; font-size: 2.2rem; font-weight: 900; line-height: 1; }
.cph-chiffres:not(.est-joue) { opacity: .45; }
.cph-chiffres i { font-style: normal; opacity: .5; font-size: 1.4rem; }
.cph-sous { margin: .6rem 0 0; font-size: .9rem; }

/* La composition. */
.cph-compo { padding: .8rem 1rem; }
.cph-doublette, .cph-reserves { border: 1px solid color-mix(in oklab, currentColor 14%, transparent); border-radius: .6rem; padding: .5rem .7rem .7rem; margin: 0 0 .6rem; display: grid; gap: .4rem; }
.cph-doublette { grid-template-columns: 1fr 1fr; }
.cph-doublette legend, .cph-reserves legend { font-weight: 800; font-size: .8rem; letter-spacing: .06em; padding: 0 .3rem; }
.cph-doublette .champ { margin: 0; }
.cph-reserve { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, .8fr); gap: .4rem; }
.cph-reserve input, .cph-reserve select, .cph-doublette input { width: 100%; min-width: 0; }
.cph-ligne-compo { margin: .15rem 0; }
.cph-ligne-compo b { display: inline-block; min-width: 2rem; }
@media (max-width: 560px) { .cph-doublette, .cph-reserve { grid-template-columns: 1fr; } }

/* Les parties. */
.cph-tour { padding: .7rem 1rem; }
.cph-partie {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .6rem;
  padding: .4rem 0; border-top: 1px solid color-mix(in oklab, currentColor 10%, transparent);
}
.cph-partie:first-of-type { border-top: 0; }
.cph-partie-eq { min-width: 0; display: flex; flex-direction: column; line-height: 1.15; }
.cph-partie-eq b { font-size: .8rem; letter-spacing: .05em; }
.cph-partie-eq small { opacity: .75; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cph-partie-eq.droite { text-align: right; align-items: flex-end; }
.cph-partie-score { display: inline-flex; align-items: center; gap: .3rem; }
.cph-partie-score input { width: 3.4rem; text-align: center; font-variant-numeric: tabular-nums; font-weight: 700; }
.cph-partie-score i { font-style: normal; opacity: .5; }
.cph-partie-score.est-lu b { display: inline-block; min-width: 1.6rem; text-align: center; font-variant-numeric: tabular-nums; font-size: 1.05rem; }
.cph-partie.est-jouee .cph-partie-score.est-lu b { font-weight: 900; }
.cph-partie-meta { grid-column: 1 / -1; display: flex; gap: .4rem; }
.cph-partie-meta input[type="text"] { width: 6rem; }
.cph-partie-meta input[type="time"] { width: 7rem; }

/* Le classement : les colonnes de la feuille du comité, serrées. */
.cph-classement th, .cph-classement td { padding-inline: .45rem; }
.cph-classement tr.est-mienne td { background: color-mix(in oklab, var(--jaune, #d9a400) 14%, transparent); }

/* L'effectif : des cases à cocher en colonnes. */
.cph-cases { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .25rem .8rem; margin: .4rem 0 .6rem; }
.cph-case { display: flex; align-items: center; gap: .45rem; font-size: .9rem; }
.cph-effectif { margin-top: .6rem; padding-top: .6rem; border-top: 1px dashed color-mix(in oklab, currentColor 18%, transparent); }

.cph-journee-pub.est-passee { opacity: .85; }
