/* El reporte de verificación en hardware real: lo que recibe quien paga por
 * medir su modelo. Lo genera build_reporte.py. Se ve en pantalla con el tema
 * del sitio y se imprime a PDF con el bloque @media print del final, en claro. */

article.reporte { padding: 48px 0 40px; }
article.reporte h1 { font-size: 40px; margin-bottom: 8px; }
article.reporte h2 { font-size: 22px; margin: 46px 0 12px; }
article.reporte .meta { font-family: var(--mono); font-size: 12.5px; color: var(--suave); overflow-wrap: anywhere; }
article.reporte hr { border: 0; border-top: 1px solid var(--borde); margin: 40px 0 20px; }

/* el veredicto: lo primero que se lee, y lo único si no se lee más */
.frase-veredicto { font-size: 19px; line-height: 1.55; max-width: 64ch; margin-bottom: 18px; }
.veredicto { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.tarjeta-v { background: var(--fondo-2); border: 1px solid var(--borde); border-radius: 10px; padding: 16px 18px; }
.tarjeta-v .config { font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; color: var(--suave); text-transform: uppercase; }
.tarjeta-v .estado { font-family: var(--mono); font-size: 13px; margin-top: 10px; }
.tarjeta-v .estado.bien { color: var(--verde-vivo); }
.tarjeta-v .estado.mal { color: var(--rojo); }
.tarjeta-v .cifra { font-size: 40px; line-height: 1.1; margin-top: 4px; }
.tarjeta-v .cifra span { font-size: 18px; color: var(--suave); }
.tarjeta-v .sub { font-family: var(--mono); font-size: 12px; color: var(--suave); margin-top: 6px; line-height: 1.5; }
.tarjeta-v .sub.error { color: var(--rojo); overflow-wrap: anywhere; }

/* tablas */
table.res td.bien { color: var(--verde-vivo); }
table.res td.nuevo { color: var(--azul-claro); }
table.res td.mal, table.res td.falla { color: var(--rojo); }
table.res td.tenue { color: var(--suave); }
table.predicciones td { vertical-align: top; }
table.res td .detalle { display: block; font-size: 11px; color: var(--suave); margin-top: 3px; max-width: 28ch; }
table.condiciones td { overflow-wrap: anywhere; }
table.res td:first-child { overflow-wrap: normal; }

/* corrección */
.lista-corr { list-style: none; padding: 0; display: grid; gap: 9px; }
.lista-corr li { font-size: 15.5px; line-height: 1.5; }
.lista-corr .config { font-family: var(--mono); font-size: 12px; color: var(--suave); display: inline-block; min-width: 240px; margin-right: 6px; }
.lista-corr .bien { color: var(--verde-vivo); }
.lista-corr .mal { color: var(--rojo); }

ul.no-cubre { margin: 0 0 16px 22px; }
ul.no-cubre li { margin-bottom: 6px; max-width: 66ch; }

/* ---- en papel ---- */
@media print {
  @page { size: A4; margin: 15mm 14mm; }
  html, body, body[data-tema] { background: #fff !important; }
  header.barra, footer { display: none !important; }
  article.reporte { padding: 0; }
  article.reporte, article.reporte * { color: #161616 !important; }
  article.reporte .meta, article.reporte .chico, .tarjeta-v .config, .tarjeta-v .sub,
  table.res th, table.res td .detalle, .lista-corr .config, dl.resumen dt, .tarjeta-v .cifra span {
    color: #5a5a5a !important;
  }
  .tarjeta-v .estado.bien, table.res td.bien, .lista-corr .bien { color: #17713a !important; }
  .tarjeta-v .estado.mal, table.res td.mal, table.res td.falla, .lista-corr .mal, .tarjeta-v .sub.error { color: #a8261d !important; }
  table.res td.nuevo { color: #1d5aa6 !important; }
  .tarjeta-v { background: #fff; border-color: #c9c9c9; }
  table.res th, table.res td, article.reporte hr { border-color: #dcdcdc !important; }
  /* los 64 caracteres de un SHA-256 caben en una línea */
  dl.resumen dd.hash { font-size: 10.5px; }
  .tabla-desliza { overflow: visible; }
  .tabla-desliza table.res { min-width: 0; }
  /* las tablas largas sí se parten entre páginas, pero nunca a mitad de una fila:
     si una tabla entera no se puede partir, salta de página y deja media hoja vacía */
  .veredicto, .lista-corr li, dl.resumen, table.res tr { break-inside: avoid; }
  article.reporte h2 { break-after: avoid; margin-top: 30px; }
}
