/**
 * Impressao / geracao de PDF pelo navegador.
 *
 * Nao geramos PDF no servidor: a pagina de impressao e HTML normal, aberta em
 * nova aba, e o usuario usa Ctrl+P (ou o botao Imprimir) para salvar em PDF.
 * Estas regras cuidam de como essa pagina se comporta no papel.
 */

/* --- configuracao da folha --- */
@page {
  size: A4 portrait;
  margin: 18mm 15mm;
}

@page :first {
  margin-top: 12mm;
}

/* --- na tela: simula a folha, para o usuario ver o que vai sair --- */
.folha {
  background: #fff;
  color: #000;
  max-width: 210mm;
  min-height: 297mm;
  margin: var(--esp-6) auto;
  padding: 18mm 15mm;
  box-shadow: var(--sombra-1);
}

.folha-acoes {
  max-width: 210mm;
  margin: var(--esp-6) auto 0;
  display: flex;
  gap: var(--esp-2);
  justify-content: flex-end;
}

/* --- controle de quebra de pagina --- */
.quebra-antes { break-before: page; }
.quebra-depois { break-after: page; }
.nao-quebrar { break-inside: avoid; }

/* Titulo nunca fica orfao no pe da pagina. */
.folha h1,
.folha h2,
.folha h3 {
  break-after: avoid;
}

/* Tabela longa repete o cabecalho em cada folha. */
.folha table {
  width: 100%;
  border-collapse: collapse;
}
.folha thead {
  display: table-header-group;
}
.folha tfoot {
  display: table-footer-group;
}
.folha tr {
  break-inside: avoid;
}

@media print {
  /* Nada de casca da aplicacao nem de acoes de tela no papel. */
  .app-nav,
  .app-topo,
  .folha-acoes,
  .nao-imprimir {
    display: none !important;
  }

  body {
    background: #fff;
  }

  .app-conteudo {
    padding: 0;
  }

  .folha {
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    box-shadow: none;
  }

  /* Impressao sempre em claro, mesmo com o tema escuro ativo na tela. */
  :root {
    color-scheme: light;
  }

  /* Mostra o destino dos links, que no papel nao sao clicaveis. */
  .folha a[href^='http']::after {
    content: ' (' attr(href) ')';
    font-size: 0.85em;
    word-break: break-all;
  }
}
