/* Impresión de recibos, estados de cuenta y reportes: sin navegación ni botones. */
@page { margin: 12mm; }
.barra-movil, .velo, .menu, .avisos, .boton, .boton-flotante, .filtros, .no-imprimir { display: none !important; }
.app { display: block; }
.contenido { padding: 0; }
body { background: #fff; font-size: 12px; }
.tarjeta { box-shadow: none; border-color: #999; break-inside: avoid; }
/* Una tarjeta con tabla puede ser más larga que una hoja: se deja partir entre filas. */
.tarjeta:has(.tabla) { break-inside: auto; }
.solo-impresion { display: block; }

/* En papel no hay scroll: la tabla se ajusta al ancho de la hoja y el texto pasa a la línea siguiente. */
.tarjeta__cuerpo--sin-relleno { overflow: visible; }
.tabla { font-size: 10px; }
.tabla thead { display: table-header-group; } /* encabezados repetidos en cada hoja */
.tabla__fila { break-inside: avoid; }
.tabla__celda { padding: 4px 6px; white-space: normal; overflow-wrap: break-word; }
.tabla__celda--encabezado { position: static; }
.tabla__celda--numero { white-space: nowrap; }
.insignia { white-space: nowrap; }

/* Gráficos: sin globos y con el ancho de la hoja. */
.grafico__globo { display: none !important; }
.graficos { grid-template-columns: 1fr 1fr; }
.grafico__muestra, .avance__barra, .avance__lleno, .avance__hoy { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Membrete de la empresa arriba y sello de sumar al pie (marca.js llena el membrete). */
.membrete.solo-impresion {
  display: flex; align-items: center; gap: 16px; margin-bottom: 14px; padding-bottom: 10px;
  border-bottom: 2px solid var(--marca-color, var(--color-principal));
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.membrete__logo { max-height: 56px; max-width: 220px; object-fit: contain; }
.membrete__datos { font-size: 10px; line-height: 1.45; color: #444; }
.membrete__nombre { font-size: 13px; font-weight: 700; color: #000; }
.pie-impresion.solo-impresion {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 18px; padding-top: 8px; border-top: 1px dashed #bbb; font-size: 9px; color: #666;
}
.pie-impresion__logo { height: 12px; width: auto; }

/* Firma de recibido al final del recibo. */
.recibo__firma.solo-impresion { width: 260px; margin: 56px auto 0; text-align: center; font-size: 11px; break-inside: avoid; }
.recibo__firma-linea { border-top: 1px solid #000; margin-bottom: 4px; }
.recibo__firma-texto { font-weight: 700; }

/* Marco de lo impreso (index.html): tabla de una celda; sin hoja membretada no se nota. */
.hoja-marco { display: table; width: 100%; border-collapse: collapse; }
.hoja-marco > thead { display: table-header-group; }
.hoja-marco > tfoot { display: table-footer-group; }
.hoja-marco > tbody { display: table-row-group; }
.hoja-marco > * > tr { display: table-row; }
.hoja-marco > * > tr > td { display: table-cell; padding: 0; }

/* Con la hoja membretada de la empresa (marca.js pone body.con-hoja y los márgenes): hoja carta
   sin márgenes, la imagen detrás de cada hoja y el texto entre su encabezado y su pie. El
   espacio del encabezado y del pie es el thead/tfoot del marco, que se repite en cada hoja. */
@page hoja { size: letter; margin: 0; }
body.con-hoja .app { page: hoja; }
body.con-hoja .membrete.solo-impresion { display: none; }
body.con-hoja .hoja-membretada { display: block; position: fixed; top: 0; left: 0; width: 215.9mm; height: 279.4mm; z-index: -1; }
body.con-hoja .hoja-marco > * > tr > td { padding: 0 20mm; }
body.con-hoja .hoja-marco__arriba { display: block; height: var(--hoja-superior); }
body.con-hoja .hoja-marco__abajo { display: block; height: var(--hoja-inferior); }
body.con-hoja .pie-impresion.solo-impresion { border-top: none; margin-top: 10px; padding-top: 0; }
body.con-hoja .tarjeta { border: none; }
/* La firma del recibo va al final de la parte en blanco (descontando el sello de sumar y una
   holgura para que el redondeo no abra una hoja vacía). */
body.con-hoja .recibo { max-width: none; }
body.con-hoja .recibo .tarjeta__cuerpo { display: flex; flex-direction: column; min-height: calc(279.4mm - var(--hoja-superior) - var(--hoja-inferior) - 14mm); }
body.con-hoja .recibo__firma.solo-impresion { margin-top: auto; padding-top: 40px; }
