/* =============================================================
   print.css — folha de impressão + pré-visualização
   A folha é montada em #printArea (com escala automática para
   caber em 1 página) e em #printPreview (pré-visualização).
   ============================================================= */

/* Na impressão, mostra só a área de impressão (@media print — navegadores padrão) */
@media print {
  body > *:not(#printArea) { display: none !important; }
  #printArea { position: static !important; left: 0 !important; top: 0 !important; }
}
/* Fora da impressão: posicionado fora da tela mas renderizado (display:none quebra Save as PDF) */
#printArea { position: fixed; left: -20000px; top: 0; }

/* Modo impressão via classe JS — funciona mesmo quando Samsung Internet ignora @media print */
body.is-printing > *:not(#printArea) { display: none !important; }
body.is-printing #printArea { position: static !important; left: 0 !important; top: 0 !important; }

/* Página com tamanho fixo (área útil) + conteúdo escalado p/ caber */
.print-page { position: relative; overflow: hidden; background: #fff; margin: 0 auto; }
.print-scale { transform-origin: top left; font-family: 'Nunito', Arial, sans-serif; color: #111; }
.print-page.size-a4 .print-scale { font-size: 10.5pt; }
.print-page.size-a5 .print-scale { font-size: 8.5pt; }

/* Pré-visualização vetorial: páginas A4 posicionadas em mm (espelha o PDF) */
.print-pages { display: block; transform-origin: top left; }
.pp-page {
  position: relative; width: 210mm; height: 297mm; background: #fff;
  box-shadow: 0 1px 6px rgba(0, 0, 0, .2); margin: 0 0 8mm; overflow: hidden;
}

/* Pré-visualização na tela (folha cheia, com margem) — layout antigo (legado) */
.print-sheet { font-family: 'Nunito', Arial, sans-serif; color: #111; }
.print-sheet.size-a4,
.print-sheet.size-half { width: 210mm; min-height: 297mm; padding: 12mm; font-size: 10.5pt; }
/* Meia folha: marca de corte fixa na metade do A4 (só na pré-visualização) */
.print-sheet.size-half { position: relative; }
.print-sheet.size-half::after {
  content: '\2702 recorte aqui';
  position: absolute; left: 0; right: 0; top: 148.5mm;
  border-top: 2px dashed #999; text-align: center; color: #999;
  font-size: 9pt; padding-top: 3px;
}
@media screen and (max-width: 560px) {
  .print-sheet.size-a4,
  .print-sheet.size-half { width: 200mm; }
}

/* Seções em 2 colunas para aproveitar a largura e reduzir a altura.
   Usamos FLEXBOX (não column-count): o html2canvas não renderiza CSS
   multi-coluna, jogaria tudo em coluna única no PDF.
   Dimensões em em → a fonte da folha funciona como zoom uniforme do layout. */
.ps-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 1em; }
.ps-body .ps-section { width: calc((100% - (var(--cols, 2) - 1) * 1em) / var(--cols, 2)); }

.ps-header { display: flex; align-items: center; gap: .85em; border-bottom: 3px solid #009C3B; padding-bottom: .57em; margin-bottom: .71em; }
.ps-logo { width: 3.1em; height: 3.1em; border-radius: .7em; }
.ps-title { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 1.3em; line-height: 1.1; margin: 0; color: #009C3B; }
.ps-subtitle { font-size: .82em; color: #555; }
.ps-meta { margin-left: auto; text-align: right; font-size: .72em; color: #666; }

.ps-stats { display: flex; gap: .7em; flex-wrap: wrap; background: #f3f7f3; border: 1px solid #d8e6d8; border-radius: .57em; padding: .5em .8em; margin-bottom: .86em; font-size: .8em; }
.ps-stats b { color: #009C3B; }
.size-a5 .ps-stats { padding: .42em .67em; gap: .5em; }

.ps-section { break-inside: avoid; margin-bottom: .64em; }
.ps-section-head { display: flex; align-items: center; gap: .5em; font-weight: 700; border-bottom: 1px solid #ccc; padding-bottom: .2em; margin-bottom: .36em; }
.ps-flag { width: 1.57em; height: 1.07em; object-fit: cover; border: 1px solid #ddd; border-radius: 2px; }
.ps-flag-fallback { width: 1.7em; height: 1.07em; border-radius: 2px; background: #1E40AF; color: #fff; font-size: .58em; font-weight: 800; display: inline-grid; place-items: center; }
.ps-group-tag { font-size: .72em; color: #888; font-weight: 600; }
.ps-count { margin-left: auto; font-size: .78em; color: #666; font-weight: 600; }

.ps-numbers { display: flex; flex-wrap: wrap; gap: .3em .36em; }
.ps-num {
  display: inline-flex; align-items: center; justify-content: center; gap: .3em;
  min-width: 2.14em; padding: .14em .36em; border: 1px solid #bbb; border-radius: .3em;
  font-size: .92em; font-weight: 600;
}
.ps-num::before { content: '\2610'; color: #888; }
.size-a5 .ps-num { min-width: 1.7em; padding: .07em .2em; font-size: .9em; }

.ps-dupes-title { font-family: 'Nunito', sans-serif; font-weight: 800; color: #1E40AF; margin: 1em 0 .43em; border-top: 2px dashed #1E40AF; padding-top: .57em; }
.ps-num.is-dupe { border-color: #f0b400; background: #fff8e6; }
.ps-num.is-dupe::before { content: '\1F501'; }

.ps-empty { text-align: center; padding: 2.14em; color: #009C3B; font-weight: 700; }
.ps-footer { margin-top: 1em; text-align: center; font-size: .68em; color: #999; border-top: 1px solid #eee; padding-top: .43em; }
