/* Coach · papel («Descargar PDF» = imprimir del navegador). Chequeo B6 de Coach_Metodo_Auditoria_Practica:
   cada bloque arranca hoja nueva, ningún título queda separado de su cuadro, el encabezado de tabla se
   repite en cada hoja y en el papel no hay controles. */

/* Vertical: los cuadros son angostos y altos (4 a 9 columnas); así el total del vendedor entra en una hoja. */
@page { size: A4 portrait; margin: 12mm 12mm 14mm; }

html, body { background: #fff !important; }
body { font-size: 10.5pt; line-height: 1.3; color: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Sin controles en el papel */
.solo-pantalla, .barra, .controles, .toast, .saltar, .acciones, .plegable, .volver-arriba, .indice, button, select, input { display: none !important; }
.solo-papel { display: inline !important; }
/* Lo que solo el papel tiene en renglón propio: el aviso que junta los dos de frescura (RV-CX02-1) y, en el papel de
   dirección, el identificador del dato al pie (CX02-R3). */
.aviso.solo-papel, .definiciones__corte.solo-papel { display: block !important; }

main { max-width: none; margin: 0; padding: 0; }
.par-cuadros { display: block !important; }
.tabla--calibre, .tabla--pdv { max-width: none !important; }

.cabecera { margin: 0 0 3mm; break-after: avoid; page-break-after: avoid; }
.cabecera__titulo { font-size: 16pt; margin: 0 0 1.5mm; }
.cabecera__periodo { font-size: 12pt; }
.banda-sintetico { margin: 0 0 2.5mm; padding: 1mm 3mm; }
/* Avisos de la cabecera y del bloque del total: renglón y relleno apretados, con la misma letra (RV-CX02-1). */
.avisos { gap: 0.6mm; }
.aviso { padding: 0.5mm 3mm; line-height: 1.12; }

/* Cada bloque en hoja nueva (el primero va con la cabecera) */
.bloque { margin: 0; break-before: page; page-break-before: always; }
#bloque-total { break-before: auto; page-break-before: auto; }

/* El título del bloque, el del cuadro y el primer cuadro van juntos */
.bloque__abrazo { break-inside: avoid; page-break-inside: avoid; }
.bloque__titulo, .cuadro__cabeza, .cuadro__titulo, .cuadro__periodo, .fila-grupo { break-after: avoid; page-break-after: avoid; }
.bloque__titulo { font-size: 14pt; margin-bottom: 3mm; }
.cuadro { margin: 0 0 5mm; break-inside: avoid; page-break-inside: avoid; }
/* La hoja 1 lleva la cabecera, el total y el motivo de cada mes (LAB-CX-02): el bloque del total va apretado, con
   las cifras del mismo tamaño. Medido el 01/10/2026 (CX02-R1 y RV-CX02-1) con los motivos más largos del adaptador, uno
   distinto por mes (ocho renglones, como cuatro motivos de 140 caracteres). Menos lugar dejan las vistas que suman avisos
   arriba: el dato viejo con el último intento fallido (en el papel, un solo aviso de dos renglones) y, sobre eso, el
   vendedor sin ruta en el sobre, que suma un aviso y ve el equipo con fusión y rótulo del equipo. Esa es la peor: la
   hoja 1 termina 27 pt antes del margen, medido hasta el fondo de la nota (antes de RV-CX02-1, agosto pasaba solo a la
   hoja 2). `prueba/navegador.mjs` la imprime, con supervisión en el equipo y dirección en un vendedor con fusión, y
   `prueba/verificar_pdf.py` exige la nota entera en la hoja del total y, en esas vistas, 12 pt libres al pie.
   Con un tercer aviso de frescura arriba («No se pudo comprobar si hay datos nuevos…», tras un «Actualizar» sin señal)
   esa vista todavía no entra: pendiente en web/LEEME.md.
   Si algún día no entrara, la nota se corta entre líneas: lo que entra queda debajo del total, el título no queda solo
   y ningún mes se parte. */
#bloque-total .bloque__titulo { margin-bottom: 1.5mm; }
#bloque-total .avisos--bloque { margin: 0 0 2mm; }
#bloque-total .cuadro { margin: 0 0 2mm; }
#bloque-total .cuadro__titulo { font-size: 11.5pt; }
#bloque-total .tabla thead th { padding: 1mm 2mm; }
#bloque-total .tabla tbody th, #bloque-total .tabla tbody td { padding: 0.6mm 2mm; }
.motivos { font-size: 10pt; line-height: 1.2; padding: 1.2mm 3mm; margin: 0; break-inside: auto; page-break-inside: auto; }
.motivos__titulo { margin: 0 0 0.8mm; break-after: avoid; page-break-after: avoid; }
.motivos__lista { display: block; }
.motivos__lista li { break-inside: avoid; page-break-inside: avoid; }
.motivos__lista li + li { margin-top: 0.6mm; }
/* La lista de PDV puede ocupar varias hojas: ahí se permite el corte, con el encabezado repetido */
#bloque-pdv .cuadro, #bloque-pdv .bloque__abrazo { break-inside: auto; page-break-inside: auto; }
#bloque-pdv .cuadro__cabeza { break-inside: avoid; break-after: avoid; page-break-after: avoid; }

.tabla-marco { overflow: visible !important; }
.tabla { font-size: 10pt; width: 100%; }
.tabla thead { display: table-header-group; }
.tabla tr, .tabla th, .tabla td { break-inside: avoid; page-break-inside: avoid; }
.tabla tbody.grupo { break-inside: avoid; page-break-inside: avoid; }
#bloque-pdv .tabla tbody.grupo { break-inside: auto; page-break-inside: auto; }
.tabla thead th { padding: 1.5mm 2mm; }
.tabla tbody th, .tabla tbody td { padding: 1.2mm 2mm; }
.n--actual { font-size: 11.5pt; }
.n--anterior { font-size: 10pt; }
.tabla--pdv { font-size: 9pt; }
.tabla--pdv .col-pdv { position: static; min-width: 0; max-width: none; }
.compra { padding: 1mm 1.5mm; }
.grupo__pegado { position: static; max-width: none; }

.definiciones { break-before: auto; break-inside: avoid; page-break-inside: avoid; margin-top: 6mm; }
.definiciones__titulo { break-after: avoid; page-break-after: avoid; }
.definiciones__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2mm 8mm; }

a { color: inherit; text-decoration: none; }
