/* Impressão em papel A4, pelo navegador.
 *
 * O outro caminho da impressão (spec §98): a térmica sai por socket TCP do servidor; o
 * relatório sai por aqui, no diálogo do sistema, para qualquer laser instalada. O
 * servidor nem sabe que essa impressora existe — e é justamente isso que faz funcionar
 * quando o PHARMA360 roda em nuvem e a impressora está na loja.
 *
 * O QUE ESTA FOLHA RESOLVE, e que dá errado quando ninguém escreve:
 *   1. a casca (sidebar, header, botões) sai impressa e come meia página;
 *   2. o fundo cinza vira uma mancha que gasta toner;
 *   3. tabela longa quebra no meio de uma linha, entre duas páginas;
 *   4. a segunda página aparece sem cabeçalho e ninguém sabe de que relatório é;
 *   5. link aparece como texto azul sublinhado sem o endereço — inútil no papel.
 *
 * @position css — carregada sempre; só age em `@media print`
 */

@media print {
  /* ── o que não vai para o papel ── */
  .lateral, .topo, .drawer, .drawer-fundo, .modal-fundo, .aviso,
  .comando-fundo, .rodape-acoes, .pagina-acoes, .card-acoes,
  .abas, .filtros, .cfg-menu, .cfg-topo, .botao-link,
  button, .btn, [data-editar], [data-remover], .nao-imprimir {
    display: none !important;
  }

  /* ── a folha ── */
  @page { size: A4 portrait; margin: 14mm 12mm 16mm; }

  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 10pt;
    /* Sem isto o navegador descarta os fundos e a tabela zebrada perde a leitura. */
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .app {
    display: block !important;
    grid-template-columns: none !important;
    min-height: 0 !important;
  }
  .conteudo, main {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    overflow: visible !important;
  }

  /* Card no papel é conteúdo, não caixa: moldura e sombra só gastam tinta. */
  .card {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 6mm !important;
    break-inside: auto;
  }
  .card-topo { padding: 0 !important; }
  .card-corpo { padding: 0 !important; }

  .pagina-titulo { font-size: 16pt; margin: 0 0 1mm; }
  .pagina-desc, .card-sub { font-size: 9pt; color: #444 !important; }

  /* ── tabelas ── */
  table { width: 100%; border-collapse: collapse; }
  /* `thead` repetido em cada página é o que faz a folha 3 continuar legível. */
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  /* Linha partida entre duas páginas é o erro clássico do relatório impresso. */
  tr, .cfg-linha, .kpi { break-inside: avoid; page-break-inside: avoid; }

  th, td {
    border-bottom: 1px solid #ccc;
    padding: 1.6mm 2mm;
    font-size: 9pt;
    color: #000 !important;
  }
  th { border-bottom: 1.2pt solid #000; text-align: left; font-weight: 700; }
  td.num, th.num { text-align: right; }
  td.acoes, th.acoes { display: none; }

  /* Selo colorido não sobrevive ao preto e branco: vira texto entre colchetes. */
  .selo, .badge { border: 1px solid #666 !important; background: transparent !important;
                  color: #000 !important; padding: 0 1mm; font-size: 8pt; }

  /* KPI vira uma linha de números, não seis caixas ocupando a página. */
  .grade-kpi { display: flex !important; flex-wrap: wrap; gap: 4mm; margin-bottom: 5mm; }
  .kpi { border: 0 !important; box-shadow: none !important; padding: 0 !important;
         background: transparent !important; min-width: 34mm; }
  .kpi-valor { font-size: 13pt; }
  .kpi-rotulo { font-size: 8pt; text-transform: uppercase; color: #444 !important; }
  .kpi .ico, .kpi-icone { display: none !important; }

  /* Link no papel precisa do endereço; sem ele é texto azul inútil. */
  a { color: #000 !important; text-decoration: none !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #555; }
  a[href^="#"]::after { content: ""; }

  /* ── cabeçalho e rodapé da folha ── */
  .folha-cabecalho { display: block !important; border-bottom: 1.2pt solid #000;
                     padding-bottom: 2mm; margin-bottom: 4mm; }
  .folha-rodape { display: block !important; border-top: 1px solid #999;
                  margin-top: 6mm; padding-top: 2mm; font-size: 8pt; color: #444 !important; }
  .folha-assinatura { margin-top: 14mm; break-inside: avoid; }
  .folha-assinatura .linha { border-top: 1px solid #000; width: 70mm; margin-top: 10mm; }
}

/* Fora da impressão, os elementos de folha não existem. */
.folha-cabecalho, .folha-rodape, .folha-assinatura { display: none; }
