/* Temario (sección 5): leer la ley como en un buen libro, y ver lo que llevas.
   Tokens de base.css (sección 1, fase 4). Propios, con prefijo --tm-: --tm-escala (tamaño elegido con
   A−/A+), --tm-interlinea (lectura cómoda), --tm-tope (altura de la cabecera fija) y --tm-sangria.
   Voces: Literata para la ley y los títulos (--letra-ley, --letra-serif); Instrument Sans Condensed
   para números de artículo, de apartado y cifras (--letra-cond); Instrument Sans para la interfaz.
   Color: marino solo para acción, progreso y lo activo; verde/ámbar/rojo solo para el acierto en test. */

.tm, .tm-leyes {
  --tm-escala: 1;
  --tm-interlinea: var(--interlinea-ley, 1.7);
  --tm-tope: 72px;
  --tm-sangria: 1.9em;
}
.tm[data-comoda="si"] { --tm-interlinea: 1.95; }
.tm { display: grid; gap: var(--esp-6); align-items: start; }
.tm[data-vista="lectura"] .tm-rail { display: none; }

.tm-titulo { font: 600 var(--tam-3xl)/1.1 var(--letra-serif); letter-spacing: var(--tracking-titulo); color: var(--tinta); text-wrap: balance; }
.tm-entradilla { margin-top: var(--esp-3); max-width: var(--medida); color: var(--texto); font-size: var(--tam-base); line-height: 1.6; }

/* Barra de avance (lectura de la ley, de un título): marino; verde cuando está completa. */
.tm-barra-avance { position: relative; height: 8px; border-radius: var(--radio-pildora); background: var(--crema-2); overflow: hidden; }
.tm-barra-avance > span { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: var(--marino); transition: width 320ms var(--curva); }
.tm-barra-avance--fina { height: 4px; background: var(--linea-suave); }
.tm-barra-avance[aria-valuenow="100"] > span { background: var(--ok); }

/* ── /temario: las leyes ─────────────────────────────────────────────── */
.tm-leyes { max-width: 860px; }
.tm-leyes__cab { margin-bottom: var(--esp-7); }
.tm-leyes__lista { display: grid; gap: var(--esp-4); list-style: none; margin: 0; padding: 0; }
.tm-ley__enlace {
  display: grid; gap: var(--esp-2); padding: var(--esp-6); border: 1px solid var(--linea-suave); border-radius: var(--radio-16);
  background: var(--superficie); box-shadow: var(--sombra-suave); color: var(--texto); text-decoration: none;
  transition: border-color var(--mv), box-shadow var(--mv);
}
.tm-ley__enlace--libro { grid-template-columns: auto minmax(0, 1fr); column-gap: var(--esp-5); }
.tm-ley__cuerpo { display: grid; gap: var(--esp-2); min-width: 0; }
.tm-ley__enlace:hover { border-color: var(--linea); box-shadow: var(--sombra-flotante); color: var(--texto); text-decoration: none; }
.tm-ley__nombre { color: var(--tinta); font: 600 1.25rem/1.3 var(--letra-serif); letter-spacing: -.01em; text-wrap: balance; }
.tm-ley__libro { color: var(--tenue); font-size: var(--tam-m); line-height: 1.5; }
.tm-ley__avance { display: grid; gap: 6px; margin-top: var(--esp-2); }
.tm-ley__avance:empty { display: none; }
.tm-ley__nota { color: var(--texto); font-size: var(--tam-m); }
.tm-ley__ir { margin-top: var(--esp-1); color: var(--marca); font-weight: 650; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tm-ley__enlace:hover .tm-ley__ir { text-decoration-thickness: 2px; }

/* ── Portada de la ley: bloque crema con el progreso ─────────────────── */
.tm-portada { background: var(--crema); border-radius: var(--radio-24); padding: clamp(20px, 5vw, 44px); }
.tm-portada__ley { max-width: 24ch; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); }
.tm-portada__fuente { margin-top: var(--esp-4); max-width: var(--medida); color: var(--texto); line-height: 1.55; }
.tm-portada__libro { margin-top: var(--esp-1); color: var(--tenue); font-size: var(--tam-m); }
.tm-portada__avance { margin-top: var(--esp-7); max-width: 560px; }
.tm-portada__cifra { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: var(--esp-3); color: var(--tinta-2); }
.tm-portada__cifra strong { color: var(--tinta); font: 700 var(--tam-5xl)/.9 var(--letra-cond); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.tm-portada__cifra span { font-size: var(--tam-l); font-weight: 600; }
.tm-portada__detalle { margin-top: var(--esp-3); color: var(--texto); font-size: var(--tam-m); line-height: 1.55; }
.tm-portada__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-3); margin-top: var(--esp-7); }
.tm-portada__acciones .boton-texto { margin-left: -4px; }
.tm-portada__nota { margin-top: var(--esp-6); padding-top: var(--esp-4); border-top: 1px solid var(--crema-2); max-width: var(--medida); color: var(--tenue); font-size: var(--tam-s); line-height: 1.55; }
.tm-portada .aviso { margin-top: var(--esp-5); }

/* ── Buscador ────────────────────────────────────────────────────────── */
.tm-rail { min-width: 0; }
.tm-rail__ley { display: none; margin-bottom: var(--esp-4); font: 600 var(--tam-l)/1.3 var(--letra-serif); }
.tm-rail__ley a { color: var(--tinta); text-decoration: none; }
.tm-rail__ley a:hover { text-decoration: underline; }
.tm-buscar__etiqueta { display: block; margin-bottom: 6px; color: var(--tinta-2); font-size: var(--tam-m); font-weight: 650; }
.tm-buscar__caja { position: relative; }
.tm-buscar__caja > svg.icono { position: absolute; left: 16px; top: 50%; width: 18px; height: 18px; color: var(--tenue); transform: translateY(-50%); pointer-events: none; }
.tm-buscar__campo {
  width: 100%; min-height: 52px; padding: 12px 16px 12px 44px; border: 1px solid var(--linea-fuerte); border-radius: var(--radio-pildora);
  background: var(--superficie); color: var(--tinta); font-size: var(--tam-base);
}
.tm-buscar__campo::placeholder { color: var(--tenue); }
.tm-buscar__campo:focus { outline: 3px solid var(--marca-anillo); outline-offset: 0; border-color: var(--marca); }
.tm-buscar__estado { min-height: 1.5em; margin: var(--esp-2) 4px var(--esp-3); color: var(--tenue); font-size: var(--tam-s); }

.tm-resultados { display: grid; gap: var(--esp-3); list-style: none; margin: 0; padding: 0; }
.tm-resultado {
  display: grid; gap: 6px; padding: var(--esp-4) var(--esp-5); border: 1px solid var(--linea-suave); border-radius: var(--radio-16);
  background: var(--superficie); box-shadow: var(--sombra); color: var(--texto); text-decoration: none;
}
.tm-resultado:hover { border-color: var(--linea); box-shadow: var(--sombra-suave); color: var(--texto); text-decoration: none; }
.tm-resultado__cab { font-size: var(--tam-m); line-height: 1.4; }
.tm-resultado__cab strong { color: var(--tinta); font: 700 1rem/1.3 var(--letra-cond); }
.tm-resultado__cab span { color: var(--tenue); }
.tm-resultado__frag { color: var(--tinta-2); font: 400 .9375rem/1.6 var(--letra-ley); }
.tm-resultado small { color: var(--tenue); font-size: var(--tam-xs); font-weight: 600; }

/* Lo encontrado: fondo ámbar suave y subrayado, se ve sin depender solo del color. */
.tm mark { background: var(--ambar-suave); color: inherit; border-radius: 3px; box-shadow: 0 0 0 2px var(--ambar-suave);
  text-decoration: underline 2px var(--ambar); text-underline-offset: 3px; text-decoration-skip-ink: none; }

/* ── Índice: una tarjeta por título o capítulo ───────────────────────── */
.tm-indice { margin-top: var(--esp-4); }
.tm-indice__titulo { font: 600 var(--tam-2xl)/1.2 var(--letra-serif); letter-spacing: var(--tracking-titulo); }
.tm-indice__ayuda { display: flex; align-items: center; gap: 8px; margin: var(--esp-2) 0 var(--esp-4); color: var(--tenue); font-size: var(--tam-s); line-height: 1.45; }
.tm-indice__ayuda .tm-visto { flex: none; width: 20px; height: 20px; }
#tmArbol { display: grid; gap: var(--esp-3); }
.tm-sec { border: 1px solid var(--linea-suave); border-radius: var(--radio-16); background: var(--superficie); box-shadow: var(--sombra-suave); }
.tm-sec > summary {
  display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: var(--esp-2) var(--esp-3); align-items: start;
  padding: var(--esp-5); cursor: pointer; list-style: none; border-radius: var(--radio-16);
}
.tm-sec > summary::-webkit-details-marker { display: none; }
.tm-sec > summary::after {
  content: ''; grid-column: 2; grid-row: 1; justify-self: center; width: 9px; height: 9px; margin-top: 10px;
  border-right: 2px solid var(--tinta-2); border-bottom: 2px solid var(--tinta-2);
  transform: rotate(45deg); transition: transform var(--mv);
}
.tm-sec[open] > summary::after { transform: rotate(-135deg) translate(-3px, -3px); }
.tm-sec > summary:hover .tm-sec__nombre { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.tm-sec[open] > summary { border-bottom: 1px solid var(--linea-suave); border-radius: var(--radio-16) var(--radio-16) 0 0; }
.tm-sec__titulo { display: grid; gap: 2px; min-width: 0; }
.tm-sec__num { color: var(--tenue); font: 600 var(--tam-m)/1.3 var(--letra-cond); letter-spacing: .01em; }
.tm-sec__nombre { color: var(--tinta); font: 600 1.125rem/1.3 var(--letra-serif); letter-spacing: -.005em; }
.tm-sec__datos { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--esp-3); color: var(--texto); font-size: var(--tam-s); font-weight: 600; }
.tm-sec__test { color: var(--tenue); }
.tm-sec > summary .tm-barra-avance { grid-column: 1 / -1; }
.tm-sub { padding: var(--esp-2) var(--esp-3) var(--esp-3); }
.tm-sub + .tm-sub { border-top: 1px solid var(--linea-suave); }
.tm-sub__titulo { margin: var(--esp-3) var(--esp-2) var(--esp-2); color: var(--tinta-2); font: 600 var(--tam-m)/1.4 var(--letra-serif); }
.tm-sub__num { color: var(--tenue); font-family: var(--letra-cond); font-weight: 600; }
.tm-lista { list-style: none; margin: 0; padding: 0; }
.tm-entrada {
  display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) auto; gap: var(--esp-3); align-items: center;
  min-height: 48px; padding: 8px var(--esp-2); border-radius: var(--radio-12);
  color: var(--texto); font-size: var(--tam-m); line-height: 1.4; text-decoration: none;
  transition: background-color var(--mv);
}
.tm-lista--disp .tm-entrada { grid-template-columns: 6.5rem minmax(0, 1fr) auto; }
.tm-entrada:hover { background: var(--fondo); color: var(--tinta); text-decoration: none; }
.tm-entrada__num { color: var(--tinta); font: 700 1rem/1.3 var(--letra-cond); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.tm-entrada__texto small { display: block; color: var(--tenue); font-size: var(--tam-xs); font-weight: 600; }
.tm-entrada--vacia .tm-entrada__num, .tm-entrada--vacia .tm-entrada__texto { color: var(--tenue); }
.tm-entrada[aria-current] { background: var(--marino-suave); color: var(--marino-profundo); }
.tm-entrada[aria-current] .tm-entrada__num { color: var(--marino); }
.tm-entrada__estado { display: flex; align-items: center; gap: 6px; }
.tm-visto { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ok); color: #fff; }
.tm-visto svg.icono { width: 14px; height: 14px; }

/* Acierto en test: el número manda; el color solo lo acompaña. */
.tm-chip { display: inline-flex; align-items: center; min-height: 22px; padding: 1px 8px; border-radius: var(--radio-pildora); border: 1px solid transparent;
  font: 700 var(--tam-xs)/1.2 var(--letra-cond); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tm-chip--bien { background: var(--ok-suave); border-color: var(--ok-borde); color: var(--ok-tinta); }
.tm-chip--medio { background: var(--ambar-suave); border-color: var(--ambar-borde); color: var(--ambar-tinta); }
.tm-chip--flojo { background: var(--mal-suave); border-color: var(--mal-borde); color: var(--mal-tinta); }

/* ── Lectura de un artículo ──────────────────────────────────────────── */
.tm-lectura { min-width: 0; }
.tm[data-vista="lectura"] .tm-lectura {
  background: var(--superficie); border: 1px solid var(--linea-suave); border-radius: var(--radio-24); box-shadow: var(--sombra-suave);
  padding: var(--esp-5) clamp(16px, 4vw, 56px) var(--esp-7);
}

/* Progreso de lectura del artículo: fino, arriba del todo, sobre la cabecera. */
.tm-progreso { position: fixed; z-index: 60; inset: 0 0 auto 0; height: 3px; background: transparent; pointer-events: none; }
.tm-progreso > span { display: block; height: 100%; background: var(--marino); transform: scaleX(0); transform-origin: 0 50%; }

.tm-herramientas { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-3); margin-bottom: var(--esp-6); }
.tm-herramientas__indice { margin-left: -8px; }
.tm-herramientas__pos { color: var(--tenue); font-size: var(--tam-s); font-weight: 600; font-variant-numeric: tabular-nums; }
.tm-lector { display: inline-flex; align-items: center; gap: 2px; margin-left: auto; padding: 3px; border: 1px solid var(--linea); border-radius: var(--radio-pildora); background: var(--superficie); }
.tm-lector__boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 40px; padding: 0 10px;
  border: 0; border-radius: var(--radio-pildora); background: transparent; color: var(--tinta-2); font-weight: 650; cursor: pointer;
  transition: background-color var(--mv), color var(--mv);
}
.tm-lector__boton:hover:not(:disabled) { background: var(--fondo); color: var(--tinta); }
.tm-lector__boton:disabled { color: var(--linea-fuerte); cursor: not-allowed; }
.tm-lector__boton[aria-pressed="true"] { background: var(--marino); color: #fff; }
.tm-lector__boton svg.icono { width: 18px; height: 18px; }
.tm-lector__a { font: 600 1.25rem/1 var(--letra-serif); }
.tm-lector__a--peq { font-size: .9375rem; }
.tm-lector__valor { min-width: 3.4em; color: var(--tenue); font-size: var(--tam-s); font-weight: 650; text-align: center; font-variant-numeric: tabular-nums; }
.tm-lector__comoda { border-left: 1px solid var(--linea-suave); border-radius: 0 var(--radio-pildora) var(--radio-pildora) 0; margin-left: 2px; }
.tm-lector__comoda[aria-pressed="true"] { border-radius: var(--radio-pildora); border-left-color: transparent; }

.tm-articulo { font-size: calc(1.0625rem * var(--tm-escala)); scroll-margin-top: calc(var(--tm-tope) + 16px); }
.tm mark { scroll-margin-block: 120px; }
.tm-lector__boton, .tm-pagina, .tm-entrada, .tm-sec > summary { touch-action: manipulation; }
/* Medida en em de Literata: unos 66-70 caracteres por línea. */
.tm-texto, .tm-cabecera, .tm-lugar, .tm-meta { max-width: 34em; }
.tm-lugar { margin-bottom: var(--esp-3); color: var(--tenue); font-size: var(--tam-s); font-weight: 600; line-height: 1.45; }
.tm-lugar span { display: block; }
.tm-lugar span + span { color: var(--tinta-2); }
.tm-cabecera { margin: 0; font-size: 1em; text-wrap: balance; }
.tm-cabecera__num { display: block; color: var(--tinta); font: 700 calc(2.25rem * var(--tm-escala))/1.05 var(--letra-serif); letter-spacing: -.02em; }
.tm-cabecera__rubrica { display: block; margin-top: var(--esp-3); color: var(--tinta-2); font: 500 1.25em/1.35 var(--letra-serif); letter-spacing: -.005em; }
.tm-meta { display: flex; align-items: center; gap: 6px; margin: var(--esp-4) 0 var(--esp-6); padding-bottom: var(--esp-5); border-bottom: 1px solid var(--linea-suave);
  color: var(--tenue); font-size: var(--tam-s); font-weight: 600; }
.tm-meta svg.icono { width: 16px; height: 16px; }
.tm-cabecera + .tm-texto { margin-top: var(--esp-6); }

.tm-texto {
  color: var(--tinta-2);
  font: 400 1em/var(--tm-interlinea) var(--letra-ley);
  hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word;
  font-variant-numeric: oldstyle-nums proportional-nums;
}
.tm-texto p { margin: 0; text-wrap: pretty; }
.tm-texto p + p { margin-top: .85em; }
.tm-texto .tm-letra + .tm-letra { margin-top: .45em; }
.tm-texto--vacio { color: var(--tenue); font-style: italic; }
/* Apartados con el número colgado en el margen, como en un código impreso. */
.tm-apartado, .tm-letra { position: relative; padding-left: var(--tm-sangria); }
.tm-texto .tm-letra { margin-left: var(--tm-sangria); padding-left: 1.6em; }
.tm-marca { position: absolute; left: 0; top: 0; color: var(--marino); font-family: var(--letra-cond); font-weight: 700; font-variant-numeric: tabular-nums lining-nums; }
.tm-letra .tm-marca { font-family: var(--letra-ley); font-weight: 600; font-style: italic; color: var(--tinta-2); }
.tm-apartado--palabra { padding-left: 0; }
.tm-apartado--palabra .tm-marca { position: static; }
@media (min-width: 720px) { .tm { --tm-sangria: 2.2em; } }

/* Después de leer: leído, test y lo acertado. */
.tm-pie { margin-top: var(--esp-8); font-family: var(--letra); font-size: var(--tam-base); }
.tm-cierre { display: grid; gap: var(--esp-5); padding: var(--esp-5); border-radius: var(--radio-16); background: var(--crema); }
.tm-cierre__fila { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-4); }
.tm-cierre__estado { color: var(--tinta-2); font-size: var(--tam-m); font-weight: 600; }
.tm-cierre__estado:empty { display: none; }
.boton.tm-leido { background: var(--superficie); }
.boton.tm-leido[aria-pressed="true"] { background: var(--ok-suave); border-color: var(--ok-borde); color: var(--ok-tinta); }
.boton.tm-leido[aria-pressed="true"]:hover { border-color: var(--ok); }
.boton.tm-leido[aria-pressed="true"] svg.icono { color: var(--ok); }
.tm-estudio:empty { display: none; }
.tm-estudio { padding-top: var(--esp-5); border-top: 1px solid var(--crema-2); }
.tm-estudio__fila { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-4); }
.tm-estudio__cuantas { color: var(--texto); font-size: var(--tam-m); line-height: 1.5; }
.tm-estudio__mias { margin-top: var(--esp-4); }
.tm-estudio__mias p:first-child { color: var(--tinta-2); font-weight: 600; }
.tm-estudio__mias strong { color: var(--tinta); font: 700 var(--tam-2xl)/1 var(--letra-cond); font-variant-numeric: tabular-nums; margin-right: 4px; }
.tm-estudio__detalle { margin-top: 2px; color: var(--tenue); font-size: var(--tam-s); }
.tm-fuente { margin-top: var(--esp-5); color: var(--tenue); font-size: var(--tam-s); line-height: 1.55; max-width: 62ch; }
.tm-fuente__enlace { display: flex; align-items: center; gap: 6px; width: fit-content; min-height: 44px; font-weight: 650; }
.tm-fuente__enlace svg.icono { width: 14px; height: 14px; }

/* Anterior / siguiente: grandes, con el nombre del artículo. */
.tm-paginas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--esp-3); margin-top: var(--esp-5); }
.tm-pagina {
  display: grid; align-content: start; gap: 4px; min-height: 104px; padding: var(--esp-4) var(--esp-5);
  border: 1px solid var(--linea); border-radius: var(--radio-16); background: var(--superficie); box-shadow: var(--sombra);
  color: var(--tinta); text-decoration: none;
  transition: border-color var(--mv), box-shadow var(--mv), transform var(--mv);
}
.tm-pagina:hover { border-color: var(--linea-fuerte); box-shadow: var(--sombra-suave); color: var(--tinta); text-decoration: none; }
.tm-pagina--sig { grid-column: 2; text-align: right; justify-items: end; }
.tm-pagina--ant { grid-column: 1; }
.tm-pagina__dir { display: inline-flex; align-items: center; gap: 4px; color: var(--marino); font-size: var(--tam-s); font-weight: 700; }
.tm-pagina__dir svg.icono { width: 18px; height: 18px; }
.tm-pagina--ant .tm-pagina__dir { margin-left: -4px; }
.tm-pagina--sig .tm-pagina__dir { margin-right: -4px; }
.tm-pagina__etiqueta { font: 700 1.125rem/1.2 var(--letra-cond); }
.tm-pagina__rubrica { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
  color: var(--texto); font: 400 var(--tam-s)/1.4 var(--letra-ley); }

/* ── Móvil: la ley de borde a borde; anterior/siguiente aún más grandes ── */
@media (max-width: 539px) {
  .tm[data-vista="lectura"] .tm-lectura { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 0 0 var(--esp-6); }
  .tm-portada__cifra span { font-size: var(--tam-base); }
  .tm-portada { margin-inline: -4px; }
  .tm-lector__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tm-herramientas__pos { order: 3; flex-basis: 100%; display: none; }
  .tm-paginas { gap: var(--esp-2); }
  .tm-pagina { min-height: 120px; padding: var(--esp-4); }
  .tm-ley__enlace { padding: var(--esp-5); }
  .tm-ley__enlace--libro { grid-template-columns: minmax(0, 1fr); }
  .tm-ley__enlace > .cubierta { display: none; }
  .tm-sec > summary { padding: var(--esp-4); }
  .tm-sub { padding-inline: var(--esp-1); }
  .tm-entrada { grid-template-columns: 2.25rem minmax(0, 1fr) auto; gap: var(--esp-2); }
}
@media (max-width: 359px) {
  .tm-lector__valor { display: none; }
  .tm-lista--disp .tm-entrada { grid-template-columns: 5rem minmax(0, 1fr) auto; }
}

/* ── Escritorio: índice al lado mientras lees; en la portada, una sola columna ── */
@media (min-width: 1024px) {
  .tm[data-vista="indice"] { grid-template-columns: minmax(0, 880px); }
  .tm[data-vista="lectura"] { grid-template-columns: minmax(260px, 320px) minmax(0, 820px); grid-template-areas: "rail hoja"; gap: var(--esp-7); }
  .tm[data-vista="lectura"] .tm-lectura { grid-area: hoja; padding: var(--esp-7) clamp(40px, 5vw, 72px) var(--esp-8); }
  .tm[data-vista="lectura"] .tm-rail {
    display: block; grid-area: rail; position: sticky; top: var(--tm-tope);
    max-height: calc(100vh - var(--tm-tope) - 16px); overflow-y: auto; overscroll-behavior: contain;
    padding: 2px 8px 16px 2px; scrollbar-width: thin; scrollbar-color: var(--linea-fuerte) transparent;
  }
  .tm[data-vista="lectura"] .tm-rail__ley { display: block; }
  .tm[data-vista="lectura"] .tm-indice__titulo { font-size: var(--tam-xl); }
  .tm[data-vista="lectura"] .tm-indice__ayuda { display: none; }
  .tm[data-vista="lectura"] .tm-sec > summary { padding: var(--esp-4); }
  .tm[data-vista="lectura"] .tm-sec__nombre { font-size: 1rem; }
  .tm[data-vista="lectura"] .tm-sub { padding-inline: var(--esp-1); }
  .tm[data-vista="lectura"] .tm-entrada { grid-template-columns: 2.25rem minmax(0, 1fr) auto; gap: var(--esp-2); }
  .tm[data-vista="lectura"] .tm-herramientas__indice { display: none; }
  .tm[data-vista="lectura"] .tm-rail[hidden] { display: none; }
  /* Lectura cómoda: sin índice al lado, la hoja centrada. */
  .tm[data-vista="lectura"][data-comoda="si"] { grid-template-columns: minmax(0, 860px); grid-template-areas: "hoja"; justify-content: center; }
  .tm[data-vista="lectura"][data-comoda="si"] .tm-rail { display: none; }
  .tm[data-vista="lectura"][data-comoda="si"] .tm-herramientas__indice { display: inline-flex; }
  .tm-titulo { font-size: var(--tam-4xl); }
  .tm-cabecera__num { font-size: calc(2.75rem * var(--tm-escala)); }
}

@media print {
  .tm-rail, .tm-herramientas, .tm-paginas, .tm-cierre, .tm-progreso { display: none !important; }
  .tm[data-vista="lectura"] .tm-lectura { border: 0; padding: 0; box-shadow: none; }
}
