
/* ===========================================================================
   O PAPEL
   ===========================================================================
   Folha de torneio circula: vai para a mão do starter, é fotocopiada, volta na
   segunda-feira e alguém pergunta se é a versão certa. Por isso toda folha sai
   com as duas marcas, o campeonato, a etapa, a data do torneio e a hora em que
   foi gerada.

   O cabeçalho e o rodapé vivem na moldura, não em cada seção — assim uma seção
   nova nasce impressa direito sem ninguém lembrar de fazê-la.
   =========================================================================== */

/* O padrão (escondido na tela) mora no console.css: este arquivo é carregado
   com media="print" e a tela nunca o lê. */

@media print {
  /* A margem lateral mora no conteúdo, e não só aqui: a caixa de impressão do
     sistema tem um seletor de margem, e em "Nenhuma" ela zera o @page — a folha
     sai colada na borda, que foi o que a mesa recebeu. O padding do conteúdo
     sobrevive a essa escolha; o @page guarda o respiro de topo e base, que o
     padding não consegue dar nas páginas do meio de um documento longo. */
  @page { size: A4 portrait; margin: 14mm 0; }

  /* Tinta é cara e a impressora do clube costuma ser a laser preto e branco do
     escritório. O documento é preto sobre branco, com o verde da ACE só onde
     ele separa uma coisa da outra. */
  body.console {
    display: block; background: #fff; color: #000;
    font-size: 10pt; line-height: 1.4;

  }
  .lateral, .barra, .veu, .pagina-topo, .abre-lateral { display: none !important; }
  .console-corpo { display: block; padding: 0; max-width: none; }
  .console-conteudo { display: block; max-width: none; padding: 0 13mm; }

  /* ---- cabeçalho da folha ---- */
  .folha-cabecalho {
    display: block;
    border-bottom: 2.5pt solid var(--ace-green);
    padding-bottom: 8pt; margin-bottom: 14pt;
  }
  .folha-marcas {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16pt; margin-bottom: 10pt;
  }
  .folha-ace { height: 28pt; width: auto; max-width: 34%; object-fit: contain; object-position: left; }
  /* Logo de clube vem em qualquer proporção — a do Aquiraz é larga e deitada.
     Presa só pela altura, ela passava da margem direita da folha. */
  .folha-clube { height: 30pt; width: auto; max-width: 34%; object-fit: contain; object-position: right; }
  .folha-clube-nome { font-size: 11pt; font-weight: 700; color: var(--ace-green); }
  .folha-titulo h1 {
    margin: 0; font-size: 17pt; font-weight: 700; letter-spacing: -.01em;
    color: var(--ace-green);
  }
  .folha-titulo p { margin: 3pt 0 0; font-size: 10pt; color: #333; }
  .folha-titulo b { color: #000; }

  /* Repete o cabeçalho em toda página: a folha de saída tem dez grupos e passa
     de uma página, e a segunda folha solta na mesa não diz de que torneio é. */
  thead { display: table-header-group; }

  /* ---- rodapé ----
     Estático, no fim do documento. Tentei fixo para repetir em toda página e o
     Chrome o desenhou por cima da última linha; empurrado para dentro da margem,
     ele saltou para o topo da página seguinte. Posicionamento fixo em impressão
     do Chrome não é confiável, e um rodapé no lugar errado é pior que um rodapé
     só na última página.

     A identidade de cada página fica garantida de outro jeito: cada grupo leva
     buraco e horário na própria barra, e a etapa está no cabeçalho da primeira. */
  .folha-rodape {
    display: flex; justify-content: space-between; gap: 12pt;
    margin-top: 14pt; padding-top: 5pt;
    border-top: .75pt solid #BBB;
    font-size: 7.5pt; color: #666;
    break-inside: avoid;
  }

  /* ---- cartões viram blocos de documento ---- */
  /* break-inside AUTO no cartão, e avoid só no que é pequeno o bastante para
     caber inteiro. A folha de saída é um cartão só com dez grupos dentro: com
     "avoid" ela não cabia em página nenhuma e era empurrada inteira para a
     segunda, deixando a primeira em branco. */
  .carta {
    break-inside: auto; box-shadow: none; border: 0;
    border-top: .75pt solid #CCC; border-radius: 0;
    padding: 0; margin: 0 0 12pt;
  }
  .carta-topo, .podio, .indicador { break-inside: avoid; }
  /* O título de um bloco não fica sozinho no pé da página. */
  .carta-topo { break-after: avoid; }
  .carta:first-of-type { border-top: 0; }
  .carta-topo {
    background: none; border: 0; padding: 8pt 0 5pt;
    display: flex; align-items: baseline; justify-content: space-between;
  }
  .carta-topo h2 { font-size: 11.5pt; font-weight: 700; color: var(--ace-green); }
  .carta-topo .nota { font-size: 8.5pt; color: #555; }
  .corpo { padding: 0; }

  /* ---- tabelas ---- */
  table { width: 100%; border-collapse: collapse; font-size: 9pt; }
  th {
    text-align: left; font-size: 7.5pt; font-weight: 700;
    text-transform: uppercase; letter-spacing: .06em; color: #444;
    border-bottom: .75pt solid #999; padding: 4pt 5pt;
  }
  td { padding: 4pt 5pt; border-bottom: .5pt solid #DDD; }
  tr { break-inside: avoid; }
  /* Zebrado leve: a mesa lê linha por linha procurando um nome, e o olho pula
     de linha sem ele. */
  tbody tr:nth-child(even) td { background: #F4F4F2; }
  .rolagem { overflow: visible !important; }

  /* ---- cor do tee ----
     Na laser do escritório azul, branco e vermelho viram três cinzas
     parecidos. No papel a bolinha sai e fica só a palavra, que é o que o
     starter confere contra a marca no chão. */
  .tee {
    border: 0; background: none; padding: 0;
    font-size: 9pt; font-weight: 700; color: #000;
  }
  .tee i { display: none; }
  .tee b { color: #000; }
  .col-tee { text-align: right; }
  /* O cart da dupla e o que o atleta le para saber em qual carro entrar. */
  .grupo-saida tr.lugar-vago td { color: #888; font-style: italic; }
  .col-cart { text-align: right; white-space: nowrap; }
  .col-cart .etiqueta { border: 0; background: none; padding: 0; font-size: 9pt; font-weight: 700; color: #000; }
  .grupo-saida > header .tee { color: #fff; }
  .grupo-saida > header .tee + .tee::before { content: '·'; margin: 0 4pt; }

  /* ---- folha de saída ---- */
  .grupo-saida {
    break-inside: avoid; border: .75pt solid #999; border-radius: 0;
    margin-bottom: 8pt;
  }
  .grupo-saida > header {
    background: var(--ace-green); color: #fff;
    padding: 4pt 6pt; font-size: 9.5pt; font-weight: 700;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
  }
  .grupo-saida table td { border-bottom: .5pt solid #E4E4E4; }
  .grupo-saida table tbody tr:nth-child(even) td { background: #fff; }

  /* ---- pódio e classificação ---- */
  .podio li {
    background: none !important; border: 0; border-bottom: .5pt solid #DDD;
    border-radius: 0; padding: 5pt 0;
  }
  .podio li:first-child { border-bottom: 1pt solid var(--ace-green); }
  .tabela-circuito tr.destaque td { font-weight: 700; }

  /* ---- o que não vai para o papel ---- */
  button, select, input[type="checkbox"], .abas-premio, .barra-dia,
  .nao-imprime, .linha-buracos, .abrir-buracos, .campo-cart,
  .indicadores, .rosca, .zona-arquivo, .trilha, details,
  .g-corrida, .g-participacao, .pessoa.vaga {
    display: none !important;
  }
  /* Campo preenchido vira o texto que ele contém: um <input> vazio no papel é
     uma caixa que ninguém sabe se está errada ou se é para preencher à mão. */
  input[type="text"], input[type="number"], input[type="date"], input[type="time"] {
    border: 0; padding: 0; background: none; color: #000;
    font: inherit; width: auto;
  }
}

/* ===========================================================================
   RELATÓRIO DO RANKING ACUMULADO
   ===========================================================================
   Documento proprio, no padrao do "Ranking Mobile" do clube: fundo claro,
   marca da ACE no alto de cada pagina, eyebrow verde, titulo grande e leve,
   cartoes com borda verde no topo. Tres paginas: visao executiva, categorias,
   geral. A moldura padrao sai quando ele existe.
   =========================================================================== */
@media print {
  body.relatorio-proprio .folha-cabecalho, body.relatorio-proprio .folha-rodape, body.relatorio-proprio .chips-campeonato { display: none !important; }
  body.relatorio-proprio .console-conteudo { padding: 0 9mm; }
  .relatorio-acumulado { display: block; color: #1d1d1b; font-size: 8.6pt; line-height: 1.3; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  .rel-pagina { break-after: page; position: relative; min-height: 262mm; display: flex; flex-direction: column; }
  .rel-pagina:last-child { break-after: auto; }
  .rel-top { display: flex; justify-content: space-between; align-items: center; padding: 2pt 0 8pt; border-bottom: .6pt solid #D8DCD8; margin-bottom: 10pt; }
  .rel-ace { height: 22pt; width: auto; }
  .rel-top-dir { text-align: right; font-size: 7pt; color: #556; letter-spacing: .08em; text-transform: uppercase; }
  .rel-top-dir b { display: block; font-weight: 600; color: #444; }
  .rel-top-dir span { display: block; margin-top: 2pt; }
  .rel-eyebrow { margin: 0 0 4pt; font-size: 7.5pt; letter-spacing: .12em; text-transform: uppercase; color: var(--ace-green); font-weight: 600; }
  .rel-eyebrow.rel-secao { margin: 12pt 0 6pt; }
  .rel-pagina h1 { margin: 0 0 3pt; font-size: 24pt; font-weight: 400; letter-spacing: -.02em; color: #1a1a1a; }
  .rel-sub { margin: 0 0 12pt; font-size: 9pt; color: #666; }
  .rel-foot { margin-top: auto; padding-top: 6pt; border-top: .6pt solid #D8DCD8; display: flex; justify-content: space-between; font-size: 6.8pt; letter-spacing: .08em; text-transform: uppercase; color: #667; }

  /* KPIs */
  .rel-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7pt; }
  .rel-kpi { border: .7pt solid #DDE2DD; border-radius: 7pt; padding: 7pt 10pt 6pt; background: #fff; }
  .rel-kpi b { display: block; font-size: 17pt; font-weight: 400; color: #1a1a1a; line-height: 1; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
  .rel-kpi span { display: block; margin-top: 5pt; font-size: 6.5pt; letter-spacing: .1em; text-transform: uppercase; color: var(--ace-green); }
  .rel-areia { grid-template-columns: repeat(5, 1fr); }
  .rel-areia .rel-kpi { background: var(--ace-sand); border-color: var(--ace-sand); text-align: center; }
  .rel-areia .rel-kpi span { color: #5a5a52; }
  .rel-etapas { margin-bottom: 10pt; }
  .rel-etapas .rel-kpi { text-align: left; padding: 6pt 8pt; }
  .rel-etapas .rel-kpi-rot { display: block; font-size: 6.3pt; letter-spacing: .1em; text-transform: uppercase; color: #5a5a52; margin-bottom: 3pt; }
  .rel-etapas .rel-kpi b { font-size: 9.5pt; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; line-height: 1.15; }
  .rel-etapas .rel-kpi small { display: block; margin-top: 3pt; font-size: 6.3pt; color: #5a5a52; }

  /* cartoes */
  .rel-card { border: .7pt solid #DDE2DD; border-top: 2.6pt solid var(--ace-green); border-radius: 6pt; background: #fff; padding: 7pt 9pt 8pt; break-inside: avoid; }
  .rel-cat { display: block; font-size: 6.5pt; letter-spacing: .1em; text-transform: uppercase; color: var(--ace-green); margin-bottom: 5pt; }
  .rel-lideres { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7pt; }
  .rel-lider-1 { display: flex; justify-content: space-between; align-items: baseline; gap: 6pt; margin-bottom: 4pt; }
  .rel-lider-1 b { font-size: 8.4pt; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: #111; line-height: 1.15; }
  .rel-lider-1 span { font-size: 15pt; font-weight: 400; color: var(--ace-green); font-variant-numeric: tabular-nums; }
  .rel-lider-n { display: flex; justify-content: space-between; gap: 6pt; font-size: 6.8pt; color: #444; text-transform: uppercase; letter-spacing: .03em; padding: 1.5pt 0; }
  .rel-lider-n i { font-style: normal; color: #999; margin-right: 3pt; }
  .rel-lider-n span + span { font-weight: 600; font-variant-numeric: tabular-nums; text-transform: none; }
  .rel-vazio { margin: 0; color: #888; font-size: 7.5pt; }
  .rel-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7pt; margin-top: 7pt; }
  .rel-lista ol { margin: 0; padding: 0; list-style: none; counter-reset: st; }
  .rel-lista li { display: flex; justify-content: space-between; gap: 6pt; font-size: 7pt; padding: 1.2pt 0; border-top: .4pt solid #EEE; counter-increment: st; }
  .rel-lista li:first-child { border-top: 0; }
  .rel-lista li span::before { content: counter(st); color: #aaa; font-size: 6pt; margin-right: 4pt; }
  .rel-lista li b { font-weight: 600; font-variant-numeric: tabular-nums; }

  /* tabelas em cartao */
  .rel-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 8pt; align-items: start; }
  .rel-col { display: flex; flex-direction: column; gap: 8pt; }
  .rel-tab { padding: 0 0 4pt; }
  .rel-tab-cab { display: flex; justify-content: space-between; align-items: baseline; padding: 5pt 9pt 3pt; }
  .rel-tab-cab b { font-size: 9.5pt; font-weight: 500; color: #1a1a1a; }
  .rel-tab-cab span { font-size: 7pt; color: #888; }
  .rel-tabela { width: 100%; border-collapse: collapse; font-size: 6.7pt; line-height: 1.05; font-variant-numeric: tabular-nums; }
  .rel-tabela th { font-size: 6pt; letter-spacing: .06em; text-transform: uppercase; color: #777; font-weight: 600; padding: 2pt 4pt 3pt; border-bottom: .5pt solid #E3E6E3; text-align: right; white-space: nowrap; }
  .rel-tabela td { padding: 1.2pt 3.5pt; text-align: right; white-space: nowrap; }
  .rel-tabela tbody tr:nth-child(even) td { background: #F6F8F6; }
  .rel-tabela .esq { text-align: left; }
  .rel-tabela .nome { font-weight: 500; text-transform: uppercase; letter-spacing: .02em; max-width: 36mm; overflow: hidden; text-overflow: ellipsis; }
  .rel-tabela .pos { width: 8mm; text-align: left; }
  .rel-posn { display: inline-block; min-width: 9pt; font-size: 6pt; color: #999; }
  .rel-medalha { display: inline-flex; align-items: center; justify-content: center; width: 10pt; height: 10pt; border-radius: 50%; font-size: 6pt; font-weight: 700; color: #fff; }
  .rel-medalha.m1 { background: #C9A227; } .rel-medalha.m2 { background: #9AA1A6; } .rel-medalha.m3 { background: #B5713E; }
  .rel-tabela .fraco, .rel-tabela .ausente { color: #aaa; }
  .rel-tabela .zerou { color: #aaa; text-decoration: underline dotted; }
  .rel-tabela .total { font-weight: 700; color: #1a1a1a; }
  .rel-tabela thead { display: table-header-group; }
  .rel-legenda { margin: 8pt 0 0; font-size: 6.5pt; color: #888; }

  /* ---- Copa por equipes: o mesmo relatorio, e a folha de saida a parte ----
     A pagina da Copa tem DOIS documentos: o resultado (o padrao, que sai no
     grupo) e a folha de saida (que o starter usa no tee). Por padrao o papel e
     o resultado; a folha so entra quando e ELA que a mesa mandou imprimir, e ai
     leva de volta a moldura do clube, que o relatorio proprio dispensa. */
  /* Lista que não é ranking: "quem contou no dia" numerado lia como posição. */
  .rel-sem-ordem li span::before { content: none; }
  .relatorio-copa { display: block; color: #1d1d1b; font-size: 8.6pt; line-height: 1.3; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .folha-copa { display: none !important; }
  body.imprimindo-folha .relatorio-copa { display: none !important; }
  body.imprimindo-folha .folha-copa { display: block !important; }
  /* A folha nao traz de volta a moldura do clube: ela nomeia a etapa ATIVA, que
     pode ser outro campeonato. Quem identifica a folha e o cabecalho dela. */
  .folha-copa-cab { display: flex !important; align-items: baseline; justify-content: space-between;
    gap: 12pt; border-bottom: 2.5pt solid var(--ace-green); padding-bottom: 6pt; margin-bottom: 10pt; }
  .folha-copa-cab b { font-size: 13pt; font-weight: 500; color: #1a1a1a; }
  .folha-copa-cab span { font-size: 8pt; color: #666; text-align: right; }
}
