/* =========================================================================
   impressao.css — saída em papel / PDF
   Estratégia: o relatório é CLONADO para #area-impressao antes do print.
   Assim a folha não herda grid, sticky nem scroll do app shell.
   ========================================================================= */

#area-impressao { display: none; }

@page {
  size: A4 portrait;
  margin: 12mm 10mm 14mm;
}

@media print {

  html, body {
    background: #fff !important;
    background-image: none !important;
    width: auto; height: auto;
  }

  /* só a folha sobrevive */
  #app { display: none !important; }
  #area-impressao { display: block !important; }

  #area-impressao .relatorio {
    width: auto;
    min-height: 0;
    max-width: none;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: #fff;
    font-size: 10pt;
  }

  /* força cores institucionais no papel (selo de criticidade, RACs, faixa) */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* quebras */
  .rel-secao,
  .rel-foto,
  .kpi,
  .rel-assinaturas,
  .rel-tabela tr { break-inside: avoid; page-break-inside: avoid; }

  .rel-secao > h3 { break-after: avoid; page-break-after: avoid; }

  /* cabeçalho de tabela longa repete em cada página */
  .rel-tabela thead { display: table-header-group; }
  .rel-tabela tfoot { display: table-footer-group; }

  [data-modo="administrativo"] .rel-assinaturas { break-before: auto; }

  a[href]::after { content: none !important; }

  /* Em papel a altura é menor, mas continua sem corte (object-fit: contain) */
  [data-modo="operacional"]    .rel-foto img { max-height: 88mm; }
  [data-modo="executivo"]      .rel-foto img { max-height: 46mm; }
  [data-modo="administrativo"] .rel-foto img { max-height: 28mm; }
  .rel-banner { max-height: 22mm; }

  .rel-rodape { break-inside: avoid; }
}
