/**
 * Cover Cero Stats — estilos.
 *
 * Todo está bajo .covercero y usa custom properties, así el tema puede ajustar
 * la paleta sin tocar este archivo:
 *
 *   .covercero { --cc-accent: #e4002b; --cc-radius: 4px; }
 *
 * Colores por equipo llegan inline como --cc-team-bg / --cc-team-fg (y home/away en el detalle).
 */

.covercero {
	--cc-bg: #ffffff;
	--cc-surface: #f5f6f8;
	--cc-border: #e2e5ea;
	--cc-text: #14171c;
	--cc-muted: #667085;
	--cc-accent: #0b5cff;
	--cc-live: #e11d48;
	--cc-win: #14171c;
	--cc-radius: 10px;
	--cc-gap: 12px;
	--cc-font-num: ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace;

	color: var(--cc-text);
	font-size: 15px;
	line-height: 1.4;
	margin: 0 0 1.5em;
}

@media (prefers-color-scheme: dark) {
	.covercero.cc-auto-dark {
		--cc-bg: #15181d;
		--cc-surface: #1d2127;
		--cc-border: #2c313a;
		--cc-text: #eef0f3;
		--cc-muted: #98a2b3;
		--cc-win: #ffffff;
	}
}

.covercero *,
.covercero *::before,
.covercero *::after { box-sizing: border-box; }

/* ---------- Genéricos ---------- */

.covercero .cc-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 var(--cc-gap);
}

.covercero .cc-title {
	margin: 0;
	font-size: 1.15em;
	font-weight: 700;
	letter-spacing: .01em;
}

.covercero .cc-subtitle {
	margin: 1.5em 0 .6em;
	font-size: .8em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--cc-muted);
}

.covercero .cc-empty {
	margin: 0;
	padding: 14px 16px;
	border: 1px dashed var(--cc-border);
	border-radius: var(--cc-radius);
	color: var(--cc-muted);
	text-align: center;
}

.covercero .cc-error { color: var(--cc-live); border-color: currentColor; }

.covercero .cc-logo {
	flex: none;
	object-fit: contain;
	border-radius: 50%;
}

.covercero .cc-logo--fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--cc-team-bg, var(--cc-surface));
	color: var(--cc-team-fg, var(--cc-text));
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .02em;
	overflow: hidden;
}

.covercero .cc-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cc-live);
	animation: cc-pulse 1.4s ease-in-out infinite;
}

@keyframes cc-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .35; transform: scale(.8); }
}

.covercero.cc-updated .cc-body { animation: cc-flash .8s ease-out; }

@keyframes cc-flash {
	from { opacity: .55; }
	to { opacity: 1; }
}

.covercero .cc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- Tablas ---------- */

.covercero .cc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .92em;
	margin: 0;
}

.covercero .cc-table th,
.covercero .cc-table td {
	padding: 8px 10px;
	border: 0;
	border-bottom: 1px solid var(--cc-border);
	text-align: left;
	vertical-align: middle;
	white-space: nowrap;
}

.covercero .cc-table thead th {
	font-size: .78em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--cc-muted);
	background: var(--cc-surface);
}

.covercero .cc-num-col {
	text-align: right !important;
	font-family: var(--cc-font-num);
	font-variant-numeric: tabular-nums;
}

.covercero .cc-team-cell {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	border-left: 3px solid var(--cc-team-bg, transparent);
}

/* ---------- Scoreboard ---------- */

.cc-scoreboard .cc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--cc-gap);
}

.cc-scoreboard .cc-card {
	display: block;
	position: relative;
	padding: 12px 14px;
	background: var(--cc-bg);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
	color: inherit;
	text-decoration: none;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}

.cc-scoreboard a.cc-card:hover,
.cc-scoreboard a.cc-card:focus-visible {
	border-color: var(--cc-accent);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
	transform: translateY(-1px);
	outline: none;
}

.cc-scoreboard .cc-card.is-live {
	border-color: var(--cc-live);
	box-shadow: 0 0 0 1px var(--cc-live) inset;
}

.cc-scoreboard .cc-card__status {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 8px;
	font-size: .75em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--cc-muted);
}

.cc-scoreboard .is-live .cc-card__status { color: var(--cc-live); }

.cc-scoreboard .cc-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 5px 0;
}

.cc-scoreboard .cc-team {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.cc-scoreboard .cc-team__name {
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cc-scoreboard .cc-team__side {
	font-size: .72em;
	color: var(--cc-muted);
}

.cc-scoreboard .cc-score {
	font-family: var(--cc-font-num);
	font-variant-numeric: tabular-nums;
	font-size: 1.5em;
	font-weight: 700;
	min-width: 2ch;
	text-align: right;
}

.cc-scoreboard .is-final .cc-row:not(.is-winner) { color: var(--cc-muted); }
.cc-scoreboard .is-final .cc-row.is-winner .cc-score { color: var(--cc-win); }

.cc-scoreboard .cc-card__foot {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px solid var(--cc-border);
	font-size: .78em;
	color: var(--cc-muted);
}

/* ---------- Live ticker ---------- */

.cc-ticker .cc-ticker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	padding: 8px 14px;
	background: var(--cc-surface);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
	font-size: .92em;
}

.cc-ticker .cc-ticker.is-live { border-color: var(--cc-live); }

.cc-ticker .cc-ticker__label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .75em;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cc-live);
}

.cc-ticker .is-idle .cc-ticker__label { color: var(--cc-muted); }

.cc-ticker .cc-ticker__match {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
}

.cc-ticker .cc-ticker__team {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cc-ticker .cc-ticker__team.has-ball .cc-ticker__abbr::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 4px;
	vertical-align: middle;
	border-radius: 50%;
	background: #8b5a2b; /* balón */
}

.cc-ticker .cc-ticker__score {
	font-family: var(--cc-font-num);
	font-size: 1.15em;
}

.cc-ticker .cc-ticker__meta,
.cc-ticker .cc-ticker__play { color: var(--cc-muted); }

.cc-ticker .cc-ticker__link {
	margin-left: auto;
	font-weight: 600;
	color: var(--cc-accent);
	text-decoration: none;
}

/* ---------- Detalle de partido ---------- */

.cc-game .cc-game__board {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas: "away center home";
	align-items: center;
	gap: var(--cc-gap);
	padding: 18px;
	background: var(--cc-surface);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
}

.cc-game.is-live .cc-game__board { border-color: var(--cc-live); }

.cc-game .cc-game__team {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	padding-top: 6px;
}

.cc-game .cc-game__team--away { grid-area: away; border-top: 4px solid var(--cc-away-bg, transparent); }
.cc-game .cc-game__team--home { grid-area: home; border-top: 4px solid var(--cc-home-bg, transparent); }

.cc-game .cc-game__name { font-weight: 700; }

.cc-game .cc-game__score {
	font-family: var(--cc-font-num);
	font-variant-numeric: tabular-nums;
	font-size: 2.6em;
	font-weight: 800;
	line-height: 1;
}

.cc-game .cc-game__team.has-ball .cc-game__name::before {
	content: "🏈 ";
}

.cc-game .cc-game__center {
	grid-area: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
	font-size: .88em;
	color: var(--cc-muted);
}

.cc-game .cc-game__status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 800;
	letter-spacing: .06em;
	color: var(--cc-text);
}

.cc-game.is-live .cc-game__status { color: var(--cc-live); }

.cc-game .cc-game__dd {
	font-weight: 700;
	font-size: 1.1em;
	color: var(--cc-text);
}

.cc-game .cc-leaders {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--cc-gap);
}

.cc-game .cc-leader {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 12px;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
}

.cc-game .cc-leader__role {
	font-size: .72em;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--cc-muted);
}

.cc-game .cc-leader__name { font-weight: 700; }
.cc-game .cc-num { color: var(--cc-muted); margin-right: 4px; }
.cc-game .cc-leader__line { font-family: var(--cc-font-num); font-size: .88em; }

.cc-game .cc-table--plays { font-size: .86em; }
.cc-game .cc-table--plays tbody tr:first-child { background: var(--cc-surface); }
.cc-game .cc-play--pass td:nth-child(5) { color: var(--cc-accent); }

@media (max-width: 560px) {
	.cc-game .cc-game__board {
		grid-template-columns: 1fr 1fr;
		grid-template-areas: "away home" "center center";
	}
	.cc-game .cc-game__score { font-size: 2.1em; }
}

/* ---------- Roster ---------- */

.cc-roster .cc-head--team {
	padding-left: 10px;
	border-left: 4px solid var(--cc-team-bg, var(--cc-accent));
}

/* ================= v0.2: box score, líderes, equipo ================= */

.covercero .cc-muted { color: var(--cc-muted); font-size: .85em; }
.covercero .cc-note { margin: .8em 0 0; font-size: .82em; color: var(--cc-muted); }

.covercero .cc-btn {
	padding: 7px 14px;
	border: 0;
	border-radius: calc(var(--cc-radius) - 4px);
	background: var(--cc-accent);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.cc-scoreboard .cc-card__sit { margin-left: auto; font-weight: 600; color: var(--cc-text); text-transform: none; letter-spacing: 0; }

.cc-ticker .cc-ticker__more { font-size: .8em; color: var(--cc-live); font-weight: 600; }

/* Box score */
.cc-game .cc-subtitle--team {
	color: var(--cc-text);
	font-size: .9em;
	border-bottom: 2px solid var(--cc-border);
	padding-bottom: 6px;
}
.cc-game .cc-box-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--cc-gap) calc(var(--cc-gap) * 2);
}
.cc-game .cc-table--box thead th:first-child { color: var(--cc-text); }
.cc-game .cc-pbp { max-height: 520px; overflow-y: auto; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); }
.cc-game .cc-pbp td { white-space: normal; }
.cc-game .cc-pbp__q th { position: sticky; top: 0; background: var(--cc-surface); font-size: .78em; text-transform: uppercase; letter-spacing: .06em; }
.cc-game .cc-pbp__clock, .cc-game .cc-pbp__poss { width: 1%; white-space: nowrap; color: var(--cc-muted); font-family: var(--cc-font-num); }
.cc-game .cc-play.is-td td { font-weight: 700; background: color-mix(in srgb, var(--cc-accent) 8%, transparent); }

/* Filtros de líderes */
.covercero .cc-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 14px;
	margin: 0 0 var(--cc-gap);
	padding: 12px;
	background: var(--cc-surface);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
}
.covercero .cc-filters label { display: flex; flex-direction: column; gap: 4px; font-size: .78em; font-weight: 600; color: var(--cc-muted); }
.covercero .cc-filters select,
.covercero .cc-filters input { min-width: 110px; padding: 6px 8px; border: 1px solid var(--cc-border); border-radius: 6px; background: var(--cc-bg); color: var(--cc-text); font: inherit; font-size: 1.1em; }
.covercero .cc-filters input[type="number"] { width: 90px; min-width: 0; }
.covercero .cc-tabs { flex-basis: 100%; display: flex; gap: 4px; overflow-x: auto; }
.covercero .cc-tab {
	padding: 6px 12px;
	border-radius: 999px;
	color: var(--cc-text);
	text-decoration: none;
	font-weight: 600;
	font-size: .9em;
	white-space: nowrap;
}
.covercero .cc-tab.is-active { background: var(--cc-text); color: var(--cc-bg); }

.covercero .cc-table--leaders th a { color: inherit; text-decoration: none; }
.covercero .cc-table .is-sorted { background: color-mix(in srgb, var(--cc-accent) 7%, transparent); font-weight: 700; }
.covercero .cc-player-cell { display: flex; flex-direction: column; line-height: 1.25; }
.covercero .cc-team-cell a { color: inherit; }

/* Página de equipo */
.cc-team .cc-team-head {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 18px;
	border-radius: var(--cc-radius);
	background: var(--cc-team-bg, var(--cc-surface));
	color: var(--cc-team-fg, var(--cc-text));
	margin-bottom: var(--cc-gap);
}
.cc-team .cc-team-head__name { margin: 0; font-size: 1.5em; line-height: 1.1; color: inherit; }
.cc-team .cc-team-head__meta { margin: 4px 0 0; opacity: .9; }
.cc-team .cc-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--cc-gap) calc(var(--cc-gap) * 2); }
.cc-team .cc-leaders { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--cc-gap); }
.cc-team .cc-leader { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); }
.cc-team .cc-leader__role { font-size: .72em; text-transform: uppercase; letter-spacing: .06em; color: var(--cc-muted); }
.cc-team .cc-leader__line { display: flex; justify-content: space-between; gap: 8px; font-size: .9em; }
.cc-team .cc-leader__line.is-top { font-size: 1em; font-weight: 600; }
.cc-team .cc-table--schedule .is-live td { color: var(--cc-live); font-weight: 600; }
.cc-team .cc-roster-details summary { cursor: pointer; }
