/*
 * Correctifs maison par-dessus le thème GXON (jamais modifié : tout ce qui
 * suit vient après styles.css). Les couleurs du club sont dans
 * --club-primaire / --club-secondaire (posées par base.html.twig).
 */

/* GXON donne à chaque .card la hauteur de sa colonne ; empilées, elles débordent. */
[class*="col-"] > .card:not(:only-child) { height: auto; }

:root { --bs-btn-primary-hover: #2a5ad9; }

/* Logo texte à la place de celui du thème. */
.app-logo { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.app-logo-mark { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .6rem; background: var(--club-primaire, var(--bs-primary)); color: #fff; font-weight: 800; font-size: .95rem; letter-spacing: .02em; }
.app-logo-img { height: 2.25rem; width: auto; }
.app-logo-text { font-size: 1.25rem; font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); }

/* Page de connexion : couverture aux couleurs du club, sans l'illustration du thème. */
.auth-cover-club { background: linear-gradient(135deg, var(--club-primaire, #1e3a8a), color-mix(in srgb, var(--club-primaire, #1e3a8a) 60%, #000)); color: #fff; min-height: 100vh; display: grid; place-items: center; padding: 3rem; }
.auth-cover-club .auth-content { max-width: 32rem; }
.auth-cover-club h1 { color: #fff; }
.auth-logo { max-height: 120px; width: auto; }

/* Avatars avec initiales. */
.d-inline-grid { display: inline-grid; }
.object-fit-cover { object-fit: cover; }

/* Tuiles de chiffres sur les tableaux de bord. */
.tuile { display: flex; align-items: center; gap: 1rem; }
.tuile-icone { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .9rem; font-size: 1.3rem; flex-shrink: 0; }
.tuile-valeur { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.tuile-libelle { color: var(--bs-secondary-color); font-size: .85rem; }

/* Calendrier en grille (mois). */
.cal-grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--bs-border-color); border: 1px solid var(--bs-border-color); border-radius: .5rem; overflow: hidden; }
.cal-jour { background: var(--bs-body-bg); min-height: 96px; padding: .35rem .45rem; font-size: .8rem; }
.cal-jour-hors { opacity: .45; }
.cal-jour-aujourdhui { box-shadow: inset 0 0 0 2px var(--bs-primary); }
.cal-jour-num { font-weight: 600; display: block; margin-bottom: .2rem; }
.cal-ev { display: block; padding: .1rem .35rem; border-radius: .3rem; margin-bottom: .15rem; text-decoration: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cal-ev-annule { text-decoration: line-through; opacity: .6; }
.cal-entete { background: var(--bs-tertiary-bg); font-weight: 600; text-align: center; padding: .4rem; font-size: .75rem; text-transform: uppercase; }

/* Dossier de licence : pièces en liste de cases. */
.pieces { display: grid; gap: .35rem; }
.pieces .fi-rr-check { color: var(--bs-success); }
.pieces .fi-rr-cross { color: var(--bs-danger); }

/* Feuille d'appel : grosses cibles tactiles pour le téléphone de l'entraîneur. */
.appel-ligne { display: flex; align-items: center; gap: .75rem; padding: .6rem .25rem; border-bottom: 1px solid var(--bs-border-color); }
.appel-ligne .btn-group .btn { min-width: 3rem; min-height: 2.6rem; }
