/* ═══════════════════════════════════════════════════════════════════
   FDA-DF · Banco de Resultados
   Identidade visual conforme Manual de Comunicação Institucional v1.0 (Fev/2026)

   Paleta OFICIAL — usar HEX exatos, sem aproximações:
     #002776 Azul Institucional   (dominante: headers, autoridade)
     #00923F Verde                (destaques, confirmações)
     #F8C300 Amarelo              (acentos, CTAs)
     #008080 Teal                 (suporte gráfico digital)
     #FFFFFF Branco               (conteúdo)

   Princípios: Grid consistente · Margens respiradas · Hierarquia
   tipográfica · Informação > estética
   ═══════════════════════════════════════════════════════════════════ */

:root {
  /* ── Paleta oficial FDA-DF ─────────────────────────────────────── */
  --fda-azul:           #002776;  /* Azul Institucional */
  --fda-azul-claro:     #1a3d8c;  /* variação para hover/links */
  --fda-azul-escuro:    #001a52;  /* variação para profundidade */
  --fda-verde:          #00923F;
  --fda-amarelo:        #F8C300;
  --fda-teal:           #008080;
  --fda-branco:         #FFFFFF;
  --fda-azul-soft:      #e6ecf6;  /* fundo suave derivado do azul (páginas FDA) */
  --fda-borda:          #b9c4dd;  /* borda dos cards FDA */

  /* ── Paleta Eixo Produtora (Manual da Marca v1.0) ──────────────── */
  --eixo-azul:          #0F2742;  /* Azul Eixo (Navy)   — primária do chrome geral */
  --eixo-azul-claro:    #1c3d5c;  /* variação hover */
  --eixo-azul-escuro:   #08182e;  /* variação deep */
  --eixo-amanhecer:     #FFC846;  /* Amarelo Amanhecer  — acento */
  --eixo-por-sol:       #FF6A2A;  /* Laranja Pôr do Sol — destaque */
  --eixo-chumbo:        #1C1E22;  /* Cinza escuro       — texto sobre branco */
  --eixo-cinza-medio:   #8A9299;  /* Cinza neutro */

  /* ── Aplicação (chrome geral = Eixo; PDFs FDA usam --fda-azul direto) ─ */
  --primaria:           var(--eixo-azul);
  --primaria-hover:     var(--eixo-azul-claro);
  --primaria-deep:      var(--eixo-azul-escuro);
  --acento:             var(--fda-amarelo);
  --confirma:           var(--fda-verde);
  --suporte:            var(--fda-teal);

  --texto:              #1a2342;
  --texto-suave:        #5a6478;
  --texto-claro:        #8a96ad;
  --bg:                 #f4f6fb;
  --bg-elevado:         #ffffff;
  --borda:              #dde3ee;
  --borda-suave:        #eef2f7;

  /* DF — atletas/clubes locais (verde institucional, amenizado) */
  --df-bg:              #e8f5ec;
  --df-borda:           var(--fda-verde);

  /* Status (badges) */
  --status-ok-bg:       #d4edd9;  --status-ok-fg: #0d5c2c;
  --status-warn-bg:     #fff2c7;  --status-warn-fg: #7a5a00;
  --status-info-bg:     #d4e0f5;  --status-info-fg: var(--fda-azul);
  --status-err-bg:      #fad6d6;  --status-err-fg: #8a1818;

  /* Tipografia */
  --fonte-display:      'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --fonte-body:         'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --fonte-mono:         ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Geometria — referências às raias da piscina */
  --raio-pequeno:       4px;
  --raio-medio:         8px;
  --raio-grande:        12px;

  /* Espaçamento — margens respiradas (princípio do manual) */
  --gap-xs:             6px;
  --gap-sm:             10px;
  --gap-md:             16px;
  --gap-lg:             24px;
  --gap-xl:             36px;

  --shadow-sutil:       0 1px 2px rgba(15, 39, 66, 0.06);
  --shadow-card:        0 2px 8px rgba(15, 39, 66, 0.08);
  --shadow-elevado:     0 6px 20px rgba(15, 39, 66, 0.12);
}

/* ═══ Inter via Google Fonts ═══ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: var(--fonte-body);
  font-size: 14px;
  color: var(--texto);
  background: var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--primaria);
  text-decoration: none;
  font-weight: 500;
}
a:hover {
  color: var(--primaria-hover);
  text-decoration: underline;
}

code, .mono { font-family: var(--fonte-mono); }

/* ═══════════════════════════════════════════════════════════════════
   TOPO — Header institucional
   ═══════════════════════════════════════════════════════════════════ */

.topo {
  background: var(--primaria);
  color: var(--fda-branco);
  padding: 0;
  border-bottom: 4px solid var(--fda-amarelo);
  box-shadow: var(--shadow-card);
  position: relative;
}
/* Faixa fina inferior em verde+teal — referência sutil às raias */
.topo::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -4px;
  height: 4px;
  background: linear-gradient(to right,
    var(--fda-amarelo) 0%, var(--fda-amarelo) 33%,
    var(--fda-verde) 33%,  var(--fda-verde) 66%,
    var(--fda-teal) 66%,   var(--fda-teal) 100%);
}

.topo-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 16px var(--gap-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gap-lg);
  flex-wrap: wrap;
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--fda-branco) !important;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.3px;
  text-decoration: none;
}
.logo:hover { text-decoration: none; opacity: 0.9; }
.logo img {
  height: 44px;
  width: auto;
  display: block;
}
.logo-texto {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.2;
}
.logo-texto strong {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.logo-texto small {
  font-size: 11px;
  font-weight: 500;
  opacity: 0.85;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}

.busca {
  display: flex;
  gap: 8px;
  flex: 1;
  max-width: 480px;
}
.busca input {
  flex: 1;
  padding: 10px 14px;
  border: none;
  border-radius: var(--raio-pequeno);
  font-family: var(--fonte-body);
  font-size: 14px;
  background: rgba(255,255,255,0.95);
  color: var(--texto);
}
.busca input:focus {
  outline: 2px solid var(--fda-amarelo);
  outline-offset: 1px;
}
.busca button {
  padding: 10px 18px;
  background: var(--fda-amarelo);
  color: var(--primaria-deep);
  border: none;
  border-radius: var(--raio-pequeno);
  cursor: pointer;
  font-weight: 700;
  font-family: var(--fonte-body);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: background 0.15s;
}
.busca button:hover { background: #ffd633; }

/* ── Autocomplete dropdown (Onda BUSCA-1) ───────────────────────────── */
.busca-sugestoes,
.busca-hero .busca-sugestoes {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 200;
  max-height: 60vh;
  overflow-y: auto;
  background: #fff;
  color: var(--texto);
  border: 1px solid rgba(15,39,66,0.12);
  border-radius: var(--raio-pequeno);
  box-shadow: 0 12px 28px rgba(15,39,66,0.18);
  padding: 4px;
  text-align: left;
}
.busca-grupo-titulo {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--texto-claro);
  padding: 8px 10px 4px;
}
.busca-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--raio-pequeno);
  text-decoration: none;
  color: var(--texto);
  font-size: 14px;
}
.busca-item:hover,
.busca-item.ativo {
  background: rgba(15,39,66,0.07);
}
.busca-item-nome { font-weight: 500; }
.busca-item-meta {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--texto-suave);
  background: rgba(15,39,66,0.06);
  padding: 1px 8px;
  border-radius: 99px;
}
.busca-vazio {
  padding: 10px;
  font-size: 13px;
  color: var(--texto-suave);
}
.badge-proximo {
  font-size: 11px;
  font-weight: 600;
  color: var(--texto-suave);
  background: rgba(15,39,66,0.07);
  border-radius: 99px;
  padding: 1px 7px;
  white-space: nowrap;
}

/* ── Botão "Perguntar à IA" ──────────────────────────────────────────── */
.btn-busca-ia {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 10px 14px;
  background: linear-gradient(135deg, #0F2742, #1d4e7e);
  color: #fff;
  border: 1px solid rgba(248,195,0,0.55);
  border-radius: var(--raio-pequeno);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  transition: filter 0.15s, box-shadow 0.15s;
}
.btn-busca-ia:hover { filter: brightness(1.12); box-shadow: 0 0 0 2px rgba(248,195,0,0.25); }
.btn-busca-ia span { color: var(--fda-amarelo); }

/* ── Overlay + painel do chat IA ─────────────────────────────────────── */
.ia-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(8,18,33,0.55);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 6vh 16px 16px;
}
.ia-overlay[hidden] { display: none; }
.ia-painel {
  width: 100%;
  max-width: 680px;
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: var(--texto);
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(8,18,33,0.4);
  overflow: hidden;
}
.ia-cabecalho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  background: var(--primaria-deep);
  color: #fff;
}
.ia-cabecalho strong { display: block; font-size: 15px; }
.ia-cabecalho small { display: block; opacity: 0.8; font-size: 12px; margin-top: 2px; }
.ia-fechar {
  background: transparent; border: none; color: #fff;
  font-size: 18px; cursor: pointer; line-height: 1; padding: 4px 8px; border-radius: 6px;
}
.ia-fechar:hover { background: rgba(255,255,255,0.15); }
.ia-mensagens {
  flex: 1;
  overflow-y: auto;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 160px;
}
.ia-exemplos { color: var(--texto-suave); font-size: 13px; }
.ia-exemplos p { margin: 0 0 8px; font-weight: 600; }
.ia-exemplo {
  display: block; width: 100%; text-align: left;
  margin-bottom: 6px; padding: 9px 12px;
  background: rgba(15,39,66,0.05); border: 1px solid rgba(15,39,66,0.1);
  border-radius: 8px; cursor: pointer; font: inherit; font-size: 13px; color: var(--texto);
}
.ia-exemplo:hover { background: rgba(15,39,66,0.1); }
.ia-bolha { max-width: 92%; padding: 10px 14px; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.ia-bolha p { margin: 0 0 6px; }
.ia-bolha p:last-child { margin-bottom: 0; }
.ia-bolha ul { margin: 4px 0; padding-left: 20px; }
.ia-user { align-self: flex-end; background: var(--primaria-deep); color: #fff; }
.ia-ai { align-self: flex-start; background: rgba(15,39,66,0.06); }
.ia-pensando { opacity: 0.7; font-style: italic; }
.ia-badge {
  display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.5px; padding: 1px 7px; border-radius: 99px; margin-bottom: 6px;
  background: rgba(15,39,66,0.12); color: var(--texto-suave);
}
.ia-badge-an { background: rgba(0,146,63,0.15); color: #0a7a38; }
.ia-tabela { border-collapse: collapse; width: 100%; font-size: 13px; margin: 6px 0; }
.ia-tabela th, .ia-tabela td { border: 1px solid rgba(15,39,66,0.15); padding: 4px 8px; text-align: left; }
.ia-tabela th { background: rgba(15,39,66,0.06); }
.ia-fontes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ia-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px; background: #fff; border: 1px solid rgba(15,39,66,0.18);
  border-radius: 99px; font-size: 12px; font-weight: 600; text-decoration: none; color: var(--primaria-deep);
}
.ia-chip:hover { background: rgba(248,195,0,0.18); border-color: var(--fda-amarelo); }
.ia-chip-aprox { color: var(--texto-claro); font-weight: 700; }
.ia-sql { margin-top: 10px; font-size: 12px; }
.ia-sql summary { cursor: pointer; color: var(--texto-suave); }
.ia-sql pre {
  margin: 6px 0 0; padding: 10px; background: #0f2742; color: #d7e3f0;
  border-radius: 6px; overflow-x: auto; font-size: 12px; white-space: pre-wrap; word-break: break-word;
}
.ia-form { display: flex; gap: 8px; padding: 12px 18px; border-top: 1px solid rgba(15,39,66,0.1); }
.ia-form input {
  flex: 1; padding: 10px 14px; border: 1px solid rgba(15,39,66,0.2);
  border-radius: var(--raio-pequeno); font: inherit; font-size: 14px;
}
.ia-form input:focus { outline: 2px solid var(--fda-amarelo); outline-offset: 1px; }
.ia-form button {
  padding: 10px 18px; background: var(--fda-amarelo); color: var(--primaria-deep);
  border: none; border-radius: var(--raio-pequeno); cursor: pointer; font-weight: 700;
}
.ia-form button:disabled { opacity: 0.5; cursor: default; }
.ia-rodape { padding: 8px 18px 12px; font-size: 11px; color: var(--texto-claro); }

/* ═══════════════════════════════════════════════════════════════════
   LAYOUT
   ═══════════════════════════════════════════════════════════════════ */

.container {
  max-width: 1280px;
  margin: var(--gap-lg) auto var(--gap-xl);
  padding: 0 var(--gap-lg);
}

.migalhas {
  margin-bottom: var(--gap-md);
  font-size: 13px;
  color: var(--texto-suave);
}
.migalhas a { color: var(--texto-suave); font-weight: 500; }
.migalhas a:hover { color: var(--primaria); }

/* ═══ Cabeçalho de entidade ═══ */

.cabecalho-entidade {
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-left: 4px solid var(--primaria);
  border-radius: var(--raio-medio);
  padding: var(--gap-lg);
  margin-bottom: var(--gap-lg);
  box-shadow: var(--shadow-sutil);
}
.cabecalho-entidade h1 {
  margin: 0 0 8px 0;
  font-size: 24px;
  font-weight: 700;
  color: var(--primaria);
  letter-spacing: -0.2px;
}
.cabecalho-entidade .meta {
  display: flex;
  gap: var(--gap-md);
  flex-wrap: wrap;
  color: var(--texto-suave);
  font-size: 13px;
}
.cabecalho-entidade .meta strong { color: var(--texto); }

/* ═══ Hero (home) — referência visual à piscina ═══ */

.hero {
  background:
    linear-gradient(135deg, var(--fda-azul) 0%, var(--fda-azul-escuro) 100%);
  color: var(--fda-branco);
  padding: var(--gap-xl) var(--gap-lg);
  border-radius: var(--raio-medio);
  margin-bottom: var(--gap-lg);
  position: relative;
  overflow: hidden;
}
/* Padrão sutil de raias horizontais */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    0deg,
    transparent 0,
    transparent 79px,
    rgba(255,255,255,0.04) 79px,
    rgba(255,255,255,0.04) 80px
  );
  pointer-events: none;
}
.hero > * { position: relative; }
.hero h1 {
  margin: 0 0 12px 0;
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.5px;
}
.hero .sub {
  margin: 0 0 24px 0;
  opacity: 0.92;
  font-size: 16px;
  max-width: 600px;
}
.hero-acoes {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.btn-hero {
  display: inline-block;
  background: var(--fda-amarelo);
  color: var(--primaria-deep) !important;
  padding: 11px 22px;
  border-radius: var(--raio-pequeno);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  border: 2px solid transparent;
  transition: all 0.15s;
}
.btn-hero:hover {
  background: #ffd633;
  border-color: rgba(255,255,255,0.4);
  text-decoration: none;
}

/* ═══ Estatísticas (cards numéricos) ═══ */

.estatisticas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin-bottom: var(--gap-lg);
}
.card-stat {
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-top: 3px solid var(--primaria);
  border-radius: var(--raio-medio);
  padding: 18px 20px;
  box-shadow: var(--shadow-sutil);
}
.card-stat .num {
  font-size: 30px;
  font-weight: 800;
  color: var(--primaria);
  line-height: 1.1;
  letter-spacing: -0.5px;
}
.card-stat .rot {
  font-size: 11px;
  color: var(--texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 600;
  margin-top: 6px;
}
.rot-detalhe {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 500;
  color: var(--texto-suave);
  text-transform: none;
  letter-spacing: 0;
}

/* ═══ Blocos ═══ */

.bloco {
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-radius: var(--raio-medio);
  padding: var(--gap-lg);
  margin-bottom: var(--gap-lg);
  box-shadow: var(--shadow-sutil);
}
.bloco h2, .bloco h3 {
  margin: 0 0 var(--gap-md) 0;
  color: var(--primaria);
  font-size: 16px;
  font-weight: 700;
  border-bottom: 2px solid var(--borda-suave);
  padding-bottom: 8px;
  letter-spacing: 0.2px;
}

/* ═══════════════════════════════════════════════════════════════════
   TABELAS
   ═══════════════════════════════════════════════════════════════════ */

table.lista, table.resultados {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
table.lista thead th, table.resultados thead th {
  background: var(--primaria);
  color: var(--fda-branco);
  text-align: left;
  padding: 10px 12px;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}
table.lista tbody td, table.resultados tbody td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--borda-suave);
  vertical-align: top;
}
table.lista tbody tr:hover, table.resultados tbody tr:hover {
  background: #f0f4fb;
}
.centro { text-align: center; }
.tempo {
  font-family: var(--fonte-mono);
  font-weight: 600;
  color: var(--primaria-deep);
}

/* Linha de atleta DF destacada — verde institucional */
tr.linha-df { background: var(--df-bg); }
tr.linha-df:hover { background: #d8edde; }

/* Tabela rolável — sombra sinalizando overflow */
.tabela-rolavel {
  overflow-x: auto;
  background:
    linear-gradient(to right, var(--bg-elevado) 30%, rgba(255,255,255,0)),
    linear-gradient(to right, rgba(255,255,255,0), var(--bg-elevado) 70%) 100% 0,
    radial-gradient(farthest-side at 0 50%, rgba(0,39,118,0.18), transparent),
    radial-gradient(farthest-side at 100% 50%, rgba(0,39,118,0.18), transparent) 100% 0;
  background-repeat: no-repeat;
  background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
  background-attachment: local, local, scroll, scroll;
  border-radius: var(--raio-pequeno);
}
table.compacta { font-size: 12px; }
table.compacta thead th { padding: 7px 10px; font-size: 10px; }
table.compacta tbody td { padding: 6px 10px; white-space: nowrap; }
.nulo { color: var(--texto-claro); font-style: italic; font-size: 11px; }

/* ═══════════════════════════════════════════════════════════════════
   BADGES
   ═══════════════════════════════════════════════════════════════════ */

.badge-df {
  display: inline-block;
  background: var(--fda-verde);
  color: var(--fda-branco);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 3px;
  letter-spacing: 0.6px;
  vertical-align: middle;
  text-transform: uppercase;
}

.badge-fase {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 3px;
  letter-spacing: 0.4px;
  vertical-align: middle;
  background: #e5e7eb;
  color: #1f2937;
}
.badge-fase.badge-elim    { background: #fef3c7; color: #92400e; }
.badge-fase.badge-final-a { background: #dbeafe; color: #1e3a8a; }
.badge-fase.badge-final-b { background: #e0e7ff; color: #3730a3; }
.badge-fase.badge-final   { background: #dcfce7; color: #166534; }

.status-completo, .status-pendente, .status-em_andamento, .status-erro, .status-parcial {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}
.status-completo     { background: var(--status-ok-bg);   color: var(--status-ok-fg); }
.status-pendente     { background: var(--status-warn-bg); color: var(--status-warn-fg); }
.status-em_andamento { background: var(--status-info-bg); color: var(--status-info-fg); }
.status-parcial      { background: #ffe5cc;               color: #8a4500; }
.status-erro         { background: var(--status-err-bg);  color: var(--status-err-fg); }

.ev-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  cursor: help;
}
.ev-badge-completo  { background: var(--status-ok-bg);   color: var(--status-ok-fg); }
.ev-badge-parcial   { background: #ffe5cc;               color: #8a4500; }
.ev-badge-pendente  { background: var(--status-warn-bg); color: var(--status-warn-fg); }
.ev-badge-erro      { background: var(--status-err-bg);  color: var(--status-err-fg); }
.ev-badge-interno   { background: #e3eefb;               color: #2952a3; }
.ev-badge-externo   { background: #ece6f7;               color: #553a96; }

.eventos-secundarios summary {
  cursor: pointer;
  padding: 8px 0;
  list-style: none;
  user-select: none;
}
.eventos-secundarios summary::-webkit-details-marker { display: none; }
.eventos-secundarios summary::before {
  content: "▸ ";
  display: inline-block;
  margin-right: 8px;
  transition: transform 120ms ease;
  color: var(--texto-suave);
}
.eventos-secundarios[open] summary::before {
  transform: rotate(90deg);
}
.contador-secundarios {
  font-size: 14px;
  font-weight: 400;
  color: var(--texto-suave);
  margin-left: 8px;
}

.link-externo {
  font-size: 14px;
  color: var(--primaria);
  text-decoration: none;
}
.link-externo:hover { color: var(--primaria-hover); }

/* DNS / absenteísmo — semáforo */
.dns-alto   { color: #b91c1c; font-weight: 700; }
.dns-medio  { color: #b45309; font-weight: 600; }
.dns-baixo  { color: #1e7a3a; font-weight: 500; }

/* Documentos do evento */
.lista-docs {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lista-docs li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--bg);
  border-left: 3px solid var(--primaria);
  border-radius: var(--raio-pequeno);
  flex-wrap: wrap;
}
.badge-doc {
  display: inline-block;
  padding: 2px 8px;
  background: var(--primaria);
  color: var(--fda-branco);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: 3px;
}

.muted { color: var(--texto-suave); font-size: 12px; }

/* ═══════════════════════════════════════════════════════════════════
   LISTAS (temporadas, clubes)
   ═══════════════════════════════════════════════════════════════════ */

.lista-temporadas {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}
.lista-temporadas li {
  background: #f0f4fb;
  border-left: 3px solid var(--primaria);
  border-radius: var(--raio-pequeno);
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lista-temporadas li a {
  font-weight: 700;
  font-size: 16px;
  color: var(--primaria);
}
.lista-temporadas .contagem {
  font-size: 12px;
  color: var(--texto-suave);
}

.grid-clubes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
}
.card-clube {
  display: block;
  padding: 12px 14px;
  background: var(--df-bg);
  border-left: 3px solid var(--fda-verde);
  border-radius: var(--raio-pequeno);
  color: var(--texto);
  font-weight: 500;
  font-size: 13px;
  text-decoration: none;
  transition: all 0.15s;
}
.card-clube:hover {
  background: #d8edde;
  text-decoration: none;
  transform: translateX(2px);
}

.vazio { color: var(--texto-suave); font-style: italic; padding: 20px 0; }

/* ═══════════════════════════════════════════════════════════════════
   ESTADO VAZIO
   ═══════════════════════════════════════════════════════════════════ */

.estado-vazio {
  text-align: center;
  padding: 44px 24px;
  background: #fafbfd;
  border: 1px dashed var(--borda);
  border-radius: var(--raio-medio);
  color: var(--texto);
}
.estado-vazio .estado-icone {
  font-size: 40px;
  opacity: 0.5;
  margin-bottom: 12px;
}
.estado-vazio p { margin: 6px 0; color: var(--texto-suave); }
.estado-vazio strong { color: var(--texto); }
.estado-vazio code {
  background: var(--borda-suave);
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 12px;
  color: var(--primaria);
}
.estado-vazio .passos {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
  text-align: left;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}
.estado-vazio .passo {
  background: var(--bg-elevado);
  border-left: 3px solid var(--primaria);
  padding: 10px 14px;
  border-radius: 3px;
  font-size: 12px;
  box-shadow: var(--shadow-sutil);
}

/* ═══════════════════════════════════════════════════════════════════
   EXPLORADOR DO BANCO
   ═══════════════════════════════════════════════════════════════════ */

.grid-tabelas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 14px;
}
.card-tabela {
  display: block;
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-left: 4px solid var(--primaria);
  border-radius: var(--raio-medio);
  padding: 16px 18px;
  text-decoration: none;
  color: var(--texto);
  transition: all 0.15s;
  box-shadow: var(--shadow-sutil);
}
.card-tabela:hover {
  border-left-color: var(--fda-amarelo);
  box-shadow: var(--shadow-card);
  text-decoration: none;
  transform: translateY(-1px);
}
.cabec-tabela {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
}
.cabec-tabela h3 {
  margin: 0;
  font-family: var(--fonte-mono);
  font-size: 15px;
  color: var(--primaria);
  border: none;
  padding: 0;
  font-weight: 700;
}
.contador-linhas {
  font-size: 20px;
  font-weight: 800;
  color: var(--primaria);
  letter-spacing: -0.5px;
}
.desc-tabela {
  margin: 0 0 12px 0;
  font-size: 13px;
  color: var(--texto-suave);
  line-height: 1.4;
}
.cols-tabela {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.cols-tabela code {
  background: var(--borda-suave);
  color: var(--texto-suave);
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 3px;
  font-family: var(--fonte-mono);
}

.titulo-tabela {
  font-family: var(--fonte-mono);
  background: var(--borda-suave);
  padding: 4px 10px;
  border-radius: var(--raio-pequeno);
  font-size: 18px;
  color: var(--primaria);
}

/* ═══════════════════════════════════════════════════════════════════
   PAGINAÇÃO
   ═══════════════════════════════════════════════════════════════════ */

.paginacao {
  margin-top: var(--gap-md);
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.paginacao a {
  padding: 7px 14px;
  background: var(--borda-suave);
  border-radius: var(--raio-pequeno);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--primaria);
}
.paginacao a:hover { background: #d8e0ec; text-decoration: none; }
.paginacao .atual {
  font-weight: 700;
  color: var(--primaria);
  padding: 7px 14px;
  background: rgba(0, 39, 118, 0.08);
  border-radius: var(--raio-pequeno);
}

/* ═══════════════════════════════════════════════════════════════════
   RODAPÉ — Assinatura institucional
   ═══════════════════════════════════════════════════════════════════ */

.rodape {
  background: var(--bg-elevado);
  border-top: 1px solid var(--borda);
  padding: var(--gap-lg);
  margin-top: var(--gap-xl);
}
.rodape-inner {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
  font-size: 12px;
  color: var(--texto-suave);
}
.rodape-assinatura {
  font-weight: 600;
  color: var(--primaria);
  margin-bottom: 6px;
  font-size: 13px;
}
.rodape-pilares {
  display: inline-flex;
  gap: 12px;
  margin-top: 6px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-weight: 700;
  color: var(--texto-suave);
}
.rodape-pilares span { color: var(--primaria); }
.rodape-tecnico {
  margin-top: 10px;
  font-size: 11px;
  color: var(--texto-claro);
}
.rodape-tecnico .ts {
  font-family: var(--fonte-mono);
  color: var(--texto-suave);
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVO
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  .topo-inner { flex-direction: column; align-items: stretch; }
  .busca { max-width: none; }
  .cabecalho-entidade h1 { font-size: 20px; }
  .hero h1 { font-size: 22px; }
  table.resultados, table.lista { font-size: 12px; }
  table.resultados th, table.resultados td { padding: 6px 8px; }
  .logo img { height: 36px; }
  .logo-texto strong { font-size: 12px; }
  .logo-texto small { font-size: 10px; }
}

/* ====================================================================
   Página de Evento — componentes específicos
   ==================================================================== */

/* Containers de gráficos Chart.js */
.canvas-bloco {
  position: relative;
  min-height: 280px;
  max-height: 360px;
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--raio-medio);
  padding: var(--gap-md);
}
.canvas-bloco canvas { max-width: 100%; }
.canvas-bloco h3 {
  font-size: 13px;
  font-weight: 700;
  color: var(--fda-azul);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 var(--gap-sm) 0;
}

/* Grid de gráficos lado a lado */
.grid-donuts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--gap-lg);
}
.grid-cols-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--gap-lg);
}

/* Cards de KPI executivos (grid mais denso que .estatisticas) */
.grid-kpi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--gap-md);
  margin-bottom: var(--gap-lg);
}
.kpi {
  background: white;
  border-left: 3px solid var(--fda-azul);
  border-radius: var(--raio-medio);
  padding: var(--gap-md);
  box-shadow: var(--shadow-sutil);
}
.kpi .num {
  font-size: 26px;
  font-weight: 800;
  color: var(--fda-azul);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.kpi .num.alerta { color: #b91c1c; }
.kpi .num.ok    { color: var(--fda-verde); }
.kpi .rot {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #64748b;
  margin-top: 4px;
}
.kpi .sub {
  font-size: 11px;
  color: #94a3b8;
  margin-top: 4px;
}
.kpi.destaque-amarelo { border-left-color: var(--fda-amarelo); }
.kpi.destaque-verde   { border-left-color: var(--fda-verde); }
.kpi.destaque-teal    { border-left-color: var(--fda-teal); }
.kpi.destaque-vermelho{ border-left-color: #b91c1c; }

/* Ícone discreto de "info" dentro de rótulos curtos (siglas) — abre tooltip
   no hover do KPI inteiro (atributo title). */
.sigla-help {
  display: inline-block;
  margin-left: 4px;
  color: #94a3b8;
  font-size: 9px;
  font-weight: 400;
  vertical-align: top;
  cursor: help;
}

/* Legenda explicativa de sigla — usada em blocos onde a interpretação
   pode confundir o leitor (DNS, categoria atleta vs prova, etc) */
.legenda-sigla {
  font-size: 12px;
  color: #475569;
  background: #f1f5f9;
  border-left: 3px solid var(--fda-azul);
  border-radius: 4px;
  padding: 8px 12px;
  margin: 8px 0 14px 0;
  line-height: 1.5;
}
.legenda-sigla strong { color: var(--fda-azul); }
.legenda-sigla em { font-style: italic; color: #64748b; }

/* Tabela compacta usada em IT por estilo / metragem / provas mais disputadas */
.tabela-compacta {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tabela-compacta th,
.tabela-compacta td {
  padding: 8px 12px;
  text-align: left;
  border-bottom: 1px solid var(--borda-suave);
}
.tabela-compacta th {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #64748b;
  background: #f8fafc;
}
.tabela-compacta td.num,
.tabela-compacta th.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-compacta td.muted { color: #94a3b8; }
.tabela-compacta td.alerta { color: #b91c1c; font-weight: 600; }

/* SWOT — grade 2x2 com cores classicas */
.grid-swot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-md);
  margin-top: 12px;
}
.swot-card {
  border-radius: var(--raio-medio);
  padding: 14px 16px;
  border-left: 4px solid;
  background: white;
  box-shadow: var(--shadow-sutil);
}
.swot-card h4 {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 10px 0;
}
.swot-card ul {
  margin: 0;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.5;
}
.swot-card ul li { margin-bottom: 6px; }
.swot-card p.muted { font-size: 12px; color: #94a3b8; margin: 0; font-style: italic; }
.swot-s { border-left-color: var(--fda-verde);    background: #f0fdf4; }
.swot-s h4 { color: #14532d; }
.swot-w { border-left-color: #b91c1c;             background: #fef2f2; }
.swot-w h4 { color: #7f1d1d; }
.swot-o { border-left-color: var(--fda-azul);     background: #eff6ff; }
.swot-o h4 { color: #1e3a8a; }
.swot-t { border-left-color: var(--fda-amarelo);  background: #fffbeb; }
.swot-t h4 { color: #78350f; }
@media (max-width: 700px) { .grid-swot { grid-template-columns: 1fr; } }

/* Cards de recorde batido (destaque amarelo) */
.recordes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--gap-md);
}
.recorde-card {
  background: linear-gradient(135deg, #FEF7DC 0%, #fff 60%);
  border-left: 4px solid var(--fda-amarelo);
  padding: var(--gap-md);
  border-radius: var(--raio-medio);
  box-shadow: var(--shadow-sutil);
}
.recorde-card .titulo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--fda-azul);
  margin-bottom: 4px;
}
.recorde-card .titulo .medal { font-size: 20px; }
.recorde-card .atleta {
  font-size: 14px;
  font-weight: 700;
  color: var(--fda-azul-escuro);
}
.recorde-card .meta {
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}
.recorde-card .tempo {
  font-family: var(--fonte-mono);
  font-size: 18px;
  font-weight: 700;
  color: var(--fda-azul);
  margin-top: 6px;
}
.recorde-card .tipo-rec {
  display: inline-block;
  padding: 2px 8px;
  background: var(--fda-amarelo);
  color: var(--fda-azul-escuro);
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  margin-left: 6px;
}

/* Badge de UF (visitantes) */
.uf-badge {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  background: var(--fda-teal);
  color: white;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-left: 4px;
}
.uf-badge.df { background: var(--fda-verde); }
.uf-badge.sem { background: #94a3b8; }

/* Heatmap CSS-only (fallback ou exibição simples) */
.heatmap {
  border-collapse: collapse;
  font-size: 12px;
  width: auto;
}
.heatmap th, .heatmap td {
  padding: 8px 12px;
  text-align: center;
  border: 1px solid white;
}
.heatmap th {
  background: var(--fda-azul);
  color: white;
  font-weight: 700;
}
.heatmap td.label {
  background: #f4f6fb;
  color: var(--fda-azul);
  font-weight: 700;
  text-align: left;
}
.heatmap td.cell {
  font-family: var(--fonte-mono);
  font-weight: 700;
  color: white;
  min-width: 60px;
}
.heatmap td.cell.empty { background: #f1f5f9; color: #cbd5e1; }
/* Gradiente de DNS: verde claro 0% → amarelo 30% → vermelho 70%+ */
.heatmap td.cell.h0  { background: #d1f4dd; color: var(--fda-azul); }
.heatmap td.cell.h10 { background: #a7e3b8; color: var(--fda-azul); }
.heatmap td.cell.h20 { background: #f6e58d; color: var(--fda-azul-escuro); }
.heatmap td.cell.h30 { background: #f3a847; color: white; }
.heatmap td.cell.h50 { background: #db5b2a; color: white; }
.heatmap td.cell.h70 { background: #b91c1c; color: white; }

/* Barra horizontal CSS pura (fallback / atletas) */
.barra-css {
  position: relative;
  background: #f1f5f9;
  height: 18px;
  border-radius: 3px;
  overflow: hidden;
}
.barra-css .preenchimento {
  position: absolute;
  inset: 0;
  background: var(--fda-azul);
  border-radius: 3px;
}
.barra-css .preenchimento.df { background: var(--fda-verde); }
.barra-css .preenchimento.amarelo { background: var(--fda-amarelo); }
.barra-css .rotulo {
  position: relative;
  z-index: 2;
  padding: 0 8px;
  font-size: 11px;
  font-weight: 700;
  color: white;
  line-height: 18px;
  text-shadow: 0 1px 1px rgba(0,0,0,0.3);
}

/* Cards podio (atletas com mais medalhas) */
.podio-card {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--raio-medio);
  padding: var(--gap-md);
  display: flex;
  gap: var(--gap-md);
  align-items: center;
}
.podio-card .pos {
  font-size: 24px;
  font-weight: 800;
  color: var(--fda-amarelo);
  min-width: 32px;
  font-family: var(--fonte-mono);
}
.podio-card .info { flex: 1; }
.podio-card .atleta-nome {
  font-weight: 700;
  color: var(--fda-azul);
  font-size: 14px;
}
.podio-card .medals {
  font-size: 12px;
  color: #475569;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}

/* Delta negativo (melhora) */
.delta-melhora { color: var(--fda-verde); font-weight: 700; font-variant-numeric: tabular-nums; }
.delta-piora   { color: #b91c1c; font-weight: 700; font-variant-numeric: tabular-nums; }
.delta-neutro  { color: #94a3b8; font-variant-numeric: tabular-nums; }

/* Bloco com h2 + ação inline */
.bloco-cabecalho {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--gap-md);
  border-bottom: 2px solid #e5e7eb;
  padding-bottom: var(--gap-sm);
}
.bloco-cabecalho h2 {
  margin: 0;
  border: none;
  padding: 0;
}
.bloco-cabecalho .sub {
  font-size: 12px;
  color: #94a3b8;
}

/* Subseções dentro de blocos */
.subbloco { margin-top: var(--gap-lg); }
.subbloco h3 {
  font-size: 13px;
  font-weight: 700;
  color: var(--fda-azul);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 var(--gap-sm) 0;
}

/* Tabela com fundo de barra (eficiência) */
.barra-celula {
  position: relative;
  min-width: 80px;
  text-align: right;
  padding-right: 12px;
}
.barra-celula .bar-bg {
  position: absolute;
  inset: 0;
  right: auto;
  background: rgba(0, 39, 118, 0.08);
  border-radius: 2px;
}
.barra-celula .val {
  position: relative;
  z-index: 2;
  font-family: var(--fonte-mono);
  font-weight: 700;
  font-size: 12px;
}

/* Tooltips simples */
.dica {
  cursor: help;
  border-bottom: 1px dotted #94a3b8;
}

/* Botão gerar PDF */
.btn-pdf {
  margin-left: auto;
  padding: 6px 14px;
  background: var(--fda-amarelo);
  color: var(--fda-azul-escuro);
  border: none;
  border-radius: var(--raio-medio);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  cursor: pointer;
  font-family: var(--fonte-body);
  transition: filter 0.15s ease;
}
.btn-pdf:hover { filter: brightness(1.05); }
.migalhas { display: flex; align-items: center; gap: 12px; }

/* ====================================================================
   @media print — A4, esconde controles, preserva gráficos e cores
   ==================================================================== */
@media print {
  /* A4 portrait, margens compactas para caber mais conteúdo */
  @page {
    size: A4 portrait;
    margin: 14mm 12mm 14mm 12mm;
  }

  /* Reset de fundos para economizar tinta sem perder legibilidade */
  html, body {
    background: white !important;
    color: #111 !important;
    font-size: 9.5pt;
  }

  /* Esconder elementos não-essenciais */
  .topo, .rodape, .no-print, .btn-pdf, .busca,
  details summary { /* impede toggle no PDF */
    /* mantém details aberto via :open na regra abaixo */
  }
  .topo, .rodape, .no-print, .btn-pdf, .busca {
    display: none !important;
  }
  /* Garantir que todos os details fiquem abertos no PDF */
  details { display: block !important; }
  details > summary { list-style: none; pointer-events: none; }
  details > summary::-webkit-details-marker { display: none; }
  details:not([open]) > *:not(summary) { display: block !important; }

  /* Container ocupa largura inteira */
  .container { padding: 0 !important; max-width: none !important; }
  main.container { margin: 0 !important; }

  /* Cabeçalho do relatório */
  .cabecalho-entidade {
    border-left: 4px solid var(--fda-azul) !important;
    box-shadow: none !important;
    padding: 10pt 14pt !important;
    margin-bottom: 8pt !important;
    page-break-inside: avoid;
  }
  .cabecalho-entidade h1 { font-size: 14pt !important; margin: 0 0 4pt 0 !important; }
  .meta-print { display: block !important; font-size: 8pt; color: #666; margin-top: 6pt; }
  .meta-print span { display: inline-block; margin-right: 14pt; }

  /* Blocos: sem sombra, sem borda externa pesada */
  .bloco {
    box-shadow: none !important;
    border: 1px solid #e5e7eb !important;
    padding: 8pt 12pt !important;
    margin-bottom: 8pt !important;
    page-break-inside: avoid;
  }
  .bloco h2 { font-size: 11pt !important; margin: 0 0 6pt 0 !important; }
  .subbloco h3 { font-size: 10pt !important; }
  .subbloco { margin-top: 8pt !important; page-break-inside: avoid; }

  /* KPIs: 3 por linha no print */
  .grid-kpi { grid-template-columns: repeat(3, 1fr) !important; gap: 6pt !important; }
  .kpi { padding: 6pt 8pt !important; box-shadow: none !important; }
  .kpi .num { font-size: 14pt !important; }
  .kpi .rot { font-size: 7pt !important; }
  .kpi .sub { font-size: 7pt !important; }

  /* Tabelas: fonte menor, sem hover */
  table.lista, table.lista.compacta, table.resultados, table.heatmap {
    font-size: 8pt !important;
  }
  table.lista th, table.lista td,
  table.lista.compacta th, table.lista.compacta td {
    padding: 3pt 5pt !important;
  }
  table.lista thead { background: var(--fda-azul) !important; }
  table.lista tbody tr:hover { background: inherit !important; }

  /* Gráficos: preservar (Chrome renderiza canvas em print) */
  .grid-donuts { grid-template-columns: 1fr 1fr !important; gap: 8pt !important; }
  .canvas-bloco {
    min-height: 200pt !important;
    max-height: 240pt !important;
    box-shadow: none !important;
    page-break-inside: avoid;
  }
  .canvas-bloco canvas { max-height: 200pt !important; }
  .grid-cols-2 { grid-template-columns: 1fr 1fr !important; gap: 8pt !important; }

  /* Cards de recorde */
  .recordes-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 6pt !important; }
  .recorde-card { padding: 6pt !important; page-break-inside: avoid; }
  .recorde-card .tempo { font-size: 12pt !important; }
  .recorde-card .atleta { font-size: 9pt !important; }

  /* Pódio cards */
  .podio-card { padding: 6pt !important; }

  /* Preservar cores essenciais (sem isso o Chrome remove backgrounds) */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* Auditoria de inscrição: forçar abertos no PDF */
  .audit-clube[open], .audit-clube { padding: 4pt 8pt !important; }
  .audit-clube > summary { color: #4a3a00; cursor: default; }
  .audit-clube table { font-size: 7.5pt !important; }

  /* Quebras de página entre seções principais */
  section.bloco { page-break-inside: avoid; }
  section.bloco:nth-child(n+3) { page-break-before: auto; }

  /* Links: cor azul (clicáveis) mas sem sublinhado pesado */
  a { color: var(--fda-azul) !important; text-decoration: none; }
  a[href^="http"]::after, a[href^="/"]::after { content: ""; }

  /* Footer minimalista impresso em cada página via footer */
  /* (browsers modernos respeitam @page mas controle real é limitado) */

  /* Heatmap legível em print */
  .heatmap td.cell { font-size: 8pt !important; padding: 4pt 6pt !important; }
}

/* Auditoria de inscrição (details/summary por clube) */
.audit-clube {
  background: #fef9c3;
  border-left: 3px solid var(--fda-amarelo);
  border-radius: var(--raio-medio);
  padding: 8px 14px;
  margin-bottom: 8px;
}
.audit-clube > summary {
  cursor: pointer;
  font-size: 13px;
  color: #4a3a00;
  padding: 4px 0;
  list-style: revert;
}
.audit-clube > summary:hover { color: var(--fda-azul); }
.audit-clube[open] > summary { margin-bottom: 4px; }
.audit-clube table.lista.compacta { background: white; border-radius: 4px; }

/* Aviso de seção vazia */
.aviso-secao {
  padding: 16px;
  background: #fff8e1;
  border: 1px solid #f8c300;
  border-radius: var(--raio-medio);
  font-size: 13px;
  color: #6b5400;
}
.aviso-secao strong { color: #4a3a00; }

/* ============================================================
   PDF EXECUTIVO — capa, sumário, running header/footer, contracapa
   ------------------------------------------------------------
   Tudo aqui só aparece no print (window.print()).
   Convenção: .print-only é display:none na tela, display:block no print.
   ============================================================ */

.print-only { display: none; }

@media print {
  /* @page: A4 portrait. Running header/footer via margin boxes do CSS
     Paged Media (Chrome suporta texto + counter, NÃO suporta imagem).
     A logo grande fica na capa (page 1) e contracapa. */
  @page {
    size: A4 portrait;
    margin: 18mm 12mm 18mm 12mm;
    @bottom-left {
      content: "FDA-DF · Gestão 2026–2027";
      font-family: Inter, sans-serif;
      font-size: 7.5pt;
      font-weight: 600;
      color: #002776;
      vertical-align: top;
      padding-top: 4mm;
      white-space: nowrap;
    }
    @bottom-center {
      content: "Página " counter(page) " de " counter(pages);
      font-family: Inter, sans-serif;
      font-size: 8pt;
      font-weight: 700;
      color: #002776;
      vertical-align: top;
      padding-top: 4mm;
      white-space: nowrap;
    }
    @bottom-right {
      content: "Feito por EIXO PRODUTORA";
      font-family: Inter, sans-serif;
      font-size: 7.5pt;
      font-weight: 700;
      color: #001a52;
      letter-spacing: 0.5px;
      vertical-align: top;
      padding-top: 4mm;
      white-space: nowrap;
    }
  }
  /* Primeira página = capa (A4 inteiro, sem margens nem margin boxes) */
  @page :first {
    margin: 0;
    @top-left { content: ""; }
    @top-center { content: ""; }
    @top-right { content: ""; }
    @bottom-left { content: ""; }
    @bottom-center { content: ""; }
    @bottom-right { content: ""; }
  }

  .print-only { display: block; }

  /* Esconde elementos legados que duplicam info do running header */
  .cabecalho-entidade { display: none !important; }

  /* Esconder a capa, sumário e contracapa nas telas de tela já é o default
     pelo .print-only — aqui só garantir display correto */
  .pdf-capa, .pdf-sumario, .pdf-contracapa {
    display: block;
  }

  /* ───────── CAPA (pdf-capa) ─────────
     Estrutura vertical em 6 faixas, A4 inteiro sem margem. Usa flex column.
     `100vh` em print mapeia para a altura da @page, que é 297mm com :first. */
  .pdf-capa {
    width: 100%;
    /* Fixo em A4 — `vh` no Chrome --print-to-pdf mapeia pro viewport
       headless (≈159mm), não pra @page :first (297mm), e com overflow:hidden
       clipa o rodapé + faixa inferior. */
    height: 297mm;
    min-height: 297mm;
    margin: 0;
    padding: 0;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    page-break-after: always;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
  }

  .pdf-capa-faixa-deco {
    flex: 0 0 12mm;
    background: linear-gradient(to right,
      #F8C300 0%, #F8C300 33%,
      #00923F 33%, #00923F 66%,
      #008080 66%, #008080 100%);
  }
  .pdf-capa-faixa-deco.inferior { flex: 0 0 10mm; }
  .pdf-capa-bloco-logo { flex: 0 0 92mm; }
  .pdf-capa-bloco-titulo { flex: 1 1 auto; min-height: 70mm; }
  .pdf-capa-kpi-hero { flex: 0 0 55mm; }
  .pdf-capa-rodape { flex: 0 0 38mm; }
  .pdf-capa-faixa-deco.inferior {
    background: linear-gradient(to right,
      #008080 0%, #008080 33%,
      #00923F 33%, #00923F 66%,
      #F8C300 66%, #F8C300 100%);
  }

  .pdf-capa-bloco-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 8mm 12mm 0 12mm;
  }
  .pdf-capa-bloco-logo img {
    height: 55mm;
    width: auto;
    display: block;
  }
  .pdf-capa-instituicao {
    margin-top: 6mm;
    font-size: 9pt;
    font-weight: 700;
    letter-spacing: 2px;
    color: var(--cor-entidade, #002776);
    text-align: center;
    text-transform: uppercase;
  }

  /* Co-branding Eixo Produtora — abaixo do logo da entidade */
  .pdf-capa-cobrand {
    margin-top: 5mm;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2mm;
  }
  .pdf-capa-cobrand-label {
    font-size: 7pt;
    font-weight: 700;
    letter-spacing: 3px;
    color: #5a6478;
    text-transform: uppercase;
  }
  .pdf-capa-cobrand-eixo {
    display: flex;
    align-items: center;
    gap: 3mm;
  }
  .pdf-capa-cobrand-eixo img {
    height: 12mm;
    width: auto;
  }
  .pdf-capa-cobrand-eixo-nome {
    font-size: 11pt;
    font-weight: 800;
    color: #0F2742;
    letter-spacing: 1px;
  }

  .pdf-capa-bloco-titulo {
    background: var(--cor-entidade, #002776);
    color: #ffffff;
    padding: 14mm 18mm;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
  }
  .pdf-capa-bloco-titulo::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
      0deg,
      transparent 0,
      transparent 14mm,
      rgba(255,255,255,0.04) 14mm,
      rgba(255,255,255,0.04) 14.2mm
    );
    pointer-events: none;
  }
  .pdf-capa-kicker {
    font-size: 11pt;
    font-weight: 700;
    letter-spacing: 4px;
    color: #F8C300;
    text-transform: uppercase;
    margin-bottom: 6mm;
    position: relative;
  }
  .pdf-capa-evento {
    font-size: 28pt;
    font-weight: 800;
    letter-spacing: -0.5px;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 8mm 0;
    max-width: 170mm;
    position: relative;
  }
  .pdf-capa-meta {
    text-align: center;
    font-size: 10pt;
    font-weight: 500;
    opacity: 0.92;
    position: relative;
    line-height: 1.6;
    padding: 0 14mm;
  }

  .pdf-capa-kpi-hero {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
    padding: 10mm 18mm;
    gap: 0;
  }
  .pdf-capa-kpi {
    text-align: center;
    border-right: 0.3mm solid #dde3ee;
    padding: 0 6mm;
  }
  .pdf-capa-kpi:last-child { border-right: none; }
  .pdf-capa-kpi .num {
    font-size: 42pt;
    font-weight: 800;
    color: var(--cor-entidade, #002776);
    line-height: 1;
    letter-spacing: -1px;
  }
  .pdf-capa-kpi .rot {
    margin-top: 4mm;
    font-size: 9pt;
    font-weight: 700;
    color: #5a6478;
    text-transform: uppercase;
    letter-spacing: 1.5px;
  }

  .pdf-capa-rodape {
    background: #001a52;
    color: #ffffff;
    padding: 6mm 18mm;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .pdf-capa-gestao {
    font-size: 12pt;
    font-weight: 700;
    letter-spacing: 0.5px;
  }
  .pdf-capa-pilares {
    margin-top: 3mm;
    font-size: 9pt;
    font-weight: 500;
    opacity: 0.9;
    letter-spacing: 0.5px;
  }
  .pdf-capa-pilares span {
    font-weight: 700;
    color: #F8C300;
  }
  .pdf-capa-emissao {
    margin-top: 4mm;
    font-size: 8pt;
    font-weight: 500;
    opacity: 0.75;
    letter-spacing: 0.5px;
  }

  /* Capa não mostra running header/footer */
  .pdf-capa ~ .pdf-header,
  .pdf-capa ~ .pdf-footer {
    /* já controlado via @page :first margins=0 — mas reforçamos via display */
  }

  /* ───────── HEADLINES NUMERADAS DAS 6 SEÇÕES ─────────
     Substitui o .bloco-cabecalho padrão por um headline com numeral em quadrado
     amarelo + título uppercase + faixa colorida abaixo. Cada seção começa em
     página nova (page-break-before), exceto a primeira (já vem depois do
     sumário que tem page-break-after). */
  section.bloco[data-secao-num] {
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 8mm !important;
  }
  section.bloco[data-secao-num]:not([data-secao-num="1"]) {
    page-break-before: always;
  }
  section.bloco[data-secao-num] > .bloco-cabecalho {
    display: flex !important;
    align-items: center;
    gap: 6mm;
    margin: 0 0 4mm 0 !important;
    padding: 0 !important;
    border: none !important;
    flex-direction: row !important;
    page-break-after: avoid;
  }
  /* Numeral grande em quadrado amarelo */
  section.bloco[data-secao-num] > .bloco-cabecalho::before {
    content: attr(data-num);  /* fallback */
  }
  section.bloco[data-secao-num="1"] > .bloco-cabecalho::before { content: "01"; }
  section.bloco[data-secao-num="2"] > .bloco-cabecalho::before { content: "02"; }
  section.bloco[data-secao-num="3"] > .bloco-cabecalho::before { content: "03"; }
  section.bloco[data-secao-num="4"] > .bloco-cabecalho::before { content: "04"; }
  section.bloco[data-secao-num="5"] > .bloco-cabecalho::before { content: "05"; }
  section.bloco[data-secao-num="6"] > .bloco-cabecalho::before { content: "06"; }
  section.bloco[data-secao-num] > .bloco-cabecalho::before {
    display: inline-block;
    width: 16mm;
    height: 16mm;
    background: #F8C300;
    color: #001a52;
    font-family: Inter, sans-serif;
    font-size: 26pt;
    font-weight: 800;
    text-align: center;
    line-height: 16mm;
    letter-spacing: -0.5px;
    flex-shrink: 0;
  }
  /* Título da seção */
  section.bloco[data-secao-num] > .bloco-cabecalho h2 {
    font-size: 18pt !important;
    font-weight: 800 !important;
    color: #002776 !important;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    margin: 0 !important;
    line-height: 1.15;
  }
  section.bloco[data-secao-num] > .bloco-cabecalho .sub {
    display: block;
    font-size: 9.5pt;
    font-weight: 500;
    color: #5a6478;
    margin-top: 1.5mm;
    letter-spacing: 0;
  }
  /* Wrapper de texto do headline (h2 + sub) — separa visualmente do numeral */
  section.bloco[data-secao-num] > .bloco-cabecalho h2,
  section.bloco[data-secao-num] > .bloco-cabecalho .sub {
    flex: 0 1 auto;
  }
  /* Faixa colorida de 2mm imediatamente após o headline, com cor por seção */
  section.bloco[data-secao-num] > .bloco-cabecalho {
    border-bottom-width: 2mm !important;
    border-bottom-style: solid !important;
    padding-bottom: 2mm !important;
    margin-bottom: 6mm !important;
  }
  section.bloco[data-secao-num="1"] > .bloco-cabecalho { border-bottom-color: #002776 !important; }
  section.bloco[data-secao-num="2"] > .bloco-cabecalho { border-bottom-color: #00923F !important; }
  section.bloco[data-secao-num="3"] > .bloco-cabecalho { border-bottom-color: #F8C300 !important; }
  section.bloco[data-secao-num="4"] > .bloco-cabecalho { border-bottom-color: #008080 !important; }
  section.bloco[data-secao-num="5"] > .bloco-cabecalho { border-bottom-color: #002776 !important; }
  section.bloco[data-secao-num="6"] > .bloco-cabecalho { border-bottom-color: #001a52 !important; }

  /* Esconde emojis decorativos dos H3 no PDF (mantém-se na web) */
  .emoji-decor { display: none !important; }

  /* ───────── SUMÁRIO EXECUTIVO (pdf-sumario) ─────────
     Página 2: 4 KPIs + parágrafo narrativo + 3 cartões.
     Cabe em uma página A4 (sem rolagem). */
  .pdf-sumario {
    page-break-before: always;
    page-break-after: always;
    padding: 4mm 4mm;
  }
  .pdf-sumario-cabecalho {
    border-left: 4mm solid #002776;
    padding: 2mm 0 2mm 6mm;
    margin-bottom: 8mm;
  }
  .pdf-sumario-kicker {
    font-size: 8pt;
    font-weight: 700;
    color: #F8C300;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 2mm;
  }
  .pdf-sumario-titulo {
    font-size: 22pt;
    font-weight: 800;
    color: #002776;
    margin: 0 0 2mm 0;
    letter-spacing: -0.5px;
    line-height: 1.1;
  }
  .pdf-sumario-sub {
    font-size: 11pt;
    font-weight: 500;
    color: #5a6478;
  }

  .pdf-sumario-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4mm;
    margin-bottom: 8mm;
  }
  .pdf-sumario-kpi {
    background: #ffffff;
    border: 0.5mm solid #dde3ee;
    border-left: 1.2mm solid #002776;
    padding: 4mm 4mm;
    page-break-inside: avoid;
  }
  .pdf-sumario-kpi.destaque-verde { border-left-color: #00923F; }
  .pdf-sumario-kpi.destaque-azul { border-left-color: #002776; }
  .pdf-sumario-kpi .num {
    font-size: 22pt;
    font-weight: 800;
    color: #002776;
    line-height: 1;
    margin-bottom: 2mm;
    letter-spacing: -0.5px;
  }
  .pdf-sumario-kpi.destaque-verde .num { color: #00923F; }
  .pdf-sumario-kpi .rot {
    font-size: 8pt;
    font-weight: 700;
    color: #5a6478;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin-bottom: 1mm;
  }
  .pdf-sumario-kpi .sub {
    font-size: 7.5pt;
    color: #5a6478;
    font-weight: 500;
  }

  .pdf-sumario-leitura {
    font-size: 11pt;
    line-height: 1.6;
    color: #1a2342;
    text-align: justify;
    margin: 0 0 8mm 0;
    padding: 5mm 6mm;
    background: #f4f6fb;
    border-left: 1.2mm solid #F8C300;
  }
  .pdf-sumario-leitura strong { color: #002776; font-weight: 700; }

  .pdf-sumario-cartoes {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4mm;
  }
  .pdf-cartao {
    padding: 4mm;
    border-radius: 1mm;
    background: #ffffff;
    border: 0.5mm solid #dde3ee;
    border-top: 1.5mm solid #002776;
    page-break-inside: avoid;
  }
  .pdf-cartao.verde { border-top-color: #00923F; }
  .pdf-cartao.azul { border-top-color: #002776; }
  .pdf-cartao.amarelo { border-top-color: #F8C300; background: #fff8e1; }
  .pdf-cartao-rot {
    font-size: 7pt;
    font-weight: 700;
    color: #5a6478;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-bottom: 2mm;
  }
  .pdf-cartao-nome {
    font-size: 11pt;
    font-weight: 700;
    color: #002776;
    line-height: 1.2;
    margin-bottom: 2mm;
  }
  .pdf-cartao-meta {
    font-size: 8.5pt;
    color: #1a2342;
    line-height: 1.3;
    margin-bottom: 1.5mm;
  }
  .pdf-cartao-detalhe {
    font-size: 7.5pt;
    color: #5a6478;
    line-height: 1.3;
  }

  /* ───────── CONTRACAPA (pdf-contracapa) ─────────
     Última página do PDF: sobre o relatório + créditos + fontes. */
  .pdf-contracapa {
    width: 210mm;
    min-height: 297mm;
    margin: 0;
    padding: 0;
    background: #ffffff;
    display: grid;
    grid-template-rows: 10mm 1fr 30mm 10mm;
    page-break-before: always;
    box-sizing: border-box;
    overflow: hidden;
  }
  .pdf-contracapa-conteudo {
    padding: 14mm 18mm 8mm 18mm;
    display: flex;
    flex-direction: column;
    gap: 8mm;
  }
  .pdf-contracapa-bloco {
    page-break-inside: avoid;
  }
  .pdf-contracapa-bloco h2 {
    font-size: 14pt;
    font-weight: 800;
    color: var(--cor-entidade, #002776);
    text-transform: uppercase;
    letter-spacing: -0.3px;
    margin: 0 0 3mm 0;
    padding-bottom: 1.5mm;
    border-bottom: 0.8mm solid #F8C300;
    display: inline-block;
  }
  .pdf-contracapa-bloco p {
    font-size: 10pt;
    line-height: 1.55;
    color: #1a2342;
    margin: 0 0 3mm 0;
    text-align: justify;
  }
  .pdf-contracapa-bloco p.pdf-contracapa-nota {
    font-size: 8.5pt;
    color: #5a6478;
    font-style: italic;
  }
  .pdf-contracapa-bloco strong {
    color: var(--cor-entidade, #002776);
    font-weight: 700;
  }

  /* Bloco "Sobre a Eixo Produtora" — destaque com fundo claro */
  .pdf-contracapa-bloco.sobre-eixo {
    background: #f4f7fb;
    border-left: 1.2mm solid #0F2742;
    padding: 5mm 6mm;
    border-radius: 1mm;
  }
  .pdf-contracapa-bloco.sobre-eixo h2 {
    color: #0F2742;
    border-bottom-color: #FFB347;
  }
  .pdf-contracapa-bloco.sobre-eixo strong {
    color: #0F2742;
  }
  .pdf-contracapa-bloco.sobre-eixo p.pdf-contracapa-cta {
    margin-top: 4mm;
    padding-top: 3mm;
    border-top: 0.3mm solid #d3dbe6;
    font-size: 10pt;
    color: #0F2742;
    text-align: center;
    font-style: normal;
  }
  .pdf-contracapa-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12mm;
  }
  .pdf-contracapa-rotulo {
    font-size: 7.5pt;
    font-weight: 700;
    color: #5a6478;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 2mm;
  }
  .pdf-contracapa-marca {
    font-size: 16pt;
    font-weight: 800;
    color: #002776;
    letter-spacing: 0.5px;
    margin-bottom: 3mm;
  }
  .pdf-contracapa-marca.eixo {
    color: #001a52;
    letter-spacing: 1.5px;
  }
  .pdf-contracapa-detalhe {
    font-size: 9pt;
    color: #1a2342;
    line-height: 1.4;
    margin-bottom: 0.5mm;
  }
  .pdf-contracapa-lista {
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .pdf-contracapa-lista li {
    font-size: 9pt;
    line-height: 1.55;
    color: #1a2342;
    margin-bottom: 1.5mm;
    padding-left: 4mm;
    position: relative;
  }
  .pdf-contracapa-lista li::before {
    content: "·";
    color: #F8C300;
    font-weight: 800;
    position: absolute;
    left: 0;
    font-size: 14pt;
    line-height: 1;
  }
  .pdf-contracapa-rodape {
    background: #001a52;
    color: #ffffff;
    padding: 6mm 18mm;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .pdf-contracapa-rodape .pdf-capa-gestao {
    font-size: 11pt;
    font-weight: 700;
  }
  .pdf-contracapa-rodape .pdf-capa-pilares {
    margin-top: 3mm;
    font-size: 8.5pt;
    opacity: 0.9;
  }
  .pdf-contracapa-rodape .pdf-capa-pilares span {
    color: #F8C300;
    font-weight: 700;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   EIXO AQUÁTICOS — chrome geral (fora dos relatórios PDF)
   Override de .topo, .hero, .btn-hero e novos blocos da home/mapa.
   ═══════════════════════════════════════════════════════════════════ */

/* Hierarquia de seção no chrome Eixo — kicker discreto + H2 robusto */
.bloco-secao {
  margin-bottom: var(--gap-lg);
}
.bloco-secao .titulo-bloco {
  margin: 0 0 6px 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--eixo-por-sol);
}
.bloco-secao .titulo-bloco-h {
  margin: 0 0 4px 0;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.3px;
  color: var(--eixo-azul);
  border-bottom: none;
  padding-bottom: 0;
}
.bloco-secao .titulo-bloco-sub {
  margin: 0 0 var(--gap-md) 0;
  font-size: 13px;
  color: var(--texto-suave);
  max-width: 720px;
}

/* Header — fundo branco com borda inferior sólida Azul Eixo (sem faixa decorativa) */
.topo {
  background: var(--bg-elevado);
  color: var(--eixo-azul);
  border-bottom: 1px solid var(--borda);
  box-shadow: var(--shadow-sutil);
}
.topo::after { display: none; }
.logo { color: var(--eixo-azul) !important; }
.logo img { height: 40px; }
.logo-texto strong { color: var(--eixo-azul); font-size: 15px; }
.logo-texto small  { color: var(--eixo-chumbo); opacity: 0.7; }

.busca input {
  background: #fff;
  border: 1px solid var(--borda);
  color: var(--eixo-chumbo);
}
.busca input:focus {
  outline: 2px solid var(--eixo-amanhecer);
  border-color: transparent;
}
.busca button {
  background: var(--eixo-azul);
  color: #fff;
}
.busca button:hover { background: #1a3a5e; }

/* Hero Eixo Aquáticos — gradiente Azul Eixo + textura sutil */
.hero-eixo {
  background: linear-gradient(135deg, var(--eixo-azul) 0%, #1a3a5e 100%);
  color: #fff;
  padding: var(--gap-xl) var(--gap-lg);
  border-radius: var(--raio-medio);
  margin-bottom: var(--gap-lg);
  position: relative;
  overflow: hidden;
}
.hero-eixo::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    0deg,
    transparent 0,
    transparent 79px,
    rgba(255,200,70,0.05) 79px,
    rgba(255,200,70,0.05) 80px
  );
  pointer-events: none;
}
.hero-eixo > * { position: relative; z-index: 1; }
.hero-eixo h1 {
  margin: 0 0 8px 0;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.5px;
}
.hero-eixo .lead {
  margin: 0 0 18px 0;
  font-size: 17px;
  opacity: 0.92;
  max-width: 720px;
}
.hero-eixo .meta-cobertura {
  font-size: 13px;
  opacity: 0.85;
  border-top: 1px solid rgba(255,255,255,0.18);
  padding-top: 14px;
  margin-top: 18px;
}
.hero-eixo .busca-hero {
  display: flex;
  gap: 10px;
  max-width: 580px;
  margin: 0;
}
.hero-eixo .busca-hero input {
  flex: 1;
  padding: 14px 18px;
  border: none;
  border-radius: var(--raio-pequeno);
  font-size: 15px;
  background: #fff;
  color: var(--eixo-chumbo);
}
.hero-eixo .busca-hero input:focus { outline: 2px solid var(--eixo-amanhecer); }
.hero-eixo .busca-hero button {
  background: var(--eixo-amanhecer);
  color: var(--eixo-azul);
  border: none;
  padding: 14px 24px;
  border-radius: var(--raio-pequeno);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  cursor: pointer;
}
.hero-eixo .busca-hero button:hover { background: #ffd460; }

/* Bloco de cobertura — grid 4×2 fechado e simétrico */
.bloco-cobertura .estatisticas {
  margin-bottom: 0;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) {
  .bloco-cobertura .estatisticas { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .bloco-cobertura .estatisticas { grid-template-columns: 1fr; }
}
.bloco-cobertura .card-stat {
  border-top-color: var(--eixo-azul);
}
/* Cards-KPI como links (clicáveis para /banco/<tabela>) */
a.card-stat {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.1s, box-shadow 0.15s, border-color 0.15s;
}
a.card-stat:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card);
  border-color: var(--eixo-azul);
  text-decoration: none;
}
a.card-stat:hover .num { color: var(--eixo-azul); }

/* Bloco de qualidade — barras de progresso */
.bloco-qualidade ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}
.bloco-qualidade li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 16px;
  align-items: center;
  padding: 4px 0;
}
.bloco-qualidade .qual-label {
  font-size: 13px;
  color: var(--texto);
  font-weight: 500;
}
.bloco-qualidade .qual-numero {
  font-family: var(--fonte-mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--texto-suave);
  white-space: nowrap;
}
.bloco-qualidade .barra-progresso {
  grid-column: 1 / -1;
  height: 6px;
  background: var(--borda-suave);
  border-radius: 3px;
  overflow: hidden;
}
.bloco-qualidade .barra-progresso > span {
  display: block;
  height: 100%;
  background: linear-gradient(to right, var(--eixo-amanhecer), var(--eixo-por-sol));
  border-radius: 3px;
}
.bloco-qualidade .qual-meta {
  grid-column: 1 / -1;
  font-size: 11px;
  color: var(--texto-claro);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Cards de entidades organizadoras */
.grid-entidades {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.card-entidade {
  display: block;
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-left: 4px solid var(--eixo-azul);
  border-radius: var(--raio-medio);
  padding: 16px 18px;
  text-decoration: none;
  color: inherit;
  box-shadow: var(--shadow-sutil);
  transition: transform 0.1s, box-shadow 0.15s;
}
.card-entidade:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-card);
  text-decoration: none;
}
.card-entidade .ent-sigla {
  font-size: 18px;
  font-weight: 800;
  color: var(--eixo-azul);
  letter-spacing: -0.2px;
}
.card-entidade .ent-nome {
  font-size: 12px;
  color: var(--texto-suave);
  margin-top: 2px;
  line-height: 1.3;
}
.card-entidade .ent-tipo {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.2px;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--borda-suave);
  color: var(--texto-suave);
  margin-top: 8px;
  font-weight: 600;
}
.card-entidade .ent-tipo.confederacao { background: #fff2c7; color: #7a5a00; }
.card-entidade .ent-tipo.federacao    { background: #d4e0f5; color: var(--eixo-azul); }
.card-entidade .ent-tipo.associacao   { background: #ffe1d3; color: #8a3a18; }
.card-entidade .ent-tipo.liga         { background: #d4edd9; color: #0d5c2c; }
.card-entidade .ent-numeros {
  display: flex;
  gap: 16px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--texto-suave);
}
.card-entidade .ent-numeros strong {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--texto);
  font-family: var(--fonte-mono);
}
.card-entidade .ent-vazio {
  display: inline-block;
  background: var(--borda-suave);
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.4px;
  padding: 3px 9px;
  border-radius: 3px;
  margin-top: 6px;
  text-transform: uppercase;
}

/* Cards de temporada — grid digno de produto, não lista lo-fi */
.grid-temporadas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.card-temporada {
  display: block;
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  border-top: 3px solid var(--eixo-azul);
  border-radius: var(--raio-medio);
  padding: 18px 20px 16px;
  text-decoration: none;
  color: inherit;
  box-shadow: var(--shadow-sutil);
  transition: transform 0.1s, box-shadow 0.15s, border-color 0.15s;
}
.card-temporada:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card);
  border-top-color: var(--eixo-por-sol);
  text-decoration: none;
}
.card-temporada-ano {
  font-size: 13px;
  font-weight: 700;
  color: var(--eixo-azul);
  letter-spacing: 0.5px;
}
.card-temporada-num {
  font-size: 34px;
  font-weight: 800;
  color: var(--texto);
  line-height: 1.05;
  margin-top: 8px;
  letter-spacing: -0.6px;
}
.card-temporada-rot {
  font-size: 11px;
  color: var(--texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 600;
}
.card-temporada-prog {
  height: 4px;
  background: var(--borda-suave);
  border-radius: 2px;
  margin: 12px 0 6px;
  overflow: hidden;
}
.card-temporada-prog > span {
  display: block;
  height: 100%;
  background: linear-gradient(to right, var(--eixo-amanhecer), var(--eixo-por-sol));
}
.card-temporada-detalhe {
  font-size: 11px;
  color: var(--texto-suave);
  font-family: var(--fonte-mono);
}

/* Mapa de conteúdo — grupos */
.grupo-tabelas {
  margin-bottom: var(--gap-lg);
}
.grupo-tabelas .grupo-cabec {
  margin-bottom: 12px;
}
.grupo-tabelas .grupo-cabec h2 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--eixo-azul);
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
.grupo-tabelas .grupo-cabec p {
  margin: 4px 0 0 0;
  font-size: 13px;
  color: var(--texto-suave);
}
.diagrama-relacoes {
  background: var(--eixo-azul);
  color: #fff;
  padding: 16px 20px;
  border-radius: var(--raio-medio);
  font-family: var(--fonte-mono);
  font-size: 12px;
  line-height: 1.6;
  overflow-x: auto;
  margin-bottom: var(--gap-lg);
}
.diagrama-relacoes strong { color: var(--eixo-amanhecer); }
.badge-view {
  display: inline-block;
  background: var(--eixo-por-sol);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  vertical-align: middle;
  margin-left: 6px;
}

/* Rodapé Eixo */
.rodape {
  background: var(--eixo-azul);
  color: rgba(255,255,255,0.85);
}
.rodape a { color: var(--eixo-amanhecer); }
.rodape a:hover { color: #ffd460; }
.rodape-eixo-marca {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 13px;
}
.rodape-eixo-marca img {
  height: 32px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.9;
}

/* ═════════════════════════════════════════════════════════════════
   ONDA 3 — perfil público de entidade, pílulas das federações,
   landings comerciais (/para-*).
   ═════════════════════════════════════════════════════════════════ */

/* Pílulas das 22 federações via boletins (home, seção 03 · Governança) */
.bloco-via-boletins {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px dashed var(--borda);
}
.bloco-via-boletins p {
  font-size: 13px;
  color: var(--texto-suave);
  margin: 0 0 10px;
  line-height: 1.5;
}
.pilulas-entidades {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pilula-entidade {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bg-elevado);
  border: 1px solid var(--borda);
  font-size: 12px;
  font-weight: 700;
  color: var(--eixo-azul);
  text-decoration: none;
  transition: background 0.12s, border-color 0.12s;
}
.pilula-entidade:hover {
  background: #eaf1fb;
  border-color: var(--eixo-azul);
  text-decoration: none;
}
.pilula-entidade .pilula-uf {
  font-size: 10px;
  font-weight: 500;
  color: var(--texto-suave);
  letter-spacing: 0.3px;
}

/* Hero da página /entidade/{slug} */
.hero-entidade {
  background: linear-gradient(135deg, var(--bg-elevado) 0%, #f7f9fc 100%);
  border-left: 6px solid var(--eixo-azul);
  padding: 28px 32px;
}
.hero-entidade-marca {
  display: flex;
  align-items: center;
  gap: 24px;
}
.hero-entidade-logo {
  max-height: 84px;
  max-width: 120px;
  width: auto;
  height: auto;
  flex-shrink: 0;
  object-fit: contain;
}
.hero-entidade-texto { flex: 1; min-width: 0; }
.hero-entidade-sigla {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  color: var(--eixo-azul);
  text-transform: uppercase;
}
.hero-entidade-nome {
  font-size: 26px;
  font-weight: 800;
  color: var(--texto);
  margin: 4px 0 10px;
  letter-spacing: -0.4px;
  line-height: 1.15;
}
.hero-entidade-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  font-size: 13px;
}
.hero-entidade-meta .ent-tipo {
  display: inline-block;
  font-size: 11px;
  letter-spacing: 0.2px;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--borda-suave);
  color: var(--texto-suave);
  font-weight: 600;
}
.hero-entidade-meta .ent-tipo.confederacao { background: #fff2c7; color: #7a5a00; }
.hero-entidade-meta .ent-tipo.federacao    { background: #d4e0f5; color: var(--eixo-azul); }
.hero-entidade-meta .ent-tipo.associacao   { background: #ffe1d3; color: #8a3a18; }
.hero-entidade-meta .ent-tipo.liga         { background: #d4edd9; color: #0d5c2c; }
.hero-entidade-uf, .hero-entidade-abrang {
  font-size: 12px;
  color: var(--texto-suave);
  font-weight: 600;
}
.hero-entidade-site {
  font-size: 12px;
  color: var(--eixo-azul);
  text-decoration: none;
  font-weight: 600;
  margin-left: auto;
}
.hero-entidade-site:hover { text-decoration: underline; }

/* Estado vazio elegante na página de entidade (só boletins, sem eventos) */
.estatisticas-magro {
  grid-template-columns: minmax(260px, 380px) !important;
  justify-content: start;
}
.card-stat-destaque {
  border-left: 4px solid var(--eixo-amanhecer);
  background: linear-gradient(135deg, var(--bg-elevado) 0%, #fff8eb 100%);
}
.card-stat-destaque .num {
  color: var(--eixo-azul);
  font-size: 36px;
}

/* Lista de boletins na página de entidade */
.lista-boletins {
  list-style: none;
  padding: 0;
  margin: 0;
}
.lista-boletins li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--borda-suave);
  font-size: 13px;
}
.lista-boletins li:last-child { border-bottom: none; }
.boletim-data {
  font-family: var(--fonte-mono);
  font-size: 12px;
  color: var(--texto-suave);
  min-width: 90px;
}
.boletim-numero {
  font-size: 11px;
  font-weight: 700;
  color: var(--eixo-azul);
  letter-spacing: 0.3px;
}
.boletim-titulo {
  color: var(--texto);
  text-decoration: none;
  flex: 1;
  min-width: 240px;
}
.boletim-titulo:hover { color: var(--eixo-azul); text-decoration: underline; }
.boletim-evento-link {
  font-size: 11px;
  color: var(--eixo-por-sol);
  text-decoration: none;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 153, 0, 0.08);
}
.boletim-evento-link:hover { background: rgba(255, 153, 0, 0.18); }

/* Coluna numérica em tabelas */
.lista th.num-col, .lista td.num-col {
  text-align: right;
  font-family: var(--fonte-mono);
}

/* Badges de status de coleta */
.status-completo, .status-pendente, .status-parcial,
.status-em_andamento, .status-erro {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.status-completo    { background: #d4edd9; color: #0d5c2c; }
.status-pendente    { background: var(--borda-suave); color: var(--texto-suave); }
.status-parcial     { background: #fff2c7; color: #7a5a00; }
.status-em_andamento{ background: #d4e0f5; color: var(--eixo-azul); }
.status-erro        { background: #ffd5d5; color: #8a1818; }

/* ═════════════════════════════════════════════════════════════════
   Landings comerciais — /para-federacoes, /para-clubes, /para-imprensa
   ═════════════════════════════════════════════════════════════════ */

.comercial-header {
  background: var(--eixo-azul);
  color: #fff;
  padding: 14px 0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.comercial-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.comercial-header .logo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
}
.comercial-header .logo img {
  height: 32px;
  width: auto;
  filter: brightness(0) invert(1);
}
.comercial-header .logo-texto strong {
  display: block;
  font-size: 16px;
  letter-spacing: -0.2px;
  color: #fff; /* AUDIT-NAV-FIX: regra global .logo-texto strong (azul) vencia a herança e o wordmark sumia no header navy */
}
.comercial-header .logo-texto small {
  display: block;
  font-size: 11px;
  opacity: 0.75;
  letter-spacing: 0.3px;
  margin-top: 1px;
  color: #fff;
}
.comercial-nav {
  display: flex;
  gap: 4px;
  align-items: center;
}
.comercial-nav a {
  color: rgba(255,255,255,0.82);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 6px;
  transition: background 0.12s, color 0.12s;
}
.comercial-nav a:hover { background: rgba(255,255,255,0.1); color: #fff; }
.comercial-nav a.ativo {
  background: rgba(255,255,255,0.15);
  color: #fff;
}
.comercial-voltar-banco {
  font-size: 12px;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
}
.comercial-voltar-banco:hover { color: #fff; text-decoration: underline; }

/* Hero das landings comerciais */
.lc-hero {
  padding: 64px 0 48px;
  background: linear-gradient(160deg, var(--eixo-azul) 0%, #0a1f3a 100%);
  color: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.lc-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top right, rgba(255,179,71,0.15), transparent 60%);
  pointer-events: none;
}
.lc-hero-inner {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 1;
}
.lc-hero-kicker {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--eixo-amanhecer);
  padding: 6px 14px;
  border: 1px solid rgba(255,179,71,0.4);
  border-radius: 999px;
  margin-bottom: 24px;
}
.lc-hero h1 {
  font-size: 44px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -1px;
  margin: 0 0 18px;
}
.lc-hero .lead {
  font-size: 18px;
  line-height: 1.55;
  color: rgba(255,255,255,0.88);
  max-width: 680px;
  margin: 0 auto 30px;
}
.lc-hero-cta {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.lc-btn-primario,
.lc-btn-secundario {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  font-size: 15px;
  letter-spacing: 0.3px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.12s, transform 0.1s, border-color 0.12s;
  line-height: 1;
}
.lc-btn-primario {
  background: var(--eixo-amanhecer);
  color: var(--eixo-azul);
  font-weight: 800;
  border: 1px solid var(--eixo-amanhecer);
  box-shadow: 0 2px 12px rgba(255,179,71,0.3);
}
.lc-btn-primario:hover { background: #ffd460; border-color: #ffd460; transform: translateY(-1px); text-decoration: none; }
.lc-btn-secundario {
  background: transparent;
  color: #fff;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,0.4);
}
.lc-btn-secundario:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.7); text-decoration: none; }

/* Seções das landings */
.lc-secao {
  padding: 56px 0;
}
.lc-secao.alt { background: #f7f9fc; }
.lc-secao-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}
.lc-secao-kicker {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--eixo-por-sol);
  text-align: center;
  margin-bottom: 8px;
}
.lc-secao h2 {
  font-size: 32px;
  font-weight: 800;
  text-align: center;
  margin: 0 0 12px;
  color: var(--texto);
  letter-spacing: -0.5px;
}
.lc-secao-sub {
  font-size: 16px;
  text-align: center;
  color: var(--texto-suave);
  max-width: 680px;
  margin: 0 auto 36px;
  line-height: 1.55;
}

/* Grid de entregas (3 colunas) */
.lc-grid-entregas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.lc-card-entrega {
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.lc-card-entrega-icon {
  font-size: 28px;
  margin-bottom: 12px;
}
.lc-card-entrega h3 {
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--eixo-azul);
}
.lc-card-entrega p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--texto-suave);
  margin: 0;
}

/* Prova social */
.lc-prova {
  background: #fff;
  border: 1px solid var(--borda);
  border-left: 6px solid var(--eixo-amanhecer);
  border-radius: 12px;
  padding: 32px 36px;
  max-width: 820px;
  margin: 0 auto;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.lc-prova-quote {
  font-size: 19px;
  line-height: 1.5;
  color: var(--texto);
  font-style: italic;
  margin: 0 0 18px;
}
.lc-prova-attrib {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  color: var(--texto-suave);
}
.lc-prova-attrib img {
  height: 44px;
  width: auto;
}
.lc-prova-attrib strong {
  color: var(--texto);
  font-size: 14px;
  display: block;
}

/* CTA final */
.lc-cta-final {
  background: linear-gradient(135deg, var(--eixo-azul), #0a1f3a);
  color: #fff;
  padding: 56px 24px;
  text-align: center;
}
.lc-cta-final h2 {
  font-size: 30px;
  font-weight: 800;
  margin: 0 0 14px;
  letter-spacing: -0.4px;
}
.lc-cta-final p {
  font-size: 16px;
  color: rgba(255,255,255,0.85);
  max-width: 580px;
  margin: 0 auto 28px;
  line-height: 1.55;
}

/* Footer comercial */
.lc-footer {
  background: #0a1f3a;
  color: rgba(255,255,255,0.7);
  padding: 36px 24px 24px;
  font-size: 13px;
}
.lc-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
  align-items: flex-start;
}
.lc-footer-marca {
  display: flex;
  align-items: center;
  gap: 12px;
}
.lc-footer-marca img {
  height: 36px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}
.lc-footer-links { display: flex; flex-direction: column; gap: 6px; }
.lc-footer-links a {
  color: rgba(255,255,255,0.78);
  text-decoration: none;
  font-size: 13px;
}
.lc-footer-links a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 720px) {
  .lc-hero h1 { font-size: 32px; }
  .lc-hero .lead { font-size: 16px; }
  .lc-secao h2 { font-size: 26px; }
  .hero-entidade { padding: 22px; }
  .hero-entidade-marca { flex-direction: column; align-items: flex-start; gap: 14px; }
  .hero-entidade-logo { height: 64px; }
  .hero-entidade-nome { font-size: 22px; }
  .hero-entidade-site { margin-left: 0; }
  .comercial-header-inner { flex-direction: column; align-items: flex-start; gap: 14px; }
}

@media (max-width: 640px) {
  .comercial-nav {
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
  }
  .comercial-nav::-webkit-scrollbar { display: none; }
  .comercial-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 12px;
    padding: 7px 12px;
  }
  .lc-hero { padding: 48px 0 36px; }
  .lc-hero h1 { font-size: 26px; }
  .lc-hero .lead { font-size: 15px; }
  .lc-hero-cta { flex-direction: column; align-items: stretch; }
  .lc-btn-primario, .lc-btn-secundario { justify-content: center; }
  .lc-secao { padding: 40px 0; }
  .lc-secao h2 { font-size: 22px; }
  .lc-cta-final { padding: 40px 18px; }
}

/* Menu "Para sua organização" no header global */
.topo-nav-comercial {
  position: relative;
  margin-left: 16px;
}
.topo-nav-comercial-trigger {
  background: var(--eixo-amanhecer);
  color: var(--eixo-azul);
  font-weight: 800;
  font-size: 13px;
  padding: 8px 16px;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  letter-spacing: 0.2px;
  transition: background 0.12s;
}
.topo-nav-comercial-trigger:hover { background: #ffd460; }
.topo-nav-comercial-menu {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  min-width: 240px;
  z-index: 100;
  overflow: hidden;
}
.topo-nav-comercial:hover .topo-nav-comercial-menu,
.topo-nav-comercial:focus-within .topo-nav-comercial-menu {
  display: block;
}
.topo-nav-comercial-menu a {
  display: block;
  padding: 12px 16px;
  text-decoration: none;
  color: var(--texto);
  border-bottom: 1px solid var(--borda-suave);
}
.topo-nav-comercial-menu a:last-child { border-bottom: none; }
.topo-nav-comercial-menu a:hover { background: #f4f7fb; color: var(--eixo-azul); }
.topo-nav-comercial-menu a strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 2px;
}
.topo-nav-comercial-menu a small {
  display: block;
  font-size: 11px;
  color: var(--texto-suave);
  line-height: 1.35;
}

/* ═══════════════════════════════════════════════════════════════════
   Onda 4 — refinamentos comerciais
   ═══════════════════════════════════════════════════════════════════ */

/* Breadcrumb temático: aparece quando sessão veio de uma landing */
.breadcrumb-comercial {
  position: sticky;
  top: 0;
  z-index: 80;
  background: linear-gradient(90deg, var(--eixo-amanhecer) 0%, #ffd460 100%);
  color: var(--eixo-azul);
  padding: 10px 24px;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 2px 8px rgba(15, 39, 66, 0.08);
}
.breadcrumb-comercial a {
  color: var(--eixo-azul);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
}
.breadcrumb-comercial a:hover { text-decoration: underline; }
.breadcrumb-comercial .sep { opacity: 0.5; font-weight: 400; }
.breadcrumb-comercial .atual { font-weight: 500; opacity: 0.8; }

/* Selo de co-branding no hero de /entidade/{slug} */
.hero-entidade-selo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--eixo-amanhecer), var(--eixo-por-sol));
  color: var(--eixo-azul);
}
.hero-entidade-selo::before {
  content: '×';
  font-size: 14px;
  opacity: 0.6;
  font-weight: 400;
}

/* Quote-modelo com placeholder de aprovação */
.lc-quote-rascunho {
  background: #fffbef;
  border: 1px solid #ffd460;
  border-left: 6px solid var(--eixo-por-sol);
  border-radius: 12px;
  padding: 28px 32px;
  max-width: 820px;
  margin: 0 auto;
  position: relative;
}
.lc-quote-rascunho::before {
  content: '[ APROVAR COM PRESIDENTE ]';
  position: absolute;
  top: -10px;
  left: 24px;
  background: var(--eixo-por-sol);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 3px 10px;
  border-radius: 999px;
}
.lc-quote-rascunho-texto {
  font-size: 18px;
  line-height: 1.5;
  color: var(--texto);
  font-style: italic;
  margin: 6px 0 16px;
}
.lc-quote-rascunho-attrib {
  font-size: 13px;
  color: var(--texto-suave);
  font-weight: 600;
}
.lc-quote-rascunho-attrib strong {
  color: var(--texto);
  display: block;
  font-size: 14px;
}

/* Screenshots embutidos em /para-federacoes */
.lc-screenshots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 24px;
  margin-top: 36px;
}
.lc-screenshot {
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 4px 16px rgba(15, 39, 66, 0.08);
}
.lc-screenshot img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  border: 1px solid var(--borda-suave);
}
.lc-screenshot-legenda {
  font-size: 12px;
  color: var(--texto-suave);
  margin-top: 10px;
  text-align: center;
  font-weight: 600;
  letter-spacing: 0.2px;
}

/* WhatsApp pill no footer das landings */
.lc-footer-whatsapp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(37, 211, 102, 0.15);
  color: #25d366;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  border: 1px solid rgba(37, 211, 102, 0.3);
}
.lc-footer-whatsapp:hover { background: rgba(37, 211, 102, 0.25); color: #2dd573; }

/* ════════════════════════════════════════════════════════════════════════
   PERSPECTIVA HISTÓRICA — bloco multi-uso (atleta / clube / federação)
   ════════════════════════════════════════════════════════════════════════ */
.historico {
  margin: 2rem 0 2.5rem;
  background: linear-gradient(180deg, #fbfcfd 0%, #f3f5f9 100%);
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 18px 20px 22px;
}
.historico-cab {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 14px;
  margin-bottom: 18px;
}
.historico-cab h2 {
  margin: 0;
  font-size: 1.25rem;
  color: var(--eixo-azul);
  letter-spacing: -0.01em;
}
.historico-meta {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 13px;
}
.historico-meta strong {
  color: var(--eixo-azul);
  font-weight: 700;
}
.lente-pills {
  display: inline-flex;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 4px;
  gap: 2px;
}
.lente-pills button {
  border: none;
  background: transparent;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  border-radius: 999px;
  transition: background .12s, color .12s;
  font-family: inherit;
}
.lente-pills button:hover:not(:disabled):not(.ativo) {
  background: #f1f5f9;
  color: var(--eixo-azul);
}
.lente-pills button.ativo {
  background: var(--eixo-azul);
  color: #fff;
}
.lente-pills button:disabled {
  opacity: .4;
  cursor: not-allowed;
}
/* Botão "Ver todas as inscrições" (lazy-load da tabela de balizamento) */
.ver-mais-wrap {
  margin-top: 12px;
  text-align: center;
}
.btn-ver-mais {
  border: 1px solid var(--eixo-azul);
  background: #fff;
  color: var(--eixo-azul);
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 999px;
  font-family: inherit;
  transition: background .12s, color .12s;
}
.btn-ver-mais:hover:not(:disabled) {
  background: var(--eixo-azul);
  color: #fff;
}
.btn-ver-mais:disabled {
  opacity: .5;
  cursor: progress;
}
.historico-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.painel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 14px 16px 18px;
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
.painel-largo {
  grid-column: 1 / -1;
  min-height: 380px;
}
.painel h3 {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 700;
  color: var(--eixo-azul);
  display: flex;
  align-items: center;
  gap: 6px;
}
.painel-dica {
  color: #94a3b8;
  font-size: 11px;
  cursor: help;
}
.painel-canvas {
  flex: 1;
  position: relative;
  min-height: 240px;
}
.painel-canvas canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}
.historico.carregando { opacity: .65; }

@media (max-width: 800px) {
  .historico-grid { grid-template-columns: 1fr; }
  .painel { min-height: 280px; }
  .painel-largo { min-height: 320px; }
  .lente-pills button { padding: 6px 10px; font-size: 12px; }
}

@media print {
  .historico { display: none; }   /* não vai pro PDF executivo */
}

/* ════════════════════════════════════════════════════════════════════════
   HOME — bloco 05·Análises (3 cards persona)
   ════════════════════════════════════════════════════════════════════════ */
.bloco-analises .grid-personas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.card-persona {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 18px 18px 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color .15s, transform .15s;
}
.card-persona:hover { border-color: var(--eixo-amanhecer, #FFC846); }
.card-persona header {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.card-persona-emoji {
  font-size: 28px;
  line-height: 1;
}
.card-persona h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--eixo-azul);
}
.card-persona header p {
  margin: 0;
  font-size: 13px;
  color: #64748b;
  line-height: 1.45;
}
.card-persona-chips {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: auto;
}
.chip-persona {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  text-decoration: none;
  color: var(--eixo-azul);
  transition: background .12s, border-color .12s;
}
.chip-persona:hover {
  background: #fff7e6;
  border-color: var(--eixo-amanhecer, #FFC846);
}
.chip-persona strong {
  font-size: 13px;
  font-weight: 600;
}
.chip-persona small {
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}
.chip-df {
  font-size: 9px;
  background: #15803d;
  color: #fff;
  padding: 1px 5px;
  border-radius: 4px;
  margin-left: 4px;
  vertical-align: middle;
}

@media (max-width: 900px) {
  .bloco-analises .grid-personas { grid-template-columns: 1fr; }
}

/* ═════════ DASHBOARD DE GESTOR DA FEDERAÇÃO (Onda 1) ═════════ */
/* KPIs hero — 5 cards em linha. Reusa .estatisticas mas com layout grid mais rígido. */
.bloco.gestao .gestao-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.card-kpi-gestao {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 16px 14px;
  cursor: help;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 110px;
}
.card-kpi-gestao .num {
  font-size: 28px;
  font-weight: 800;
  color: var(--eixo-azul, #0F2742);
  line-height: 1.1;
  letter-spacing: -0.5px;
}
.card-kpi-gestao .rot {
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.card-kpi-gestao .delta {
  font-size: 12px;
  font-weight: 600;
}
.card-kpi-gestao .delta-seta {
  font-weight: 800;
  margin-right: 2px;
}
.card-kpi-gestao .delta-bom    { color: #15803d; }
.card-kpi-gestao .delta-ruim   { color: #b91c1c; }
.card-kpi-gestao .delta-neutro { color: #64748b; }
.card-kpi-gestao.carregando-skeleton { opacity: 0.5; }

/* Funil de Pipeline FEN→federado */
.funil-pipeline {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}
.funil-linha {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 16px;
  align-items: center;
}
.funil-barra-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
}
.funil-barra {
  height: 38px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 12px;
  transition: width 0.4s ease;
  box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
.funil-barra .funil-n {
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  text-shadow: 0 1px 1px rgba(0,0,0,0.2);
  white-space: nowrap;
}
.funil-conv {
  font-size: 11px;
  color: #475569;
  font-weight: 600;
  background: #f1f5f9;
  padding: 3px 8px;
  border-radius: 12px;
  white-space: nowrap;
}
.funil-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13px;
}
.funil-meta strong {
  color: var(--eixo-azul, #0F2742);
  font-size: 13px;
}
.funil-meta .muted {
  font-size: 11px;
  line-height: 1.3;
}
.funil-kpi {
  margin-top: 18px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border-left: 4px solid #f59e0b;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.5;
  color: #422006;
}
.funil-destaque {
  font-size: 22px;
  font-weight: 800;
  color: #92400e;
  letter-spacing: -0.5px;
}

/* Grid para sub-blocos da seção de gestão */
.bloco.gestao .grid-gestao {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* Responsivo */
@media (max-width: 900px) {
  .bloco.gestao .gestao-kpis { grid-template-columns: repeat(2, 1fr); }
  .funil-linha { grid-template-columns: 1fr; gap: 4px; }
  .funil-meta { padding-left: 4px; }
}
@media (max-width: 540px) {
  .bloco.gestao .gestao-kpis { grid-template-columns: 1fr; }
  .card-kpi-gestao .num { font-size: 24px; }
}

/* ═════════ Onda 2: Retenção entre categorias ═════════ */
.bloco.gestao .painel-meta {
  font-size: 14px;
  color: #475569;
  margin: 4px 0 14px;
  line-height: 1.5;
}
.bloco.gestao .ret-ruim-text { color: #b91c1c; font-weight: 800; }
.bloco.gestao .painel-rodape {
  font-size: 11px;
  margin: 12px 0 0;
  line-height: 1.4;
}

.tabela-retencao {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.tabela-retencao thead th {
  background: #0F2742;
  color: #fff;
  text-align: left;
  padding: 10px 12px;
  font-size: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.tabela-retencao thead th.num { text-align: right; }
.tabela-retencao thead th.retencao-col { text-align: right; }
.tabela-retencao tbody td {
  padding: 12px;
  border-bottom: 1px solid #e2e8f0;
}
.tabela-retencao tbody td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-retencao tbody td.retencao-cell {
  font-weight: 800;
  font-size: 15px;
  padding-right: 16px;
}
.tabela-retencao tr.ret-bom td.retencao-cell {
  background: rgba(21,128,61,0.12);
  color: #15803d;
}
.tabela-retencao tr.ret-medio td.retencao-cell {
  background: rgba(234,179,8,0.15);
  color: #92400e;
}
.tabela-retencao tr.ret-ruim td.retencao-cell {
  background: rgba(185,28,28,0.12);
  color: #b91c1c;
}
.tabela-retencao tr.ret-na td.retencao-cell { color: #94a3b8; }

/* ═════════ Onda 2: Mapa de provas (heatmap) ═════════ */
.mapa-provas-controles {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 8px 0 16px;
  flex-wrap: wrap;
}
.mapa-provas-controles label {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
}
.filtro-select {
  font-size: 13px;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #fff;
  font-family: inherit;
}
.mapa-provas-legenda {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: #64748b;
  margin-left: auto;
}
.legenda-swatch {
  display: inline-block;
  width: 14px; height: 14px;
  border-radius: 3px;
  margin-right: 2px;
  vertical-align: middle;
}
.legenda-swatch.fraco  { background: rgb(254,226,226); }
.legenda-swatch.medio  { background: rgb(252,240,192); }
.legenda-swatch.forte  { background: rgb(220,252,218); }

.mapa-provas-grids {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.mapa-genero h4 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  font-weight: 700;
}
.mapa-provas-grid {
  width: 100%;
  border-collapse: separate;
  border-spacing: 2px;
  font-size: 12px;
}
.mapa-provas-grid thead th {
  background: transparent;
  color: #64748b;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 0;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  text-align: center;
}
.mapa-provas-grid tbody th {
  background: #f8fafc;
  color: #475569;
  font-weight: 700;
  text-align: right;
  padding: 4px 8px;
  font-size: 11px;
}
.mapa-provas-grid td.celula-heat {
  text-align: center;
  padding: 8px 4px;
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
  cursor: help;
  transition: transform 0.1s ease;
}
.mapa-provas-grid td.celula-heat:hover { transform: scale(1.08); }
.mapa-provas-grid td.celula-heat .val {
  font-weight: 800;
  font-size: 13px;
}
.mapa-provas-grid td.celula-heat .n {
  font-size: 9px;
  opacity: 0.75;
  margin-top: 1px;
}
.mapa-provas-grid td.celula-vazia {
  background: #f1f5f9;
  color: #cbd5e1;
  text-align: center;
  font-size: 14px;
  border-radius: 4px;
}

@media (max-width: 900px) {
  .mapa-provas-grids { grid-template-columns: 1fr; }
  .tabela-retencao thead th,
  .tabela-retencao tbody td { padding: 8px; font-size: 12px; }
}

/* ═════════ Funil SVG da pirâmide etária ═════════ */
.piramide-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.piramide-sumario {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border-left: 4px solid #0284c7;
  border-radius: 6px;
  margin-bottom: 8px;
}
.piramide-sumario-num {
  font-size: 32px;
  font-weight: 800;
  color: #0c4a6e;
  line-height: 1;
  letter-spacing: -1px;
}
.piramide-sumario-rot {
  font-size: 14px;
  color: #475569;
  line-height: 1.4;
}
.piramide-svg-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  width: 100%;
}
.piramide-svg {
  max-width: 760px;
  height: auto;
  margin: 0 auto;
  display: block;
}
.piramide-nivel path {
  transition: opacity 0.18s ease, transform 0.18s ease;
  transform-origin: center;
}
.piramide-nivel:hover path {
  opacity: 0.88;
  transform: scale(1.015);
}
.piramide-legenda { margin-top: 4px; }

@media (max-width: 700px) {
  .piramide-sumario-num { font-size: 24px; }
  .piramide-sumario-rot { font-size: 12px; }
}

/* Canvas mais alto para o gráfico de cohort survival (precisa de mais espaço vertical) */
.painel-canvas-alto {
  position: relative;
  min-height: 360px;
  margin: 12px 0;
}
.painel-canvas-alto canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

/* ══════════════════════════════════════════════════════════════════════
   Onda 3 do Dashboard de Gestor: Promissores · Patrocinadores · Gap-to-Record
   ══════════════════════════════════════════════════════════════════════ */

/* ── Bloco 3.1: Atletas promissores ── */
.promissores-wrap {
  overflow-x: auto;
  margin: 8px 0;
}
.tabela-promissores {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tabela-promissores thead th {
  text-align: left;
  font-weight: 600;
  color: #475569;
  padding: 10px 8px;
  border-bottom: 2px solid #e2e8f0;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tabela-promissores thead th.num { text-align: right; }
.tabela-promissores tbody td {
  padding: 10px 8px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
.tabela-promissores tbody td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.tabela-promissores tbody tr:hover { background: #f8fafc; }
.tabela-promissores .prom-rank {
  font-weight: 700;
  color: #94a3b8;
  width: 36px;
}
.tabela-promissores .prom-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 4px;
  font-size: 11px;
}
.tabela-promissores .prom-cat {
  background: var(--cor-cat, #64748b);
  color: #fff;
  padding: 2px 7px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.04em;
}
.tabela-promissores .prom-clube {
  color: #475569;
  font-weight: 500;
}
.tabela-promissores .prom-spark {
  width: 90px;
  text-align: center;
}
.sparkline-inline {
  vertical-align: middle;
  display: inline-block;
}
.score-badge {
  display: inline-block;
  min-width: 38px;
  padding: 3px 8px;
  border-radius: 4px;
  font-weight: 800;
  font-size: 13px;
  color: #fff;
  text-align: center;
}
.score-badge.alto  { background: #15803d; }
.score-badge.medio { background: #ca8a04; }
.score-badge.baixo { background: #94a3b8; }
.tag-bolsa-atleta {
  display: inline-block;
  background: #fef3c7;
  color: #854d0e;
  border: 1px solid #fde68a;
  padding: 2px 7px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  margin-left: 6px;
  vertical-align: middle;
}
.tag-bolsa-atleta-mini {
  display: inline-block;
  background: #fef3c7;
  color: #854d0e;
  padding: 1px 6px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
}
.tabela-promissores .delta-bom { color: #15803d; font-weight: 600; }
.tabela-promissores .delta-ruim { color: #b91c1c; font-weight: 600; }
.tabela-promissores .delta-neutro { color: #64748b; }

/* ── Bloco 3.2: Patrocinadores ── */
.patrocinadores-kpi-hero {
  background: linear-gradient(135deg, #f0f9ff 0%, #f8fafc 100%);
  border: 1px solid #e0f2fe;
  border-radius: 8px;
  padding: 16px 18px;
  margin: 10px 0 18px;
}
.pat-kpi-num {
  font-size: 36px;
  font-weight: 800;
  color: #0F2742;
  line-height: 1;
  margin-bottom: 4px;
}
.pat-kpi-rot {
  font-size: 14px;
  color: #475569;
  margin-bottom: 8px;
}
.pat-kpi-sub {
  font-size: 13px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.pat-kpi-sub .delta-bom  { color: #15803d; font-weight: 600; }
.pat-kpi-sub .delta-ruim { color: #b91c1c; font-weight: 600; }
.pat-kpi-rod {
  font-size: 12px;
  margin-top: 8px;
  color: #64748b;
}

.patrocinadores-grid-wrap {
  margin: 14px 0;
}
.patrocinadores-bar {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pat-bar-linha {
  display: grid;
  grid-template-columns: minmax(180px, 28%) 1fr;
  gap: 12px;
  align-items: center;
  font-size: 13px;
}
.pat-bar-rot {
  text-align: right;
  font-weight: 600;
  color: #1e293b;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}
.pat-bar-wrap {
  background: #f1f5f9;
  border-radius: 4px;
  overflow: hidden;
  height: 26px;
  position: relative;
}
.pat-bar {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 8px;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  border-radius: 4px;
  transition: width 0.3s ease;
}
.patrocinador-categoria-tag {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.02em;
}
.patrocinador-categoria-tag.governo { background: #1e40af; }
.patrocinador-categoria-tag.escola  { background: #ea580c; }
.patrocinador-categoria-tag.empresa { background: #15803d; }
.patrocinador-categoria-tag.clube   { background: #64748b; }

.patrocinadores-churn-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 18px 0 8px;
}
.churn-coluna {
  background: #f8fafc;
  border-radius: 8px;
  padding: 12px 14px;
  border-left: 4px solid #cbd5e1;
}
.churn-coluna.ganhou { border-left-color: #15803d; }
.churn-coluna.perdeu { border-left-color: #b91c1c; }
.churn-coluna h4 {
  margin: 0 0 8px;
  font-size: 13px;
  color: #475569;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.churn-coluna ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
}
.churn-coluna li {
  padding: 5px 0;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.churn-coluna li:last-child { border-bottom: none; }
.churn-coluna li a {
  font-weight: 600;
  color: #1e293b;
  text-decoration: none;
}
.churn-coluna li a:hover { color: #0F2742; text-decoration: underline; }
.churn-patr {
  font-size: 11px;
  color: #64748b;
  border-left: 3px solid var(--cor-cat, #cbd5e1);
  padding-left: 6px;
  white-space: nowrap;
  text-align: right;
  max-width: 50%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── Filtro temporal global da seção de gestão ── */
.gestao-temporada-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 18px;
  flex-wrap: wrap;
}
.gestao-pills-rot {
  font-size: 12px;
  color: #64748b;
  margin-right: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
.gestao-temporada-pills button {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 4px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s ease;
}
.gestao-temporada-pills button:hover {
  background: #e2e8f0;
  color: #1e293b;
}
.gestao-temporada-pills button.ativo {
  background: #0F2742;
  color: #fff;
  border-color: #0F2742;
}

/* ── Bloco 2.3: Quem sumiu (alertas de churn) ── */
.sumidos-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.sumido-card {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-left: 4px solid #d97706;
  border-radius: 6px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
}
.sumido-cab {
  display: flex;
  gap: 10px;
  align-items: center;
}
.sumido-import {
  background: #d97706;
  color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 15px;
  flex-shrink: 0;
}
.sumido-id {
  flex: 1;
  min-width: 0;
}
.sumido-id a { color: #1e293b; text-decoration: none; }
.sumido-id a:hover { color: #0F2742; text-decoration: underline; }
.sumido-meta {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-top: 3px;
  flex-wrap: wrap;
  font-size: 11px;
}
.sumido-stats {
  font-size: 12px;
  color: #475569;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sumido-ultimo {
  font-size: 11px;
  color: #64748b;
  border-top: 1px dashed #fde68a;
  padding-top: 6px;
}
.sumido-ultimo a { color: #475569; }
.sumido-tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.tag-risco {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  border: 1px solid;
}
.tag-risco.tag-bolsa  { background: #fef3c7; color: #854d0e; border-color: #fde68a; }
.tag-risco.tag-podio  { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.tag-risco.tag-top    { background: #ddd6fe; color: #5b21b6; border-color: #c4b5fd; }
.tag-risco.tag-fen    { background: #fed7aa; color: #9a3412; border-color: #fdba74; }

@media (max-width: 800px) {
  .sumidos-cards { grid-template-columns: 1fr; }
}

/* ── Rodapé rico explicativo (metodologia detalhada) ── */
.painel-rodape-rico {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 14px 18px;
  margin: 12px 0 0;
  font-size: 12px;
  color: #475569;
  line-height: 1.55;
}
.painel-rodape-rico .rodape-bloco {
  margin-bottom: 12px;
}
.painel-rodape-rico .rodape-bloco:last-child { margin-bottom: 0; }
.painel-rodape-rico strong { color: #1e293b; font-weight: 700; }
.painel-rodape-rico em { color: #475569; font-style: italic; }
.painel-rodape-rico .rodape-componentes {
  margin: 6px 0 0 0;
  padding-left: 4px;
  list-style: none;
}
.painel-rodape-rico .rodape-componentes li {
  padding: 4px 0;
  padding-left: 56px;
  position: relative;
  color: #475569;
}
.painel-rodape-rico .rodape-componentes li strong { color: #1e293b; }
.painel-rodape-rico .comp-peso {
  position: absolute;
  left: 0;
  top: 4px;
  display: inline-block;
  background: #0F2742;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 10px;
  min-width: 42px;
  text-align: center;
}
.painel-rodape-rico .rodape-componentes-leitura li { padding-left: 4px; }
.painel-rodape-rico .rodape-componentes-leitura li::before {
  content: "→ ";
  color: #94a3b8;
  font-weight: 700;
  margin-right: 2px;
}
.painel-rodape-rico .rodape-limitacoes {
  border-top: 1px dashed #cbd5e1;
  padding-top: 10px;
  margin-top: 12px;
}

/* ── Bloco 3.0: Vitrine FDA-DF (elite consagrada) ── */
.vitrine-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.vitrine-card {
  background: linear-gradient(135deg, #f5f3ff 0%, #faf5ff 100%);
  border: 1px solid #ddd6fe;
  border-left: 4px solid #7c3aed;
  border-radius: 6px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: 13px;
}
.vitrine-cab {
  display: flex;
  gap: 12px;
  align-items: center;
}
.vitrine-perc {
  background: #7c3aed;
  color: #fff;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(124, 58, 237, 0.25);
}
.vitrine-perc-num { font-size: 18px; font-weight: 800; line-height: 1; }
.vitrine-perc-rot { font-size: 9px; opacity: 0.85; text-transform: uppercase; }
.vitrine-id { flex: 1; min-width: 0; }
.vitrine-id a { color: #1e293b; text-decoration: none; }
.vitrine-id a:hover { color: #5b21b6; text-decoration: underline; }
.vitrine-meta {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-top: 3px;
  flex-wrap: wrap;
  font-size: 11px;
}
.vitrine-trajeto {
  display: flex;
  gap: 5px;
  align-items: center;
  font-size: 12px;
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 4px;
}
.trajeto-bola {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  border: 2px solid transparent;
}
.trajeto-bola.elite-on  { background: #7c3aed; color: #fff; border-color: #7c3aed; }
.trajeto-bola.elite-meio{ background: #ede9fe; color: #6d28d9; border-color: #c4b5fd; }
.trajeto-bola.elite-off { background: #fff; color: #94a3b8; border-color: #cbd5e1; }
.trajeto-bola.elite-na  { background: #f1f5f9; color: #cbd5e1; border-color: #e2e8f0; }
.vitrine-card-declinio {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  border-color: #fbbf24;
  border-left-color: #d97706;
}
.vitrine-card-declinio .vitrine-perc {
  background: #d97706;
  box-shadow: 0 2px 6px rgba(217, 119, 6, 0.25);
}
.trajeto-rot { margin-left: 6px; font-size: 11px; }
.vitrine-stats {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: #475569;
  flex-wrap: wrap;
}
.vitrine-stats strong { color: #1e293b; }
@media (max-width: 800px) {
  .vitrine-cards { grid-template-columns: 1fr; }
}

/* ── Bloco 3.3: Gap-to-Record (tabela-heatmap) ── */
.gap-record-tendencia {
  font-size: 14px;
  padding: 10px 14px;
  background: #f8fafc;
  border-radius: 6px;
  margin: 10px 0;
}
.gap-record-tendencia .delta-bom { color: #15803d; font-weight: 700; }
.gap-record-tendencia .delta-ruim { color: #b91c1c; font-weight: 700; }
.gap-record-tendencia .delta-neutro { color: #64748b; font-weight: 600; }

.gap-record-tabela-wrap {
  overflow-x: auto;
  margin: 12px 0;
}
.tabela-gap-record {
  width: 100%;
  border-collapse: separate;
  border-spacing: 3px;
  font-size: 13px;
}
.tabela-gap-record thead th {
  text-align: center;
  font-weight: 700;
  color: #475569;
  padding: 8px 6px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tabela-gap-record thead th:first-child { text-align: left; }
.tabela-gap-record thead th.num { text-align: center; }
.tabela-gap-record thead th.tendencia-col { text-align: right; }

.tabela-gap-record .gap-cat-cell {
  text-align: left;
  font-weight: 700;
  color: #1e293b;
  padding: 8px 10px;
  white-space: nowrap;
  background: #fff;
}
.tabela-gap-record .gap-cat-bullet {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 8px;
  vertical-align: middle;
}
.tabela-gap-record .celula-gap {
  text-align: center;
  padding: 8px 6px;
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
}
.tabela-gap-record .celula-gap .gap-val {
  font-weight: 800;
  font-size: 14px;
  line-height: 1.1;
}
.tabela-gap-record .celula-gap .gap-n {
  font-size: 10px;
  opacity: 0.75;
}
.tabela-gap-record .celula-vazia {
  background: #f1f5f9;
  color: #cbd5e1;
  text-align: center;
  padding: 8px;
  border-radius: 4px;
}
.tabela-gap-record .tendencia-cell {
  text-align: right;
  padding: 8px 12px;
  font-weight: 700;
  background: #fff;
  font-variant-numeric: tabular-nums;
}
.tabela-gap-record .tendencia-cell.delta-bom { color: #15803d; }
.tabela-gap-record .tendencia-cell.delta-ruim { color: #b91c1c; }
.tabela-gap-record .tendencia-cell.delta-neutro { color: #64748b; }

.gap-record-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  font-size: 11px;
  margin-top: 10px;
  padding: 8px 10px;
}
.gap-record-legenda .gap-swatch {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 3px;
  margin-right: 5px;
  vertical-align: middle;
}
.gap-record-legenda .gap-swatch.perto { background: #dcfce7; }
.gap-record-legenda .gap-swatch.medio { background: #fef9c3; }
.gap-record-legenda .gap-swatch.longe { background: #fee2e2; }
.gap-record-legenda .gap-range {
  margin-left: auto;
  color: #94a3b8;
}

@media (max-width: 800px) {
  .tabela-gap-record { font-size: 11px; }
  .tabela-gap-record .gap-cat-cell { padding: 6px 8px; }
  .tabela-gap-record .celula-gap { padding: 6px 4px; }
  .tabela-gap-record .celula-gap .gap-val { font-size: 12px; }
  .tabela-gap-record .tendencia-cell { padding: 6px 8px; }
}

/* Responsivo */
@media (max-width: 800px) {
  .patrocinadores-churn-wrap { grid-template-columns: 1fr; }
  .pat-bar-linha { grid-template-columns: 1fr; gap: 4px; }
  .pat-bar-rot { text-align: left; align-items: flex-start; }
  .tabela-promissores thead { font-size: 11px; }
  .tabela-promissores tbody td { padding: 8px 6px; font-size: 12px; }
  .tabela-promissores .prom-spark { width: 64px; }
  .pat-kpi-num { font-size: 28px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Onda 5 · Seleção do DF
   ═══════════════════════════════════════════════════════════════════════════ */

.selecao-controles {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  align-items: center;
  margin: 10px 0 14px;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 13px;
  color: #475569;
}
.selecao-controles label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}
.selecao-controles .check-incompletas {
  font-weight: 500;
  margin-left: auto;
  color: #b45309;
}
.selecao-controles select.filtro-select {
  font-weight: 500;
  padding: 4px 8px;
  border-radius: 5px;
  border: 1px solid #cbd5e1;
  background: #fff;
}

.selecao-tabela-wrap {
  overflow-x: auto;
}
.tabela-selecao {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tabela-selecao thead th {
  background: #f1f5f9;
  text-align: left;
  padding: 9px 10px;
  border-bottom: 2px solid #cbd5e1;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}
.tabela-selecao thead th.num { text-align: right; }
.tabela-selecao tbody td {
  padding: 10px 10px;
  border-bottom: 1px solid #e2e8f0;
  vertical-align: top;
}
.tabela-selecao tbody td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tabela-selecao tbody tr:hover { background: #f8fafc; }
.tabela-selecao .row-vaga-incompleta { background: #fffbeb; }
.tabela-selecao .row-vaga-incompleta:hover { background: #fef3c7; }
.tabela-selecao .row-vaga-vazia { background: #fef2f2; }

.tabela-selecao .sel-cell { min-width: 220px; }

.sel-atleta {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sel-atleta-cab {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.sel-atleta-cab a { color: #0f172a; text-decoration: none; }
.sel-atleta-cab a:hover { text-decoration: underline; }
.sel-atleta-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: center;
  font-size: 11.5px;
  color: #64748b;
}
.sel-atleta-meta .prom-clube {
  font-style: italic;
  color: #475569;
}
.sel-atleta-meta .sel-tempo {
  font-weight: 700;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}
.sel-atleta-meta .sel-recencia {
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
  font-variant-numeric: tabular-nums;
}
.sel-recencia-recente { background: #dcfce7; color: #166534; }
.sel-recencia-medio   { background: #fef9c3; color: #854d0e; }
.sel-recencia-antigo  { background: #fee2e2; color: #991b1b; }

.sel-vazio {
  color: #94a3b8;
  font-style: italic;
  font-size: 12px;
}

.vaga-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.vaga-badge.vaga-completa  { background: #dcfce7; color: #166534; }
.vaga-badge.vaga-incompleta { background: #fef3c7; color: #92400e; }
.vaga-badge.vaga-vazia     { background: #fee2e2; color: #991b1b; }

.vaga-tag {
  font-weight: 700;
}
.vaga-tag.vaga-incompleta { color: #b45309; }
.vaga-tag.vaga-vazia      { color: #991b1b; }

.vaga-apertada {
  display: inline-block;
  color: #b45309;
  font-size: 13px;
  margin-left: 4px;
}

@media (max-width: 800px) {
  .tabela-selecao { font-size: 12px; }
  .tabela-selecao thead th, .tabela-selecao tbody td { padding: 7px 6px; }
  .tabela-selecao .sel-cell { min-width: 160px; }
  .sel-atleta-cab { font-size: 12px; }
  .sel-atleta-meta { font-size: 11px; }
  .selecao-controles { font-size: 12px; padding: 8px 10px; }
  .selecao-controles .check-incompletas { margin-left: 0; width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Onda 6 · Lentes por clube + cleanup (abas Talento, links funil)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Cleanup 1.1 — Abas do bloco Talento */
.painel-abas-cab {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
}
.painel-abas-titulo {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}
.painel-abas-talento {
  display: inline-flex;
  gap: 4px;
  background: #f1f5f9;
  border-radius: 8px;
  padding: 3px;
}
.painel-abas-talento .painel-aba {
  background: transparent;
  border: 0;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 120ms ease, color 120ms ease;
}
.painel-abas-talento .painel-aba:hover {
  color: #0f2742;
}
.painel-abas-talento .painel-aba.ativo {
  background: #0f2742;
  color: #fff;
}
.painel-aba-pane {
  display: none;
}
.painel-aba-pane.ativo {
  display: block;
}
.painel-aba-dica {
  font-size: 12.5px;
  color: #64748b;
  margin: 0 0 10px;
  line-height: 1.5;
}
.painel-aba-dica strong { color: #0f172a; }

/* Metodologia colapsável dentro de aba Ascensão */
.rodape-metodologia {
  margin-top: 14px;
  border-top: 1px dashed #e2e8f0;
  padding-top: 10px;
}
.rodape-metodologia > summary {
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  color: #475569;
  user-select: none;
}
.rodape-metodologia > summary:hover { color: #0f2742; }
.rodape-metodologia[open] > summary { color: #0f2742; margin-bottom: 10px; }

/* Cleanup 1.2 — Links âncora no funil FEN→Federado */
.funil-link-causa {
  display: inline-block;
  margin-top: 4px;
  font-size: 11.5px;
  color: #0f2742;
  text-decoration: none;
  border-bottom: 1px dotted #0f2742;
  opacity: 0.78;
  transition: opacity 120ms ease;
}
.funil-link-causa:hover { opacity: 1; }

/* AUDIT-NAV-FIX: `html { scroll-behavior: smooth }` cancelava os saltos de
   âncora (#cap-…) em páginas com gráficos — o hash mudava e a página não
   rolava. Saltos voltam a ser instantâneos e confiáveis. */

/* Onda 6 — Seção "Lentes por clube" */
.bloco.gestao-clubes .titulo-bloco-h {
  color: #0f172a;
}

/* Onda 6.1 — Top clubes */
.top-clubes-wrap {
  overflow-x: auto;
}
.tabela-top-clubes {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.tabela-top-clubes thead th {
  background: #f1f5f9;
  text-align: left;
  padding: 9px 10px;
  border-bottom: 2px solid #cbd5e1;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
}
.tabela-top-clubes thead th.num { text-align: right; }
.tabela-top-clubes tbody td {
  padding: 10px 10px;
  border-bottom: 1px solid #e2e8f0;
  vertical-align: middle;
  white-space: nowrap;
}
.tabela-top-clubes tbody td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-top-clubes tbody tr:hover { background: #f8fafc; }
.tabela-top-clubes .prom-rank {
  text-align: center;
  font-weight: 800;
  color: #94a3b8;
  width: 32px;
}
.tabela-top-clubes a { color: #0f172a; text-decoration: none; }
.tabela-top-clubes a:hover { text-decoration: underline; }
.tabela-top-clubes .topclubes-opb {
  font-size: 12px;
  color: #64748b;
  letter-spacing: 0.5px;
}
.tabela-top-clubes .topclubes-sparkcell {
  width: 70px;
  text-align: center;
}
.topclubes-spark { display: inline-block; vertical-align: middle; }

/* Onda 6.2 — Scorecard de clubes */
.scorecard-clubes-wrap {
  overflow-x: auto;
}
.scorecard-clubes {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.scorecard-clubes thead th {
  background: #f1f5f9;
  padding: 8px 10px;
  border-bottom: 2px solid #cbd5e1;
  font-weight: 700;
  color: #334155;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.scorecard-clubes thead th:hover { background: #e2e8f0; }
.scorecard-clubes thead th.num { text-align: center; }
.scorecard-clubes thead th.scorecard-clube-col {
  text-align: left;
  min-width: 180px;
}
.scorecard-clubes tbody td {
  padding: 8px 10px;
  border-bottom: 1px solid #e2e8f0;
}
.scorecard-clube-cell {
  font-weight: 600;
}
.scorecard-clube-cell a { color: #0f172a; text-decoration: none; }
.scorecard-clube-cell a:hover { text-decoration: underline; }
.scorecard-cell {
  text-align: center;
  font-variant-numeric: tabular-nums;
  min-width: 70px;
}
.scorecard-cell .scorecard-val {
  font-weight: 700;
  font-size: 13px;
}
.scorecard-cell .scorecard-perc {
  font-size: 10px;
  opacity: 0.65;
  margin-top: 2px;
}

/* Onda 6.3 — Pirâmide etária por clube */
.piramide-clubes-wrap {
  width: 100%;
  overflow-x: auto;
  padding: 4px 0;
}
.piramide-clubes-svg a { text-decoration: none; fill: #0f172a; }
.piramide-clubes-svg a:hover { text-decoration: underline; }

/* Onda 6.4 — Resumo "Quem sumiu" por clube */
.sumidos-por-clube-resumo {
  margin: 6px 0 12px;
  padding: 8px 12px;
  background: #fef3c7;
  border-left: 3px solid #f59e0b;
  border-radius: 4px;
  font-size: 13px;
  color: #78350f;
  line-height: 1.6;
}
.sumidos-por-clube-resumo strong { color: #451a03; }
.sumidos-por-clube-resumo .muted { color: #78350f; opacity: 0.85; }

@media (max-width: 800px) {
  .tabela-top-clubes thead th, .tabela-top-clubes tbody td { padding: 7px 6px; font-size: 12px; }
  .scorecard-clubes { font-size: 11.5px; }
  .scorecard-cell { min-width: 56px; }
  .scorecard-cell .scorecard-val { font-size: 12px; }
  .painel-abas-cab { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Onda 7 · Reorganização da página (TOC + Seleção 26+26 + Acervo + Apêndice)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Sumário / TOC navegável (capa) */
.bloco-secao.sumario-toc {
  background: linear-gradient(135deg, #f8fafc 0%, #fef9c3 100%);
  border-left: 4px solid #f59e0b;
}
.sumario-toc-lista {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px 14px;
}
.sumario-toc-lista li a {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  align-items: baseline;
  padding: 12px 16px;
  background: #fff;
  border: 1px solid #fde68a;
  border-radius: 8px;
  text-decoration: none;
  color: #0f172a;
  transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}
.sumario-toc-lista li a:hover {
  border-color: #f59e0b;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.18);
}
.sumario-toc-lista .toc-num {
  grid-row: 1 / span 2;
  font-size: 30px;
  font-weight: 800;
  color: #f59e0b;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.sumario-toc-lista .toc-nome {
  font-weight: 700;
  font-size: 16px;
  color: #0f172a;
}
.sumario-toc-lista .toc-sub {
  font-size: 12px;
  color: #64748b;
  grid-column: 2;
}

/* Botão "↑ topo" em cada capítulo */
.topo-link-cap {
  margin-top: 24px;
  text-align: right;
  border-top: 1px dashed #e2e8f0;
  padding-top: 12px;
}
.topo-link-cap a {
  color: #64748b;
  font-size: 12px;
  text-decoration: none;
  font-weight: 600;
}
.topo-link-cap a:hover { color: #0f2742; }
.topo-link-inline {
  display: inline-block;
  background: #fef3c7;
  color: #92400e;
  padding: 0 6px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
}

/* Seleção 26+26 */
.selecao-cobertura {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 12px 0 18px;
}
.selecao-cob-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-left: 3px solid #94a3b8;
  border-radius: 6px;
  padding: 10px 14px;
}
.selecao-cob-card-ok { border-left-color: #15803d; background: #f0fdf4; }
.selecao-cob-card-warn { border-left-color: #b45309; background: #fffbeb; }
.selecao-cob-num {
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.selecao-cob-rot {
  font-size: 11px;
  color: #475569;
  margin-top: 2px;
}

.selecao-26-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.selecao-26-col {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 14px 16px;
}
.selecao-26-titulo {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  display: flex;
  align-items: center;
  gap: 8px;
}
.selecao-26-icone {
  font-size: 20px;
  color: #f59e0b;
  font-weight: bold;
}
.selecao-26-lista {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.selecao-26-atleta {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 13px;
}
.selecao-26-atleta:hover { background: #f1f5f9; }
.sel26-cab {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  align-items: center;
}
.sel26-rank {
  font-size: 16px;
  font-weight: 800;
  color: #94a3b8;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.sel26-id a { color: #0f172a; text-decoration: none; }
.sel26-id a:hover { text-decoration: underline; }
.sel26-meta {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 11px;
  margin-top: 2px;
}
.sel26-meta .prom-clube { font-style: italic; color: #475569; }
.sel26-scores {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}
.sel26-agregado {
  font-size: 10px;
  color: #475569;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.sel26-provas {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed #e2e8f0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sel26-grupo {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11.5px;
}
.sel26-grupo-rot {
  flex: 0 0 auto;
  font-weight: 700;
  color: #475569;
  font-size: 10.5px;
  min-width: 90px;
}
.sel26-provas ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}
.sel26-provas .sel-prova {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 3px;
  padding: 2px 6px;
  font-size: 10.5px;
  white-space: nowrap;
}
.sel26-provas .sel-prova-tit { border-left: 2px solid #15803d; }
.sel26-provas .sel-prova-res { border-left: 2px solid #b45309; }
.sel26-provas .sel-prova-tempo {
  font-weight: 700;
  margin-left: 4px;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
}

.selecao-26-suplentes {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed #cbd5e1;
}
.sel26-suplentes-rot {
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  margin: 0 0 6px;
}
.sel26-suplentes-lista {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.selecao-26-sup {
  display: grid;
  grid-template-columns: 30px 1fr auto auto auto;
  gap: 8px;
  align-items: center;
  padding: 4px 8px;
  font-size: 11.5px;
  background: #fafafa;
  border-radius: 4px;
}
.sel26-sup-rank {
  font-weight: 700;
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
}
.selecao-26-sup a { color: #475569; text-decoration: none; }
.selecao-26-sup a:hover { color: #0f2742; text-decoration: underline; }

/* Acervo — KPIs + timeline */
.acervo-kpis {
  margin-top: 12px;
}

.acervo-timeline-wrap {
  margin-top: 8px;
}
.acervo-timeline {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.acervo-mes {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 12px;
  align-items: start;
}
.acervo-mes-rot {
  text-align: right;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 12px;
  color: #94a3b8;
  letter-spacing: 1px;
  padding-top: 6px;
}
.acervo-mes-pontos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.acervo-pt {
  display: inline-grid;
  grid-template-columns: auto 1fr;
  gap: 6px;
  align-items: center;
  padding: 4px 10px;
  border-radius: 4px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: transform 100ms ease, box-shadow 100ms ease;
  max-width: 260px;
}
.acervo-pt:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.12);
}
.acervo-pt-data {
  font-variant-numeric: tabular-nums;
  color: inherit;
  opacity: 0.7;
}
.acervo-pt-nome {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.acervo-pt-ok       { background: #dcfce7; color: #166534; border-color: #86efac; }
.acervo-pt-parcial  { background: #fef3c7; color: #92400e; border-color: #fcd34d; }
.acervo-pt-pendente { background: #e0e7ff; color: #3730a3; border-color: #c7d2fe; }
.acervo-pt-erro     { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.acervo-pt-interno  { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.acervo-pt-externo  { background: #ede9fe; color: #5b21b6; border-color: #ddd6fe; }
.acervo-pt-disabled { cursor: default; opacity: 0.85; }
.acervo-pt-disabled:hover { transform: none; box-shadow: none; }

.acervo-legenda {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px dashed #e2e8f0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-size: 11px;
  color: #64748b;
}
.acv-leg { font-weight: 600; }
.acv-leg-ok       { color: #166534; }
.acv-leg-parcial  { color: #92400e; }
.acv-leg-pendente { color: #3730a3; }
.acv-leg-erro     { color: #991b1b; }
.acv-leg-interno  { color: #475569; }
.acv-leg-externo  { color: #5b21b6; }

/* Apêndice histórico — visual mais discreto que no topo */
.historico-apendice .historico {
  margin-top: 14px;
}
.historico-apendice .historico-cab {
  background: #f8fafc;
  padding: 12px 14px;
  border-radius: 6px;
  margin-bottom: 12px;
}

@media (max-width: 800px) {
  .selecao-26-grid { grid-template-columns: 1fr; }
  .acervo-mes { grid-template-columns: 50px 1fr; gap: 6px; }
  .sumario-toc-lista { grid-template-columns: 1fr; }
  .sel26-cab { grid-template-columns: 24px 1fr auto; }
}

/* ═══ CBDA Nacional — página exclusiva /entidade/cbda ═══ */

.placeholder-painel {
  background: linear-gradient(135deg, #f8fafc 0%, #eef2f8 100%);
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  padding: 56px 24px;
  text-align: center;
  color: #64748b;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3px;
}
.placeholder-painel::before {
  content: "🚧";
  display: block;
  font-size: 24px;
  margin-bottom: 10px;
  opacity: 0.6;
}

/* CBDA · Tags e avisos de cobertura */
.cbda-tag-cobertura {
  display: inline-block;
  background: var(--eixo-por-sol);
  color: #fff;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.6px;
  vertical-align: middle;
  margin-right: 8px;
  cursor: help;
}
.cbda-aviso-banner {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-left: 4px solid var(--eixo-por-sol);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 13px;
  color: #7c2d12;
  line-height: 1.5;
  margin: 0 0 16px;
}
.cbda-aviso-banner strong { color: #9a3412; }
.cbda-aviso-amarelo {
  background: #fefce8;
  border-color: #fef08a;
  border-left-color: var(--eixo-amanhecer);
  color: #713f12;
}
.cbda-aviso-amarelo strong { color: #854d0e; }
.cbda-secao-h {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}
.cbda-acervo-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

/* Cap. 6 · Timeline de eventos CBDA */
.cbda-ev-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.cbda-ev-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #94a3b8;
  border-radius: 8px;
  padding: 12px 14px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cbda-ev-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 39, 66, 0.08);
}
.cbda-ev-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.cbda-ev-status {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.cbda-ev-data {
  font-size: 11px;
  color: #64748b;
  font-weight: 500;
}
.cbda-ev-nome {
  font-size: 13px;
  font-weight: 600;
  color: #1a2342;
  margin-bottom: 4px;
  line-height: 1.3;
}
.cbda-ev-card-link {
  color: var(--eixo-azul);
  text-decoration: none;
}
.cbda-ev-card-link:hover { text-decoration: underline; }
.cbda-ev-local {
  font-size: 11px;
}
.cbda-acv-rodape {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #f1f5f9;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-size: 11px;
  font-weight: 600;
}
.cbda-acv-leg::first-letter { font-weight: 700; }

/* Cap. 6 · Cobertura por UF · grid de cards */
.cbda-cobertura-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: 8px;
}
.cbda-uf-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 8px 6px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cbda-uf-card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.12;
  pointer-events: none;
}
.cbda-uf-forte::before    { background: #15803d; }
.cbda-uf-moderada::before { background: #65a30d; }
.cbda-uf-fraca::before    { background: #d97706; }
.cbda-uf-nenhuma::before  { background: #cbd5e1; }
.cbda-uf-sigla {
  font-size: 12px;
  font-weight: 800;
  color: var(--eixo-azul);
  letter-spacing: 0.5px;
}
.cbda-uf-nenhuma .cbda-uf-sigla { color: #94a3b8; }
.cbda-uf-num {
  font-size: 22px;
  font-weight: 800;
  color: #1a2342;
  line-height: 1.1;
  margin-top: 2px;
}
.cbda-uf-nenhuma .cbda-uf-num { color: #cbd5e1; }
.cbda-uf-rot {
  font-size: 9px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.cbda-uf-fed {
  display: block;
  font-size: 10px;
  color: var(--eixo-azul);
  text-decoration: none;
  font-weight: 600;
}
.cbda-uf-fed:hover { text-decoration: underline; }
.cbda-uf-fed.muted { color: #cbd5e1; }

/* Cap. 5 · Tabela de federações */
.cbda-fed-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.cbda-fed-table thead th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #64748b;
  padding: 8px 10px;
  border-bottom: 2px solid #e2e8f0;
}
.cbda-fed-table thead th.muted { color: #94a3b8; font-weight: 600; }
.cbda-fed-table tbody td {
  padding: 10px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: top;
}
.cbda-fed-table tbody tr:hover { background: #f8fafc; }
.cbda-fed-uf {
  font-weight: 800;
  color: var(--eixo-azul);
  width: 40px;
}
.cbda-fed-sigla {
  color: var(--eixo-azul);
  font-weight: 700;
  text-decoration: none;
}
.cbda-fed-sigla:hover { text-decoration: underline; }
.cbda-fed-nome {
  font-size: 11px;
  margin-top: 2px;
  line-height: 1.3;
}
.cbda-fed-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  width: 70px;
}
.cbda-fed-num.muted { color: #94a3b8; }
.cbda-fed-atraso { color: #d97706; font-weight: 600; }
.cbda-fed-silencio { color: #b91c1c; font-weight: 600; }

/* Cap. 2 · Cartograma do Brasil */
.cbda-mapa-toggle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  font-size: 12px;
}
.cbda-mapa-toggle-rot {
  color: #64748b;
  font-weight: 600;
  margin-right: 6px;
}
.cbda-mapa-toggle button {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s ease;
}
.cbda-mapa-toggle button:hover {
  background: #eef2f8;
  color: var(--eixo-azul);
}
.cbda-mapa-toggle button.ativo {
  background: var(--eixo-azul);
  border-color: var(--eixo-azul);
  color: #fff;
  box-shadow: 0 2px 6px rgba(15, 39, 66, 0.2);
}
.cbda-mapa-toggle button.ativo small { color: rgba(255, 255, 255, 0.85); }
.cbda-mapa-toggle button.ativo:hover {
  background: var(--eixo-azul);
  color: #fff;
}
.cbda-mapa-toggle button small {
  display: inline-block;
  margin-left: 4px;
  font-size: 10px;
  font-weight: 600;
  color: #94a3b8;
}

.cbda-mapa-wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr);
  gap: 20px;
  align-items: start;
}

.cbda-mapa-grid {
  display: grid;
  /* 8 colunas (oeste→leste) × 10 linhas (norte→sul) */
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(10, 1fr);
  gap: 4px;
  aspect-ratio: 4 / 5;
  background: #f8fafc;
  border-radius: 8px;
  padding: 8px;
}
/* Posicionamento cartográfico aproximado (col/row). */
.cbda-mapa-uf[data-uf="RR"] { grid-column: 2; grid-row: 1; }
.cbda-mapa-uf[data-uf="AP"] { grid-column: 4; grid-row: 1; }
.cbda-mapa-uf[data-uf="AM"] { grid-column: 1; grid-row: 2; }
.cbda-mapa-uf[data-uf="PA"] { grid-column: 3; grid-row: 2; }
.cbda-mapa-uf[data-uf="MA"] { grid-column: 5; grid-row: 2; }
.cbda-mapa-uf[data-uf="CE"] { grid-column: 6; grid-row: 2; }
.cbda-mapa-uf[data-uf="RN"] { grid-column: 7; grid-row: 2; }
.cbda-mapa-uf[data-uf="AC"] { grid-column: 1; grid-row: 4; }
.cbda-mapa-uf[data-uf="RO"] { grid-column: 2; grid-row: 4; }
.cbda-mapa-uf[data-uf="TO"] { grid-column: 4; grid-row: 3; }
.cbda-mapa-uf[data-uf="PI"] { grid-column: 5; grid-row: 3; }
.cbda-mapa-uf[data-uf="PE"] { grid-column: 6; grid-row: 3; }
.cbda-mapa-uf[data-uf="PB"] { grid-column: 7; grid-row: 3; }
.cbda-mapa-uf[data-uf="MT"] { grid-column: 3; grid-row: 4; }
.cbda-mapa-uf[data-uf="BA"] { grid-column: 5; grid-row: 4; }
.cbda-mapa-uf[data-uf="AL"] { grid-column: 7; grid-row: 4; }
.cbda-mapa-uf[data-uf="SE"] { grid-column: 7; grid-row: 5; }
.cbda-mapa-uf[data-uf="MS"] { grid-column: 3; grid-row: 6; }
.cbda-mapa-uf[data-uf="GO"] { grid-column: 4; grid-row: 5; }
.cbda-mapa-uf[data-uf="DF"] { grid-column: 5; grid-row: 5; }
.cbda-mapa-uf[data-uf="MG"] { grid-column: 5; grid-row: 6; }
.cbda-mapa-uf[data-uf="ES"] { grid-column: 6; grid-row: 6; }
.cbda-mapa-uf[data-uf="SP"] { grid-column: 4; grid-row: 7; }
.cbda-mapa-uf[data-uf="RJ"] { grid-column: 5; grid-row: 7; }
.cbda-mapa-uf[data-uf="PR"] { grid-column: 4; grid-row: 8; }
.cbda-mapa-uf[data-uf="SC"] { grid-column: 4; grid-row: 9; }
.cbda-mapa-uf[data-uf="RS"] { grid-column: 4; grid-row: 10; }

.cbda-mapa-uf {
  background: #e2e8f0;
  border: 2px solid transparent;
  border-radius: 4px;
  padding: 4px;
  font-family: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
  position: relative;
  overflow: hidden;
}
.cbda-mapa-uf:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(15, 39, 66, 0.15);
  border-color: var(--eixo-azul);
  z-index: 2;
}
.cbda-mapa-uf.selecionada {
  border-color: var(--eixo-por-sol);
  box-shadow: 0 0 0 3px rgba(255, 106, 42, 0.25);
  z-index: 3;
}
.cbda-mapa-uf .uf-sigla {
  font-size: 11px;
  font-weight: 800;
  color: var(--eixo-azul);
  letter-spacing: 0.3px;
  line-height: 1;
}
.cbda-mapa-uf .uf-valor {
  font-size: 14px;
  font-weight: 700;
  color: #1a2342;
  margin-top: 2px;
  line-height: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}
/* IT · célula colorida pelo IT médio (base/profundidade) */
.cbda-mapa-uf .uf-it-medio {
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
}
/* Badge inferior · IT máx (pico) + n de atletas · degradê próprio amarelo/laranja */
.cbda-mapa-uf .uf-it-badge {
  display: inline-block;
  margin-top: 2px;
  padding: 1px 5px;
  border-radius: 6px;
  font-size: 8px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.2px;
  background: #e2e8f0;
  color: #475569;
  white-space: nowrap;
}
.cbda-mapa-uf .uf-it-badge.tier-badge-0 { background: #f1f5f9; color: #94a3b8; }
.cbda-mapa-uf .uf-it-badge.tier-badge-1 { background: #fef3c7; color: #92400e; }
.cbda-mapa-uf .uf-it-badge.tier-badge-2 { background: #fde68a; color: #78350f; }
.cbda-mapa-uf .uf-it-badge.tier-badge-3 { background: #fbbf24; color: #1a2342; }
.cbda-mapa-uf .uf-it-badge.tier-badge-4 { background: #f97316; color: #fff; }
/* UFs com amostra baixa (n < 3) — hachura sutil sinalizando volatilidade */
.cbda-mapa-uf.amostra-baixa {
  background-image: repeating-linear-gradient(
    -45deg,
    transparent 0,
    transparent 3px,
    rgba(255, 255, 255, 0.25) 3px,
    rgba(255, 255, 255, 0.25) 6px
  );
}
.cbda-mapa-uf.tier-0 { background: #f1f5f9; }
.cbda-mapa-uf.tier-0 .uf-sigla,
.cbda-mapa-uf.tier-0 .uf-valor { color: #94a3b8; }
/* UFs sem dado: cursor de "not-allowed" e sem hover effect */
.cbda-mapa-uf.sem-dado {
  cursor: not-allowed;
  opacity: 0.6;
}
.cbda-mapa-uf.sem-dado:hover {
  transform: none;
  box-shadow: none;
  border-color: transparent;
}
.cbda-mapa-uf.tier-1 { background: #dbeafe; }
.cbda-mapa-uf.tier-2 { background: #93c5fd; }
.cbda-mapa-uf.tier-3 { background: #3b82f6; }
.cbda-mapa-uf.tier-3 .uf-sigla,
.cbda-mapa-uf.tier-3 .uf-valor { color: #fff; }
.cbda-mapa-uf.tier-4 { background: var(--eixo-azul); }
.cbda-mapa-uf.tier-4 .uf-sigla,
.cbda-mapa-uf.tier-4 .uf-valor { color: #fff; }

.cbda-mapa-painel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 18px 20px;
  min-height: 100%;
  position: sticky;
  top: 16px;
}
.cbda-mapa-painel-vazio {
  text-align: center;
  padding: 30px 10px;
  color: #94a3b8;
}
.cbda-mapa-painel-vazio strong {
  color: #475569;
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
}
.cbda-mapa-painel-vazio p {
  font-size: 12px;
  margin: 0;
}
.cbda-mapa-painel-cab {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 12px;
}
.cbda-mapa-painel-uf {
  font-size: 22px;
  font-weight: 800;
  color: var(--eixo-azul);
  line-height: 1;
}
.cbda-mapa-painel-uf .uf-nome {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
  margin-top: 4px;
}
.cbda-mapa-painel-fechar {
  background: #f1f5f9;
  border: none;
  font-size: 18px;
  color: #475569;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s ease, color 0.15s ease;
}
.cbda-mapa-painel-fechar:hover {
  background: var(--eixo-azul);
  color: #fff;
}
.cbda-mapa-painel-fechar:focus-visible {
  outline: 2px solid var(--eixo-por-sol);
  outline-offset: 2px;
}
.cbda-mapa-painel-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}
.cbda-mapa-painel-stat {
  background: #f8fafc;
  border-radius: 6px;
  padding: 10px 8px;
  text-align: center;
}
.cbda-mapa-painel-stat .num {
  font-size: 20px;
  font-weight: 800;
  color: var(--eixo-azul);
  line-height: 1;
}
.cbda-mapa-painel-stat .rot {
  font-size: 10px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-top: 4px;
}
.cbda-mapa-painel-secao {
  margin-bottom: 14px;
}
.cbda-mapa-painel-secao h4 {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.cbda-mapa-painel-secao ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 12px;
}
.cbda-mapa-painel-secao li {
  padding: 4px 0;
  border-bottom: 1px solid #f8fafc;
}
.cbda-mapa-painel-secao li:last-child { border-bottom: none; }
.cbda-mapa-painel-secao a {
  color: var(--eixo-azul);
  text-decoration: none;
}
.cbda-mapa-painel-secao a:hover { text-decoration: underline; }
.cbda-mapa-painel-fed {
  display: block;
  background: var(--eixo-azul);
  color: #fff;
  text-align: center;
  padding: 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  margin-top: 10px;
}
.cbda-mapa-painel-fed:hover { background: var(--eixo-azul-claro, #1c3d5c); }
.cbda-mapa-painel-fed.muted {
  background: #f1f5f9;
  color: #94a3b8;
  cursor: default;
}

.cbda-mapa-legenda {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  font-size: 11px;
  color: #64748b;
}
.cbda-mapa-legenda .leg-grad {
  flex: 0 0 140px;
  height: 8px;
  border-radius: 4px;
  background: linear-gradient(to right, #f1f5f9 0%, #dbeafe 25%, #93c5fd 50%, #3b82f6 75%, var(--eixo-azul) 100%);
}
.cbda-mapa-legenda .leg-zero {
  margin-left: auto;
  font-style: italic;
}

@media (max-width: 900px) {
  .cbda-mapa-wrapper {
    grid-template-columns: 1fr;
  }
  .cbda-mapa-painel {
    position: static;
  }
}

/* Cap. 3 · Talentos do Brasil */
.cbda-talentos-abas {
  display: flex;
  gap: 4px;
  margin-bottom: 12px;
  border-bottom: 2px solid #e2e8f0;
}
.cbda-talentos-abas button {
  background: none;
  border: none;
  padding: 10px 16px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.cbda-talentos-abas button small {
  display: block;
  font-size: 10px;
  font-weight: 500;
  color: #94a3b8;
  text-transform: lowercase;
  margin-top: 2px;
}
.cbda-talentos-abas button:hover { color: var(--eixo-azul); }
.cbda-talentos-abas button.ativo {
  color: var(--eixo-azul);
  border-bottom-color: var(--eixo-por-sol);
}
.cbda-talentos-abas button.ativo small { color: var(--eixo-azul); }

.cbda-talentos-filtros {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  font-size: 12px;
}
.cbda-talentos-filtros label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-weight: 600;
}
.cbda-talentos-filtros select {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 5px 8px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  color: #1a2342;
  cursor: pointer;
}
.cbda-talentos-desc {
  margin-left: auto;
  font-size: 11px;
  font-style: italic;
}

.cbda-talentos-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.cbda-talentos-table thead th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #64748b;
  padding: 8px 10px;
  border-bottom: 2px solid #e2e8f0;
}
.cbda-talentos-table tbody td {
  padding: 9px 10px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}
.cbda-talentos-table tbody tr:hover { background: #f8fafc; }
.cbda-talento-pos {
  font-weight: 800;
  color: #94a3b8;
  font-size: 11px;
  width: 32px;
}
.cbda-talento-nome {
  color: var(--eixo-azul);
  font-weight: 700;
  text-decoration: none;
}
.cbda-talento-nome:hover { text-decoration: underline; }
.cbda-talento-idade {
  font-weight: 600;
  color: #475569;
  font-size: 12px;
  width: 50px;
}
.cbda-talento-uf {
  display: inline-block;
  background: #eef2f8;
  color: var(--eixo-azul);
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  margin-left: 4px;
}
.cbda-talento-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  width: 80px;
}
.cbda-talento-num strong { color: var(--eixo-por-sol); font-weight: 800; }

/* Cap. 4 · Campeonatos CBDA */
.cbda-camp-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 16px;
}
.cbda-camp-cab {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.cbda-camp-cab-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cbda-camp-classe {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.cbda-camp-status {
  font-size: 11px;
  font-weight: 600;
}
.cbda-camp-piscina {
  background: #eef2f8;
  color: var(--eixo-azul);
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
}
.cbda-camp-edicao {
  background: var(--eixo-amanhecer);
  color: #5b3700;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.cbda-camp-data {
  font-size: 12px;
  color: #64748b;
  font-weight: 500;
}
.cbda-camp-nome {
  margin: 4px 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: var(--eixo-azul);
  line-height: 1.25;
}
.cbda-camp-nome a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dashed currentColor;
  transition: border-bottom-style 120ms ease;
}
.cbda-camp-nome a:hover,
.cbda-camp-nome a:focus-visible {
  border-bottom-style: solid;
  outline: none;
}
.cbda-camp-meta {
  font-size: 11px;
  margin: 0 0 14px;
}
.cbda-camp-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 20px;
}
@media (max-width: 800px) {
  .cbda-camp-grid { grid-template-columns: 1fr; }
}
.cbda-camp-secao-h {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cbda-medal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.cbda-medal-table thead th {
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  color: #94a3b8;
  letter-spacing: 0.4px;
  padding: 6px 8px;
  border-bottom: 1px solid #e2e8f0;
}
.cbda-medal-table tbody td {
  padding: 7px 8px;
  border-bottom: 1px solid #f8fafc;
}
.cbda-medal-pos {
  font-weight: 800;
  color: #94a3b8;
  width: 24px;
}
.cbda-medal-clube {
  color: var(--eixo-azul);
  font-weight: 600;
  text-decoration: none;
  font-size: 12px;
}
.cbda-medal-clube:hover { text-decoration: underline; }
.cbda-medal-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  width: 60px;
}
.cbda-medal-num strong { color: var(--eixo-azul); font-weight: 800; }
.cbda-medal-ouro { color: #b45309; font-weight: 600; }
.cbda-medal-prata { color: #6b7280; font-weight: 600; }
.cbda-medal-bronze { color: #92400e; font-weight: 600; }

.cbda-camp-atletas {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 12px;
}
.cbda-camp-atletas li {
  padding: 6px 0;
  border-bottom: 1px solid #f8fafc;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.cbda-camp-atletas li:last-child { border-bottom: none; }
.cbda-camp-atleta-medalhas {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}
.cbda-camp-ufs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.cbda-camp-link {
  display: inline-block;
  margin-top: 12px;
  font-size: 12px;
  color: var(--eixo-azul);
  font-weight: 600;
  text-decoration: none;
}
.cbda-camp-link:hover { text-decoration: underline; }

/* ── Onda IND3: Bloco "Atletas DF com índice Brasileiro" ── */
#bloco-indices-df { border-top: 3px solid #15803d; }
#bloco-indices-df h3 { color: #15803d; }
.indices-grupo { margin-top: 20px; }
.indices-grupo:first-of-type { margin-top: 12px; }
.indices-grupo-titulo {
  font-size: 14px; font-weight: 700; color: #1a2236;
  margin: 0 0 8px; padding-bottom: 6px;
  border-bottom: 1px solid #d1fae5;
}
.indices-grupo-count {
  font-size: 11px; color: #15803d; font-weight: 600;
  margin-left: 8px; background: #d1fae5;
  padding: 2px 8px; border-radius: 10px;
}
.tabela-indices-df {
  width: 100%; border-collapse: collapse; font-size: 13px;
}
.tabela-indices-df thead th {
  text-align: left; font-weight: 600;
  color: #475569; padding: 8px;
  border-bottom: 1px solid #e2e8f0;
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em;
}
.tabela-indices-df thead th.num { text-align: right; }
.tabela-indices-df tbody td {
  padding: 8px; border-bottom: 1px solid #f1f5f9;
  vertical-align: top;
}
.tabela-indices-df tbody td.num {
  text-align: right; font-variant-numeric: tabular-nums;
}
.tabela-indices-df tbody tr:hover { background: #ecfdf5; }
.tabela-indices-df a { color: #1a2236; font-weight: 600; text-decoration: none; }
.tabela-indices-df a:hover { color: #15803d; text-decoration: underline; }
.indice-prova-tag {
  display: inline-block;
  background: #ecfdf5; color: #15803d;
  padding: 2px 8px; border-radius: 4px;
  font-size: 12px; font-weight: 500;
  margin: 1px 0;
  border: 1px solid #d1fae5;
}
.indice-prova-tag small {
  font-size: 10px; color: #047857; font-weight: 700;
  margin-left: 2px;
}

/* ── AUDIT-CLUBE-POLISH ──
   1. [hidden] global: .painel{display:...} vencia o [hidden] do UA e os cards
      CAMPEONATO apareciam com "…" eterno fora da janela campeonato.
   2. .lente-pills com <a>: o seletor visão/janela do painel do clube usa <a>,
      mas o CSS só estilizava <button> — sem pill nem estado ativo visível.
   3. .cp-bar-*: classes das barras de percentil (Forças e fraquezas / IT por
      categoria) não existiam — fill invisível. */
[hidden] { display: none !important; }

.lente-pills a {
  border: none;
  background: transparent;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  border-radius: 999px;
  transition: background .12s, color .12s;
  font-family: inherit;
  text-decoration: none;
  display: inline-block;
}
.lente-pills a:hover:not(.ativo) {
  background: #f1f5f9;
  color: var(--eixo-azul);
}
.lente-pills a.ativo {
  background: var(--eixo-azul);
  color: #fff;
}

.cp-bar-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 6px 0;
}
.cp-bar-label {
  flex: 0 0 150px;
  font-size: 12.5px;
  color: #475569;
  font-weight: 600;
}
.cp-bar-track {
  flex: 1;
  height: 10px;
  background: #eef2f7;
  border-radius: 999px;
  overflow: hidden;
  display: block;
}
.cp-bar-fill {
  display: block;
  height: 100%;
  background: var(--eixo-azul);
  border-radius: 999px;
}
.cp-bar-val {
  flex: 0 0 52px;
  text-align: right;
  font-family: var(--fonte-mono);
  font-size: 12.5px;
  font-weight: 700;
  color: #0f172a;
}

/* ── AUDIT-RANKING-CURSO: controles do ranking no design system ── */
.ranking-form-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: flex-end;
}
.ranking-form-grid label > span {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #64748b;
  margin-bottom: 4px;
}
.ranking-form-grid select {
  font: inherit;
  font-size: 14px;
  color: #0F2742;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  min-width: 130px;
}
.ranking-form-grid select:focus {
  outline: 2px solid #F2B705;
  outline-offset: 1px;
  border-color: #0F2742;
}
.ranking-form-grid label.check {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 9px;
}
.ranking-form-grid label.check span {
  font-size: 14px;
  color: #0F2742;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  margin: 0;
}
.ranking-form-grid button.btn-hero { cursor: pointer; }
td.data-nowrap { white-space: nowrap; }

/* ── AUDIT-NAV-FIX: sumário interno do relatório de evento ── */
.sumario-evento {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 4px;
}
.sumario-evento a {
  font-size: 12.5px;
  font-weight: 600;
  color: #0F2742;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  padding: 4px 12px;
  text-decoration: none;
}
.sumario-evento a:hover { border-color: #0F2742; }
.btn-topo {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 50;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0F2742;
  color: #fff;
  border-radius: 50%;
  font-size: 18px;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(15,39,66,.35);
  opacity: .85;
}
.btn-topo:hover { opacity: 1; }

/* ── AUDIT-NAV-FIX: tabelas largas rolam dentro do card no mobile ──
   Matriz de PBs do atleta (546px) e Disputa entre UFs / Quadro de medalhas
   do evento (até 780px) estouravam o viewport de 390px e criavam scroll
   horizontal da página inteira. `display:block` na <table> a transforma em
   container de scroll; o conteúdo interno mantém o layout tabular. */
@media (max-width: 760px) {
  table.tabela-compacta,
  table.lista {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
