/* Betting Sports Hub — front. Volontairement neutre : s'adapte au theme. */

.bsp-single { max-width: 1080px; margin: 0 auto; padding: 24px 16px 64px; }
.bsp-single__title { margin: 8px 0 20px; }
.bsp-content { margin: 24px 0; }

/* Fil d'ariane */
.bsp-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 16px; padding: 0; font-size: 13px; }
.bsp-crumbs li + li::before { content: "›"; margin-right: 8px; color: #9ca3af; }
.bsp-crumbs a { text-decoration: none; color: #6b7280; }
.bsp-crumbs a:hover { text-decoration: underline; }

/* Listes de matchs */
.bsp-list { margin: 28px 0; }
.bsp-list__title { font-size: 18px; margin: 0 0 12px; }

.bsp-row {
	display: grid;
	grid-template-columns: 128px 1fr 92px 1fr;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	margin-bottom: 8px;
	border: 1px solid #e6e8ec;
	border-radius: 12px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: box-shadow .15s ease, transform .15s ease;
}
.bsp-row:hover { box-shadow: 0 6px 18px rgba(15, 23, 42, .08); transform: translateY(-1px); }
.bsp-row.is-live { border-color: #fecaca; }

.bsp-row__date { font-size: 13px; color: #6b7280; }
.bsp-row__team { display: flex; align-items: center; gap: 8px; font-weight: 600; min-width: 0; }
.bsp-row__team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bsp-row__score { text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.bsp-row.is-live .bsp-row__score { color: #dc2626; }

.bsp-logo { object-fit: contain; flex: none; }
.bsp-logo--empty { display: inline-block; width: 28px; height: 28px; border-radius: 50%; background: #f1f5f9; }

/* Fiche match */
.bsp-match { border: 1px solid #e6e8ec; border-radius: 16px; padding: 28px; background: #fff; }
.bsp-match__title { font-size: 22px; margin: 12px 0 0; }

.bsp-badge {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 12px; text-transform: uppercase; letter-spacing: .05em;
	background: #f1f5f9; color: #334155; padding: 5px 12px; border-radius: 999px;
}
.bsp-badge.is-live { background: #fee2e2; color: #b91c1c; }
.bsp-badge__minute { font-weight: 700; }

.bsp-scoreboard { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; margin: 28px 0; text-align: center; }
.bsp-side { display: flex; flex-direction: column; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.bsp-final { font-size: 40px; font-weight: 800; font-variant-numeric: tabular-nums; }

.bsp-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 20px; }
.bsp-meta li { font-size: 14px; }
.bsp-meta span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #9ca3af; }
.bsp-meta a { color: inherit; }

/* Cartes */
.bsp-card { display: flex; gap: 18px; align-items: center; border: 1px solid #e6e8ec; border-radius: 16px; padding: 20px; margin-bottom: 20px; background: #fff; }
.bsp-card__title { font-size: 20px; font-weight: 700; text-decoration: none; color: inherit; display: block; margin-bottom: 10px; }
.bsp-card__photo { border-radius: 12px; object-fit: cover; }
.bsp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }

/* Classement */
.bsp-table-wrap { overflow-x: auto; }
.bsp-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px; }
.bsp-table th, .bsp-table td { padding: 10px 8px; border-bottom: 1px solid #eef0f3; text-align: center; }
.bsp-table th { background: #f9fafb; font-weight: 600; }
.bsp-th-team, .bsp-td-team { text-align: left; }
.bsp-td-team { display: flex; align-items: center; gap: 8px; }
.bsp-td-team a { text-decoration: none; color: inherit; font-weight: 600; }

/* Cotes */
.bsp-odds { margin: 28px 0; padding: 20px; border: 1px solid #e6e8ec; border-radius: 16px; background: #fff; }
.bsp-odds__grid { display: flex; gap: 12px; flex-wrap: wrap; margin: 12px 0; }
.bsp-odds__cell { flex: 1; min-width: 90px; text-align: center; padding: 12px; border: 1px solid #e6e8ec; border-radius: 10px; }
.bsp-odds__cell span { display: block; font-size: 12px; color: #9ca3af; }
.bsp-odds__cell strong { font-size: 20px; }

/* Partenaires */
.bsp-partners { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 20px 0; }
.bsp-partner { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px; border: 1px solid #e6e8ec; border-radius: 12px; text-decoration: none; color: inherit; background: #fff; }
.bsp-partner img { max-height: 40px; object-fit: contain; }
.bsp-partner__name { font-weight: 700; }
.bsp-partner__bonus { font-size: 13px; color: #059669; }

/* Bandeau legal */
.bsp-anj { display: flex; gap: 12px; align-items: center; margin: 24px 0; padding: 12px 16px; border-radius: 10px; background: #f8fafc; border: 1px solid #e2e8f0; }
.bsp-anj__badge { flex: none; font-weight: 800; font-size: 13px; padding: 4px 8px; border-radius: 6px; background: #0f172a; color: #fff; }
.bsp-anj__text { margin: 0; font-size: 13px; color: #475569; }

/* Gate 18+ */
.bsp-agegate { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15, 23, 42, .85); }
.bsp-agegate__box { max-width: 480px; background: #fff; border-radius: 16px; padding: 32px; text-align: center; }
.bsp-agegate__legal { font-size: 12px; color: #64748b; }
.bsp-agegate__actions { display: flex; gap: 12px; justify-content: center; margin-top: 20px; }
.bsp-btn { display: inline-block; padding: 12px 20px; border: 0; border-radius: 10px; background: #0f172a; color: #fff; font-weight: 600; cursor: pointer; text-decoration: none; }
.bsp-btn--ghost { background: transparent; color: #64748b; border: 1px solid #e2e8f0; }

.bsp-empty { padding: 16px; background: #f9fafb; border-radius: 10px; color: #6b7280; }
.bsp-updated { font-size: 12px; color: #9ca3af; }

@media (max-width: 680px) {
	.bsp-row { grid-template-columns: 1fr auto; row-gap: 6px; }
	.bsp-row__date { grid-column: 1 / -1; }
	.bsp-final { font-size: 30px; }
	.bsp-scoreboard { gap: 10px; }
}

/* Archives par sport, competition et journee */
.bsp-subnav-front { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 28px; }
.bsp-subnav-front a {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 8px 14px; border: 1px solid #e6e8ec; border-radius: 999px;
	text-decoration: none; color: inherit; font-size: 14px; font-weight: 500;
	background: #fff; transition: border-color .15s ease;
}
.bsp-subnav-front a:hover { border-color: #0f172a; }
.bsp-subnav-front span { font-size: 11px; padding: 1px 7px; border-radius: 999px; background: #f1f5f9; color: #64748b; }

.bsp-pagination { margin: 32px 0; }
.bsp-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.bsp-pagination a, .bsp-pagination .current {
	display: inline-block; padding: 8px 14px; border: 1px solid #e6e8ec;
	border-radius: 8px; text-decoration: none; color: inherit;
}
.bsp-pagination .current { background: #0f172a; color: #fff; border-color: #0f172a; }
