/* ============================================================
   GÉGÉ SPORT — STYLES LIVE
   À charger après gege-warm.css. Tout en var(--*) → clair+sombre.
   ============================================================ */

/* ---- pastille EN DIRECT (pulse léger) ---- */
.gs-livepill { display:inline-flex; align-items:center; gap:7px; font-family:'Bricolage Grotesque'; font-weight:800; font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:var(--down); padding:4px 11px 4px 9px; border-radius:999px; }
.gs-app[data-theme="dark"] .gs-livepill { color:#1A1209; }
.gs-livepill .dot { width:8px; height:8px; border-radius:50%; background:currentColor; position:relative; }
.gs-livepill .dot::after { content:''; position:absolute; inset:0; border-radius:50%; background:currentColor; animation:gsLivePulse 1.8s ease-out infinite; }
@keyframes gsLivePulse { 0%{transform:scale(1);opacity:.65;} 70%{transform:scale(2.8);opacity:0;} 100%{opacity:0;} }
.gs-livepill.stale { background:var(--surface-3); color:var(--ink-2); }
.gs-livepill.stale .dot::after { animation:none; }

/* note: le rouge ici = sémantique "direct", pas un accent d'UI ambre. */

/* ---- fraîcheur ageSec ---- */
.gs-fresh { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; color:var(--ink-3); font-family:'JetBrains Mono'; }
.gs-fresh .fdot { width:6px;height:6px;border-radius:50%;background:var(--up); }
.gs-fresh.warn .fdot { background:var(--flat); }

/* ---- bandeau flux figé (stale, état dégradé explicite) ---- */
.gs-stalebar { display:flex; align-items:center; gap:10px; background:var(--flat-tint); border:1px solid var(--flat); border-radius:12px; padding:10px 13px; font-size:12.5px; font-weight:600; color:var(--flat-text); margin-bottom:14px; }
.gs-stalebar .gs-btn { margin-left:auto; }

/* ---- micro-flash à l'actualisation en place ---- */
@keyframes gsFlash { 0%{ background:var(--brand-tint-2); } 100%{ background:transparent; } }
.gs-flash { animation:gsFlash .7s ease-out; border-radius:7px; }
@media (prefers-reduced-motion: reduce){ .gs-flash{ animation:none; } .gs-livepill .dot::after{ animation:none; } }

/* ============================================================
   MATCH — header score
   ============================================================ */
.gs-live-hero { border:1px solid var(--line); border-radius:var(--r-xl); background:var(--surface); box-shadow:var(--shadow-sm); overflow:hidden; }
.gs-live-toprow { display:flex; align-items:center; gap:8px; padding:13px 16px 0; flex-wrap:wrap; }
.gs-live-toprow .gs-fresh { margin-left:auto; }
.gs-match-score { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; padding:16px 14px 8px; }
.gs-team { display:flex; flex-direction:column; align-items:center; gap:7px; text-align:center; min-width:0; }
.gs-team .fl { font-size:40px; line-height:1; }
.gs-team .tn { font-family:'Bricolage Grotesque'; font-weight:800; font-size:15px; letter-spacing:-0.01em; line-height:1.1; }
/* drapeaux ronds (sélections nationales) */
.gs-cflag { border-radius:50%; object-fit:cover; vertical-align:middle; box-shadow:0 0 0 1px rgba(0,0,0,.12); background:var(--surface-2); flex-shrink:0; }
.gs-team .gs-cflag { width:34px; height:34px; }
.gs-mini-team .gs-cflag { width:22px; height:22px; }
.gs-score-center { text-align:center; min-width:96px; }
.gs-score-big { font-family:'JetBrains Mono'; font-weight:700; font-size:44px; line-height:1; letter-spacing:-0.02em; display:inline-flex; gap:8px; align-items:baseline; }
.gs-score-big .sep { color:var(--ink-3); font-size:30px; }
.gs-match-detail { font-family:'JetBrains Mono'; font-size:12.5px; color:var(--down-text); font-weight:700; margin-top:8px; }
.gs-match-detail.done { color:var(--ink-2); }
.gs-match-detail.confirmed { color:var(--brand-text); }

/* ============================================================
   MATCH — timeline verticale
   ============================================================ */
.gs-tl { padding:6px 16px 14px; position:relative; }
.gs-tl-row { display:grid; grid-template-columns:42px 28px 1fr; align-items:flex-start; gap:8px; position:relative; }
.gs-tl-row .min { font-family:'JetBrains Mono'; font-weight:700; font-size:12.5px; color:var(--ink-2); text-align:right; padding-top:7px; }
.gs-tl-mid { display:flex; flex-direction:column; align-items:center; align-self:stretch; }
.gs-tl-mid .ico { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:13px; background:var(--surface-2); border:1px solid var(--line); z-index:1; margin-top:3px; }
.gs-tl-mid .line { width:2px; flex:1; background:var(--line); min-height:14px; }
.gs-tl-row:last-child .gs-tl-mid .line { display:none; }
.gs-tl-row .ico.but { background:var(--up-tint); border-color:var(--up); }
.gs-tl-row .ico.jaune { background:var(--flat-tint); border-color:var(--flat); }
.gs-tl-row .ico.rouge { background:var(--down-tint); border-color:var(--down); }
.gs-tl-content { padding:5px 0 12px; }
.gs-tl-player { font-weight:700; font-size:14px; line-height:1.2; }
.gs-tl-assist { font-size:12px; color:var(--ink-2); margin-top:1px; }
.gs-tl-team { font-size:11px; font-weight:700; color:var(--brand-text); margin-top:2px; }
.gs-tl-empty { text-align:center; color:var(--ink-3); font-size:13px; padding:18px 0; }
.gs-match-final { display:flex; align-items:center; justify-content:center; gap:7px; margin:4px 14px 16px; padding:11px; background:var(--surface-2); border:1px solid var(--line); border-radius:13px; font-family:'Bricolage Grotesque'; font-weight:800; font-size:13.5px; color:var(--ink-2); }
.gs-match-final b { color:var(--ink); font-family:'JetBrains Mono'; }

/* ============================================================
   RANKING — tableau chrono
   ============================================================ */
.gs-rank { width:100%; border-collapse:collapse; }
.gs-rank th { text-align:left; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-3); padding:6px 10px; }
.gs-rank th.r, .gs-rank td.r { text-align:right; }
.gs-rank td { padding:9px 10px; border-top:1px solid var(--line-soft); font-size:13.5px; }
.gs-rank .rk { font-family:'JetBrains Mono'; font-weight:700; color:var(--ink-2); width:30px; }
.gs-rank .nm { font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:0; }
.gs-rank .fl { margin-right:7px; }
.gs-rank .tm { font-family:'JetBrains Mono'; font-weight:700; text-align:right; white-space:nowrap; }
.gs-rank .sh { font-family:'JetBrains Mono'; font-size:12px; color:var(--ink-2); text-align:right; white-space:nowrap; }
.gs-rank tr.fr td { background:var(--brand-tint); }
.gs-rank tr.fr .nm { color:var(--brand-text); font-weight:800; }
.gs-rank tr.lead .tm { color:var(--up-text); }
.gs-frtag { display:inline-block; font-size:8.5px; font-weight:800; background:var(--brand); color:#fff; border-radius:4px; padding:1px 4px; margin-left:6px; vertical-align:1px; letter-spacing:.03em; }

/* ============================================================
   HUB EN DIRECT + cartes live génériques
   ============================================================ */
.gs-livecard { overflow:hidden; }
.gs-livecard-head { display:flex; align-items:center; gap:8px; padding:11px 14px 9px; flex-wrap:wrap; }
.gs-livecard-head .comp { font-size:11.5px; font-weight:700; color:var(--ink-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-livecard-head .gs-fresh { margin-left:auto; }
.gs-mini-match { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; padding:4px 14px 12px; }
.gs-mini-team { display:flex; align-items:center; gap:8px; min-width:0; }
.gs-mini-team.away { flex-direction:row-reverse; }
.gs-mini-team .fl { font-size:22px; }
.gs-mini-team .tn { font-weight:700; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-mini-score { font-family:'JetBrains Mono'; font-weight:700; font-size:22px; white-space:nowrap; }
.gs-mini-score .sep { color:var(--ink-3); margin:0 3px; }
.gs-mini-rank { padding:2px 6px 10px; }
.gs-mini-rankrow { display:flex; align-items:center; gap:9px; padding:5px 10px; font-size:13px; }
.gs-mini-rankrow .rk { font-family:'JetBrains Mono'; font-weight:700; color:var(--ink-2); width:20px; }
.gs-mini-rankrow .nm { font-weight:600; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-mini-rankrow.fr { background:var(--brand-tint); border-radius:8px; }
.gs-mini-rankrow.fr .nm { color:var(--brand-text); font-weight:800; }
.gs-mini-rankrow .tm { font-family:'JetBrains Mono'; font-weight:700; font-size:12.5px; }

.gs-live-cta { display:flex; gap:8px; align-items:center; padding:10px 14px; border-top:1px solid var(--line-soft); background:var(--surface-2); }
.gs-live-cta .lab { font-size:12px; color:var(--ink-2); font-weight:600; display:flex; align-items:center; gap:6px; }
.gs-live-cta .spacer { margin-left:auto; }

/* compétition — group par jour */
.gs-daygroup { margin-top:18px; }
.gs-daylabel { font-family:'Bricolage Grotesque'; font-weight:800; font-size:14px; margin:0 2px 10px; display:flex; align-items:center; gap:8px; }
.gs-daylabel .ct { font-family:'Hanken Grotesk'; font-weight:600; font-size:12px; color:var(--ink-3); }
.gs-fixture { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; padding:13px 14px; }
.gs-fixture .gs-mini-team .tn { font-size:14px; }
.gs-fixture-mid { text-align:center; min-width:74px; }
.gs-fixture-score { font-family:'JetBrains Mono'; font-weight:700; font-size:19px; }
.gs-fixture-time { font-family:'JetBrains Mono'; font-weight:700; font-size:15px; }
.gs-fixture-meta { font-size:10px; color:var(--ink-3); margin-top:3px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; }

/* live tab dot */
.gs-tab .livedotwrap { position:relative; }
.gs-tab .livedotwrap::after { content:''; position:absolute; top:-1px; right:-3px; width:7px; height:7px; border-radius:50%; background:var(--down); border:1.5px solid var(--surface); }
