@font-face { font-family: Chivo; src: url("../polices/Chivo-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: Chivo; src: url("../polices/Chivo-Bold.ttf") format("truetype"); font-weight: 700; font-display: swap; }
@font-face { font-family: Chivo; src: url("../polices/Chivo-Black.ttf") format("truetype"); font-weight: 900; font-display: swap; }
@font-face { font-family: "Chivo Mono"; src: url("../polices/ChivoMono-Regular.ttf") format("truetype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Chivo Mono"; src: url("../polices/ChivoMono-Bold.ttf") format("truetype"); font-weight: 700; font-display: swap; }

:root { color-scheme: light dark; --fond:#F2F2F2; --bloc:#FFFFFF; --filet:#E6E6E6; --texte:#0A0A0A; --secondaire:#666666; --direct:#E5232C; --direct-texte:#BC171E; --fige:#3A3A3A; --sur-fige:#EDEDED; --focus:#0A0A0A; }
@media (prefers-color-scheme:dark) { :root { --fond:#0A0A0A; --bloc:#101010; --filet:#262626; --texte:#FAFAFA; --secondaire:#8C8C8C; --direct:#FF5C5C; --direct-texte:#FF5C5C; --focus:#FAFAFA; } }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { background:var(--fond); font-family:Chivo,system-ui,sans-serif; color:var(--texte); }
body { margin:0; min-width:320px; }
button,input,textarea { font:inherit; color:inherit; }
a { color:inherit; text-underline-offset:3px; }
button,a,input,textarea,summary { outline-offset:3px; }
:focus-visible { outline:2px solid var(--focus); }
.sr-seulement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.saut-contenu { position:fixed; top:8px; left:8px; transform:translateY(-150%); background:var(--bloc); padding:8px; z-index:10; }
.saut-contenu:focus { transform:none; }
.entete { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px max(16px,calc((100vw - 960px)/2)); border-bottom:1px solid var(--filet); background:var(--bloc); }
.mot-symbole { font-size:24px; font-weight:900; text-decoration:none; letter-spacing:-.04em; white-space:nowrap; }
.point-marque { color:#E5232C; }
.navigation { display:flex; gap:4px 16px; flex-wrap:wrap; justify-content:flex-end; }
.navigation a { color:var(--secondaire); text-decoration:none; padding:8px 0; }
.navigation a.actif { color:var(--texte); font-weight:700; border-bottom:2px solid var(--texte); }
.navigation-ecrans { display:flex; gap:4px 16px; flex-wrap:wrap; }
.navigation-ecrans a { color:var(--secondaire); text-decoration:none; padding:8px 0; }
.navigation-ecrans a.actif { color:var(--texte); font-weight:700; border-bottom:2px solid var(--texte); }
.zone-ecran { display:contents; }
.contenu { width:min(100%,960px); margin:0 auto; padding:24px 16px 48px; }
.connexion { min-height:100vh; display:grid; place-items:center; padding:16px; }
.panneau-connexion { width:min(100%,420px); padding:24px; background:var(--bloc); border:1px solid var(--filet); border-radius:5px; }
.panneau-connexion h1 { margin:32px 0 20px; }
.formulaire-connexion,.formulaire-retour { display:grid; gap:12px; }
.champ { display:grid; gap:6px; font-weight:700; }
input,textarea { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--filet); border-radius:5px; background:var(--fond); }
textarea { min-height:120px; resize:vertical; }
.bouton { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:10px 16px; border:1px solid var(--texte); border-radius:5px; background:var(--texte); color:var(--fond); font-weight:700; text-decoration:none; cursor:pointer; }
.bouton.secondaire { background:transparent; color:var(--texte); }
.bouton:disabled { opacity:.5; cursor:wait; }
.aide,.statut-formulaire,.liens-legaux { color:var(--secondaire); line-height:1.45; }
.barre-date { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; margin-bottom:16px; }
.barre-date h1 { margin:0; text-align:center; font-size:22px; }
.bouton-icone { width:44px; height:44px; border:1px solid var(--filet); border-radius:5px; background:var(--bloc); font-size:24px; cursor:pointer; }
.groupe-sport { margin:0 0 16px; }
.cartouche { display:flex; justify-content:space-between; gap:12px; padding:9px 12px; border-radius:5px 5px 0 0; background:#EFEFEF; color:#171717; font-size:12.5px; font-weight:700; letter-spacing:-.01em; }
.sport { display:inline-flex; align-items:center; gap:5px; }
.picto-sport { width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cartouche.fige { background:var(--fige)!important; color:var(--sur-fige)!important; }
.competition { opacity:.78; text-align:right; }
.lien-classement { margin-left:auto; font-weight:400; opacity:.78; }
.groupe-favori .cartouche::before { content:"★"; font-size:11px; }
.liste-matchs { display:grid; gap:8px; padding-top:8px; }
.carte-evenement { display:grid; grid-template-columns:1fr auto; gap:4px 16px; padding:12px; border:1px solid var(--filet); border-radius:5px; background:var(--bloc); text-decoration:none; }
.participant { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; }
.lien-equipe { color:inherit; text-decoration:none; }
.lien-match { color:inherit; text-decoration:none; align-self:center; }
.chargement-groupes { display:grid; gap:8px; }
.nom-equipe { grid-column:2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.logo-equipe { width:24px; height:24px; object-fit:contain; }
.score,.mono,.grand-score,.rang { font-family:"Chivo Mono",monospace; font-variant-numeric:tabular-nums; }
.score { grid-column:3; font-weight:700; }
.etat { grid-column:2; grid-row:1/3; align-self:center; font-size:11px; font-weight:700; color:var(--secondaire); }
.etat.direct { color:var(--direct-texte); }
.etat.direct::before { content:""; display:inline-block; width:7px; height:7px; margin-right:5px; border-radius:50%; background:var(--direct); }
.mention-fige { display:inline-block; padding:5px 8px; background:var(--fige); color:var(--sur-fige); border-radius:5px; font-size:11px; font-weight:700; }
.lien-retour { display:inline-block; margin-bottom:16px; }
.score-match { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:24px 12px; background:var(--bloc); border:1px solid var(--filet); border-radius:0 0 5px 5px; text-align:center; }
.equipe-match { display:grid; justify-items:center; gap:8px; min-width:0; }
.equipe-match .logo-equipe { width:56px; height:56px; }
.grand-score { font-size:38px; font-weight:900; }
.score-match>.etat { grid-column:1/-1; grid-row:auto; }
.bloc-detail,.carte-compte { margin-top:16px; padding:12px; border:1px solid var(--filet); border-radius:5px; background:var(--bloc); }
.etiquette { margin:0 0 12px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.lignes-detail { display:grid; gap:0; }
.ligne-detail,.ligne-stat { margin:0; padding:10px 0; border-top:1px solid var(--filet); }
.ligne-detail { display:grid; grid-template-columns:auto 1fr; gap:12px; }
.ligne-stat { display:grid; grid-template-columns:1fr 2fr 1fr; gap:8px; text-align:center; }
.titre-section { margin:0 0 16px; padding:10px 12px; background:var(--texte); color:var(--fond); border-radius:5px; font-size:16px; }
.table-classement { width:100%; border-collapse:collapse; background:var(--bloc); border:1px solid var(--filet); }
.table-classement th,.table-classement td { padding:10px 8px; border-bottom:1px solid var(--filet); text-align:left; }
.table-classement th { color:var(--secondaire); font-size:11px; text-transform:uppercase; }
.table-classement .groupe-classement th { background:var(--fond); color:var(--texte); font-size:12.5px; text-transform:none; }
.equipe-classement { display:flex; align-items:center; gap:8px; }
.rang { width:40px; font-size:20px; font-weight:900; }
.interrupteur { display:flex; align-items:center; gap:10px; margin:20px 0; font-weight:700; }
.interrupteur input { width:24px; min-height:24px; }
.retour-utilisateur { margin-top:32px; padding-top:16px; border-top:1px solid var(--filet); }
.retour-utilisateur summary { cursor:pointer; font-weight:700; }
.formulaire-retour { max-width:560px; margin-top:16px; }
.chargement { display:grid; gap:8px; }
.squelette { height:72px; border-radius:5px; background:#D8D8D8; }
.squelette.grand { height:40px; }
@media (prefers-color-scheme:dark) { .cartouche { background:#1A1A1A; color:#E4E4E4; } .squelette { background:#202020; } }

/* Valeurs exactes de Sport.bandeau pour les sports servis par la V1. */
.sport-football{background:#DAFBE8;color:#0B2817}.sport-basketball{background:#FCE9D9;color:#29180A}.sport-hockey{background:#DAF2FB;color:#0B2028}.sport-americanFootball{background:#E6DBFA;color:#160C27}.sport-baseball{background:#E2DCF9;color:#120C27}.sport-rugby{background:#DBFAF8;color:#0C2725}.sport-tennis{background:#FCF6D9;color:#29240A}
@media (prefers-color-scheme:dark){.sport-football{background:#0D301C;color:#D2F4E0}.sport-basketball{background:#311D0C;color:#F5E1D1}.sport-hockey{background:#0D2630;color:#D2EAF4}.sport-americanFootball{background:#1A0E2F;color:#DFD3F3}.sport-baseball{background:#150F2E;color:#DAD3F2}.sport-rugby{background:#0E2F2C;color:#D3F3F1}.sport-tennis{background:#312B0C;color:#F5EFD1}}
@media (max-width:520px) { .entete { align-items:flex-start; flex-direction:column; } .carte-evenement { grid-template-columns:minmax(0,1fr) auto; } .score-match { padding-inline:8px; } .equipe-match strong { font-size:14px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

.cartouche { flex-wrap:wrap; overflow-wrap:anywhere; }
.equipe-match strong,.email-compte,.equipe-classement span { overflow-wrap:anywhere; }
.participant .nom-equipe { grid-column:2; }
.participant .score { grid-column:3; }
.table-classement { table-layout:fixed; }
.table-classement th:first-child { width:42px; }
.table-classement th:last-child { width:78px; }
