/* CSS del PDF del reporte T26 "Control de Productividad" (tarea 4 de
 * docs/superpowers/specs/2026-08-26-reporte-t26-productividad-design.md).
 *
 * Archivo propio y separado de app/assets/stylesheets/pdf.css (el del anexo
 * individual T14/T10) a propósito: el T26 es apaisado y con clases propias
 * (prefijo t26-) para no heredar ni pisar por accidente las reglas del
 * anexo (que sigue usando `.page`, `.info-table`, etc. en portrait).
 *
 * Orientación: @page controla tamaño Y márgenes cuando FerrumPdf renderiza
 * con `prefer_css_page_size: true` (ver app/services/pdf_render_service.rb) —
 * por eso aquí, igual que en pdf.css, `margin: 0` y el espacio visual lo da
 * el padding de `.t26-page`. Este `@page` se declara DESPUÉS del de pdf.css
 * en el documento final (el layout compartido "pdf" imprime su <style> en
 * el <head>; este archivo se inyecta inline dentro del propio template de
 * t26/pdf.html.erb, que queda después en el HTML), así que sus valores
 * (landscape) ganan la cascada sobre el `size: letter portrait` heredado.
 */

@page {
  size: letter landscape;
  margin: 0;
}

.t26-pdf {
  font-family: "Arial", "Helvetica", sans-serif;
  color: #000;
}

/* Paginación manual (una página = una tabla con hasta N filas — N calibrado
 * empíricamente, ver el each_slice(12) en t26/pdf.html.erb y la nota de
 * calibración ahí), igual que app/views/orden_surtimientos/pdf.html.erb: es
 * el mecanismo ya probado en producción con FerrumPdf/Chromium para repetir
 * un encabezado por página, más confiable que un `position: fixed`. Cada
 * `.t26-page` repite el bloque de encabezado del formato completo
 * (PROVEEDOR/FORMATO/UNIDAD/CONTRATO/PERIODO) en su propio HTML — no
 * depende de que el navegador "adivine" dónde repetirlo. */
.t26-page {
  width: 100%;
  padding: 0.25in 0.3in;
  page-break-after: always;
}

.t26-page:last-child {
  page-break-after: avoid;
}

/* Bloque de encabezado del formato: repetido una vez por cada .t26-page. */
.t26-format-header {
  border: 1px solid #000;
  padding: 4px 8px;
  margin-bottom: 6px;
  font-size: 8pt;
  line-height: 1.5;
}

.t26-format-header .t26-format-title {
  text-align: center;
  font-weight: bold;
  font-size: 9.5pt;
  margin-bottom: 2px;
}

.t26-format-header .t26-format-line {
  font-weight: bold;
}

/* Tabla principal de filas. `thead { display: table-header-group }` repite
 * la fila de encabezados de columna si, dentro de una misma página, el
 * navegador tuviera que partir la tabla en un salto adicional (red de
 * seguridad; con 14 filas por página no debería activarse casi nunca). */
.t26-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.t26-table thead {
  display: table-header-group;
}

/* Anchos proporcionales (colgroup) en vez de dejar que `table-layout: fixed`
 * reparta 1/23 parejo a cada columna: eso hacía que PROCEDIMIENTO (texto
 * largo real: 61-100 chars) recibiera el mismo ancho que CONSEC (2 dígitos)
 * y envolviera a 6-17 líneas, desbordando una página de 14 filas a 2-4
 * páginas físicas sin repetir el encabezado (hallazgo de la ronda 2 de
 * revisión, verificado con render real de FerrumPdf/pdfinfo).
 *
 * xs/md/lg (1% / 2.5% / 15% del ancho de tabla) NO son la proporción 0.4/1/3
 * sugerida originalmente: esa proporción, combinada con el font-size/padding
 * que tenía esta tabla al inicio (6.3pt, 2px 3px), seguía dando 3-4 líneas a
 * 61 chars — no ≤2. Lo que sí cerró la cuenta, medido con Ferrum#evaluate
 * (Range#getClientRects().length, exacto, no una estimación por ancho de
 * carácter) bajo emulación de medio "print" real (ver t26/pdf.html.erb para
 * el porqué de esa emulación), fue subir lg a 15% Y apretar tipografía/
 * padding/interlineado (ver la regla de abajo). Con eso: 61 chars -> 2
 * líneas en las 4 columnas "grandes" (AGREGADO MÉDICO, NOMBRE(S),
 * PROCEDIMIENTO, MÉDICO); 100 chars -> 4 líneas (el each_slice(12) de
 * t26/pdf.html.erb ya contempla esas 4 líneas por fila en el peor caso). */
.t26-table col.t26-w-xs { width: 1%; }
.t26-table col.t26-w-md { width: 2.5%; }
.t26-table col.t26-w-lg { width: 15%; }

.t26-table th,
.t26-table td {
  border: 1px solid #000;
  padding: 1px 2px;
  font-size: 5.2pt; /* bajado de 6.3pt: parte de la calibración de arriba */
  line-height: 1.1; /* bajado de 1.2: menos alto por línea envuelta */
  text-align: center;
  overflow-wrap: break-word;
  word-break: break-word;
}

.t26-table th {
  background-color: #e0e0e0;
  font-weight: bold;
}

.t26-table td.t26-col-texto {
  text-align: left;
}

.t26-table tbody tr {
  page-break-inside: avoid;
}

/* Fila/resumen de totales: nunca se parte entre dos páginas. */
.t26-totales-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 6px;
  font-size: 7pt;
  page-break-inside: avoid;
}

.t26-totales-table td {
  border: 1px solid #000;
  padding: 3px 5px;
}

.t26-totales-table td.t26-totales-label {
  font-weight: bold;
  text-align: right;
}

.t26-totales-table td.t26-totales-valor {
  text-align: right;
  font-weight: bold;
}

.t26-resumen-table {
  width: 2.6in;
  margin-left: auto;
  margin-top: 4px;
  border-collapse: collapse;
  font-size: 7pt;
  page-break-inside: avoid;
}

.t26-resumen-table td {
  border: 1px solid #000;
  padding: 3px 6px;
}

.t26-resumen-table td.t26-resumen-label {
  font-weight: bold;
  background-color: #f0f0f0;
  width: 55%;
}

.t26-resumen-table td.t26-resumen-valor {
  text-align: right;
}

/* Pie de firmas: 3 arriba (supervisor/jefe de servicio/técnico en sitio) y
 * 2 abajo (representante legal GVICOA/director del hospital), sin partirse. */
.t26-firmas {
  margin-top: 18px;
  page-break-inside: avoid;
}

.t26-firmas-fila {
  display: flex;
  margin-top: 26px;
}

.t26-firmas-fila.t26-firmas-fila-inferior {
  justify-content: center;
  gap: 0.6in;
}

.t26-firma {
  flex: 1;
  text-align: center;
  padding: 0 8px;
}

.t26-firmas-fila-inferior .t26-firma {
  flex: 0 0 2.6in;
}

.t26-firma-linea {
  border-top: 1px solid #000;
  margin-top: 22px;
  padding-top: 3px;
  font-size: 6.5pt;
}

.t26-firma-nombre {
  min-height: 10px;
  font-size: 7pt;
}

.t26-firma-cargo {
  font-weight: bold;
}
