/* print.css — hoja de impresión del PDF de resumen (Fase 9.6).
 *
 * Dos roles:
 *   1. En pantalla normal: el contenedor #pdf-print-root no existe la
 *      mayor parte del tiempo; cuando se monta para imprimir, queremos
 *      que no se vea (se monta y se desmonta entre el inicio y el
 *      final de window.print()). Lo ocultamos con display:none en
 *      pantalla.
 *   2. En @media print: ocultamos #app y mostramos #pdf-print-root.
 *      Aplicamos toda la maquetación del documento aquí.
 *
 * Mantener este archivo SOLO para impresión. Si necesitas tocar la
 * pantalla normal, busca en index.html (estilos globales) o en los
 * .js de las views (que usan clases Tailwind).
 */

/* --- Modo pantalla normal: contenedor fuera del viewport ------------
 *
 * NO usamos `display: none` aquí porque algunos navegadores excluyen
 * del preview de impresión los nodos `display:none` aunque luego la
 * media print los reabra. Lo sacamos del flujo y de la vista con
 * `position: absolute` + offset negativo + `visibility: hidden`. Así
 * el layout está calculado (print() lo encuentra) y en pantalla nadie
 * lo ve durante los pocos milisegundos que dura el ciclo abrir →
 * print() → cerrar. */

#pdf-print-root {
  position: absolute;
  left: -10000px;
  top: 0;
  visibility: hidden;
  pointer-events: none;
}

/* --- Modo impresión ------------------------------------------------ */

@media print {
  /* Margen del papel: 10 mm horizontal, 14 mm vertical. Bastante
   * justo para impresoras domésticas pero deja respiración. Reducido
   * en 9.6.1 para ganar ancho útil.
   *
   * El margen inferior se sube a 16mm para acomodar el pie de página
   * con la numeración "X / N" (9.6.3). Los `@bottom-*` no caben en
   * el margen estándar si lo dejamos a 14mm. Solo Chromium/Firefox
   * de escritorio respetan estas reglas; Safari escritorio también;
   * móviles habitualmente las ignoran (irrelevante: la app no se
   * usa desde móvil). */
  @page {
    size: A4 portrait;
    margin: 14mm 10mm 16mm 10mm;

    @bottom-right {
      content: counter(page) " / " counter(pages);
      font-family: Arial, Helvetica, sans-serif;
      font-size: 8pt;
      color: #777;
      vertical-align: top;
      padding-top: 4mm;
    }
  }

  /* Oculta toda la app y muestra el documento. Ojo: el header del
   * HTML es <header> sin id; lo seleccionamos por elemento. El #app
   * y la barra de toasts se ocultan también. La regla del .btn-subir
   * cubre el botón flotante "subir arriba" cuando esté visible. */
  body > header, #app, #toasts, .btn-subir {
    display: none !important;
  }
  body {
    background: #fff !important;
    color: #1a1a1a !important;
  }
  #pdf-print-root {
    display: block !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* --- Tipografía del documento ---
   * Tamaños recortados en 9.6.2 para reducir el número de páginas.
   * Body 10pt → 9pt, line-height 1.45 → 1.35; títulos también más
   * compactos. Sigue siendo legible (no bajamos de 7.5pt en ninguna
   * cifra que el usuario tenga que leer). */

  .pdf-doc {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 9pt;
    line-height: 1.35;
    color: #1a1a1a;
  }

  .pdf-doc-head {
    border-bottom: 1.5pt solid #1a1a1a;
    padding-bottom: 5pt;
    margin-bottom: 10pt;
  }
  .pdf-doc-title {
    font-size: 14pt;
    font-weight: 700;
    margin: 0;
    letter-spacing: 0.2pt;
  }
  .pdf-doc-sub {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    color: #555;
    margin: 2pt 0 0;
  }
  .pdf-meta-row {
    display: flex;
    justify-content: space-between;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5pt;
    color: #555;
    margin-top: 5pt;
  }

  /* --- Secciones --- */

  .pdf-section {
    margin-bottom: 10pt;
  }
  .pdf-section-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5pt;
    color: #1a1a1a;
    margin: 10pt 0 5pt;
    border-bottom: 0.5pt solid #999;
    padding-bottom: 2pt;
  }

  /* --- Resumen Decomisos (PDF compacto) ---
     Subtítulo de porcentaje ("Decomiso 100 %") y sub-bloques de los
     apartados de piezas ("Con cargo propio", "Otras absorbidas").
     Más ligero que pdf-section-title: no es una sección nueva, es un
     escalón por debajo. */
  .pdf-pct-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4pt;
    color: #333;
    margin: 8pt 0 3pt;
  }
  /* Columna "%" centrada también a nivel celda (no solo en la pre-label
     que define pdf-th-pct más abajo). */
  .pdf-tbl td.pdf-th-pct,
  .pdf-tbl th.pdf-th-pct {
    text-align: center;
  }
  /* Mini-tablas de los apartados de piezas: estrechas, alineadas a la
     izquierda, no ocupan todo el ancho de página. */
  .pdf-tbl-piezas {
    width: 55%;
    margin-bottom: 3pt;
  }
  .pdf-cargo-cero { color: #999; }

  .pdf-empty {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    color: #777;
    font-style: italic;
  }
  .pdf-mini-note {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5pt;
    color: #555;
    font-style: italic;
    margin-top: 3pt;
  }

  /* Bloques que no queremos partir entre páginas si caben enteros. */
  .pdf-keep {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* --- KPIs --- */

  .pdf-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5pt;
    margin-bottom: 5pt;
  }
  .pdf-kpi {
    border: 0.5pt solid #999;
    padding: 3pt 5pt;
  }
  .pdf-kpi-label {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7pt;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.3pt;
  }
  .pdf-kpi-value {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    font-weight: 700;
    margin-top: 1pt;
  }

  /* --- Tarjetas-factura --- */

  .pdf-card {
    border: 0.5pt solid #555;
    padding: 5pt 7pt 6pt;
    margin-bottom: 6pt;
  }
  .pdf-card-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-bottom: 0.5pt solid #999;
    padding-bottom: 3pt;
    margin-bottom: 4pt;
  }
  .pdf-card-title {
    font-weight: 700;
    font-size: 9.5pt;
  }
  .pdf-card-meta {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5pt;
    color: #555;
  }

  /* --- Tablas comunes --- */

  .pdf-tbl {
    width: 100%;
    border-collapse: collapse;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    border: 0.5pt solid #999;        /* marco exterior: define la tabla como bloque */
  }
  .pdf-tbl th {
    text-align: left;
    font-weight: 700;
    color: #333;
    background: #ececec;             /* cabecera con fondo: la separa del cuerpo */
    padding: 3pt 4pt;
    border-bottom: 0.5pt solid #999;
    font-size: 7pt;
    text-transform: uppercase;
    letter-spacing: 0.3pt;
  }
  .pdf-tbl td {
    padding: 2pt 4pt;
    border-bottom: 0.25pt solid #ddd;
    vertical-align: top;
  }
  .pdf-tbl tbody tr:nth-child(even) td {
    background: #f6f6f6;
  }
  .pdf-tbl .num {
    text-align: right;
    font-variant-numeric: tabular-nums;
  }
  .pdf-tbl .mono {
    font-family: "Courier New", Courier, monospace;
    font-size: 7.5pt;
    white-space: nowrap;
  }
  .pdf-strong { font-weight: 700; }

  /* Tablas DENTRO de una tarjeta-factura o del recuadro extra: la card
     ya las enmarca, así que les quitamos el marco exterior propio y el
     fondo de cabecera para no recargar con doble borde. */
  .pdf-card .pdf-tbl,
  .pdf-extra-box .pdf-tbl {
    border: none;
  }
  .pdf-card .pdf-tbl th,
  .pdf-extra-box .pdf-tbl th {
    background: transparent;
  }

  /* --- 9.7 + 9.7.1: filas pseudo-cabecera con líneas gruesas --- */

  /* Fila `Animales` (cabecera contable) y subtotal `Total despojos`
     tienen el mismo tratamiento: líneas envolventes de 1pt gris medio
     (equivalente al `border-y-2 border-ink/20` de pantalla), fila
     entera en font-medium para destacar la jerarquía. */
  .pdf-tbl tr.pdf-animales td {
    background: transparent !important;
    border-top: 1pt solid #555;
    border-bottom: 1pt solid #555;
    font-weight: 600;
    padding-top: 4pt;
    padding-bottom: 4pt;
  }
  .pdf-tbl tr.pdf-subtotal td {
    background: transparent !important;
    border-top: 1pt solid #555;
    border-bottom: 1pt solid #555;
    font-weight: 600;
    padding-top: 4pt;
    padding-bottom: 4pt;
  }
  /* Fila final `Total`: misma intensidad de línea superior (era 0.75pt,
     ahora 1pt para coherencia con las otras dos filas-cabecera). */
  .pdf-tbl tr.pdf-total td {
    border-top: 1pt solid #555;
    border-bottom: none;
    font-weight: 600;
    padding-top: 4pt;
    background: transparent !important;
  }

  /* Cabecera de la columna `% desc.`: el prefijo "Desc." en pequeño y
     atenuado (igual que 9.6.1 hizo con la cabecera del anexo). */
  .pdf-tbl th.pdf-th-pct .pdf-th-pct-pre {
    font-size: 6pt;
    color: #999;
    margin-right: 1pt;
  }

  /* Repetir thead en saltos de página. */
  .pdf-tbl thead {
    display: table-header-group;
  }
  .pdf-tbl tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* --- Cierre --- */

  .pdf-cierre {
    border: 0.5pt solid #1a1a1a;
    padding: 6pt 8pt;
    background: #f5f5f5;
  }
  .pdf-cierre-row {
    display: flex;
    justify-content: space-between;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8.5pt;
    padding: 1pt 0;
  }
  .pdf-cierre-total {
    display: flex;
    justify-content: space-between;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    font-weight: 700;
    border-top: 0.5pt solid #1a1a1a;
    margin-top: 3pt;
    padding-top: 3pt;
  }
  .pdf-cierre-row .num,
  .pdf-cierre-total .num {
    font-variant-numeric: tabular-nums;
  }

  /* --- Recuadro Extra AVILANATUR --- */
  /* Mismo tratamiento de marco que el cierre del periodo: deja el bloque
     visualmente separado por ser un flujo aparte (pago directo a
     AVILANATUR, no al matadero). Sin relleno de fondo para distinguirlo
     del cierre (el cierre sí es la cifra final destacada). */
  .pdf-extra-box {
    border: 0.5pt solid #1a1a1a;
    padding: 4pt 8pt 5pt;
  }

  /* --- Saltos de página entre secciones grandes --- */

  .pdf-break-page {
    page-break-before: always;
    break-before: page;
  }

  /* --- Página apaisada para "Por día" -------------------------------
   *
   * La tabla "Por día" tiene 7 columnas y un mes entero de filas; en
   * A4 vertical queda estrecha. La ponemos en su propia página en
   * horizontal.
   *
   * CAMINO LIMPIO (preferido): página con nombre + size landscape.
   * Chromium reciente lo respeta; el texto sale bien orientado y
   * seleccionable. Si tu navegador NO la saca apaisada (sale vertical
   * y cortada), comenta este bloque @page y descomenta el de
   * "RESPALDO rotate" más abajo. */
  @page paisaje {
    size: A4 landscape;
    margin: 10mm 14mm 16mm 14mm;
  }
  .pdf-pagina-paisaje {
    page: paisaje;
  }
  /* Tamaño calibrado para llenar mejor la página sin desbordar en el
     peor caso (23 filas = máximo de días laborables L-V en un mes):
     alto útil apaisado ~184mm − título y cabecera (~15mm) = ~169mm para
     23 filas → techo ~7,3mm/fila. A 10pt con padding 3pt la fila mide
     ~18pt (~6,3mm); 23 filas ≈ 146mm, deja ~23mm de aire. Meses cortos
     (p. ej. abril, 17 filas) quedan algo más vacíos pero coherentes; no
     se puede llenar la hoja en abril sin desbordar en un mes de 23. */
  .pdf-pagina-paisaje .pdf-tbl {
    font-size: 10pt;
  }
  .pdf-pagina-paisaje .pdf-tbl th {
    font-size: 8pt;
    padding-top: 3pt;
    padding-bottom: 3pt;
  }
  .pdf-pagina-paisaje .pdf-tbl td {
    padding-top: 3pt;
    padding-bottom: 3pt;
  }

  /* --- RESPALDO rotate (solo si @page landscape no funciona) ---------
   * Descomenta este bloque Y comenta `.pdf-pagina-paisaje { page: paisaje }`
   * de arriba. Rota el contenido 90° dentro de una hoja vertical normal.
   * Funciona en cualquier navegador, pero el preview en pantalla puede
   * verse raro (imprime bien). El ancho fijado (267mm) es el alto útil
   * del A4 vertical tras márgenes.
   *
   * .pdf-pagina-paisaje {
   *   transform: rotate(90deg);
   *   transform-origin: top left;
   *   width: 267mm;
   *   position: absolute;
   *   top: 0;
   *   left: 190mm;
   * }
   */

  /* --- Anexo · desglose por animal ---
   *
   * Look y feel calcado de la pantalla 4.1 (`#/resumenes/desglose`):
   * tipografía sans-serif uniforme, sin zebra striping, separadores
   * de cliente/partida con franja gris claro al fondo y borde fino.
   * Tamaños equivalentes a los de pantalla (10pt body, 8pt cabecera).
   *
   * Los anchos de columna se calibran para que la fecha completa
   * (`01/04/2026`) NO se parta a dos líneas y el crotal de 14 chars
   * en monoespaciada quepa sin holgura. `white-space: nowrap` en
   * ambas columnas como salvavidas.
   */

  .pdf-anexo-intro {
    margin-bottom: 0;
  }
  .pdf-anexo-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5pt;
    margin: 0 0 5pt;
  }
  .pdf-anexo-intro-text {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    color: #555;
    margin: 0 0 10pt;
    line-height: 1.4;
  }

  .pdf-anexo-tarjeta {
    margin-bottom: 0;
  }
  .pdf-anexo-tarjeta-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: 5pt 0 5pt;
  }
  .pdf-anexo-tarjeta-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    font-weight: 600;
    margin: 0;
  }
  .pdf-anexo-tarjeta-meta {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    color: #777;
  }

  /* Tabla del desglose. Hereda algunas reglas de `.pdf-tbl` pero
   * sobrescribe: SIN zebra striping, tipografía sans, padding más
   * generoso para parecerse a la pantalla. */
  .pdf-tbl-desglose {
    table-layout: fixed;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    width: 100%;
    border-collapse: collapse;
  }
  /* Sobrescribe el zebra striping de .pdf-tbl: el anexo NO lo lleva. */
  .pdf-tbl-desglose tbody tr:nth-child(even) td {
    background: transparent;
  }
  .pdf-tbl-desglose thead th {
    text-align: left;
    font-weight: 400;
    color: #777;
    padding: 2.5pt 4pt;
    border-bottom: 0.5pt solid #d0d0d0;
    font-size: 7pt;
    /* No uppercase aquí: lo dejamos en minúsculas como en pantalla
     * para que entren cabeceras como "Desc. %" sin malabares. */
    text-transform: none;
    letter-spacing: 0;
  }
  .pdf-tbl-desglose thead th.num {
    text-align: right;
  }
  .pdf-tbl-desglose td {
    padding: 2.5pt 4pt;
    border-bottom: 0.25pt solid #ececec;
    vertical-align: middle;
    word-break: normal;
    background: transparent;
  }

  /* Columnas que NUNCA deben partirse a dos líneas. */
  .pdf-tbl-desglose td.nowrap,
  .pdf-tbl-desglose td.mono {
    white-space: nowrap;
  }

  /* Filas separadoras de cliente/partida dentro del tbody. Look de
   * pantalla 4.1: franja gris claro de fondo, borde fino superior e
   * inferior, padding holgado a la izquierda. */
  .pdf-tbl-desglose tr.pdf-sep td {
    padding: 4pt 8pt 4pt 8pt;
    border-top: 0.5pt solid #d0d0d0;
    border-bottom: 0.5pt solid #d0d0d0;
    background: #f5f5f5 !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
    color: #444;
  }
  .pdf-tbl-desglose tr.pdf-sep-first td {
    border-top: 0.75pt solid #1a1a1a;
  }
  .pdf-sep-nombre {
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.1pt;
  }
  .pdf-sep-avi {
    font-size: 6.5pt;
    padding: 0 3pt;
    border: 0.5pt solid #888;
    margin-left: 5pt;
    vertical-align: 1pt;
    color: #555;
    letter-spacing: 0.4pt;
    font-weight: 400;
  }
  .pdf-sep-partida {
    color: #777;
    margin-left: 6pt;
    font-weight: 400;
  }

  /* Cabecera especial "Desc. %": "Desc." pequeño, "%" tamaño normal.
   * El span con clase pdf-th-pq controla el tamaño del prefijo. */
  .pdf-th-pq {
    font-size: 6pt;
    color: #999;
  }

  /* --- Simulación de factura del matadero (Fase 10) ------------------
   * Documento de una página con aspecto de factura. Reutiliza .pdf-doc,
   * .pdf-doc-head y .pdf-mini-note del PDF de resumen; estas clases
   * propias maquetan los bloques de tramo (con líneas de descuento en
   * pequeño) y la tabla de IVA/cargos. Solo blanco/negro/grises. */
  .factura-bloque {
    margin-bottom: 7pt;
  }
  .factura-bloque-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-bottom: 0.75pt solid #1a1a1a;
    padding-bottom: 2pt;
    margin-bottom: 2pt;
  }
  .factura-bloque-tit {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9pt;
    font-weight: 700;
  }
  .factura-bloque-val {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9pt;
    font-weight: 700;
  }
  .factura-lineas {
    padding-left: 6pt;
    border-left: 0.5pt solid #ccc;
  }
  .factura-ln {
    display: flex;
    justify-content: space-between;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5pt;
    color: #333;
    padding: 0.5pt 0;
  }
  .factura-ln-imp {
    padding-left: 10pt;
    white-space: nowrap;
  }
  .factura-ln-base {
    font-style: italic;
    color: #666;
    border-top: 0.4pt dotted #999;
    margin-top: 1pt;
    padding-top: 1.5pt;
  }
  .factura-total-mat {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-top: 1pt solid #1a1a1a;
    border-bottom: 1pt solid #1a1a1a;
    padding: 4pt 0;
    margin: 8pt 0;
  }
  .factura-total-mat-lbl {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    font-weight: 700;
  }
  .factura-total-mat-kg {
    font-size: 7.5pt;
    font-weight: 400;
    color: #555;
  }
  .factura-total-mat-val {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 11pt;
    font-weight: 700;
  }
  .factura-iva-tit {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 9pt;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4pt;
    margin: 8pt 0 3pt;
    border-bottom: 0.5pt solid #1a1a1a;
    padding-bottom: 2pt;
  }
  .factura-iva-tabla {
    width: 100%;
    border-collapse: collapse;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 8pt;
  }
  .factura-iva-tabla th {
    text-align: right;
    font-weight: 400;
    font-size: 7pt;
    color: #555;
    padding: 2pt 3pt;
    border-bottom: 0.5pt solid #1a1a1a;
  }
  .factura-iva-tabla th:first-child {
    text-align: left;
  }
  .factura-iva-tabla td {
    padding: 3pt;
    border-bottom: 0.4pt solid #ccc;
  }
  .factura-iva-tabla td.num {
    text-align: right;
    white-space: nowrap;
  }
  .factura-iva-tot {
    font-weight: 700;
  }
  .factura-iva-det {
    font-size: 6.5pt;
    color: #777;
  }
  .factura-total-sim {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-top: 1.5pt solid #1a1a1a;
    padding-top: 5pt;
    margin-top: 7pt;
  }
  .factura-total-sim-lbl {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    font-weight: 700;
  }
  .factura-total-sim-val {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13pt;
    font-weight: 700;
  }
  .factura-total-sim-sub {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 7.5pt;
    color: #555;
    text-align: right;
    margin-top: 2pt;
  }
}
