/*
 * Hoja de papel.
 * Se carga con el atributo media reservado a la impresión, de modo que nunca interviene en la pantalla, y ocupa el último lugar de la cascada para poder corregir cualquier regla anterior.
 * El papel sigue siendo el soporte más fiable para repasar un plan de estudios, porque no se queda sin batería y se puede anotar encima.
 *
 * Qué hace.
 * Pasa los dos temas a tinta negra sobre papel blanco, dado que un fondo oscuro impreso gasta tóner y se lee peor.
 * Retira la navegación, los buscadores, los filtros, los botones y el pie, que en papel no llevan a ninguna parte.
 * Evita que una tarjeta se parta entre dos hojas.
 * Cuando hay una ficha abierta imprime solo esa ficha, porque quien pulsa imprimir con la ficha delante quiere la ficha y no el catálogo entero.
 */

@media print {

  /* ------------------------------------------------------------
     Tinta negra sobre papel blanco en los dos temas.
     ------------------------------------------------------------ */

  :root,
  html[data-tema="oscuro"],
  html[data-tema="claro"],
  html:not([data-tema="claro"]) {
    --fondo: var(--papel);
    --fondo-2: var(--papel);
    --superficie: var(--papel);
    --superficie-2: var(--papel);
    --superficie-3: var(--papel);
    --borde: var(--papel-borde);
    --borde-fuerte: var(--papel-borde);
    --tinta: var(--papel-tinta);
    --tinta-2: var(--papel-tinta);
    --tinta-3: var(--papel-tinta);
    --marca: var(--papel-tinta);
    --marca-2: var(--papel-tinta);
    --marca-tinta: var(--papel);
    --grad-marca: none;
    --exito: var(--papel-tinta);
    --alerta: var(--papel-tinta);
    --peligro: var(--papel-tinta);
    --info: var(--papel-tinta);
    --sombra: none;
    --sombra-alta: none;
  }

  body {
    background: var(--papel);
    color: var(--papel-tinta);
    font-size: 11pt;
  }

  /* Los títulos degradados recuperan su tinta, que de otro modo se imprimen en blanco. */
  .heroe-titulo,
  .cifra-numero {
    background: none;
    -webkit-text-fill-color: var(--papel-tinta);
    color: var(--papel-tinta);
  }

  /* ------------------------------------------------------------
     Lo que no viaja al papel.
     ------------------------------------------------------------ */

  .cabecera,
  .salto-al-contenido,
  .barra-herramientas,
  .campo-busqueda,
  .chips,
  .paginacion,
  .acciones,
  .boton,
  .boton-icono,
  .boton-menu,
  .boton-tema,
  .modal-cerrar,
  .pie,
  .region-estado {
    display: none !important;
  }

  /* ------------------------------------------------------------
     Cajas del contenido.
     ------------------------------------------------------------ */

  main {
    max-width: none;
    padding: 0;
  }

  .lista,
  .rejilla,
  .rejilla-2,
  .cifras,
  .barras-bloque,
  .opciones {
    display: block;
  }

  .tarjeta,
  .cifra,
  .panel,
  .barra-bloque,
  .resultado-area,
  .detalle,
  .plegable {
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 10pt;
    border: 1px solid var(--papel-borde);
    box-shadow: none;
    background: var(--papel);
  }

  .tarjeta:hover,
  .cifra:hover {
    transform: none;
  }

  /* La franja de familia se conserva en gris, y el nombre escrito en la insignia es lo que identifica la agrupación. */
  .familia-nucleo,
  .familia-electiva,
  .familia-libre,
  .familia-fuera,
  .esp-ia,
  .esp-ml {
    border-left: 3px solid var(--papel-tinta);
    background: var(--papel);
  }

  .insignia {
    border: 1px solid var(--papel-borde);
    background: var(--papel);
    color: var(--papel-tinta);
  }

  .barra {
    border: 1px solid var(--papel-tinta);
  }

  .barra-relleno {
    background: var(--papel-tinta);
  }

  /* Lo que estaba plegado se despliega, porque en papel no hay forma de abrirlo. */
  .detalle,
  .plegable {
    display: block;
  }

  .detalle > *,
  .plegable > * {
    display: block;
  }

  .tabla-envoltorio {
    overflow: visible;
  }

  .tabla {
    min-width: 0;
    width: 100%;
  }

  .tabla th,
  .tabla td {
    border-bottom: 1px solid var(--papel-borde);
  }

  h2,
  h3 {
    break-after: avoid;
    page-break-after: avoid;
  }

  /* ------------------------------------------------------------
     Ficha abierta.
     Con la ventana de detalle en pantalla se imprime solo su contenido, y el resto de la página queda fuera.
     ------------------------------------------------------------ */

  body.con-modal main,
  body.con-modal .pie {
    display: none !important;
  }

  .modal-fondo {
    position: static;
    display: block;
    padding: 0;
    background: var(--papel);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .modal {
    width: 100%;
    max-height: none;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: var(--papel);
    animation: none;
  }

  .modal-cuerpo {
    overflow: visible;
    padding-top: 8pt;
  }
}
