/* Propuesta C · sobre B «Parte»: una vista, un foco. Enlace a la noticia original siempre a la vista e imagen del medio. */
body { background: #fff; }
.wrap { max-width: 1440px; margin: 0 auto; padding: 0 24px; }
.top { border-bottom: 1px solid var(--noche); background: #fff; }
.top-in { display: flex; align-items: center; gap: 20px; min-height: 60px; }
.top img { display: block; height: 28px; width: auto; }
.top .sep { width: 1px; height: 28px; background: var(--linea); }
.top .nombre { font: 700 12px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.top .nombre span { color: var(--musgo); }
.top-acc { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.cob-link { display: inline-flex; align-items: center; gap: 8px; border: 0; background: none; padding: 6px 0; font: 500 13px/1.2 var(--sans); color: var(--noche); text-decoration: underline; text-decoration-color: var(--borde); text-underline-offset: 4px; }
.cob-link .pto { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--sv); }
.cob-link:hover { text-decoration-color: var(--noche); }
.cob-link .corto { display: none; }

/* cabecera: el parte del día y la regla de días de B */
.cabecera { background: var(--niebla); border-bottom: 1px solid var(--linea); }
.cab-in { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; padding-top: 28px; padding-bottom: 26px; }
.cab-in h1 { font: 700 34px/1.06 var(--sans); letter-spacing: -.02em; margin-top: 10px; text-wrap: balance; } /* T49 · rec. 4 del 06: sin «2026» huérfano */
.cab-in .linea { margin-top: 10px; font-size: 15px; color: var(--pizarra); }
.cab-in .linea b { font: 700 15px/1 var(--mono); color: var(--noche); }
.cab-in .linea .svn { color: var(--sv); }
.regla-dias { display: flex; gap: 8px; }
.rd { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; width: 96px; height: 88px; padding: 10px 10px 8px; border: 1px solid var(--linea); border-radius: var(--r); background: #fff; text-align: left; position: relative; }
.rd .d { font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--musgo); }
.rd .n { font: 700 24px/1 var(--mono); }
.rd .l { font: 500 11px/1.2 var(--mono); color: var(--musgo); }
.rd[aria-pressed="true"] { border-color: var(--noche); box-shadow: inset 0 -4px 0 var(--verde); }
.rd:not(.vacio):not([aria-pressed="true"]):hover { border-color: var(--noche); }
.rd.vacio { border-style: dashed; border-color: var(--borde); background: transparent; cursor: default; }
.rd.vacio .n { font: 500 12px/1.25 var(--sans); color: var(--musgo); }
.rd .chip-muestra { font-size: 9.5px; padding: 1px 5px; }
body:not([data-vista="hoy"]) .cab-in { padding-top: 16px; padding-bottom: 16px; align-items: center; }
body:not([data-vista="hoy"]) .cab-in h1 { font-size: 24px; margin-top: 6px; }
body:not([data-vista="hoy"]) .cab-in .linea { display: none; }
body:not([data-vista="hoy"]) .rd { height: 64px; padding-top: 8px; }
body:not([data-vista="hoy"]) .rd:not(.vacio) .n { font-size: 20px; }
body:not([data-vista="hoy"]) .rd.vacio .n { font-size: 11px; line-height: 1.2; }
body[data-vista="mapa"] .regla-dias { display: none; } /* en Mapa manda su propio control de día */
body:not([data-vista="hoy"]) .rd .l { display: none; }

/* franja: solo las vistas y, donde hace falta, «Filtros» */
.franja { position: sticky; top: 0; z-index: 40; background: #fff; border-bottom: 1px solid var(--linea); }
.franja-in { display: flex; align-items: stretch; min-height: 52px; }
.tablist-c { display: flex; align-items: stretch; }
.tab { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 0 22px 0 0; margin-right: 18px; border: 0; background: none; font: 500 15px/1 var(--sans); color: var(--pizarra); }
.tab .mono { font-size: 11px; color: var(--musgo); }
.tab:hover { color: var(--noche); }
.tab[aria-selected="true"] { color: var(--noche); font-weight: 700; }
.tab[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 22px; bottom: -1px; height: 4px; background: var(--verde); }
.franja-fin { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.btn-filtros { min-height: 36px; padding: 0 14px; font-size: 13.5px; }
.btn-filtros[aria-expanded="true"] { border-color: var(--noche); background: var(--sel-bg); }
.btn-filtros .n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--noche); color: #fff; font: 700 11px/1 var(--mono); }
.chips-act { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chips-act .chip-filtro { min-height: 30px; }
.panel-f { border-top: 1px solid var(--linea); padding: 14px 0 16px; }

main.wrap { padding-top: 40px; padding-bottom: 96px; min-height: 60vh; }
.k-sec { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--noche); }
.k-sec.sin-filete { border-bottom: 0; padding-bottom: 0; }
.k-sec h2 { font: 700 22px/1.15 var(--sans); letter-spacing: -.01em; margin-top: 10px; text-wrap: balance; }
.k-sec .der { display: flex; align-items: center; gap: 16px; font: 500 12px/1 var(--mono); color: var(--musgo); }
.sec + .sec { margin-top: 64px; }
.btn-ir { min-height: 40px; }
.nota-vacia { margin-top: 16px; }
.solo-mov { display: none; }
.res-mas-m { margin-top: 14px; min-height: 44px; }
.mt { margin-top: 24px; }

/* ---------- HOY: resumen en tres columnas */
.res-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; }
.res-grid li { padding: 20px 0 4px; }
.res-grid .num { display: block; font: 700 13px/1 var(--mono); letter-spacing: .1em; color: var(--verde-t); margin-bottom: 10px; }
.res-grid p { font-size: 16px; line-height: 1.55; color: #1c2621; text-wrap: pretty; }
.res-leer { justify-content: flex-start; margin-top: 8px; }
.res-leer .leer-a { font-size: 14px; }
.res-grid:not(.corta) li:nth-child(n+4) { border-top: 1px solid var(--linea); margin-top: 16px; }
.res-grid.corta li:nth-child(n+4) { display: none; }
/* corrección 1 del 06: cada punto ≤ 5 líneas mientras el resumen está plegado (completo con «Ver…») */
.res-grid.corta .res-t { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5; overflow: hidden; }
/* corrección 1 del 06: la primera tarjeta con foto empieza en y ≤ 640 a 1440×900 (hueco 01 → 02 de 56 px) */
@media (min-width: 761px) {
  body[data-vista="hoy"] .cab-in { padding-top: 18px; padding-bottom: 16px; }
  body[data-vista="hoy"] .cab-in h1 { margin-top: 6px; }
  body[data-vista="hoy"] .cab-in .linea { margin-top: 6px; }
  body[data-vista="hoy"] main.wrap { padding-top: 24px; }
  body[data-vista="hoy"] .k-sec { padding-bottom: 12px; }
  body[data-vista="hoy"] .k-sec h2 { margin-top: 8px; }
  .sec-res .res-grid li { padding: 12px 0 0; }
  .sec-res .res-grid .num { margin-bottom: 6px; }
  .sec-res .res-leer { margin-top: 2px; }
  .sec-res .res-leer .leer-a, .sec-res .res-leer .leer-mas { min-height: 24px; }
  body[data-vista="hoy"] .sec-res + .sec { margin-top: 56px; }
  body[data-vista="hoy"] .prin { margin-top: 20px; }
}
/* 03 · Desde ayer: las piezas del resumen (tres columnas, número en mono) con los conflictos por serie_id */
.ayer-nota { margin-top: 14px; font-size: 14px; color: var(--pizarra); }
.ayer .num { color: var(--verde-t); }
.ayer-l li { padding: 12px 0; border-top: 1px solid var(--linea); }
.ayer-l li:first-child { border-top: 0; padding-top: 0; }
.ayer-l h3 { font: 700 16px/1.32 var(--sans); text-wrap: balance; }
.res-grid.ayer .meta { margin-top: 6px; font-size: 11.5px; line-height: 1.5; color: var(--musgo); }
.res-grid.ayer .ayer-vacio { font-size: 14px; }
.ayer-seg { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding-left: 0; font-size: 14px; }
.ayer-seg .ico { width: 12px; height: 12px; }
.ayer-vacio { font-size: 14px; color: var(--musgo); }
.res-pie { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 16px; font-size: 13.5px; color: var(--pizarra); }

/* ---------- tarjetas de noticia */
.prin { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 24px; margin-top: 28px; }
.tarj { grid-column: span 4; display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--linea); border-radius: var(--r); background: #fff; overflow: hidden; transition: border-color .15s; }
.tarj.grande { grid-column: span 6; }
.tarj:hover { border-color: var(--noche); }
.tarj-c { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 0; }
.tarj-k { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.tarj-k .pt { display: inline-flex; align-items: center; gap: 8px; font: 700 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--verde-t); }
.tarj-k .pt .regla { width: 20px; }
.tarj h3 { margin-top: 12px; font: 700 18px/1.3 var(--sans); letter-spacing: -.005em; text-wrap: balance; }
.tarj.grande h3 { font-size: 23px; line-height: 1.22; letter-spacing: -.012em; }
.t-ab { border: 0; background: none; padding: 0; text-align: left; font: inherit; color: var(--noche); }
.t-ab:hover .tit { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.tarj-r { margin-top: 8px; font-size: 14.5px; line-height: 1.5; color: var(--pizarra); text-wrap: pretty; }
.tarj.grande .tarj-r { font-size: 16px; max-width: 62ch; }
.meta { margin-top: 12px; font: 500 11.5px/1.5 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--musgo); }
.meta span { white-space: nowrap; }
.tarj .leer { margin-top: auto; padding: 14px 0 16px; border-top: 1px solid var(--linea); }
.tarj .meta { margin-bottom: 16px; }

/* enlace a la noticia original: siempre a la vista */
.leer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; }
.leer-a { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; font: 500 14.5px/1.3 var(--sans); color: var(--enlace); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.leer-a:hover { text-decoration-thickness: 2px; }
.leer-a .ico { width: 12px; height: 12px; }
.leer-mas { min-height: 28px; padding: 0 2px; border: 0; background: none; font: 500 13px/1 var(--sans); color: var(--pizarra); text-decoration: underline; text-decoration-color: var(--borde); text-underline-offset: 3px; white-space: nowrap; }
.leer-mas:hover { color: var(--noche); text-decoration-color: var(--noche); }
.mas-f { font-size: 13px; color: var(--musgo); }

/* imagen del medio y su crédito en caja cartográfica */
/* proporción única 16:10 en tarjetas, miniaturas, barra del mapa y ficha (recomendación 5 del 06) */
.fig { position: relative; margin: 0; aspect-ratio: 16 / 10; background: var(--tierra); overflow: hidden; }
.fig > a { display: block; width: 100%; height: 100%; }
.fig img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.fig > a:hover img { transform: scale(1.02); }
.fig figcaption { position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px); padding: 3px 7px; background: #fff; border: 1px solid var(--borde); border-radius: 2px; font: 500 11px/1.3 var(--mono); color: var(--noche); }
.cred-a { color: inherit; text-decoration: underline; text-decoration-color: var(--borde); text-underline-offset: 2px; overflow-wrap: anywhere; }
.cred-a:hover { text-decoration-color: var(--noche); }
/* marcador sustituto: papel de carta, forma del tipo (si lo tiene) y país; nunca una foto inventada */
.marc { display: grid; place-items: center; background-color: var(--tierra2); background-image: linear-gradient(var(--linea) 1px, transparent 1px), linear-gradient(90deg, var(--linea) 1px, transparent 1px); background-size: 32px 32px; background-position: -1px -1px; }
.marc-in { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 14px; background: #fff; border: 1px solid var(--borde); border-radius: 2px; text-align: center; }
.marc-in .cod { display: flex; align-items: center; gap: 8px; font: 700 18px/1 var(--mono); letter-spacing: .06em; }
.marc-in .tx { font: 500 11px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--musgo); }
.marc .forma { width: 22px; height: 22px; }
.mini.marc { background-size: 20px 20px; }
.mini .marc-in { padding: 6px 8px; gap: 4px; }
.mini .marc-in .cod { font-size: 13px; }
.mini .marc-in .tx { display: none; }
.mini.marc .forma { width: 16px; height: 16px; }

/* ---------- NOTICIAS: lista completa */
.lista { margin-top: 4px; }
.fila { display: grid; grid-template-columns: 60px 184px minmax(0, 1fr) 260px; gap: 0 24px; padding: 22px 0; border-bottom: 1px solid var(--linea); align-items: start; }
.fila .hh { font: 700 14px/1.35 var(--mono); padding-top: 2px; }
.fila .hh small { display: block; font: 500 11px/1.4 var(--mono); color: var(--musgo); }
.fila .fig { aspect-ratio: 16 / 10; border-radius: 2px; }
.fila .fig figcaption { left: 6px; bottom: 6px; max-width: calc(100% - 12px); font-size: 10px; padding: 2px 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fila h3 { font: 700 17px/1.32 var(--sans); text-wrap: balance; }
.fila .tarj-r { font-size: 14.5px; margin-top: 6px; max-width: 72ch; }
.fila .meta { margin-top: 10px; }
.fila-d { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 2px; }
.fila-d .leer { flex-direction: column; align-items: flex-start; gap: 4px; }
.fila.sel { background: var(--sel-bg); box-shadow: inset 4px 0 0 var(--verde); }
.fila-cred { display: none; }
.mas-bloque { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 20px; font-size: 13.5px; color: var(--pizarra); }

/* ---------- MAPA a ancho completo */
.mapa-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.mapa-ancho { margin-top: 18px; }
/* T47 · corrección 2: 440 px de alto (opción del 06) + barra fija abajo: la barra cabe en 900 px y apenas tapa el mapa */
.mapa-ancho .mapa-lienzo { aspect-ratio: auto; height: 440px; }
body[data-vista="mapa"] main.wrap { padding-top: 28px; }
.mapa-ancho .mapa-pie { display: none; }
/* T47 · corrección 2 del 06: la barra del hecho elegido queda fija abajo (≈ 140 px) mientras el mapa está a la vista */
.sel-barra { position: sticky; bottom: 0; z-index: 30; display: grid; grid-template-columns: 168px minmax(0, 1fr) auto; gap: 20px; align-items: center; margin-top: 16px; padding: 12px 16px; border: 1px solid var(--noche); border-top-width: 4px; border-radius: var(--r) var(--r) 0 0; background: #fff; box-shadow: 0 -10px 24px -12px rgba(6, 10, 9, .28); }
.sel-barra:focus-visible { outline: 3px solid var(--verde); outline-offset: -3px; }
.sel-barra .fig { aspect-ratio: 16 / 10; border-radius: 2px; }
.sel-barra .fig figcaption { left: 5px; bottom: 5px; max-width: calc(100% - 10px); font-size: 10px; padding: 2px 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sel-barra .marc .tx { display: none; }
.sel-c { min-width: 0; }
.sel-barra .ficha-tipo { flex-wrap: wrap; row-gap: 2px; }
.sel-barra .aprox { font: 500 11px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--musgo); }
.sel-barra .aprox::before { content: "·"; margin-right: 6px; }
.sel-barra h3 { margin-top: 6px; font: 700 18px/1.25 var(--sans); text-wrap: balance; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.sel-barra .n-sel { color: var(--verde-t); font-family: var(--mono); margin-right: 8px; }
.sel-barra .crit { font-size: 13px; color: var(--pizarra); }
.sel-pie { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin-top: 8px; }
.sel-barra .est { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; }
.sel-barra .leer { justify-content: flex-start; }
.sel-acc { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.sel-acc .btn-texto { min-height: 28px; }
.sin-lugar-n { margin-top: 6px; font-size: 13px; color: var(--pizarra); }
.sin-lugar-0 { font-size: 14px; color: var(--pizarra); }
.dia-b small.n-sit { font: 500 11px/1 var(--mono); color: var(--musgo); }
.dia-b[aria-pressed="true"] small.n-sit { color: #cfe9c0; }
.sel-vacia { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 16px; padding: 14px 16px; border: 1px solid var(--linea); border-radius: var(--r); font-size: 14px; color: var(--pizarra); }
.ley-l { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13.5px; color: var(--pizarra); }
.ley-l li { display: inline-flex; align-items: center; gap: 8px; }
/* T49 · decisión del 2026-11-07: hechos de país o de zona agrupados en una insignia (sin punto exacto), con piezas de C:
   la píldora de filtro (radio 999), la tinta Noche, el número en mono verde y un círculo discontinuo que dice «zona» */
.dias-fila { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.zona { position: absolute; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px 0 8px; background: #fff; border: 1.5px solid var(--noche); border-radius: 999px; font: 500 13px/1 var(--sans); color: var(--noche); white-space: nowrap; pointer-events: auto; transition: background-color .15s; }
.zona:hover { background: var(--sel-bg); }
.zona.sel { z-index: 3; border-width: 2px; box-shadow: 0 0 0 4px var(--verde); }
.zona-n { font: 700 13px/1 var(--mono); color: var(--verde-t); }
.zona-ico { flex: none; overflow: visible; }
.zona-ico circle { fill: none; stroke: var(--noche); stroke-width: 1.4; stroke-dasharray: 2.4 1.8; }
.mapa-lienzo.arrastra { cursor: grabbing; }
.c-guia-zona { stroke-dasharray: 3 3; }
.c-ref-zona { fill: none; stroke: var(--noche); stroke-width: 1.4; stroke-dasharray: 2.4 1.8; }
/* aviso de borde: hechos fuera del recorte (con la pieza del botón secundario de C) */
.borde-aviso { position: absolute; display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; background: #fff; border: 1px solid var(--noche); border-radius: var(--r); font: 500 13px/1 var(--sans); color: var(--noche); white-space: nowrap; pointer-events: auto; }
.borde-aviso .mono { font-weight: 700; color: var(--verde-t); }
.borde-aviso:hover { background: var(--sel-bg); }
.borde-aviso.norte .ico { transform: rotate(180deg); }
.ley-zona { display: inline-flex; align-items: center; gap: 4px; min-height: 20px; padding: 0 7px 0 5px; border: 1.5px solid var(--noche); border-radius: 999px; font: 700 11px/1 var(--mono); color: var(--verde-t); }
.zona-g { margin-top: 32px; }
.zona-g-cab { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; padding-bottom: 12px; border-bottom: 1px solid var(--noche); font-size: 16px; }
.zona-g-cab .musgo { font: 500 11.5px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.zona-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px 0 7px; border: 1.5px solid var(--noche); border-radius: 999px; font: 700 13px/1 var(--mono); color: var(--verde-t); }
.zona-g .situados { margin-top: 0; }
#dlg-zona:focus { outline: none; box-shadow: none; }
.zona-sub { margin-top: 8px; font-size: 14px; line-height: 1.5; color: var(--pizarra); max-width: 60ch; }
.zona-lista li { padding: 14px 0; border-top: 1px solid var(--linea); }
.zona-k { display: flex; align-items: center; gap: 8px; font: 700 11px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--pizarra); }
.zona-lista h3 { margin-top: 6px; font: 700 16px/1.32 var(--sans); text-wrap: balance; }
.zona-lista .sit-est { margin-top: 8px; }
.zona-lista .leer { justify-content: flex-start; margin-top: 6px; }
.situados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin-top: 8px; }
.sit { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 4px 12px; align-items: start; padding: 16px 0; border-bottom: 1px solid var(--linea); }
#main > .banda-muestra { margin-bottom: 40px; }
.sit.sel { background: var(--sel-bg); box-shadow: inset 4px 0 0 var(--verde); padding-left: 10px; }
.sit .num-mapa { font-size: 14px; gap: 6px; padding-top: 2px; }
.sit h3 { font: 700 16px/1.32 var(--sans); text-wrap: balance; }
.sit .meta { margin-top: 6px; }
.sit .leer { justify-content: flex-start; margin-top: 8px; }
.sit-est { margin-top: 8px; }
.sin-lugar { margin-top: 28px; border-top: 1px solid var(--noche); padding-top: 12px; }
.sin-lugar summary { cursor: pointer; font: 500 14px/1.4 var(--sans); min-height: 36px; display: flex; align-items: center; gap: 8px; }
.sin-lugar ul { margin-top: 8px; max-height: 420px; overflow: auto; }
.sin-lugar li { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linea); font-size: 14px; align-items: baseline; }
.sin-lugar .leer-a { font-size: 13px; }

/* ---------- CRONOGRAMA */
.lectura { max-width: 920px; }
.lectura.ancha { max-width: 1200px; }
.crono-cab { padding-bottom: 18px; border-bottom: 1px solid var(--noche); }
.crono-dia:focus { outline: none; }
.hilos-f { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 8px; }
.hilos-f .pill { white-space: normal; text-align: left; line-height: 1.25; padding-top: 6px; padding-bottom: 6px; border-radius: 18px; }
.dia-sep { position: sticky; top: 52px; z-index: 5; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 16px 0 12px; background: #fff; border-bottom: 1px solid var(--noche); }
.dia-sep h3 { font: 700 18px/1.2 var(--sans); }
.dia-sep p { font: 500 12px/1.3 var(--mono); color: var(--musgo); }
.espina { position: relative; margin: 0 0 40px; }
.espina::before { content: ""; position: absolute; left: 91px; top: 0; bottom: 0; width: 2px; background: rgba(3, 7, 10, .18); }
.esp-h { position: relative; display: grid; grid-template-columns: 70px 44px minmax(0, 1fr); padding-top: 20px; }
.esp-h .hh { font: 700 12px/1 var(--mono); letter-spacing: .1em; color: var(--musgo); padding-top: 4px; }
.ev { position: relative; display: grid; grid-template-columns: 70px 44px minmax(0, 1fr); padding: 12px 0; }
.ev-h { font: 700 14px/1.35 var(--mono); padding-top: 2px; }
.ev-n { display: flex; justify-content: center; padding-top: 3px; }
.ev-n .nodo { position: relative; z-index: 1; display: grid; place-items: center; width: 22px; height: 22px; background: #fff; }
.ev-n .punto { width: 10px; height: 10px; border-radius: 50%; background: var(--noche); border: 1.5px solid var(--noche); }
.ev-n .punto.hueco { background: #fff; }
.ev-c { padding: 0 0 14px; border-bottom: 1px solid var(--linea); min-width: 0; }
.ev.sel .ev-c { background: var(--sel-bg); box-shadow: -12px 0 0 var(--sel-bg), inset 4px 0 0 var(--verde); padding-left: 14px; }
.ev-top { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.ev-top h4 { font: 700 16px/1.35 var(--sans); text-wrap: balance; }
.ev-top .chip-estado { flex: none; }
.ev .meta { margin-top: 6px; }
.ev .leer { justify-content: flex-start; margin-top: 6px; }
.ev .tag { display: inline-flex; margin-top: 8px; padding: 3px 7px; border: 1px solid var(--noche); border-radius: 3px; font: 700 10.5px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.vacio-dia { margin: 16px 0 32px 114px; padding: 18px; border: 1px dashed var(--borde); border-radius: var(--r); color: var(--pizarra); font-size: 14px; }

/* ---------- DECLARACIONES */
.aviso-x { display: flex; gap: 12px; align-items: baseline; padding: 12px 16px; margin: 20px 0; border: 1px solid var(--linea); border-left: 4px solid var(--sv); border-radius: var(--r); font-size: 14px; color: var(--pizarra); }
.aviso-x b { color: var(--noche); font-weight: 500; }
.d-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-bottom: 8px; }
.d-cab select { min-height: 36px; padding: 0 30px 0 10px; border: 1px solid var(--borde); border-radius: var(--r); background: #fff; color: var(--noche); font: 500 13.5px var(--sans); max-width: 280px; }
.decl li { display: grid; grid-template-columns: 240px minmax(0, 1fr) minmax(0, 1fr); gap: 0 32px; padding: 22px 0; border-bottom: 1px solid var(--linea); }
.decl .a { font-weight: 700; }
.decl .c { font-size: 13px; color: var(--pizarra); margin-top: 2px; }
.decl .sinv { display: inline-block; margin-top: 4px; color: var(--sv); font: 700 10.5px/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.decl .m { margin-top: 6px; font: 500 11.5px/1.4 var(--mono); color: var(--musgo); }
.decl .via { color: var(--pizarra); }
.decl .et { font: 700 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--musgo); margin-bottom: 8px; }
.decl .o { color: #1c2621; font-size: 14.5px; line-height: 1.55; overflow-wrap: anywhere; }
.decl .o.rtl { text-align: right; }
.decl .tr { font-size: 15px; line-height: 1.55; }
.decl .pend { color: var(--sv); font-size: 13.5px; }
.decl .leer { justify-content: flex-start; margin-top: 10px; }

/* ---------- ficha: panel lateral (escritorio) y hoja inferior (móvil), con la imagen y «Leer en» arriba */
#dlg-ficha .ficha-fig { aspect-ratio: 16 / 10; max-height: 200px; } /* T49 · rec. 4 del 06: 200 px como máximo; la imagen recorta con object-fit: cover */
.ficha-leer { padding: 16px 20px 0; }
.ficha-leer .btn { width: 100%; min-height: 46px; font-size: 15px; white-space: normal; text-align: center; line-height: 1.25; padding: 8px 16px; }
#dlg-ficha .ficha { border-top: 0; }
@media (min-width: 761px) {
  #dlg-ficha { margin: 0 0 0 auto; width: 520px; max-width: 100%; height: 100vh; max-height: 100vh; border-radius: 0; border-left: 1px solid var(--noche); overflow-y: auto; }
  #dlg-ficha::backdrop { background: rgba(3, 7, 10, .28); }
  #dlg-ficha .hoja-barra { position: sticky; top: 0; z-index: 2; background: #fff; padding: 12px 20px; border-bottom: 1px solid var(--linea); }
  #dlg-ficha .hoja-barra-in { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
}

.pie { border-top: 1px solid var(--noche); padding: 20px 0 30px; font-size: 12.5px; color: var(--musgo); }
.pie .wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 32px; }
.pie b { color: var(--pizarra); font-weight: 500; }
.tabs-m { display: none; }

@media (max-width: 1180px) {
  .cab-in { grid-template-columns: minmax(0, 1fr); }
  .res-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .res-grid.corta li:nth-child(n+3) { display: none; }
  .tarj, .tarj.grande { grid-column: span 6; }
  .fila { grid-template-columns: 56px 150px minmax(0, 1fr); }
  .fila-d { grid-column: 3; flex-direction: row; flex-wrap: wrap; align-items: center; margin-top: 12px; }
  .decl li { grid-template-columns: 200px minmax(0, 1fr); }
  .decl li > :last-child { grid-column: 2; margin-top: 16px; }
  .pie .wrap { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .wrap { padding: 0 16px; }
  .top-in { min-height: 56px; gap: 12px; }
  .top img { height: 24px; }
  .top .sep, .top .nombre, .cob-link .txt, .btn-docx-txt { display: none; }
  .cob-link .corto { display: inline; }
  .top-acc .btn { width: 44px; min-height: 44px; padding: 0; }
  .cob-link { min-height: 44px; min-width: 44px; justify-content: center; }
  .cab-in { padding-top: 18px; padding-bottom: 18px; gap: 16px; }
  .cab-in h1 { font-size: 28px; }
  .cab-in .linea { font-size: 14.5px; }
  .regla-dias { position: relative; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); }
  .regla-dias::-webkit-scrollbar { display: none; }
  .rd { width: 100px; height: 78px; flex: none; }
  .rd .d { letter-spacing: .06em; white-space: nowrap; }
  .res-grid.corta li:nth-child(n+2) { display: none; }
  body:not([data-vista="hoy"]) .regla-dias { display: none; }
  body:not([data-vista="hoy"]) .cab-in { padding-top: 12px; padding-bottom: 12px; }
  body:not([data-vista="hoy"]) .cab-in h1 { font-size: 20px; }
  .franja .tab { display: none; }
  .franja-in { min-height: 0; padding-top: 10px; padding-bottom: 10px; }
  .franja-fin { margin-left: 0; width: 100%; justify-content: space-between; flex-wrap: wrap; }
  body[data-vista="hoy"] .franja, body[data-vista="declaraciones"] .franja { display: none; }
  .btn-filtros { min-height: 44px; }
  .chips-act .chip-filtro { min-height: 44px; }
  main.wrap { padding-bottom: 120px; }
  .k-sec { flex-direction: column; align-items: flex-start; gap: 10px; }
  .k-sec h2 { font-size: 21px; }
  .sec + .sec { margin-top: 56px; }
  .res-grid { grid-template-columns: minmax(0, 1fr); }
  .res-grid li { padding: 18px 0 4px; }
  .res-grid:not(.corta) li:nth-child(n+2) { border-top: 1px solid var(--linea); margin-top: 14px; }
  .k-sec .der .btn { min-height: 44px; }
  .solo-esc { display: none; }
  .solo-mov { display: inline-flex; }
  .cab-in { padding-top: 16px; padding-bottom: 16px; gap: 14px; }
  .cab-in h1 { margin-top: 8px; font-size: 26px; }
  .cab-in .linea { font-size: 14px; margin-top: 8px; }
  .res-grid p { font-size: 16px; line-height: 1.5; }
  .res-leer { margin-top: 2px; }
  .res-leer .leer-a { font-size: 15px; }
  main.wrap { padding-top: 24px; }
  .sec + .sec { margin-top: 44px; }
  .tarj-r { font-size: 15px; }
  .prin { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 20px; }
  .tarj, .tarj.grande { grid-column: auto; }
  .tarj-c { padding: 16px 16px 0; }
  .tarj h3, .tarj.grande h3 { font-size: 19px; line-height: 1.28; }
  .tarj.grande .tarj-r, .tarj-r { font-size: 15.5px; }
  .leer-a, .leer-mas { min-height: 44px; }
  .leer-a { font-size: 15px; }
  .fila { grid-template-columns: 120px minmax(0, 1fr); gap: 0 14px; padding: 18px 0; }
  .fila .hh { display: none; }
  .fila .fig { aspect-ratio: 16 / 10; }
  .fila .fig figcaption { display: none; }
  .fila h3 { font-size: 16px; }
  .fila .tarj-r { display: none; }
  .fila-d { grid-column: 1 / -1; margin-top: 10px; flex-direction: row; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 4px 12px; }
  .fila-d .leer { flex-direction: row; align-items: center; gap: 0 14px; }
  .fila-cred { display: block; margin-top: 6px; font: 500 11px/1.3 var(--mono); color: var(--musgo); }
  .mapa-cab { flex-direction: column; align-items: stretch; gap: 14px; }
  .mapa-ancho .mapa-lienzo { height: 320px; margin-left: -16px; margin-right: -16px; border-left: 0; border-right: 0; border-radius: 0; }
  .sel-barra, .sel-vacia { display: none; }
  .situados { grid-template-columns: minmax(0, 1fr); }
  .sin-lugar li { grid-template-columns: 48px minmax(0, 1fr); }
  .sin-lugar li .leer-a { grid-column: 2; }
  .espina::before { left: 69px; }
  .esp-h, .ev { grid-template-columns: 52px 36px minmax(0, 1fr); }
  .ev-top { flex-direction: column; gap: 8px; }
  .dia-sep { top: 64px; }
  /* T48: en móvil el navegador del cronograma es una tira que se desliza (con 4 a 8 días no cabe), con las flechas fijas en los extremos.
     T49: el del mapa, igual (una sola fila); «Reproducir» queda debajo, fuera de la tira */
  .mapa-cab { min-width: 0; flex-wrap: nowrap; }
  .mapa-cab .dias-fila { flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; width: 100%; max-width: 100%; }
  .mapa-cab .dias-ctrl { width: 100%; min-width: 0; max-width: 100%; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; gap: 6px; }
  .mapa-cab .dias-ctrl::-webkit-scrollbar { display: none; }
  .mapa-cab .dias-ctrl > * { flex: none; }
  .mapa-cab .dias-ctrl .btn-icono { position: sticky; z-index: 1; background: #fff; }
  .mapa-cab .dias-ctrl .btn-icono:first-child { left: 0; box-shadow: 6px 0 6px -2px #fff; }
  .mapa-cab .dias-ctrl .btn-icono:last-child { right: 0; box-shadow: -6px 0 6px -2px #fff; }
  .vacio-dia { margin-left: 0; }
  /* T49: zonas táctiles de 44 px en la tira de días y sus flechas */
  .dia-b { min-height: 44px; }
  .mapa-cab .dias-ctrl .btn-icono { width: 44px; height: 44px; }
  .btn-repro { min-height: 44px; }
  .zona { min-height: 36px; max-width: 190px; }
  .grupo, .borde-aviso { min-height: 36px; }   /* piezas sobre el mapa: 36 px como los marcadores (≥ 24 px de WCAG 2.2) */
  .top-in > a { display: inline-flex; align-items: center; min-height: 44px; }
  .sin-lugar summary { min-height: 44px; }
  .d-cab select { min-height: 44px; }
  .zona-t { overflow: hidden; text-overflow: ellipsis; }
  .decl li { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .decl li > :last-child { grid-column: auto; margin-top: 0; }
  .pie { padding-bottom: 96px; }
  .tabs-m { display: grid; grid-template-columns: .8fr 1fr .8fr 1.12fr 1.3fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: #fff; border-top: 1px solid var(--noche); padding-bottom: env(safe-area-inset-bottom); }
  .tabs-m button { position: relative; min-height: 56px; padding: 0 2px; border: 0; background: none; font: 500 12.5px/1.1 var(--sans); color: var(--pizarra); }
  .tabs-m button[aria-selected="true"] { color: var(--noche); font-weight: 700; }
  .tabs-m button[aria-selected="true"]::before { content: ""; position: absolute; left: 16%; right: 16%; top: -1px; height: 4px; background: var(--verde); }
  #dlg-ficha .ficha-fig { aspect-ratio: 16 / 8; }
  .ficha-leer { padding: 14px 16px 0; }
}
