/* Paris Sportif — front : ajouts autonomes (le gros du look vient de tournois.css).
   Placeholder logo, compte à rebours, états verrou/résultat, bloc "no matches",
   classement & historique. */

/* Placeholder logo (équipes sans crest) — calé dans le blason rond 30px de wc-tmatch */
.bt-ps .bt-ps-noflag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: #2f006d;
	color: #fff;
	font-weight: 700;
	font-size: 11px;
	letter-spacing: .3px;
}

/* Compte à rebours — palier d'urgence piloté par le JS (neutre -> orange -> rouge) */
.bt-ps .bt-ps-countdown {
	font-size: 12px;
	font-weight: 700;
	color: #5b6473;            /* neutre par défaut (plus de rouge permanent) */
	white-space: nowrap;
	min-height: 14px;
}
.bt-ps .bt-ps-countdown:empty { display: none; }
.bt-ps .bt-ps-countdown.is-soon   { color: #d97706; } /* <= 6 h */
.bt-ps .bt-ps-countdown.is-urgent { color: #c9302c; } /* <= 1 h */

/* Messages d'éligibilité / erreurs */
/* Bande d'éligibilité unique (sous le pot) — alignée sur .bt-ps-login-invite */
.bt-ps .bt-ps-notice {
	background: #fff8e5;
	border: 1px solid #f0d68a;
	padding: 10px 16px;
	border-radius: 8px;
	margin: 0 auto 18px;
	max-width: 760px;
	font-size: 14px;
	line-height: 1.45;
	text-align: center;
	color: #6b5a1e;
}
.bt-ps .match .msg.error { color: #c9302c; }
/* .msg vide ne doit pas créer un gap de flex sur la ligne match. */
.bt-ps .match .msg:empty { display: none; }
/* .msg occupe toute la largeur sous la ligne match (wc-tmatch est en flex). */
.bt-ps .match .msg.active { flex: 1 0 100%; display: block; text-align: center; font-size: 12px; font-weight: 600; margin-top: 4px; color: #2f006d; }
.bt-ps .wc-tmatch__input.error { border-color: #c9302c !important; }

/* Bloc état vide (aucune session ouverte) — carte propre, on-brand, autonome */
.bt-ps .bt-ps-nomatch {
	text-align: center;
	padding: 44px 24px;
	background: #f6f7f9;
	border: 1px solid #e6e9ef;
	border-radius: 14px;
	margin: 0 auto 30px;
	max-width: 680px;
}
.bt-ps .bt-ps-nomatch-icon {
	width: 64px;
	height: 64px;
	line-height: 64px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #2f006d;
	font-size: 30px;
}
.bt-ps .bt-ps-nomatch-title { margin: 0; font-size: 22px; font-weight: 800; color: #2f006d; }
.bt-ps .bt-ps-nomatch-sub { margin: 8px 0 18px; font-size: 15px; font-weight: 400; color: #6b7280; }
.bt-ps .bt-ps-nomatch-cta { margin: 0; }

/* Classement (live) + historique */
.bt-ps .bt-ps-standings { margin-top: 24px; }
.bt-ps table.bt-ps-rank {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: 14px;
}
.bt-ps table.bt-ps-rank th,
.bt-ps table.bt-ps-rank td {
	padding: 8px 12px;
	border-bottom: 1px solid #eceef1;
	text-align: left;
}
.bt-ps table.bt-ps-rank th { background: #2f006d; color: #fff; }
.bt-ps table.bt-ps-rank td:first-child,
.bt-ps table.bt-ps-rank th:first-child { width: 50px; text-align: center; }
.bt-ps .bt-ps-empty { color: #777; font-style: italic; margin-top: 10px; }

.bt-ps .bt-ps-history { margin-top: 40px; }
/* Past = mêmes cartes que le live (grille .bt-ps-live-grid), donc l'espacement de la
   grille suffit. Cartes au-delà du quota visible : masquées jusqu'au « Show older ». */
#bt-ps .bt-ps-history .bt-ps-past-grid { margin-top: 4px; }
#bt-ps .bt-ps-past-grid > .bt-ps-betting.is-extra { display: none; }
/* En recherche, la pagination (.is-extra) est neutralisée : on montre toutes les
   correspondances ; les cartes hors recherche passent en .is-filtered. */
#bt-ps .bt-ps-past-grid.is-searching > .bt-ps-betting.is-extra { display: block; }
#bt-ps .bt-ps-past-grid > .bt-ps-betting.is-filtered { display: none !important; }
.bt-ps .bt-ps-history-more-wrap { margin: 24px 0 0; text-align: center; }
#bt-ps .bt-ps-history-more-wrap .js-bt-ps-past-more {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 11px 26px; border-radius: 999px;
	background: #fff; color: #461572; border: 1.5px solid rgba(70,21,114,.35);
	font-weight: 800; font-size: 13px; letter-spacing: .03em; text-transform: uppercase;
	cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
#bt-ps .bt-ps-history-more-wrap .js-bt-ps-past-more:hover { background: #461572; color: #fff; border-color: #461572; }

/* Barre de recherche des tournois passés (centrée au-dessus de la grille). */
#bt-ps .bt-ps-past-search { position: relative; max-width: 360px; margin: 0 auto 20px; }
#bt-ps .bt-ps-past-search__ico { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 17px; height: 17px; color: #461572; opacity: .6; pointer-events: none; }
#bt-ps .bt-ps-past-search input { width: 100%; padding: 11px 16px 11px 40px; border-radius: 999px; border: 1px solid rgba(70,21,114,.18); background: #fff; font-size: 14px; color: #2a292b; box-shadow: 0 2px 10px rgba(26,7,70,.05); }
#bt-ps .bt-ps-past-search input:focus { outline: none; border-color: #461572; box-shadow: 0 0 0 3px rgba(70,21,114,.12); }

/* ── Carte « Closed » (tournoi terminé) : on GARDE le bandeau coloré du live, puis on
   pose un voile gris translucide par-dessus. Seul le badge « Closed » repasse au-dessus
   du voile (z-index) pour rester bien visible. */
#bt-ps .wc-tcard--closed .wc-tcard__top { position: relative; }
#bt-ps .wc-tcard--closed .wc-tcard__top::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: rgba(38, 38, 46, .55);
	border-radius: inherit; pointer-events: none;
}
/* « Closed » au-dessus du voile : pastille BLANCHE pleine, contraste maximal. */
#bt-ps .wc-tcard--closed .wc-tcard__badge--closed {
	position: relative; z-index: 2;
	padding: 4px 11px; border-radius: 999px;
	background: #fff; color: #161616;
	font-size: 12px; font-weight: 900; letter-spacing: .07em;
	box-shadow: 0 2px 9px rgba(0,0,0,.3);
}
#bt-ps .wc-tcard--closed .wc-tcard__badge--closed .wc-tcard__badge-sep { opacity: .5; }
#bt-ps .wc-tcard--closed .wc-tcard__badge--closed .wc-tcard__lock-ico { font-size: 11px; line-height: 1; }

/* Match annulé — ligne de pari grisée (le libellé passe par .wc-tmatch__status) */
.bt-ps .match.bt-ps-state-cancelled { opacity: .72; }
/* Pari neutralisé (match annulé) dans le classement */
.bt-ps .bet._void { opacity: .55; }
.bt-ps .bet._void .score { background: #dcdcde; }

/* Bouton « Log in to bet » — sobre, cohérent (contour navy plein largeur, pas le gros bouton) */
.bt-ps .bt-ps-login-bet {
	display: inline-block; cursor: pointer;
	padding: 9px 22px; border-radius: 999px;
	background: #fff; color: #2f006d !important;
	border: 1.5px solid #2f006d;
	font-size: 13px; font-weight: 700; letter-spacing: .2px;
	text-decoration: none; transition: background .15s, color .15s;
}
.bt-ps .bt-ps-login-bet:hover,
.bt-ps .bt-ps-login-bet:focus {
	background: #2f006d; color: #fff !important;
}

/* Suivi e-mail gagnant (classement final) — petit indicateur discret ✉ / ✉✓ */
.bt-ps .bt-ps-mail {
	display: inline-block; margin-left: 6px; font-size: 12px;
	color: #8a93a3; cursor: help; vertical-align: middle; line-height: 1; white-space: nowrap;
}
.bt-ps .bt-ps-mail.is-opened { color: #2f006d; } /* ouvert = violet marque (pas de vert, charte) */

/* Invite visiteur non connecté — sobre (pas un bandeau alarmant) */
.bt-ps .bt-ps-login-invite {
	text-align: center; font-size: 14px; color: #2f006d;
	background: #eef1f6; border: 1px solid #dfe4ec; border-radius: 8px;
	padding: 10px 16px; margin: 0 auto 18px; max-width: 760px;
}

/* ============================================================================
 * Ticket-tournoi (session ouverte) — réutilise le design wc-tcard / wc-tmatch
 * compilé dans tournois.css. Ici : seulement les ajustements propres au moteur
 * (logos réels dans le blason, action countdown+bouton, pastilles d'état).
 * Scopé #bt-ps : n'affecte pas le composant worldcupTournaments (#wc-tournaments).
 * On-charte (violet/bleu/or) — pas de vert.
 * ========================================================================== */

/* Carte centrée et resserrée (allure « ticket », pas pleine largeur écran). */
#bt-ps .bt-ps-betting { display: block; }
#bt-ps .bt-ps-card { max-width: 640px; margin: 0 auto; }

/* La classe .match (hook JS) traîne aussi une carte legacy (flex:0 0 325px,
 * padding 40/25, box-shadow, overflow:hidden). On réaffirme la ligne compacte
 * wc-tmatch (#bt-ps + 2 classes battent .match en spécificité). */
#bt-ps .wc-tmatch.match {
	display: flex;
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 8px 12px;
	border-radius: 15px;
	box-shadow: none;
	overflow: visible;
	align-items: center;
	flex-wrap: wrap; /* permet à .msg.active (flex-basis:100%) de passer SOUS la ligne match */
	gap: 12px;
}
#bt-ps .wc-tmatch.match.is-settled { background: rgba(30, 111, 255, .04); }

/* Inputs de score : le bundle tournois a des règles .score agressives (font-size
 * 50px, largeur 100px, couleur pink) destinées au classement. On réaffirme la case
 * compacte wc-tmatch__input (#bt-ps + 2 classes gagnent en spécificité). */
#bt-ps .wc-tmatch__input.score {
	width: 34px;
	height: 34px;
	min-width: 0;
	margin: 0;
	padding: 0;
	float: none;
	text-align: center;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	color: #2f006d;
	background: #fff;
	border: 1.5px solid rgba(70, 21, 114, .20);
	border-radius: 8px;
	box-shadow: none;
}
#bt-ps .wc-tmatch__input.score:focus {
	outline: none;
	border-color: #461572;
	box-shadow: 0 0 0 3px rgba(70, 21, 114, .10);
}

/* Blason rond 30px : on y loge le vrai logo (média) ou les initiales en cover. */
#bt-ps .wc-tmatch__crest { overflow: hidden; }
#bt-ps .wc-tmatch__crest img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
}

/* Action : countdown (+ lien « Log in to bet ») calé à droite de la ligne. Le bouton de
 * pari a disparu — le pari part en auto-envoi via le ✓ inline (.wc-tmatch__confirm). */
#bt-ps .wc-tmatch__action {
	flex: 0 0 auto;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

/* ✓ de confirmation inline — remplace le bouton Bet/Update. Masqué tant que les deux
 * scores ne sont pas saisis ; révélé par .is-ready ; passe en plein (violet→bleu CdM)
 * une fois le pari enregistré (.is-picked). Auto-envoi → non cliquable. */
#bt-ps .wc-tmatch__confirm {
	display: none;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin-left: 8px;
	border-radius: 50%;
	border: 1.5px solid rgba(70, 21, 114, .35);
	background: #fff;
	color: #461572;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	flex-shrink: 0;
	pointer-events: none;
	transition: background .15s, border-color .15s, color .15s, transform .15s, opacity .15s;
}
#bt-ps .wc-tmatch.is-ready .wc-tmatch__confirm { display: inline-flex; }
#bt-ps .wc-tmatch.is-submitting .wc-tmatch__confirm { opacity: .55; }
#bt-ps .wc-tmatch.is-picked .wc-tmatch__confirm {
	background: linear-gradient(135deg, #461572, #15369e);
	border-color: transparent;
	color: #fff;
	transform: scale(1.05);
}

/* Pastilles d'état (verrou / annulé) — même gabarit que wc-tmatch__status, teintes neutres. */
#bt-ps .wc-tmatch__status.bt-ps-status--locked {
	background: rgba(47, 0, 109, .08);
	color: #5b4b78;
	font-style: normal;
}
#bt-ps .wc-tmatch__status.bt-ps-status--cancelled {
	background: rgba(207, 34, 46, .10);
	color: #cf222e;
}

/* Suffixe « pts » du prize — plus discret que le gros chiffre or. Non scopé :
 * réutilisé par les cartes « soon » du composant worldcupTournaments (#wc-tournaments). */
.wc-tcard__prize-val .bt-ps-pts {
	font-size: .42em;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	vertical-align: middle;
}

/* Mobile : l'action (countdown / lien login) repasse pleine largeur, centrée sous la ligne. */
@media screen and (max-width: 480px) {
	#bt-ps .wc-tmatch__action { flex: 1 0 100%; justify-content: center; }
	#bt-ps .wc-tmatch__action .bt-ps-countdown { text-align: center; }
}

/* ============================================================================
 * « Overall Best Bettor » — design v10 (handoff Claude Design).
 * Cartes joueur : médaillon de rang (or/argent/bronze top 3, simple numéro au-delà),
 * stats exact/result/missed, picks World Cup (+bonus), total points. Sans emoji.
 * Markup unique reflowé : desktop horizontal ⇄ mobile empilé (≤640px).
 * Polices Poppins (display) + Plus Jakarta Sans (corps) chargées par le bloc.
 * ========================================================================== */
/* Pas de panneau (ni fond ni largeur réduite) : le bloc prend la LARGEUR DE CONTENU
   de la page via .btlb__inner.wrapper, comme les autres sections. La police du design
   (Plus Jakarta) est posée sur les CARTES/légende seulement — surtout PAS sur .btlb,
   sinon elle cascade sur le titre. Le titre garde le .wc-section-head du thème (même
   police/graisse que les autres sections de la page). */
.btlb{ margin:40px 0; }
/* .btlb__inner : largeur via .wrapper (pas de max-width custom). */

/* List */
.btlb__list{ display:flex; flex-direction:column; gap:13px; font-family:'Plus Jakarta Sans',sans-serif; }
.btlb__empty{ text-align:center; color:#6b6880; margin:12px 0; font-family:'Plus Jakarta Sans',sans-serif; }

/* Card — grille reflowable */
.btlb__card{
	display:grid; grid-template-columns:auto minmax(0,1fr) auto;
	grid-template-areas:"rank name total" "rank stats total" "rank picks total";
	align-items:center; column-gap:18px; row-gap:9px;
	background:#fff; border:1px solid #eef0f4; border-left:4px solid #ece8f5;
	border-radius:16px; padding:14px 18px; box-shadow:0 8px 24px rgba(28,20,60,.05);
	transition:transform .14s ease, box-shadow .14s ease;
}
.btlb__card:hover{ transform:translateY(-2px); box-shadow:0 16px 32px rgba(28,20,60,.1); }
.btlb__card--gold{ border-left-color:#e9a400; }
.btlb__card--silver{ border-left-color:#b6bdca; }
.btlb__card--bronze{ border-left-color:#d29a6f; }
.btlb__card--me{ box-shadow:0 0 0 2px #c9b8f2, 0 8px 24px rgba(28,20,60,.05); }

/* Overall Best Bettor — pagination top 10 (Show more / Show all) + ligne « toi » épinglée */
.btlb-hidden{ display:none !important; }
.btlb__foot{ display:flex; justify-content:center; gap:12px; margin-top:16px; }
.btlb__more{ cursor:pointer; font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:14px;
	color:#461572; background:#fff; border:1px solid rgba(70,21,114,.18); border-radius:12px; padding:9px 20px; transition:background .14s ease; }
.btlb__more:hover{ background:#f4f0fb; }
.btlb__youbar{ margin:2px 0 16px; padding-top:6px; border-top:1px dashed rgba(70,21,114,.22); }
.btlb__youbar-label{ display:block; margin:10px 0 8px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700;
	font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#7a5fb0; }
.btlb__youbar .btlb__card{ box-shadow:0 0 0 2px #8a5cff, 0 10px 26px rgba(70,21,114,.12); }

/* Classement de session (See Leaderboard) — ligne « toi » épinglée, toujours visible */
#bt-ps .bt-ps-score.wc-lb .wc-lb__youbar-label{ margin:14px 0 6px; font-weight:700; font-size:12px;
	letter-spacing:.05em; text-transform:uppercase; color:#7a5fb0; }
#bt-ps .bt-ps-score.wc-lb ul.wc-lb__youbar{ margin:0 0 8px; padding:0; list-style:none; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__row--pinned{ box-shadow:inset 0 0 0 2px #8a5cff; border-radius:12px; }

/* Séparateur « Top players » entre la position épinglée et le classement */
.btlb__toplabel,
#bt-ps .bt-ps-score.wc-lb .wc-lb__toplabel{ margin:18px 0 10px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700;
	font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:#9a93ad; display:flex; align-items:center; gap:10px; }
.btlb__toplabel::after,
#bt-ps .bt-ps-score.wc-lb .wc-lb__toplabel::after{ content:""; flex:1; height:1px; background:rgba(70,21,114,.12); }

/* TA ligne (See Leaderboard) — surbrillance + contour, IDENTIQUE au Best Bettor */
#bt-ps .bt-ps-score.wc-lb .wc-lb__row.is-you{ position:relative; z-index:1; background:linear-gradient(90deg,#f4efff,#fff) !important;
	box-shadow:0 0 0 2px #8a5cff, 0 10px 26px rgba(70,21,114,.12) !important; border-radius:12px !important; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__row.is-you .wc-lb__name{ color:#461572; font-weight:800; }

/* TA carte (Overall Best Bettor) — surbrillance + contour */
.btlb__card--me{ box-shadow:0 0 0 2px #8a5cff, 0 10px 26px rgba(70,21,114,.12); background:linear-gradient(90deg,#f4efff,#fff); border-left-color:#8a5cff; }

/* See Leaderboard — top 3 en médaillon or/argent/bronze (comme Best Bettor) */
#bt-ps .bt-ps-score.wc-lb .wc-lb__rank-badge{ display:inline-flex; align-items:center; justify-content:center; min-width:28px; height:28px; padding:0 6px; border-radius:999px; font-weight:800; line-height:1; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__row--gold .wc-lb__rank-badge{ background:linear-gradient(150deg,#ffd86b,#e9a400); color:#5a3d00; box-shadow:0 2px 6px rgba(233,164,0,.35); }
#bt-ps .bt-ps-score.wc-lb .wc-lb__row--silver .wc-lb__rank-badge{ background:linear-gradient(150deg,#dbe0e9,#9aa3b2); color:#33404f; box-shadow:0 2px 6px rgba(154,163,178,.35); }
#bt-ps .bt-ps-score.wc-lb .wc-lb__row--bronze .wc-lb__rank-badge{ background:linear-gradient(150deg,#e8b182,#c77b43); color:#4d2a10; box-shadow:0 2px 6px rgba(199,123,67,.35); }

/* Compteur de participants */
#bt-ps .bt-ps-score.wc-lb .wc-lb__count{ margin-right:auto; padding:4px 12px; border-radius:999px; background:rgba(70,21,114,.08);
	color:#461572; font-size:13px; font-weight:700; white-space:nowrap; }
.btlb__count{ margin:6px 0 4px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:13px; color:#7a5fb0; }

/* Médaillon de rang */
.btlb__rankwrap{ grid-area:rank; align-self:center; width:52px; height:52px; display:flex; align-items:center; justify-content:center; }
.btlb__rank{ width:40px; height:40px; border-radius:50%; background:transparent; color:#b0abc2; font-family:'Poppins',sans-serif; font-weight:800; font-size:19px; display:flex; align-items:center; justify-content:center; }
.btlb__card--gold .btlb__rank,.btlb__card--silver .btlb__rank,.btlb__card--bronze .btlb__rank{
	width:48px; height:48px; font-size:20px; color:#fff;
	box-shadow:inset 0 0 0 3px rgba(255,255,255,.28), 0 6px 14px rgba(28,20,60,.14);
}
.btlb__card--gold .btlb__rank{ background:linear-gradient(150deg,#ffd86b,#e9a400); }
.btlb__card--silver .btlb__rank{ background:linear-gradient(150deg,#dbe0e9,#9aa3b2); }
.btlb__card--bronze .btlb__rank{ background:linear-gradient(150deg,#e8b182,#c77b43); }

/* Nom */
.btlb__name{ grid-area:name; min-width:0; font-family:'Poppins',sans-serif; font-weight:800; font-size:17px; color:#1b1630; overflow-wrap:anywhere; }

/* Stats */
.btlb__stats{ grid-area:stats; display:flex; gap:8px; flex-wrap:wrap; }
.btlb__stat{ display:inline-flex; align-items:baseline; gap:6px; background:#f5f4f9; border-radius:9px; padding:5px 12px; }
.btlb__stat b{ font-family:'Poppins',sans-serif; font-size:15px; color:#2e0f73; }
.btlb__stat>span{ font-size:11px; font-weight:700; color:#8a85a0; }
.btlb__stat--missed b{ color:#9a96ad; }
.btlb__stat--missed>span{ color:#a8a4b8; }

/* Picks */
.btlb__picks{ grid-area:picks; display:flex; gap:6px; flex-wrap:wrap; }
.btlb__pick{ display:inline-flex; align-items:center; gap:5px; max-width:200px; font-size:11px; font-weight:700; color:#8a6d12; background:#fff8e6; border:1px solid #f3e0a6; padding:2px 9px; border-radius:999px; }
.btlb__pick-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.btlb__pick-amt{ color:#b8870c; }

/* Total */
.btlb__total{ grid-area:total; align-self:center; min-width:96px; text-align:right; }
.btlb__points{ font-family:'Poppins',sans-serif; font-weight:800; font-size:32px; line-height:1; color:#4318a8; }
.btlb__card--gold .btlb__points{ color:#b8870c; }
.btlb__points-label{ font-size:9.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#9a96ad; margin-top:5px; }

/* ── Mobile (≤640px) : rang+nom+total en haut, stats 3 colonnes égales, picks pleine largeur ── */
@media (max-width:640px){
	.btlb{ padding:22px 12px 30px; }
	.btlb__card{ grid-template-areas:"rank name total" "stats stats stats" "picks picks picks"; column-gap:12px; row-gap:12px; padding:13px 14px; }
	.btlb__rankwrap{ width:44px; height:44px; }
	.btlb__rank{ width:36px; height:36px; font-size:17px; }
	.btlb__card--gold .btlb__rank,.btlb__card--silver .btlb__rank,.btlb__card--bronze .btlb__rank{ width:42px; height:42px; font-size:18px; }
	.btlb__name{ align-self:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
	.btlb__total{ min-width:0; }
	.btlb__points{ font-size:26px; }
	.btlb__stats{ gap:7px; flex-wrap:nowrap; }
	.btlb__stat{ flex:1; flex-direction:column; align-items:center; gap:0; border-radius:10px; padding:7px 4px; text-align:center; }
	.btlb__stat b{ font-size:17px; line-height:1; }
	.btlb__stat>span{ font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; margin-top:4px; }
	.btlb__picks{ gap:6px; flex-wrap:nowrap; }
	.btlb__pick{ flex:1; min-width:0; max-width:none; justify-content:space-between; border-radius:9px; padding:4px 9px; }
}

/* ============================================================================
 * Classement moteur en design wc-lb (podium + table + slider de paris).
 * Réutilise les classes wc-lb (stylées par tournois.css) et SURCHARGE la grille
 * de ligne pour intégrer la colonne « Bets & results » (slider). Scope #bt-ps +
 * .bt-ps-score.wc-lb pour battre en spécificité le bundle tournois (.wc-lb__row,
 * .bet gradient). Aucune teinte verte (charte). Tokens en dur (.css, pas de SCSS).
 * ========================================================================== */

/* Espace entre la carte de paris et le classement (« ne touche pas les matchs »).
 * Largeur alignée sur les sections WC voisines (= classe .wrapper du thème :
 * desktop ≥1101px → width 80% / max 1360 centré ; ≤1100px → 100% + padding 12px). */
#bt-ps .bt-ps-betting + .bt-ps-score.wc-lb {
	width: 80%; max-width: 1360px; margin: 48px auto 0;
}
@media (max-width: 1100px) {
	#bt-ps .bt-ps-betting + .bt-ps-score.wc-lb {
		width: 100%; padding-left: 12px; padding-right: 12px;
	}
}

/* En-tête : titre + recherche sur une ligne. */
#bt-ps .bt-ps-score.wc-lb .wc-lb__head {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; flex-wrap: wrap; margin-bottom: 20px;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__head-title {
	margin: 0; color: #2f006d; font-size: 22px; font-weight: 900; line-height: 1.2;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__search {
	display: inline-flex; align-items: center; gap: 6px; flex: 0 1 280px;
	background: #fff; border: 1px solid rgba(70,21,114,.12); border-radius: 999px;
	padding: 5px 6px 5px 16px; box-shadow: 0 2px 8px rgba(26,7,70,.06);
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__search input {
	flex: 1 1 auto; min-width: 0; border: none; outline: none; background: transparent;
	font-size: 14px; color: #2a292b;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__search button {
	flex: 0 0 auto; width: 34px; height: 34px; border: none; cursor: pointer;
	border-radius: 50%; background: #461572; display: grid; place-items: center;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__search button:hover { background: #5a0596; }

/* Initiales (pas de drapeau côté joueurs) dans les avatars wc-lb. */
#bt-ps .bt-ps-score.wc-lb .wc-lb__pod-flag {
	font-size: 18px; font-weight: 800; color: #461572; line-height: 1;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__pod--gold .wc-lb__pod-flag { font-size: 20px; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__avatar {
	font-size: 12px; font-weight: 800; color: #461572;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__pod-prize {
	white-space: nowrap;
}

/* tbody : la liste <ul> empile les lignes comme la table statique. */
#bt-ps .bt-ps-score.wc-lb .wc-lb__tbody {
	display: flex; flex-direction: column; gap: 6px;
	list-style: none; margin: 0; padding: 0;
}

/* Grille de ligne moteur : rang | joueur | paris (slider) | score | prix.
 * display:grid + align-items explicites (auto-suffisant, indépendant de l'ordre
 * de chargement de tournois.css). */
#bt-ps .bt-ps-score.wc-lb .wc-lb__row {
	display: grid; align-items: center;
	grid-template-columns: 34px minmax(120px, 1.1fr) minmax(0, 3fr) 60px 96px;
}
#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--points { justify-self: end; font-variant-numeric: tabular-nums; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--points b { font-weight: 900; color: #2f006d; font-size: 16px; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--prize { justify-self: end; font-weight: 800; color: #15369e; white-space: nowrap; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--bets { min-width: 0; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--bets .wc-lb__cell-label { display: none; }

/* ── Slider de paris (« Bets & results ») dans la cellule ── */
#bt-ps .bt-ps-score.wc-lb .bets {
	position: relative; padding: 0 20px; white-space: nowrap; min-width: 0;
}
#bt-ps .bt-ps-score.wc-lb .inner_bets { overflow: hidden; display: flex; }
#bt-ps .bt-ps-score.wc-lb .slider_bets { display: flex; gap: 6px; }
#bt-ps .bt-ps-score.wc-lb .bets i.scroll_left,
#bt-ps .bt-ps-score.wc-lb .bets i.scroll_right {
	display: none; position: absolute; top: 50%; transform: translateY(-50%);
	height: 0; width: 0; cursor: pointer; z-index: 3; border-style: solid;
}
#bt-ps .bt-ps-score.wc-lb .bets i.scroll_left {
	left: 0; border-width: 7px 10px 7px 0; border-color: transparent #461572 transparent transparent;
}
#bt-ps .bt-ps-score.wc-lb .bets i.scroll_right {
	right: 0; border-width: 7px 0 7px 10px; border-color: transparent transparent transparent #461572;
}
#bt-ps .bt-ps-score.wc-lb .bets i.disabled { opacity: .35; pointer-events: none; }

/* Cellule pari (surcharge le .bet gradient pleine largeur du bundle tournois). */
#bt-ps .bt-ps-score.wc-lb .bets .bet {
	display: flex; width: auto; margin: 0; padding: 0; flex: 0 0 auto;
	background: #f6f9fc; border-radius: 8px; overflow: hidden; font-weight: 400;
}
#bt-ps .bt-ps-score.wc-lb .bets .bet > span { display: block; text-align: center; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .team { padding: 0 8px; text-align: left; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .team p { margin: 0; height: 26px; line-height: 26px; font-size: 12px; color: #2a292b; white-space: nowrap; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .team p:first-child { border-bottom: 1px solid #fff; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .score_user,
#bt-ps .bt-ps-score.wc-lb .bets .bet .score { width: 30px; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .score_user p { margin: 0; height: 26px; line-height: 26px; font-size: 12px; color: #9aa3b2; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .score p { margin: 0; height: 26px; line-height: 26px; font-size: 12px; color: #2a292b; }
#bt-ps .bt-ps-score.wc-lb .bets .bet .score_user p:first-child,
#bt-ps .bt-ps-score.wc-lb .bets .bet .score p:first-child { border-bottom: 1px solid #fff; }
/* Résultat du pari — pas de vert : exact = bleu, bonne issue = ambre, raté = corail. */
#bt-ps .bt-ps-score.wc-lb .bets .bet._e .score { background: #1e6fff; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._e .score p { color: #fff; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._w .score { background: #fdca3e; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._l .score { background: #e27c64; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._l .score p { color: #fff; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._void { opacity: .55; }
#bt-ps .bt-ps-score.wc-lb .bets .bet._void .score { background: #dcdcde; }

/* Pagination : masquée tant que le JS n'ajoute pas .active (peu d'items). */
#bt-ps .bt-ps-score.wc-lb .js-bt-ps-actions:not(.active) { display: none; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__foot { display: flex; justify-content: center; gap: 12px; margin-top: 18px; }
#bt-ps .bt-ps-score.wc-lb .wc-lb__more { cursor: pointer; border: 1px solid rgba(70,21,114,.18); background: #fff; }
#bt-ps .bt-ps-score.wc-lb .bt-ps-empty { text-align: center; color: rgba(42,41,43,.6); padding: 24px 0; }

/* ── Tablette / mobile : la ligne passe en carte empilée (labels inline) ── */
@media (max-width: 768px) {
	#bt-ps .bt-ps-betting + .bt-ps-score.wc-lb { margin-top: 32px; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__row--head { display: none; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__row {
		grid-template-columns: auto 1fr auto;
		grid-auto-rows: auto; gap: 6px 10px;
		padding: 14px; border: 1px solid rgba(70,21,114,.08);
		background: #fff; box-shadow: 0 2px 10px rgba(26,7,70,.06);
	}
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--rank { grid-row: 1; grid-column: 1; align-self: center; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--player { grid-row: 1; grid-column: 2; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--points { grid-row: 1; grid-column: 3; justify-self: end; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--prize {
		grid-row: 2; grid-column: 1 / -1; justify-self: start;
		display: inline-flex; align-items: center; gap: 6px; font-size: 13px;
	}
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--bets { grid-row: 3; grid-column: 1 / -1; }
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell-label {
		display: inline; color: rgba(42,41,43,.45); font-weight: 700;
		text-transform: uppercase; letter-spacing: .04em; font-size: 11px; margin-right: 6px;
	}
	#bt-ps .bt-ps-score.wc-lb .wc-lb__cell--bets .wc-lb__cell-label { display: block; margin-bottom: 6px; }
	#bt-ps .bt-ps-score.wc-lb .bets { padding: 0 18px; }
}

/* ── Tournois live côte à côte (plusieurs sessions ouvertes) ──────────────
   Une carte de paris par session ouverte, alignées en desktop. Le classement
   par session est retiré temporairement (réintégré en phase 2 au dos de la
   carte via le flip « See leaderboard »). */
#bt-ps .bt-ps-live-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: flex-start;
}
/* 2 cartes par ligne en desktop (2×2 pour 4 tournois). gap 24 → chaque
   colonne = 50% − demi-gap. Une seule session ouverte → pleine largeur. */
#bt-ps .bt-ps-live-grid > .bt-ps-betting {
	flex: 1 1 calc(50% - 12px);
	max-width: calc(50% - 12px);
	min-width: 0;
	margin: 0;
}
#bt-ps .bt-ps-live-grid > .bt-ps-betting:only-child {
	flex-basis: 100%;
	max-width: 100%;
}
@media (max-width: 768px) {
	#bt-ps .bt-ps-live-grid { gap: 16px; }
	#bt-ps .bt-ps-live-grid > .bt-ps-betting { flex: 1 1 100%; max-width: 100%; }
}

/* ── Flip carte tournoi : recto paris ⇄ verso classement ─────────────────
   Bascule par tranche (rotateY 90° → swap → 0°) pilotée en JS : chaque face
   reste en flux normal (hauteurs variables OK, pas de clipping d'ombres). */
#bt-ps .bt-ps-flip { perspective: 1600px; }
#bt-ps .bt-ps-flip__inner { transition: transform .22s ease; transform-style: preserve-3d; }
#bt-ps .bt-ps-flip__face--back { display: none; }
#bt-ps .bt-ps-flip.is-flipped .bt-ps-flip__face--front { display: none; }
#bt-ps .bt-ps-flip.is-flipped .bt-ps-flip__face--back {
	display: flex; flex-direction: column; align-items: center;
}

/* CTA « See leaderboard » en bas du ticket (fond clair). Style contour par défaut
   (bordure violette + texte violet), puis se REMPLIT au survol (fond violet plein,
   texte blanc). */
#bt-ps .bt-ps-flip-cta {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	margin: 12px 14px 14px; padding: 12px 18px; border-radius: 999px;
	background: transparent; color: #461572; border: 2px solid #461572;
	font-weight: 800; font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase;
	cursor: pointer; transition: background .15s, color .15s, box-shadow .15s;
	box-shadow: none;
}
#bt-ps .bt-ps-flip-cta:hover {
	background: #461572; color: #fff;
	box-shadow: 0 6px 16px -6px rgba(70,21,114,.5);
}
#bt-ps .bt-ps-flip-cta__ico { font-size: 15px; line-height: 1; }

/* ── Carte complète : récompense discrète quand tous les matchs pronostiquables
 * d'une carte ont un prono posé (.is-complete togglé par le JS) : liseré or + halo
 * doux, et un pulse one-shot la 1re fois (.just-completed). Pas de texte (strip
 * « All picks in » retiré sur demande). */
#bt-ps .bt-ps-card.is-complete {
	border-color: rgba(245, 197, 24, .55);
	box-shadow: 0 0 0 1px rgba(245, 197, 24, .35), 0 8px 26px -10px rgba(70, 21, 114, .45);
}
/* Pulse one-shot à la complétion. */
#bt-ps .bt-ps-card.just-completed { animation: btps-card-pop .7s ease-out; }

@keyframes btps-card-pop {
	0%   { box-shadow: 0 0 0 0 rgba(245, 197, 24, 0), 0 8px 26px -10px rgba(70, 21, 114, .45); }
	30%  { box-shadow: 0 0 0 6px rgba(245, 197, 24, .35), 0 10px 30px -8px rgba(70, 21, 114, .50); }
	100% { box-shadow: 0 0 0 1px rgba(245, 197, 24, .35), 0 8px 26px -10px rgba(70, 21, 114, .45); }
}
@media (prefers-reduced-motion: reduce) {
	#bt-ps .bt-ps-card.just-completed { animation: none; }
}

/* Verso (classement, fond clair) : bouton retour au-dessus de la liste. */
/* Bouton « Back to betting » : remplace le titre dans l'en-tête, SANS encadré. */
#bt-ps .bt-ps-flip-back {
	display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 0;
	background: none; border: none; cursor: pointer; color: #461572;
	font-weight: 900; font-size: 15px; letter-spacing: .01em; line-height: 1.2;
}
#bt-ps .bt-ps-flip-back span { font-size: 17px; }
#bt-ps .bt-ps-flip-back:hover { color: #5a0596; }

/* ── Verso : classement CONTENU dans le gabarit de la carte (≈640px comme le
   recto), pas en pleine page. Panneau « carte » blanc + lignes EMPILÉES
   compactes (même langage que la version mobile), appliqué quel que soit le
   viewport puisque la largeur effective est celle de la carte. ── */
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb {
	width: 100%; max-width: 640px; margin: 0;
	background: #fff; border-radius: 18px; padding: 20px 18px 18px;
	border: 1px solid rgba(70,21,114,.08);
	box-shadow: 0 16px 44px -20px rgba(26,7,70,.55);
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__head-title { font-size: 19px; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__row--head { display: none; }
/* Ligne ULTRA-compacte : rang | joueur | score | prix sur UNE ligne, pronos
   sur la 2e. Tous les libellés (« Bets & results », « Prize ») masqués. */
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__row {
	grid-template-columns: auto minmax(0,1fr) auto auto;
	grid-auto-rows: auto; gap: 2px 8px;
	padding: 5px 8px; border: 1px solid rgba(70,21,114,.08);
	background: #fff; box-shadow: none;
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__tbody { gap: 4px; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell-label { display: none; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell--rank { grid-row: 1; grid-column: 1; align-self: center; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell--player { grid-row: 1; grid-column: 2; font-size: 13px; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell--points { grid-row: 1; grid-column: 3; justify-self: end; align-self: center; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell--prize {
	grid-row: 1; grid-column: 4; justify-self: end; align-self: center;
	display: inline-flex; align-items: center; font-size: 11px;
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__cell--bets { grid-row: 2; grid-column: 1 / -1; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .bets { padding: 0 18px; }
/* cellules de paris compactes (.team line-height 25.6 -> 15 ; tous les <p>). */
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .bets .bet p {
	height: 15px; line-height: 15px; font-size: 10px; margin: 0;
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .bets .bet .team p { font-size: 9.5px; }

/* ── Carte flip : la hauteur = celle du RECTO (tous les matchs visibles, AUCUN
   scroll au recto). Elle est figée en JS sur .bt-ps-flip__inner ; le verso
   garde EXACTEMENT cette hauteur et seule la LISTE du classement défile à
   l'intérieur (les boutons See leaderboard / Back restent visibles). ── */
#bt-ps .bt-ps-flip__face { height: 100%; }

/* Verso : bouton retour fixe en haut ; le panneau classement occupe le reste ;
   en-tête (titre + recherche) fixe, et la liste défile. */
#bt-ps .bt-ps-flip__face--back .bt-ps-flip-back { flex: 0 0 auto; }
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb {
	flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
	overflow: hidden;
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__head { flex: 0 0 auto; }
/* display:block FORCE (sinon la base wc-lb met .wc-lb__inner en flex → la table
   est compressée à la hauteur du conteneur et ne scrolle pas). On veut que la
   table reste à sa hauteur naturelle DANS .wc-lb__inner qui, lui, scrolle. */
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__inner {
	display: block; flex: 1 1 auto; min-height: 0; overflow-y: auto;
}
#bt-ps .bt-ps-flip__face--back .bt-ps-score.wc-lb .wc-lb__table { display: block; }
