/* DANFSe v2.0 - modelo do Anexo I da NT 008/2026 (v1.02).
   Medidas em cm conforme o item 2.4.5: corpo de 20,40 cm, 4 colunas de ~5,1 cm,
   linhas de 0,63 cm; labels Arial 6pt negrito, conteudo Microsoft Sans Serif 7pt,
   titulos de bloco 7pt caixa alta com fundo cinza 5%. Papel sempre branco. */
.danfse {
  --l: #000; --cinza: #f2f2f2;
  position: relative; box-sizing: border-box; width: 20.4cm; min-height: 28.5cm; margin: 0 auto;
  display: flex; flex-direction: column; background: #fff; color: #000; overflow: hidden;
  border: 1pt solid var(--l); font: 7pt/1.2 "Microsoft Sans Serif", Arial, Helvetica, sans-serif;
}
.danfse * { box-sizing: border-box; color: #000; }

/* cabecalho */
.dn-cab { display: grid; grid-template-columns: 5.11cm 10.19cm 5.1cm; min-height: 1.16cm; background: var(--cinza); border-bottom: .5pt solid var(--l); }
.dn-logo { display: flex; align-items: center; padding: .1cm .19cm; }
.dn-logo img { width: 4cm; height: auto; max-height: .85cm; object-fit: contain; }
.dn-titulo { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font: 700 9pt/1.25 Arial, Helvetica, sans-serif; }
.dn-titulo .dn-sem { color: #e00000; }
.dn-mun { padding: .1cm .1cm; font-size: 6pt; line-height: 1.3; }
.dn-mun-nome { font-size: 8pt; }

/* grade de 4 colunas */
.dn-lin { display: grid; grid-template-columns: repeat(4, 1fr); min-height: .63cm; }
.dn-c { padding: .04cm .1cm; min-width: 0; }
.dn-c.s2 { grid-column: span 2; } .dn-c.s3 { grid-column: span 3; } .dn-c.s4 { grid-column: span 4; }
.dn-l { font: 700 6pt/1.25 Arial, Helvetica, sans-serif; }
.dn-v { font-size: 7pt; overflow-wrap: anywhere; }
.dn-tit { background: var(--cinza); font: 700 7pt/1.25 Arial, Helvetica, sans-serif; text-transform: uppercase; display: flex; align-items: flex-start; }
.dn-tit-larga { padding: .04cm .1cm; }
.dn-cinza { background: var(--cinza); }
.dn-forte .dn-l { font-size: 7pt; text-transform: uppercase; }
.dn-forte .dn-v { font-weight: 700; }

/* identificacao + QR */
.dn-ident { display: grid; grid-template-columns: 15.3cm 1fr; border-bottom: .5pt solid var(--l); }
.dn-ident .dn-l { font-size: 7pt; text-transform: uppercase; }
.dn-ident .dn-lin { min-height: .67cm; grid-template-columns: repeat(3, 1fr); }
.dn-chave .dn-v { font-size: 7pt; letter-spacing: .02em; }
.dn-qr { display: flex; flex-direction: column; align-items: center; padding: .1cm .1cm .08cm; }
.dn-qr img, .dn-qr-vazio { width: 1.8cm; height: 1.8cm; }
.dn-qr-vazio { display: grid; place-items: center; border: .5pt dashed #777; font-size: 5.5pt; text-align: center; line-height: 1.2; }
.dn-qr p { margin: .1cm 0 0; font-size: 6pt; line-height: 1.2; text-align: justify; }

/* blocos */
.dn-bloco { border-bottom: .5pt solid var(--l); }
.dn-unico { min-height: .32cm; border-bottom: .5pt solid var(--l); text-align: center; font: 700 6pt/1.3 Arial, Helvetica, sans-serif; padding: .04cm; }
.dn-desc-trib { padding: .04cm .1cm; min-height: .38cm; color: #000; }
.dn-desc { padding: .04cm .1cm; }
.dn-texto { white-space: pre-wrap; }
/* sobra de altura vai para a descricao do servico e as informacoes complementares (item 2.3) */
.dn-servico { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 2.6cm; }
.dn-servico .dn-desc { flex: 1 1 auto; }
.dn-info { flex: 1 1 auto; min-height: 2.2cm; border-bottom: 0; }
.dn-info .dn-texto { padding: .04cm .1cm; }

/* marca d'agua de cancelamento/substituicao (item 2.5): diagonal, Arial >= 50pt, cinza K35 */
.dn-marca {
  position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; pointer-events: none;
  font: 400 72pt/1 Arial, Helvetica, sans-serif; color: rgba(0, 0, 0, .35) !important; transform: rotate(-50deg);
}

/* na tela a nota fica no tamanho real; tela estreita rola de lado */
.danfse-tela { overflow-x: auto; padding-bottom: 4px; }
.danfse-tela .danfse { box-shadow: var(--sombra); }

@media print {
  @page { size: A4 portrait; margin: 0; }
  html, body { background: #fff !important; }
  .app { display: block; }
  .lateral, .nao-imprime, #toasts { display: none !important; }
  .conteudo { padding: 0 !important; margin: 0 !important; }
  .danfse-tela { overflow: visible; padding: 0; }
  .danfse { box-shadow: none !important; margin: .3cm auto 0; height: 28.9cm; min-height: 0; break-inside: avoid; }
  .danfse, .danfse * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
