/* ==========================================================================
 * print.css — Estilos ESTÁTICOS de impresión (FASE 18).
 *
 * Se carga desde index.html con <link media="print">, por lo que solo aplica
 * al imprimir; aun así todo va envuelto en @media print por robustez (si
 * alguien lo cargara sin el atributo media, no afectaría a la pantalla).
 *
 * Lo DINÁMICO no vive aquí: como @page no acepta clases, ui/printview.js
 * genera un <style id="print-root-style"> con:
 *   - @page { size: A4 portrait|landscape; margin: <según settings> }
 *   - cajas de margen @top-center/@bottom-center (encabezado/pie) — las
 *     imprimen Chromium/Edge ≥ 131; otros navegadores las ignoran sin romper.
 *   - la escala de impresión (zoom sobre .ps-table) y los estilos del modo
 *     vista previa en pantalla.
 *
 * Clases que pinta printview.js sobre #print-root:
 *   .ps-orient-portrait | .ps-orient-landscape     (informativas)
 *   .ps-margins-normal | -narrow | -wide | -custom (informativas; los cm
 *                                                   reales van en el @page
 *                                                   dinámico)
 *   .ps-gridlines   → imprime líneas de cuadrícula
 *   .ps-preview     → overlay de vista previa (estilos de pantalla dinámicos)
 * ========================================================================== */

@media print {

  /* La app entera desaparece del papel; solo existe el DOM de impresión. */
  #app {
    display: none !important;
  }

  #print-root {
    display: block !important;
  }

  body {
    margin: 0;
    background: #fff;
  }

  /* ---------- Tabla de impresión ---------- */

  #print-root .ps-table {
    border-collapse: collapse;      /* bordes de celda colapsados como Excel */
    table-layout: fixed;            /* respeta los anchos del <colgroup> */
    font-family: Aptos, Calibri, 'Segoe UI', sans-serif;
    font-size: 11pt;
    color: #000;
    background: #fff;
  }

  #print-root .ps-table td,
  #print-root .ps-table th {
    padding: 0 3px;
    overflow: hidden;
    box-sizing: border-box;
    font-weight: 400;               /* los th de título no van en negrita por defecto */
    text-align: left;
    vertical-align: bottom;
  }

  /* Una fila nunca se corta entre dos páginas. */
  #print-root .ps-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Las filas de título (<thead>) se repiten en cada página automáticamente. */
  #print-root .ps-table thead {
    display: table-header-group;
  }

  /* Líneas de cuadrícula solo si settings.gridlines (clase en el contenedor).
     Los bordes de celda propios (inline) tienen prioridad sobre esta regla. */
  #print-root.ps-gridlines .ps-table td,
  #print-root.ps-gridlines .ps-table th {
    border: 0.5pt solid #BFBFBF;
  }

  /* Colores de relleno fieles al imprimir (Chromium). */
  #print-root .ps-table td,
  #print-root .ps-table th {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  /* ---------- Si se imprime con la vista previa abierta ---------- */
  /* (flujo normal: el botón Imprimir de la preview la cierra antes, pero por
     robustez la preview también imprime bien con Ctrl+P). */

  #print-root .ps-preview-toolbar,
  #print-root .ps-hf,
  #print-root .ps-empty {
    display: none !important;
  }

  #print-root.ps-preview {
    position: static !important;
    inset: auto !important;
    overflow: visible !important;
    background: none !important;
    padding: 0 !important;
  }

  #print-root.ps-preview .ps-page {
    position: static !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    break-after: page;
    page-break-after: always;
  }

  #print-root.ps-preview .ps-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }
}
