/* FSRS TV — estados de quadra (placar + painel) */

.fsrs-estado-badge {
	display: inline-block;
	margin-top: 8px;
	padding: 6px 18px;
	border-radius: 6px;
	font-size: clamp(14px, 1.2vw, 28px);
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.fsrs-badge-live {
	background: #1e8449;
	color: #fff;
	animation: fsrs-blink 1.5s infinite;
}

.fsrs-badge-done {
	background: #4a4a4a;
	color: #ecf0f1;
}

.fsrs-badge-warmup {
	background: #d68910;
	color: #000;
}

.fsrs-badge-draw {
	background: #2471a3;
	color: #fff;
}

.fsrs-badge-prep {
	background: #5d6d7e;
	color: #fff;
}

.fsrs-badge-interval {
	background: #a04000;
	color: #fff;
}

.fsrs-badge-livre {
	background: #333;
	color: #aaa;
	border: 1px dashed #666;
}

@keyframes fsrs-blink {
	0% { opacity: 1; }
	50% { opacity: 0.4; }
	100% { opacity: 1; }
}

/* Placar — modos por estado */
body.fsrs-estado-encerrado .pontos-valor,
body.fsrs-estado-encerrado .games-container,
body.fsrs-estado-encerrado .servico-dot {
	display: none !important;
}

body.fsrs-estado-aquecimento .pontos-valor,
body.fsrs-estado-sorteio .pontos-valor,
body.fsrs-estado-aquecimento .games-container,
body.fsrs-estado-sorteio .games-container {
	display: none !important;
}

body.fsrs-estado-pre_jogo .pontos-valor {
	font-size: clamp(48px, 8vw, 120px) !important;
	color: #95a5a6 !important;
	text-shadow: none !important;
}

body.fsrs-estado-intervalo .pontos-valor {
	font-size: clamp(48px, 8vw, 120px) !important;
	color: #e67e22 !important;
	text-shadow: none !important;
}

body.fsrs-estado-intervalo .games-container {
	opacity: 1;
	font-size: 2.2vw;
}

body.fsrs-estado-pre_jogo .games-container {
	opacity: 0.7;
}

.jogador-nome.is-perdedor {
	opacity: 0.45;
}

.jogador-nome.is-vencedor::after {
	content: ' ★';
	color: #f1c40f;
}

.placar-resumo-box {
	display: none;
	text-align: center;
	margin: 20px 0;
}

body.fsrs-estado-encerrado .placar-resumo-box {
	display: block;
}

.placar-resumo-valor {
	font-size: clamp(64px, 14vw, 180px);
	font-weight: 900;
	color: #fff;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.estado-subtitulo {
	display: none;
	font-size: clamp(18px, 2vw, 36px);
	color: #bdc3c7;
	margin-top: 12px;
	text-align: center;
	font-weight: 600;
}

body.fsrs-estado-aquecimento .estado-subtitulo,
body.fsrs-estado-sorteio .estado-subtitulo,
body.fsrs-estado-pre_jogo .estado-subtitulo {
	display: block;
}

body.fsrs-estado-intervalo .estado-subtitulo {
	display: block;
}

.placar-livre-view {
	display: none;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 40px;
}

body.fsrs-estado-livre .placar-livre-view {
	display: flex;
}

body.fsrs-estado-livre .placar-main-inner {
	display: none !important;
}

.placar-livre-icon {
	font-size: clamp(48px, 8vw, 120px);
	opacity: 0.4;
}

.placar-livre-titulo {
	font-size: clamp(32px, 4vw, 72px);
	font-weight: 900;
	color: #888;
	text-transform: uppercase;
	margin-top: 16px;
}

.placar-livre-extra {
	margin-top: 24px;
	font-size: clamp(16px, 1.8vw, 32px);
	color: #aaa;
	line-height: 1.5;
}

.footer-sub {
	font-size: 0.85em;
	color: #888;
	margin-top: 4px;
	min-height: 1.2em;
}

.fsrs-sync-banner {
	display: none;
	background: #d68910;
	color: #000;
	text-align: center;
	padding: 6px;
	font-size: 14px;
	font-weight: 700;
}

.fsrs-sync-banner.is-visible {
	display: block;
}

/* Painel — bordas por estado */
.ao-vivo-wrapper.fsrs-border-em_andamento {
	border-color: #27ae60;
}

.ao-vivo-wrapper.fsrs-border-encerrado {
	border-color: #7f8c8d;
}

.ao-vivo-wrapper.fsrs-border-aquecimento {
	border-color: #f39c12;
}

.ao-vivo-wrapper.fsrs-border-sorteio {
	border-color: #3498db;
}

.ao-vivo-wrapper.fsrs-border-pre_jogo {
	border-color: #95a5a6;
	border-style: dashed;
}

.ao-vivo-wrapper.fsrs-border-intervalo {
	border-color: #e67e22;
	border-style: solid;
}

.ao-vivo-wrapper.fsrs-border-livre {
	border-color: #444;
	border-style: dashed;
}

.badge-estado {
	font-size: clamp(14px, 1.1vw, 22px);
	font-weight: bold;
	margin-bottom: 10px;
}

.badge-estado.fsrs-badge-live {
	animation: fsrs-blink 1.5s infinite;
}

.painel-placar-resumo {
	font-size: clamp(36px, 5vw, 80px);
	font-weight: 900;
	color: #fff;
	margin: 8px 0;
}

.painel-jogador-perdedor {
	opacity: 0.5;
}

.painel-estado-msg {
	font-size: clamp(14px, 1.2vw, 22px);
	color: #bdc3c7;
	margin: 8px 0 12px;
}

.painel-extra-linhas {
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid #333;
	font-size: clamp(12px, 1vw, 18px);
	color: #999;
	line-height: 1.4;
	text-align: left;
}

.painel-extra-linhas div + div {
	margin-top: 4px;
}

/* Painel — zonas Último / Agora / Próximo */
.painel-quadra-stack {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
	min-height: 0;
}

.painel-zona {
	border-radius: 8px;
	padding: 8px 10px;
	text-align: left;
	flex-shrink: 0;
}

.painel-zona-titulo {
	font-size: clamp(11px, 0.85vw, 16px);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #f1c40f;
	margin-bottom: 4px;
}

.painel-zona-corpo {
	font-size: clamp(12px, 1vw, 20px);
	color: #ddd;
	line-height: 1.35;
	word-break: break-word;
}

.painel-zona-muted {
	color: #555;
	font-style: italic;
}

.painel-zona-ultimo {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid #333;
}

.painel-zona-proximo {
	background: rgba(241, 196, 15, 0.08);
	border-left: 4px solid #f1c40f;
}

.painel-zona-agora {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.painel-zona-agora .painel-zona-titulo {
	margin-bottom: 6px;
}

.painel-zona-agora-corpo {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.painel-zona-agora-corpo > .ao-vivo-wrapper {
	flex: 1;
}

.slide-row--single .card-quadra {
	max-width: 100%;
}

/* Painel — Proposta A (coluna: último | agora compacto | fila) */
body.fsrs-painel-a {
	overflow: hidden;
}

/* Carrossel: no máximo 2 quadras visíveis por slide */
.painel-carousel {
	flex: 1 1 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	--painel-pages: 1;
}

.painel-carousel-viewport {
	flex: 1 1 0;
	min-height: 0;
	width: 100%;
	overflow: hidden;
}

.painel-carousel-track {
	display: flex;
	height: 100%;
	width: 100%;
	transition: transform 0.65s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

/* Com 2+ páginas: track = N × viewport; cada slide = 1 viewport */
.painel-carousel--paged .painel-carousel-track {
	width: calc(100% * var(--painel-pages, 2));
}

.painel-carousel--paged .painel-slide {
	flex: 0 0 calc(100% / var(--painel-pages, 2));
	width: calc(100% / var(--painel-pages, 2));
	max-width: calc(100% / var(--painel-pages, 2));
}

.painel-slide {
	flex: 0 0 100%;
	width: 100%;
	min-width: 0;
	height: 100%;
	display: flex;
	box-sizing: border-box;
}

.painel-grelha-slide {
	display: grid;
	gap: 14px;
	flex: 1 1 0;
	width: 100%;
	min-height: 0;
	height: 100%;
	align-content: stretch;
}

.painel-grelha-slide.count-q-1 {
	grid-template-columns: 1fr;
	max-width: 50%;
	margin: 0 auto;
	width: 100%;
}

.painel-grelha-slide.count-q-2 {
	grid-template-columns: 1fr 1fr;
}

.painel-grelha-slide .card-quadra {
	max-width: none;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.painel-carousel-indicador {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
	padding: 2px 0 4px;
}

.painel-carousel-dot {
	display: block;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: #2a2a2a;
	border: 2px solid #555;
	transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}

.painel-carousel-dot.is-active {
	background: #f1c40f;
	border-color: #f1c40f;
	transform: scale(1.2);
}

.painel-quadra-stack-a {
	display: grid;
	grid-template-rows: minmax(3.5em, 0.14fr) minmax(6.5em, 0.32fr) minmax(0, 0.54fr);
	gap: 6px;
	flex: 1 1 0;
	min-height: 0;
	height: 100%;
	overflow: hidden;
}

body.fsrs-painel-a .card-quadra {
	height: 100%;
	min-height: 0;
	overflow: hidden;
}

body.fsrs-painel-a .quadra-body {
	flex: 1 1 0;
	min-height: 0;
	overflow: hidden;
}

body.fsrs-painel-a .painel-quadra-stack-a > .painel-zona-a {
	min-height: 0;
	overflow: hidden;
}

/* Evita conflito com regras legadas .painel-zona / .painel-zona-agora */
body.fsrs-painel-a .painel-zona.painel-zona-a {
	flex-shrink: unset;
	padding: 0;
	text-align: inherit;
}

body.fsrs-painel-a .painel-zona-agora.painel-zona-a {
	flex: none;
	height: 100%;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

body.fsrs-painel-a .painel-zona-agora-corpo.painel-agora-vivo {
	flex: 1 1 0;
	min-height: 0;
	overflow: hidden;
}

body.fsrs-painel-a .painel-zona-fila.painel-zona-a {
	height: 100%;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.painel-zona-a {
	display: flex;
	flex-direction: column;
	min-height: 0;
	border-radius: 10px;
	overflow: hidden;
}

.painel-zona-a .painel-zona-titulo {
	margin: 0;
	padding: 4px 8px;
	font-size: clamp(9px, 0.7vw, 12px);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #111;
	background: #f1c40f;
	flex-shrink: 0;
}

.painel-zona-ultimo.painel-zona-a {
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	opacity: 0.92;
}

.painel-zona-ultimo .painel-zona-titulo {
	background: #4a4a4a;
	color: #ccc;
}

.painel-zona-ultimo-corpo {
	flex: 1;
	min-height: 0;
	padding: 4px 8px 5px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	gap: 3px;
	overflow: hidden;
}

.painel-zona-agora.painel-zona-a {
	background: #0a0a0a;
	border: 1px solid #3d5c45;
}

.painel-zona-agora .painel-zona-titulo {
	background: #27ae60;
	color: #000;
}

.painel-agora-vivo {
	flex: 1;
	min-height: 0;
	padding: 8px 10px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 4px;
	border-radius: 0 0 10px 10px;
}

.painel-agora-vivo--livre {
	justify-content: center;
	align-items: center;
}

.painel-agora-vivo--livre .badge-estado {
	align-self: center;
}

.painel-agora-top {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	width: 100%;
}

.painel-agora-placar {
	flex: 1;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}

.painel-agora-vivo .badge-estado {
	align-self: flex-start;
	font-size: clamp(11px, 0.9vw, 15px);
	padding: 4px 10px;
	margin: 0;
}

.painel-meta-linha {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	line-height: 1.2;
}

.painel-meta-cat {
	font-size: clamp(9px, 0.72vw, 12px);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.painel-meta-fase {
	font-size: clamp(9px, 0.68vw, 11px);
	font-weight: 700;
	text-transform: uppercase;
	opacity: 0.9;
}

.painel-meta-linha--passado .painel-meta-cat,
.painel-meta-linha--passado .painel-meta-fase {
	color: #666;
}

.painel-meta-sep {
	color: #555;
	font-weight: 700;
}

.painel-meta-linha--vivo .painel-meta-cat {
	color: #bdc3c7;
}

.painel-meta-linha--vivo .painel-meta-fase {
	color: #7f8c8d;
}

.painel-meta-linha--fila {
	margin-bottom: 2px;
}

.painel-meta-linha--fila .painel-meta-cat {
	color: #d4ac0d;
}

.painel-meta-linha--fila .painel-meta-fase {
	color: #a68b2d;
}

.painel-agora-msg {
	margin: 0;
	font-size: clamp(10px, 0.8vw, 13px);
	color: #7f8c8d;
}

/* Linha de confronto: nomes | placar | nomes */
.painel-match-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	column-gap: 8px;
	width: 100%;
}

.painel-match-side {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.painel-match-side--a {
	align-items: flex-end;
	text-align: right;
}

.painel-match-side--b {
	align-items: flex-start;
	text-align: left;
}

.painel-match-center {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	padding: 0 6px;
	flex-shrink: 0;
}

.painel-match-center--empty .painel-confronto-vs {
	color: #555;
	font-weight: 900;
	font-size: clamp(12px, 1vw, 16px);
}

.painel-match-row--passado .painel-nome-linha {
	color: #6e6e6e;
	font-size: clamp(9px, 0.78vw, 13px);
	font-weight: 600;
}

.painel-match-placar--passado,
.painel-match-row--passado .painel-match-placar--resumo {
	font-size: clamp(14px, 1.2vw, 22px);
	font-weight: 800;
	color: #5a5a5a;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.painel-match-row--vivo .painel-nome-linha {
	color: #f5f5f5;
	font-size: clamp(12px, 1.05vw, 18px);
	font-weight: 800;
}

/* Ao vivo — grid 3 colunas: nomes + pontos central; games sob cada lado */
.painel-match-grid-vivo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 10px;
	row-gap: 3px;
	width: 100%;
}

.painel-match-grid-vivo .painel-match-side--a {
	grid-column: 1;
	grid-row: 1;
}

.painel-match-center--vivo {
	grid-column: 2;
	grid-row: 1 / span 2;
	align-self: center;
	justify-self: center;
	padding: 0 8px;
	min-width: 72px;
}

.painel-match-grid-vivo .painel-match-side--b {
	grid-column: 3;
	grid-row: 1;
}

.painel-games-slot--a {
	grid-column: 1;
	grid-row: 2;
	text-align: right;
	line-height: 1;
}

.painel-games-slot--b {
	grid-column: 3;
	grid-row: 2;
	text-align: left;
	line-height: 1;
}

.painel-match-games-spacer {
	grid-column: 2;
	grid-row: 2;
}

.painel-games-num {
	display: block;
	font-size: clamp(12px, 1vw, 16px);
	font-weight: 800;
	color: #f1c40f;
	font-variant-numeric: tabular-nums;
}

.painel-games-num--empty {
	visibility: hidden;
}

/* Placar ao vivo — pontos grandes no centro */
.painel-placar-ao-vivo {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-width: 72px;
	padding: 2px 4px;
}

.painel-placar-pontos-linha {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 2px;
	line-height: 1;
}

.painel-pp-n {
	font-size: clamp(22px, 2vw, 36px);
	font-weight: 900;
	color: #2ecc71;
	font-variant-numeric: tabular-nums;
}

.painel-pp-sep {
	font-size: clamp(16px, 1.4vw, 24px);
	font-weight: 800;
	color: #3d5c45;
	padding: 0 2px;
}

.painel-placar-games-linha {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 5px;
	line-height: 1;
}

.painel-pg-label {
	font-size: clamp(8px, 0.65vw, 10px);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #7f8c8d;
}

.painel-pg-val {
	font-size: clamp(11px, 0.9vw, 14px);
	font-weight: 800;
	color: #f1c40f;
	font-variant-numeric: tabular-nums;
}

.painel-placar-ao-vivo--fim .painel-placar-resumo-fim {
	font-size: clamp(20px, 1.75vw, 32px);
	font-weight: 900;
	color: #95a5a6;
	font-variant-numeric: tabular-nums;
}

.painel-match-row--fila .painel-nome-linha {
	font-size: clamp(10px, 0.82vw, 14px);
	font-weight: 700;
	color: #ddd;
}

.painel-match-row--fila {
	column-gap: 6px;
}

.painel-zona-fila.painel-zona-a {
	background: rgba(241, 196, 15, 0.06);
	border: 1px solid rgba(241, 196, 15, 0.25);
}

.painel-zona-fila .painel-zona-titulo {
	background: #c9a227;
}

.painel-fila-lista {
	list-style: none;
	margin: 0;
	padding: 6px 8px 8px;
	flex: 1;
	min-height: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.painel-fila-item {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 7px 8px;
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid transparent;
	min-height: 0;
}

.painel-fila-top {
	display: flex;
	align-items: baseline;
	gap: 10px;
	min-width: 0;
}

.painel-fila-top .painel-meta-linha {
	margin: 0;
	flex: 1;
	min-width: 0;
}

.painel-fila-match {
	min-width: 0;
	overflow: hidden;
	width: 100%;
}

.painel-fila-match .painel-match-row--fila {
	width: 100%;
}

.painel-fila-vazio {
	list-style: none;
	padding: 8px;
}

.painel-fila-item--proximo {
	border-color: #f1c40f;
	background: rgba(241, 196, 15, 0.12);
}

.painel-fila-hora {
	display: block;
	flex-shrink: 0;
	font-size: clamp(13px, 1.05vw, 18px);
	font-weight: 900;
	color: #f1c40f;
	font-variant-numeric: tabular-nums;
	text-align: left;
	line-height: 1.1;
	white-space: nowrap;
}

.painel-nome-linha {
	display: block;
	text-transform: uppercase;
	line-height: 1.15;
	word-break: break-word;
}

.painel-nome-muted,
.painel-zona-muted {
	color: #555;
	font-style: italic;
	font-size: clamp(12px, 1vw, 16px);
}

.painel-mock-banner {
	flex-shrink: 0;
	text-align: center;
	padding: 6px 12px;
	margin-bottom: 8px;
	background: #922;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 6px;
}

/* Esconder estilos legados do painel no layout A */
body.fsrs-painel-a .ao-vivo-wrapper,
body.fsrs-painel-a .live-pontos,
body.fsrs-painel-a .live-meta-info {
	display: none !important;
}
