/*
 * AI Content Engine — football blocks.
 * Scoped to .aic-fb; uses the tokens defined on .aic-block in frontend.css.
 * Mobile-first, logical properties for RTL, tabular figures for scores.
 */

.aic-fb {
	--aic-fb-live: #b42318;
	--aic-fb-win: #15803d;
	--aic-fb-draw: #6b7280;
	--aic-fb-loss: #b42318;
	--aic-fb-yellow: #eab308;
	--aic-fb-red: #dc2626;
	color: var(--aic-ink);
	font-variant-numeric: tabular-nums;
	margin-block: var(--aic-gap);
}
.aic-fb *,
.aic-fb *::before,
.aic-fb *::after { box-sizing: border-box; }
.aic-fb a { color: var(--aic-accent-ink); }
.aic-fb-muted { color: var(--aic-muted); font-weight: 400; }
.aic-fb-empty { color: var(--aic-muted); margin: 0.75rem 0; }
.aic-fb-note { color: var(--aic-muted); font-size: 0.85rem; margin-block: 0.75rem 0; }
.aic-fb [aria-busy="true"] { opacity: 0.55; transition: opacity 0.2s; }

/* ---------- Match rows ---------- */
.aic-fb-day {
	font-size: 1rem;
	margin-block: 1.5rem 0.5rem;
}
/* Only the first letter: "jeudi 24 septembre" → "Jeudi 24 septembre", not "Septembre". */
.aic-fb-day::first-letter { text-transform: uppercase; }
.aic-fb-group { margin-block: 0.75rem 1.25rem; }
.aic-fb-group__title {
	font-size: 0.9rem;
	font-weight: 700;
	margin: 0 0 0.35rem;
	padding-block-end: 0.35rem;
	border-block-end: 1px solid var(--aic-line);
}
.aic-fb-rows { list-style: none; margin: 0; padding: 0; }
.aic-fb-row + .aic-fb-row { border-block-start: 1px solid var(--aic-line); }
.aic-fb-row__link {
	display: grid;
	grid-template-columns: 4.75rem 1fr auto 1fr;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.25rem;
	color: inherit;
	text-decoration: none;
	border-radius: 8px;
}
a.aic-fb-row__link:hover,
a.aic-fb-row__link:focus-visible { background: var(--aic-paper); }
.aic-fb-row__time { color: var(--aic-muted); font-size: 0.85rem; white-space: nowrap; }
.aic-fb-rows--dated .aic-fb-row__link { grid-template-columns: 8.5rem 1fr auto 1fr; }
.aic-fb-rows--dated .aic-fb-row__time { white-space: normal; }
.aic-fb-row__team { min-inline-size: 0; overflow-wrap: break-word; hyphens: auto; }
.aic-fb-row__team--home { text-align: end; }
.aic-fb-row__score {
	font-weight: 700;
	min-inline-size: 3.5rem;
	text-align: center;
	white-space: nowrap;
}
@media (max-width: 480px) {
	/* Home above away, score on the right: full width for each name. */
	.aic-fb-row__link {
		grid-template-columns: 3.75rem 1fr auto;
		grid-template-areas: "time home score" "time away score";
		row-gap: 0.1rem;
	}
	.aic-fb-rows--dated .aic-fb-row__link { grid-template-columns: 5.5rem 1fr auto; }
	.aic-fb-row__time { grid-area: time; }
	.aic-fb-row__team--home { grid-area: home; text-align: start; }
	.aic-fb-row__team--away { grid-area: away; }
	.aic-fb-row__score { grid-area: score; min-inline-size: 2.75rem; }
}
.aic-fb-row__clock.is-live,
.aic-fb-match__clock.is-live { color: var(--aic-fb-live); font-weight: 700; }
.aic-fb-row.is-live .aic-fb-row__clock::before,
.aic-fb-match__clock.is-live::before {
	content: "";
	display: inline-block;
	inline-size: 0.45rem;
	block-size: 0.45rem;
	margin-inline-end: 0.3rem;
	border-radius: 50%;
	background: var(--aic-fb-live);
	vertical-align: middle;
	animation: aic-fb-pulse 1.6s ease-in-out infinite;
}
@keyframes aic-fb-pulse { 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) {
	.aic-fb-row.is-live .aic-fb-row__clock::before,
	.aic-fb-match__clock.is-live::before { animation: none; }
}

/* ---------- Match Center ---------- */
.aic-fb-match__head {
	background: var(--aic-paper);
	border: 1px solid var(--aic-line);
	border-radius: var(--aic-radius);
	padding: 1rem;
	text-align: center;
}
.aic-fb-match__meta,
.aic-fb-match__when { color: var(--aic-muted); font-size: 0.9rem; margin: 0; }
.aic-fb-match__board {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 0.75rem;
	margin-block: 0.75rem;
}
.aic-fb-match__team {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	font-weight: 700;
	font-size: clamp(0.95rem, 0.85rem + 0.6vw, 1.3rem);
	line-height: 1.25;
	min-inline-size: 0;
	overflow-wrap: break-word;
	hyphens: auto;
}
.aic-fb-match__team a { color: inherit; text-decoration: none; }
.aic-fb-logo { inline-size: 48px; block-size: 48px; object-fit: contain; }
.aic-fb-match__score { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; }
.aic-fb-match__goals {
	font-size: clamp(1.9rem, 1.4rem + 2.2vw, 2.8rem);
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}
.aic-fb-match__clock { font-size: 0.95rem; }
.aic-fb-match__pens { font-size: 0.8rem; color: var(--aic-muted); }

.aic-fb-tabs {
	display: flex;
	gap: 0.25rem;
	overflow-x: auto;
	margin-block: 1rem 0;
	border-block-end: 1px solid var(--aic-line);
	scrollbar-width: thin;
}
.aic-fb-match:not(.is-enhanced) .aic-fb-tabs { display: none; }
.aic-fb-tab {
	flex: 0 0 auto;
	appearance: none;
	background: none;
	border: 0;
	border-block-end: 3px solid transparent;
	color: var(--aic-ink-soft);
	cursor: pointer;
	font: inherit;
	font-size: 0.92rem;
	padding: 0.6rem 0.8rem;
}
.aic-fb-tab[aria-selected="true"] { color: var(--aic-accent-ink); border-block-end-color: var(--aic-accent); font-weight: 700; }
.aic-fb-tab:focus-visible { outline: 2px solid var(--aic-accent); outline-offset: -2px; }
.aic-fb-panel { padding-block: 1rem; }
.aic-fb-panel__title { font-size: 1.1rem; margin: 0 0 0.75rem; }
.aic-fb-match.is-enhanced .aic-fb-panel__title { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Events ---------- */
.aic-fb-events { list-style: none; margin: 0; padding: 0; }
.aic-fb-event {
	display: grid;
	grid-template-columns: 3rem 1rem 1fr;
	align-items: center;
	gap: 0.5rem;
	padding-block: 0.45rem;
	border-block-end: 1px solid var(--aic-line);
}
.aic-fb-event__min { color: var(--aic-muted); font-weight: 700; text-align: end; }
.aic-fb-event__type { font-weight: 700; }
.aic-fb-event--away .aic-fb-event__text { color: var(--aic-ink-soft); }
.aic-fb-ev { inline-size: 0.8rem; block-size: 0.8rem; border-radius: 50%; background: var(--aic-line); justify-self: center; }
.aic-fb-ev--goal,
.aic-fb-ev--penalty_goal { background: var(--aic-ink); }
.aic-fb-ev--own_goal { background: var(--aic-fb-loss); }
.aic-fb-ev--missed_penalty { background: transparent; border: 2px solid var(--aic-fb-loss); }
.aic-fb-ev--yellow_card { background: var(--aic-fb-yellow); border-radius: 2px; inline-size: 0.6rem; }
.aic-fb-ev--second_yellow { background: linear-gradient(90deg, var(--aic-fb-yellow) 50%, var(--aic-fb-red) 50%); border-radius: 2px; inline-size: 0.6rem; }
.aic-fb-ev--red_card { background: var(--aic-fb-red); border-radius: 2px; inline-size: 0.6rem; }
.aic-fb-ev--substitution { background: var(--aic-accent); }
.aic-fb-ev--var { background: var(--aic-muted); border-radius: 2px; }

.aic-fb-facts {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.35rem 1rem;
	margin: 1rem 0 0;
}
.aic-fb-facts dt { color: var(--aic-muted); }
.aic-fb-facts dd { margin: 0; }

/* ---------- Lineups, form ---------- */
.aic-fb-lineups,
.aic-fb-form { display: grid; gap: 1.25rem; }
@media (min-width: 640px) {
	.aic-fb-lineups,
	.aic-fb-form { grid-template-columns: 1fr 1fr; }
}
.aic-fb-lineup h3,
.aic-fb-form h3 { font-size: 1rem; margin: 0 0 0.5rem; }
.aic-fb-lineup h4 { font-size: 0.9rem; margin: 1rem 0 0.4rem; color: var(--aic-muted); }
.aic-fb-players,
.aic-fb-formlist,
.aic-fb-news { list-style: none; margin: 0; padding: 0; }
.aic-fb-players li,
.aic-fb-formlist li,
.aic-fb-news li { padding-block: 0.3rem; border-block-end: 1px solid var(--aic-line); }
.aic-fb-players__no { display: inline-block; min-inline-size: 1.75rem; color: var(--aic-muted); text-align: end; }
.aic-fb-badge {
	display: inline-grid;
	place-items: center;
	inline-size: 1.5rem;
	block-size: 1.5rem;
	border-radius: 4px;
	color: var(--aic-fb-badge-ink, #fff);
	font-size: 0.8rem;
	font-weight: 700;
}
.aic-fb-badge--w { background: var(--aic-fb-win); }
.aic-fb-badge--d { background: var(--aic-fb-draw); }
.aic-fb-badge--l { background: var(--aic-fb-loss); }

/* ---------- Tables ---------- */
.aic-fb-scroll { overflow-x: auto; margin-block-end: 1rem; }
.aic-fb-table { inline-size: 100%; border-collapse: collapse; font-size: 0.92rem; }
.aic-fb-table caption { text-align: start; font-weight: 700; padding-block-end: 0.5rem; }
.aic-fb-table th,
.aic-fb-table td { padding: 0.45rem 0.4rem; border-block-end: 1px solid var(--aic-line); text-align: center; }
.aic-fb-table thead th { color: var(--aic-muted); font-weight: 600; font-size: 0.8rem; }
.aic-fb-table abbr { text-decoration: none; }
.aic-fb-league tbody th,
.aic-fb-statpanel tbody th { text-align: start; font-weight: 600; white-space: nowrap; }
.aic-fb-league tr.is-highlight { background: var(--aic-paper); }
.aic-fb-league__form { white-space: nowrap; }
td.aic-fb-league__form .aic-fb-badge { inline-size: 1.25rem; block-size: 1.25rem; font-size: 0.7rem; vertical-align: middle; }
td.aic-fb-league__form .aic-fb-badge + .aic-fb-badge { margin-inline-start: 0.15rem; }
.aic-fb-hub-main { margin-block: 2rem; }
@media (max-width: 480px) {
	.aic-fb-league__form { display: none; }
}
.aic-fb-stats th[scope="row"] { color: var(--aic-muted); font-weight: 500; font-size: 0.85rem; }
.aic-fb-stats td { font-weight: 700; inline-size: 25%; }

/* ---------- Filters and calendar ---------- */
.aic-fb-filters { display: grid; gap: 0.75rem; margin-block-end: 1rem; }
.aic-fb-presets,
.aic-fb-selects,
.aic-fb-view { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: end; }
.aic-fb-chip {
	appearance: none;
	background: var(--aic-surface, #fff);
	border: 1px solid var(--aic-line);
	border-radius: 999px;
	color: var(--aic-ink);
	cursor: pointer;
	font: inherit;
	font-size: 0.88rem;
	padding: 0.4rem 0.85rem;
	min-block-size: 2.25rem;
}
.aic-fb-chip[aria-pressed="true"] { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent, #fff); }
.aic-fb-chip:focus-visible { outline: 2px solid var(--aic-accent); outline-offset: 2px; }
.aic-fb-field { display: grid; gap: 0.2rem; font-size: 0.8rem; color: var(--aic-muted); }
.aic-fb-field select,
.aic-fb-field input {
	font: inherit;
	font-size: 0.9rem;
	color: var(--aic-ink);
	min-block-size: 2.25rem;
	padding: 0.3rem 0.5rem;
	border: 1px solid var(--aic-line);
	border-radius: 8px;
	background: var(--aic-surface, #fff);
	max-inline-size: 100%;
}
.aic-fb-view { margin-inline-start: auto; }
.aic-fb-calendar { margin-block-end: 1rem; }
.aic-fb-cal__head { display: flex; align-items: center; justify-content: space-between; margin-block-end: 0.5rem; text-transform: capitalize; }
.aic-fb-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.25rem; }
.aic-fb-cal__dow { font-size: 0.75rem; color: var(--aic-muted); text-align: center; }
.aic-fb-cal__day {
	appearance: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	background: var(--aic-surface, #fff);
	border: 1px solid var(--aic-line);
	border-radius: 8px;
	color: var(--aic-muted);
	font: inherit;
	font-size: 0.85rem;
	padding: 0;
}
.aic-fb-cal__day.has-matches { color: var(--aic-ink); cursor: pointer; font-weight: 700; }
.aic-fb-cal__day small { font-size: 0.7rem; color: var(--aic-accent-ink); }
.aic-fb-cal__day.is-today { border-color: var(--aic-accent); }
.aic-fb-cal__day.is-selected { background: var(--aic-accent); color: var(--aic-on-accent, #fff); }
.aic-fb-cal__day.is-selected small { color: var(--aic-on-accent, #fff); }
.aic-fb-cal__day:disabled { cursor: default; opacity: 0.6; }

/* ---------- Theme button resets ----------
 * Themes style bare `button:hover` / `button:focus` (dark fills); these
 * selectors outrank them so tabs, chips and calendar days keep their look. */
.aic-fb .aic-fb-tab,
.aic-fb .aic-fb-tab:hover,
.aic-fb .aic-fb-tab:focus { background: none; color: var(--aic-ink-soft); box-shadow: none; }
.aic-fb .aic-fb-tab:hover { color: var(--aic-ink); }
.aic-fb .aic-fb-tab[aria-selected="true"] { color: var(--aic-accent-ink); }
.aic-fb .aic-fb-chip:hover,
.aic-fb .aic-fb-chip:focus { background: var(--aic-paper); color: var(--aic-ink); }
.aic-fb .aic-fb-chip[aria-pressed="true"],
.aic-fb .aic-fb-chip[aria-pressed="true"]:hover,
.aic-fb .aic-fb-chip[aria-pressed="true"]:focus { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent, #fff); }
.aic-fb .aic-fb-cal__day:hover,
.aic-fb .aic-fb-cal__day:focus { background: var(--aic-surface, #fff); color: var(--aic-muted); }
.aic-fb .aic-fb-cal__day.has-matches:hover,
.aic-fb .aic-fb-cal__day.has-matches:focus { background: var(--aic-paper); color: var(--aic-ink); }
.aic-fb .aic-fb-cal__day.is-selected,
.aic-fb .aic-fb-cal__day.is-selected:hover,
.aic-fb .aic-fb-cal__day.is-selected:focus { background: var(--aic-accent); color: var(--aic-on-accent, #fff); }

/* ---------- Developing story ---------- */
.aic-fb-story {
	border: 1px solid var(--aic-line, #e3e7ee);
	border-inline-start: 4px solid var(--aic-fb-live, #b42318);
	border-radius: 10px;
	padding: 0.9rem 1rem;
	margin-block: 0 1.5rem;
	font-size: 0.92rem;
}
.aic-fb-story__label { margin: 0 0 0.5rem; color: var(--aic-muted, #5b6575); }
.aic-fb-story__label strong { color: var(--aic-fb-live, #b42318); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.8rem; }
.aic-fb-story__list { margin: 0; padding: 0; list-style: none; }
.aic-fb-story__list li { margin-block: 0.3rem; }
.aic-fb-story__list time { color: var(--aic-muted, #5b6575); white-space: nowrap; }

/* ---------- Hubs: competition, club, player, country ---------- */
.aic-fb-hub-page .inside-article { padding: clamp(1rem, 3vw, 2.5rem); }
.aic-fb-hub { max-width: 72rem; margin-inline: auto; }
.aic-fb-hub__head { margin-block-end: 1.5rem; }
.aic-fb-hub__title {
	font-size: clamp(1.6rem, 4vw, 2.4rem);
	line-height: 1.15;
	margin: 0 0 0.5rem;
}
.aic-fb-hub__section { margin-block: 2rem; }
.aic-fb-hub__section > h2 {
	font-size: 1.2rem;
	margin: 0 0 0.75rem;
	padding-block-end: 0.4rem;
	border-block-end: 2px solid var(--aic-line);
}
.aic-fb-hub__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.aic-fb-hub__links a {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	border: 1px solid var(--aic-line);
	border-radius: 999px;
	text-decoration: none;
	font-size: 0.9rem;
}
.aic-fb-hub__links a:hover,
.aic-fb-hub__links a:focus-visible { border-color: var(--aic-accent-ink); }
.aic-fb-transfers { list-style: none; margin: 0; padding: 0; }
.aic-fb-transfers li {
	padding-block: 0.5rem;
	border-block-end: 1px solid var(--aic-line);
}
.aic-fb-badge-status {
	display: inline-block;
	min-width: 5.5rem;
	padding: 0.1rem 0.5rem;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	background: var(--aic-line);
	color: var(--aic-ink);
}
.aic-fb-badge-status.is-official,
.aic-fb-badge-status.is-completed,
.aic-fb-badge-status.is-confirmed { background: var(--aic-fb-win); color: #fff; }
.aic-fb-badge-status.is-rumour,
.aic-fb-badge-status.is-speculation { background: #fef3c7; color: #78350f; }
.aic-fb-badge-status.is-collapsed { background: var(--aic-fb-draw); color: #fff; }

/* ---------- Newsletter sign-up ([aic_newsletter_signup]) ---------- */
.aic-newsletter {
	border: 1px solid var(--aic-line);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin-block: var(--aic-gap, 1.5rem);
}
.aic-newsletter__title { margin: 0 0 0.5rem; }
.aic-newsletter input[type="email"] { min-inline-size: min(100%, 16rem); padding: 0.5rem 0.75rem; }
.aic-newsletter button { padding: 0.5rem 1rem; }
.aic-newsletter__note { color: var(--aic-muted); font-size: 0.8rem; margin: 0.5rem 0 0; }
