/* conexiones.css — la página /conexiones/: el mapa de conexiones en 3D, su panel y el recorrido. Todo con prefijo
   cx- para no chocar con el sitio; los colores, las fuentes y la escala son las variables de estilo.css. El mapa
   hereda el lenguaje del panel: filetes, Space Grotesk para las cifras, DM Mono para las bases, nada de pastillas.
   En escritorio el panel flota sobre el mapa (a la derecha); en móvil el lienzo se queda pegado arriba mientras se
   lee el panel, y una hoja al pie del mapa resume lo elegido. «Pantalla completa» fija la escena a la ventana. */

/* ── cabecera corta: el mapa, arriba ───────────────────────────────────────────────────────── */
.cx-cab{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem 1.4rem;align-items:baseline;padding:.9rem 0 .2rem}
.cx-cab .et.placa{grid-column:1/-1;justify-self:start}
.cx-cab .cx-titulo{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.1;letter-spacing:-.02em;white-space:nowrap}
.cx-cab .cx-titulo .fino{font-weight:300;color:var(--tinta-2)}
.cx-cab .cx-entradilla{margin:0;font-family:var(--serif);font-size:var(--t-apunte);color:var(--tinta-2);line-height:1.4}
.cx-kpis{margin:1.3rem 0 0}
.cx-kpis .kpis{background:none;border:0;padding:0;gap:0 1.6rem}
.cx-kpis .kpi{background:none;padding:.7rem 0 0;gap:.2rem;border-top:2px solid var(--linea-3)}

/* ── la escena ─────────────────────────────────────────────────────────────────────────────── */
.cx-escena{position:relative;margin:.6rem 0 0;border-top:1px solid var(--linea);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
.cx-escena .cx-mandos{grid-row:1;grid-column:1}
.cx-escena .cx-mapa{grid-row:2;grid-column:1;position:relative;height:min(84vh,56rem);min-height:22rem;background:var(--grano) var(--fondo);background-size:72px 72px;overflow:hidden;border-bottom:1px solid var(--linea-2)}
.cx-escena canvas.cx-lienzo{display:block;width:100%;height:100%;touch-action:pan-y;outline:none;cursor:grab}
.cx-escena canvas.cx-lienzo:focus-visible{box-shadow:inset 0 0 0 2px var(--acento)}
.cx-escena canvas.cx-lienzo:active{cursor:grabbing}
.cx-escena .cx-guias,.cx-escena .cx-rotulos{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.cx-guias line{stroke-width:1;opacity:.75}

/* rótulos: sin caja, con halo; anclados al anillo; dos escalas según la distancia */
.cx-rotulo{position:absolute;left:0;top:0;white-space:nowrap;font-family:var(--sans);line-height:1.1;color:var(--tinta);
  text-shadow:0 0 3px var(--fondo),0 0 3px var(--fondo),0 0 3px var(--fondo),0 1px 1px var(--fondo);will-change:transform;transition:opacity .25s}
.cx-rotulo-nodo b{font-weight:600;font-size:13px;letter-spacing:0}
.cx-rotulo-nodo small{margin-left:.45em;font-family:var(--mono);font-size:11px;color:var(--tinta-2)}
html.cx-cerca .cx-rotulo-nodo b{font-size:15px}
html.cx-cerca .cx-rotulo-nodo small{font-size:12px}
.cx-rotulo-nodo.cx-sel{padding:.18rem .45rem .2rem;background:rgba(20,17,16,.86);border:1px solid rgba(var(--cx-rgb,79,208,168),.8)}
.cx-rotulo-nodo.cx-tenue{opacity:.7!important}
.cx-rotulo-nodo.cx-sel b{font-size:15px}
.cx-rotulo-nodo.cx-sel small{color:var(--tinta)}
.cx-rotulo-com{font-family:var(--sans);font-size:11px;color:var(--tinta-3)}
.cx-rotulo-com.cx-sel{color:var(--acento)}
.cx-rotulo-org{font-size:12px;font-weight:500;color:var(--tinta-2)}
.cx-rotulo-org.cx-sel{font-size:14px;font-weight:600;color:var(--tinta)}
.cx-rotulo-prov{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--tr-baja);color:var(--tinta-4)}
.cx-rotulo-banda{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:var(--tr-baja);color:var(--tinta-3)}
.cx-rotulo-banda b{font-weight:500;color:var(--tinta-4);margin-right:.5em}
@media (prefers-reduced-motion:reduce){.cx-rotulo{transition:none}}

/* mandos sobre el lienzo: cuatro botones cuadrados y la pista */
.cx-botones-lienzo{position:absolute;right:calc(var(--cx-panel,0px) + .8rem);bottom:3.4rem;z-index:3;display:flex;flex-direction:column;gap:.3rem}
.cx-bl-volver{position:absolute;right:calc(var(--cx-panel,0px) + .8rem);bottom:.8rem;z-index:3;appearance:none;background:rgba(20,17,16,.82);border:1px solid var(--linea-3);color:var(--tinta);font-family:var(--sans);font-size:var(--t-sello);padding:.45rem .7rem;cursor:pointer;white-space:nowrap}
.cx-bl-volver:hover,.cx-bl-volver:focus-visible{border-color:var(--tinta);outline:none}
.cx-brujula{position:absolute;right:calc(var(--cx-panel,0px) + .8rem);top:.8rem;z-index:3;width:150px;height:112px;background:rgba(20,17,16,.6);border:1px solid var(--linea-2)}
.cx-brujula canvas{display:block;width:150px;height:112px}
.cx-tip{position:absolute;z-index:5;pointer-events:none;max-width:16rem;padding:.4rem .6rem;background:rgba(20,17,16,.9);border:1px solid var(--linea);font-family:var(--sans);font-size:var(--t-sello);line-height:1.35;color:var(--tinta)}
.cx-tip b{display:block;font-weight:600;font-size:var(--t-apunte)}
.cx-tip small{font-family:var(--mono);color:var(--tinta-3)}
.cx-mapa.cx-con-tarjeta .cx-pista{opacity:0}
.cx-cifra-larga{font-size:1.7rem!important;letter-spacing:-.02em!important}
.cx-bl{appearance:none;width:2.1rem;height:2.1rem;background:rgba(20,17,16,.78);border:1px solid var(--linea-3);color:var(--tinta-2);font-family:var(--mono);font-size:1rem;line-height:1;cursor:pointer;padding:0}
.cx-bl:hover,.cx-bl:focus-visible{color:var(--tinta);border-color:var(--tinta);outline:none}
.cx-pista{position:absolute;left:1rem;top:.8rem;margin:0;z-index:3;font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3);text-shadow:0 0 4px var(--fondo);transition:opacity .4s}
html.cx-gesto .cx-pista{opacity:0}
.cx-saltar{position:absolute;left:50%;top:.6rem;transform:translateX(-50%);z-index:3;appearance:none;background:rgba(20,17,16,.7);border:1px solid var(--linea-3);color:var(--tinta-2);
  font-family:var(--mono);font-size:var(--t-sello);text-transform:uppercase;letter-spacing:var(--tr-alta);padding:.45rem .7rem;cursor:pointer}
.cx-saltar:hover,.cx-saltar:focus-visible{color:var(--tinta);border-color:var(--tinta);outline:none}

/* el recorrido: la parada, al pie del lienzo */
.cx-parada{position:absolute;left:1rem;bottom:1rem;z-index:4;width:min(36rem,calc(100% - var(--cx-panel,0px) - 6rem));background:rgba(20,17,16,.92);
  border:1px solid var(--linea);border-left:3px solid var(--cx-c,var(--acento));padding:.9rem 1rem .7rem 1.1rem}
.cx-par-cuerpo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem 1rem;align-items:start}
.cx-par-cifra{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;letter-spacing:-.04em;color:var(--cx-c,var(--acento));white-space:nowrap}
.cx-par-frase{margin:.1rem 0 0;font-family:var(--sans);font-size:var(--t-dato);font-weight:500;line-height:1.28}
.cx-par-base{margin:.35rem 0 0;font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3);line-height:1.4}
.cx-par-propuesta{margin:.4rem 0 0;color:var(--acento);font-family:var(--display);font-weight:500;font-size:var(--t-apunte);line-height:1.3}
.cx-par-propuesta:not(:empty)::before{content:'→ '}
.cx-par-nav{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;padding-top:.55rem;border-top:1px solid var(--linea-2)}
.cx-par-ant,.cx-par-sig{appearance:none;width:1.9rem;height:1.9rem;background:none;border:1px solid var(--linea-3);color:var(--tinta);font-size:1.1rem;line-height:1;cursor:pointer;padding:0}
.cx-par-ant:hover,.cx-par-sig:hover,.cx-par-ant:focus-visible,.cx-par-sig:focus-visible{border-color:var(--tinta);outline:none}
.cx-par-ant:disabled{opacity:.3;cursor:default}
.cx-par-puntos{display:flex;gap:.35rem;list-style:none;margin:0 .3rem;padding:0}
.cx-par-puntos li{width:.55rem;height:.55rem;border:1px solid var(--tinta-4);cursor:pointer}
.cx-par-puntos li[aria-current="step"]{background:var(--cx-c,var(--acento));border-color:var(--cx-c,var(--acento))}
.cx-par-salir{margin-left:auto;appearance:none;background:none;border:0;border-bottom:1px solid var(--linea-3);padding:.2rem 0;cursor:pointer;color:var(--tinta-2);font-family:var(--sans);font-size:var(--t-sello)}
.cx-par-salir:hover,.cx-par-salir:focus-visible{color:var(--tinta);border-bottom-color:var(--tinta);outline:none}

/* la hoja inferior (solo móvil) */
.cx-hoja{display:none}

/* lo que ve quien no tiene WebGL ni JavaScript: la imagen fija, y la tabla de abajo */
.cx-escena .cx-fijo{display:block;width:100%;height:100%;object-fit:contain}
html.cx-sin-webgl .cx-escena canvas,html.cx-sin-webgl .cx-rotulos,html.cx-sin-webgl .cx-guias,html.cx-sin-webgl .cx-solo-3d,html.cx-sin-webgl .cx-saltar{display:none}
html:not(.cx-js) .cx-solo-js,html.cx-sin-webgl .cx-solo-js{display:none!important}
.cx-aviso-webgl{display:none;font-family:var(--mono);font-size:var(--t-apunte);color:var(--tinta-3);margin:.6rem 0 0}
html.cx-sin-webgl .cx-aviso-webgl{display:block}
/* CX_SIN_WEBGL_11NOV · la leyenda de la imagen fija, en el panel: lo mismo que la leyenda del lienzo */
html.cx-sin-webgl .cx-tira{display:none}      /* sin WebGL las pestañas no dibujan nada: la imagen es la primera capa y el panel lo dice */
/* sin JavaScript, fuera los mandos que van encima del lienzo (todos con posición absoluta: no mueven nada al aparecer) */
/* sin JavaScript, el lienzo, sus rótulos y lo que va encima no hacen nada: fuera, y la imagen fija (<noscript>) ocupa el mapa.
   La tira de pestañas se queda (va arriba en el flujo: quitarla y ponerla movería la página para quien sí tiene JavaScript) */
html:not(.cx-js) .cx-escena canvas,html:not(.cx-js) .cx-rotulos,html:not(.cx-js) .cx-guias,html:not(.cx-js) .cx-solo-3d{display:none}
.cx-fijo-ley{margin:.9rem 0 0;padding-top:.7rem;border-top:1px solid var(--linea)}
.cx-fijo-ley ol{list-style:none;margin:.5rem 0 .4rem;padding:0;display:grid;gap:.3rem}
.cx-fijo-ley li{display:grid;grid-template-columns:.75rem minmax(0,1fr) auto;gap:.6rem;align-items:center;font-family:var(--sans);font-size:15px;color:var(--tinta)}
.cx-fijo-ley li i{width:.7rem;height:.7rem;border-radius:50%}
.cx-fijo-ley li i.cx-fl-sin{background:rgba(243,236,222,.38)}
.cx-fijo-ley li b{font-family:var(--display);font-weight:500;font-variant-numeric:tabular-nums}
.cx-fijo-ley .cx-base{font-family:var(--mono);font-size:12px;color:var(--tinta-3);line-height:1.5}

/* ── los mandos: capas como pestañas tipográficas, filtros y búsqueda ────────────────────────── */
.cx-mandos{display:grid;grid-template-columns:minmax(0,1fr);gap:.15rem 0;padding:.25rem 0 .4rem;position:relative}
.cx-tira{display:flex;align-items:center;gap:.7rem;position:relative;min-width:0}
.cx-tira>.et{flex:0 0 7.6rem;font-family:var(--mono);font-size:var(--t-sello);letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-3);white-space:nowrap}
.cx-tira-medido{border-top:1px solid var(--linea)}
.cx-tira .cx-selectores{padding:0;margin-left:.2rem}
.cx-tira .cx-selectores select{min-width:9rem;max-width:16rem;padding-top:.22rem;padding-bottom:.22rem}
.cx-capas{display:flex;gap:0 1rem;flex-wrap:wrap;margin:0;padding:0;list-style:none;min-width:0}
.cx-capas button{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:.22rem 0 .25rem;margin:0;cursor:pointer;
  font-family:var(--sans);font-size:var(--t-ui);font-weight:500;color:var(--tinta-3);white-space:nowrap;letter-spacing:-.005em}
.cx-capas button[aria-selected="true"]{color:var(--tinta);border-bottom-color:var(--cx-color,var(--acento))}
.cx-capas button:hover{color:var(--tinta)}
.cx-capas button:focus-visible{outline:2px solid var(--acento);outline-offset:2px}
.cx-capas li.cx-sep{border-left:1px solid var(--linea);margin:.3rem .1rem .3rem}
.cx-mas-indicador{display:none}
.cx-filtros{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.cx-botones{margin-left:auto;display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}
.cx-filtros label{font-family:var(--mono);font-size:var(--t-sello);text-transform:uppercase;letter-spacing:var(--tr-alta);color:var(--tinta-4)}
.cx-filtros select,.cx-buscar input{appearance:none;background:var(--panel-3);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--r2);
  font-family:var(--sans);font-size:var(--t-apunte);padding:.42rem .6rem;min-height:2.2rem}
.cx-filtros select{padding-right:1.6rem;background-image:linear-gradient(45deg,transparent 50%,var(--tinta-3) 50%),linear-gradient(135deg,var(--tinta-3) 50%,transparent 50%);
  background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px;background-repeat:no-repeat;max-width:14rem}
.cx-filtros select:focus-visible,.cx-buscar input:focus-visible{outline:2px solid var(--acento);outline-offset:1px}
.cx-buscar{position:relative;flex:0 1 19rem;min-width:9rem}
.cx-buscar input{width:100%}
.cx-resultados{position:absolute;z-index:6;left:0;right:0;top:calc(100% + 2px);background:var(--panel-2);border:1px solid var(--linea);box-shadow:0 12px 30px rgba(0,0,0,.45);max-height:18rem;overflow:auto}
.cx-resultados:empty{display:none}
.cx-res{display:flex;flex-direction:column;gap:.1rem;width:100%;text-align:left;appearance:none;background:none;border:0;border-bottom:1px solid var(--linea-2);padding:.5rem .7rem;cursor:pointer;color:var(--tinta);font-family:var(--sans);font-size:var(--t-apunte)}
.cx-res small{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3)}
.cx-res:hover,.cx-res:focus-visible{background:var(--panel-3);outline:none}
.cx-nada{padding:.5rem .7rem;margin:0;font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3)}
.cx-botones .cx-txt{display:none}
.cx-botones .cx-ico{display:inline;font-size:.95rem;margin-right:.25rem}
.cx-botones .cx-corto{display:inline}
.cx-fuera{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);z-index:4;margin:0;padding:.7rem 1rem;background:rgba(20,17,16,.92);border:1px solid var(--linea);font-family:var(--mono);font-size:var(--t-apunte);color:var(--tinta-2);text-align:center}
.cx-fuera button{appearance:none;background:none;border:0;border-bottom:1px solid var(--acento);padding:.1rem 0;margin-left:.4rem;cursor:pointer;color:var(--acento);font:inherit}
.cx-fuera[hidden]{display:none}
/* la leyenda de la capa, siempre a la vista: la pregunta y los siete valores mayores con «n de m» */
.cx-leyenda-capa{position:absolute;left:.9rem;bottom:.9rem;z-index:3;max-width:21rem;padding:.5rem .7rem .4rem;background:rgba(20,17,16,.9);border:1px solid var(--linea);border-left:3px solid var(--cx-c,var(--acento))}
.cx-ley-pregunta{margin:0 0 .35rem;font-family:var(--sans);font-weight:600;font-size:var(--t-apunte);line-height:1.25;color:var(--tinta)}
.cx-ley-items{list-style:none;margin:0;padding:0}
.cx-ley-items li{margin:0}
.cx-ley-items button{appearance:none;display:grid;grid-template-columns:.8rem minmax(0,1fr) auto auto;gap:.45rem;align-items:center;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:2px;padding:.1rem .3rem .1rem .25rem;margin:0 -.3rem 0 -.25rem;cursor:pointer;color:var(--tinta);font-family:var(--sans);font-size:12px;line-height:1.25}
.cx-ley-items button:not([disabled])::after{content:"›";color:var(--tinta-3);font-family:var(--mono);font-size:12px;line-height:1}
.cx-ley-items button:not([disabled]):hover,.cx-ley-items button:not([disabled]):focus-visible{color:var(--acento-2);outline:none;border-color:var(--linea-3);background:rgba(243,236,222,.06)}
.cx-ley-items button:not([disabled]):hover::after,.cx-ley-items button:not([disabled]):focus-visible::after{color:var(--acento-2)}
.cx-ley-pista{margin:.3rem 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--tinta-3)}
.cx-ley-escala{margin:.35rem 0 0;padding-top:.3rem;border-top:1px solid var(--linea);font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--tinta-3);line-height:1.3}
.cx-ley-items li.cx-ley-nota{font-family:var(--mono);font-size:10.5px;color:var(--tinta-3);padding:.15rem 0 0}
.cx-selectores{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:center;padding:.1rem 0 .2rem}
.cx-selectores .et{font-family:var(--mono);font-size:var(--t-sello);letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-3);margin-right:.2rem}
.cx-selectores select{min-width:12rem;max-width:22rem}
.cx-mandos.cx-en-regla .cx-selectores select{border-color:var(--acento)}
.cx-fila.cx-fila-sel{color:var(--acento-2)}
.cx-rotulo-ocup{color:#E58A4C}
.cx-enlaces{list-style:none;margin:.2rem 0 0;padding:0}
.cx-rompe{word-break:break-all;overflow-wrap:anywhere}
.cx-enlaces li{margin:0 0 .2rem}
.cx-ley-items button[disabled]{cursor:default;color:var(--tinta-3)}
.cx-ley-items button.cx-ley-sel{color:var(--acento-2)}
.cx-ley-items i{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--c);box-shadow:0 0 5px var(--c)}
.cx-ley-items i.cx-apagado{box-shadow:none;opacity:.8}
.cx-ley-items i.cx-tenue{opacity:.45}
.cx-ley-items i.cx-suelo{opacity:.35;box-shadow:none}
.cx-ley-items .cx-ley-nombre{white-space:normal;overflow-wrap:break-word}      /* REVISOR2_11NOV · el texto entero, nunca «…» */
.cx-ley-items .cx-ley-num{font-family:var(--mono);font-size:11px;color:var(--tinta-2);font-variant-numeric:tabular-nums}
.cx-ver-recorrido{position:absolute;left:.9rem;top:2.4rem;z-index:3;appearance:none;background:rgba(20,17,16,.86);border:1px solid var(--acento);color:var(--acento);font-family:var(--sans);font-size:var(--t-apunte);font-weight:500;padding:.45rem .8rem;cursor:pointer}
.cx-ver-recorrido::before{content:'▶ ';font-size:.8em}
.cx-ver-recorrido:hover,.cx-ver-recorrido:focus-visible{background:var(--acento);color:var(--fondo);outline:none}
.cx-mapa.cx-con-tarjeta .cx-ver-recorrido,.cx-mapa.cx-con-tarjeta .cx-leyenda-capa,.cx-mapa.cx-con-pila .cx-leyenda-capa{display:none}
.cx-rotulo-mun{font-family:var(--sans);font-size:10px;color:var(--tinta-4)}
.cx-rotulo-luz{font-family:var(--sans);font-size:11px;font-weight:500;color:var(--tinta-2)}
.cx-rotulo-prov{font-size:11px;letter-spacing:.04em}
.cx-rotulo-com{font-size:12px}
.cx-swatch{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.45rem;vertical-align:-.02em;background:var(--c)}
.cx-vista,.cx-reset,.cx-inmersivo,.cx-plegar,.cx-recorrido,.cx-relieve{appearance:none;background:none;border:0;border-bottom:1px solid var(--linea-3);padding:.3rem 0;cursor:pointer;color:var(--tinta-2);font-family:var(--sans);font-size:var(--t-apunte)}
.cx-vista:hover,.cx-reset:hover,.cx-inmersivo:hover,.cx-plegar:hover,.cx-recorrido:hover,.cx-relieve:hover{color:var(--tinta);border-bottom-color:var(--tinta)}
.cx-vista:focus-visible,.cx-reset:focus-visible,.cx-inmersivo:focus-visible,.cx-plegar:focus-visible,.cx-recorrido:focus-visible,.cx-relieve:focus-visible{outline:2px solid var(--acento);outline-offset:3px}
.cx-recorrido{color:var(--acento)}
html.cx-sin-panel .cx-panel{display:none}

/* ── el panel: flota sobre el mapa, a la derecha ──────────────────────────────────────────────── */
.cx-panel{grid-row:2;grid-column:1;justify-self:end;align-self:stretch;z-index:2;position:relative;width:23rem;max-height:100%;min-height:0;overflow:auto;padding:1rem 1rem 1rem 1.1rem;scrollbar-width:thin;font-family:var(--sans);
  background:rgba(20,17,16,.92);border-left:1px solid var(--linea);border-bottom:1px solid var(--linea-2)}
html.cx-js .cx-panel{max-height:min(84vh,56rem)}   /* la fila de la rejilla es «auto»: sin esto, un panel largo («Lo medido») estira la página en vez de desplazarse */
html.cx-inmersivo .cx-panel{max-height:100%}
html.cx-sin-webgl .cx-panel,html:not(.cx-js) .cx-panel{grid-row:3;justify-self:stretch;width:auto;background:none;border:0;padding:1rem 0 0;max-height:none}
.cx-panel .cx-pan-cab{margin:0 0 .4rem}
.cx-panel .cx-pan-cab .et{display:block;font-family:var(--mono);font-size:var(--t-sello);text-transform:uppercase;letter-spacing:var(--tr-alta);color:var(--tinta-4);margin:0 0 .3rem}
.cx-panel h2{font-family:var(--display);font-size:var(--t-h3);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0}
.cx-panel .cx-pregunta{font-family:var(--serif);font-size:var(--t-apunte);color:var(--tinta-2);line-height:1.4;margin:.35rem 0 0}
.cx-dato{display:grid;grid-template-columns:minmax(4.6rem,max-content) minmax(0,1fr);gap:.8rem;align-items:start;padding:.9rem 0 .7rem;border-top:1px solid var(--linea);margin-top:.6rem}
.cx-dato .cx-cifra{margin:0;font-family:var(--display);font-weight:600;font-size:2.4rem;line-height:1;letter-spacing:-.04em;white-space:nowrap}
.cx-dato h3{margin:0;font-family:var(--sans);font-size:var(--t-dato);font-weight:500;line-height:1.28}
.cx-base,.cx-panel p.cx-base{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3);line-height:1.4;margin:.35rem 0 0}
.cx-propuesta,.cx-panel p.cx-propuesta{color:var(--acento);font-family:var(--display);font-weight:500;font-size:var(--t-apunte);line-height:1.3;margin:.45rem 0 0}
.cx-propuesta::before{content:'→ '}
.cx-nota,.cx-panel p.cx-nota{font-family:var(--serif);font-size:var(--t-apunte);color:var(--tinta-2);line-height:1.45;margin:.7rem 0 0}
.cx-lista-tit,.cx-capa-tit{font-family:var(--mono);font-size:var(--t-sello);font-weight:500;text-transform:uppercase;letter-spacing:var(--tr-alta);color:var(--tinta-4);margin:1.1rem 0 .3rem;padding-bottom:.3rem;border-bottom:1px solid var(--linea)}
.cx-capa-tit{color:var(--tinta-2)}
.cx-lista{list-style:none;margin:0;padding:0}
.cx-lista li{margin:0}
.cx-fila{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:baseline;width:100%;text-align:left;appearance:none;background:none;border:0;
  padding:.42rem 0 .5rem;cursor:pointer;color:var(--tinta);font-family:var(--sans);font-size:var(--t-apunte);line-height:1.25;border-bottom:1px solid var(--linea-2)}
.cx-fila .cx-nombre{white-space:normal;overflow-wrap:break-word}
.cx-fila .cx-num{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-2);font-variant-numeric:tabular-nums}
.cx-fila .cx-barra{position:absolute;left:0;bottom:-1px;height:2px;opacity:.55;pointer-events:none}
.cx-fila:hover,.cx-fila:focus-visible{color:var(--acento-2);outline:none}
.cx-fila:hover .cx-barra,.cx-fila:focus-visible .cx-barra{opacity:1}
.cx-publico{font-style:italic;color:var(--tinta-2)}
.cx-reparto{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .8rem;margin:0;font-size:var(--t-apunte)}
.cx-reparto dt{color:var(--tinta-2)}
.cx-reparto dd{margin:0;font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta);text-align:right;font-variant-numeric:tabular-nums}
.cx-volver{appearance:none;background:none;border:0;padding:0 0 .5rem;cursor:pointer;color:var(--tinta-3);font-family:var(--mono);font-size:var(--t-sello);text-transform:uppercase;letter-spacing:var(--tr-alta)}
.cx-volver::before{content:'← '}
.cx-volver:hover,.cx-volver:focus-visible{color:var(--acento);outline:none}
.cx-detalle:focus{outline:none}
.cx-enlace{display:inline-block;margin:.9rem 0 0;color:var(--acento);font-size:var(--t-apunte);border-bottom:1px solid currentColor;text-decoration:none}
.cx-vacio{margin:.8rem 0 0;padding:.8rem 0 0;border-top:1px solid var(--linea)}
.cx-vacio p{margin:0;font-family:var(--serif);font-size:var(--t-apunte);color:var(--tinta-2);line-height:1.45}
.cx-vacio button{appearance:none;background:none;border:0;border-bottom:1px solid var(--acento);padding:.2rem 0;margin:.5rem 1rem 0 0;cursor:pointer;color:var(--acento);font-family:var(--sans);font-size:var(--t-apunte)}
.cx-ayuda{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-4);margin:.5rem 0 0;line-height:1.5}
.cx-ayuda kbd{font:inherit;color:var(--tinta-3)}
.cx-leyenda{display:flex;gap:.4rem 1.3rem;flex-wrap:wrap;align-items:baseline;font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3);margin:.6rem 0 0}
.cx-leyenda i{display:inline-block;width:.55em;height:.55em;border-radius:50%;margin-right:.45em;vertical-align:.02em;background:var(--tinta)}
.cx-leyenda i.cx-polvo{background:var(--mudo);opacity:.6}
.cx-leyenda i.cx-nodo{background:var(--cx-color,var(--acento))}
.cx-leyenda i.cx-arco{width:1.1em;height:2px;border-radius:0;background:var(--cx-color,var(--acento));vertical-align:.25em;opacity:.8}

/* ── pantalla completa ─────────────────────────────────────────────────────────────────────────── */
html.cx-inmersivo{overflow:hidden}
html.cx-inmersivo .cabecera,html.cx-inmersivo .luz,html.cx-inmersivo .saltar{visibility:hidden}
html.cx-inmersivo .cx-escena{position:fixed;inset:0;z-index:1000;margin:0;border:0;background:var(--fondo);padding:0 1rem;grid-template-rows:auto minmax(0,1fr)}
html.cx-inmersivo .cx-escena .cx-mapa{height:auto;min-height:0;margin:0 -1rem;border:0}
html.cx-inmersivo .cx-escena .cx-fijo{display:none}
.cx-escena:fullscreen{padding:0 1rem}

/* ── la tabla: lo mismo, en HTML ───────────────────────────────────────────────────────────────── */
.cx-tabla table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:var(--t-apunte);margin:.4rem 0 0}
.cx-tabla th,.cx-tabla td{text-align:left;padding:.4rem .6rem .4rem 0;border-bottom:1px solid var(--linea-2);vertical-align:top}
.cx-tabla th{font-family:var(--mono);font-size:var(--t-sello);font-weight:500;text-transform:uppercase;letter-spacing:var(--tr-alta);color:var(--tinta-4)}
.cx-tabla td.n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-tabla td .cx-barra{display:block;height:2px;margin-top:.3rem;opacity:.6}
.cx-tabla summary{cursor:pointer}
.cx-tabla summary .n{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3);margin-left:.6em}

/* ── escritorio estrecho: panel plegado por defecto ───────────────────────────────────────────── */
@media (min-width:761px) and (max-width:1100px){
  .cx-panel{width:18rem}
  .cx-cab .cx-titulo{white-space:normal}
}

/* ── móvil: lienzo pegado arriba, hoja al pie, panel debajo ───────────────────────────────────── */
@media (max-width:760px){
  .cx-cab{grid-template-columns:minmax(0,1fr);gap:.2rem;padding:.6rem 0 .2rem}
  .cx-cab .cx-titulo{white-space:normal;font-size:1.5rem}
  .cx-escena .cx-mapa{height:min(62vh,calc(100vw * 0.9));margin:0 calc(-1 * var(--marco));position:sticky;top:0;z-index:3}
  .cx-mandos{gap:.45rem;padding:.4rem 0 .45rem}
  .cx-capas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--marco));padding:0 var(--marco) .2rem;gap:0 .95rem;-webkit-overflow-scrolling:touch}
  .cx-capas::-webkit-scrollbar{display:none}
  .cx-capas button{font-size:var(--t-apunte)}
  .cx-mas-indicador{display:block;position:absolute;right:calc(-1 * var(--marco));top:0;height:2.3rem;width:4.2rem;pointer-events:none;opacity:0;transition:opacity .2s;
    background:linear-gradient(90deg,rgba(20,17,16,0),var(--fondo) 55%);font-family:var(--mono);font-size:1rem;color:var(--tinta-2);text-align:right;line-height:2.3rem;padding-right:.55rem}
  .cx-mandos.cx-mas .cx-mas-indicador{opacity:1}
  .cx-botones{margin-left:0;width:auto;justify-content:flex-start;gap:.4rem;flex:0 0 auto}
  .cx-botones button{border:1px solid var(--linea-3);height:2.2rem;padding:0 .55rem;text-align:center;font-size:var(--t-sello);line-height:1;display:inline-flex;align-items:center;gap:.35rem}
  .cx-botones .cx-txt{display:none}
  .cx-botones .cx-ico{display:inline;font-size:.95rem}
  .cx-botones .cx-corto{display:inline}
  .cx-plegar{display:none!important}
  .cx-filtros{gap:.4rem}
  .cx-filtros select{flex:1 1 30%}
  .cx-buscar{flex:1 1 100%;order:3}
  .cx-filtros select{max-width:100%;flex:1 1 40%;min-width:0}
  .cx-buscar{flex:1 1 100%}
  .cx-panel{grid-row:3;justify-self:stretch;width:auto;background:none;border:0;backdrop-filter:none;max-height:none;overflow:visible;padding:.9rem 0 0;position:static;z-index:auto}
  .cx-hoja{display:flex;position:absolute;left:0;right:0;bottom:0;z-index:4;align-items:center;gap:.8rem;padding:.6rem var(--marco);background:rgba(20,17,16,.9);border-top:1px solid var(--linea)}
  .cx-hoja[hidden]{display:none}
  .cx-hoja-texto{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:.1rem}
  .cx-hoja-nombre{font-family:var(--sans);font-weight:600;font-size:var(--t-apunte);white-space:normal}
  .cx-hoja-cifra{font-family:var(--mono);font-size:var(--t-sello);color:var(--tinta-3)}
  .cx-hoja-ver{appearance:none;background:none;border:1px solid var(--linea-3);color:var(--tinta);font-family:var(--sans);font-size:var(--t-sello);padding:.4rem .6rem;cursor:pointer;white-space:nowrap}
  .cx-escena .cx-parada{position:relative;left:auto;right:auto;bottom:auto;width:auto;grid-row:3;grid-column:1;border-left:0;border-top:3px solid var(--cx-c,var(--acento));padding:.7rem 0 .55rem;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .cx-escena .cx-panel{grid-row:4}
  .cx-par-cifra{font-size:2.1rem}
  .cx-par-frase{font-size:var(--t-apunte)}
  .cx-par-base{display:block;font-size:11px}
  .cx-par-salir{font-size:var(--t-sello)}
  .cx-botones-lienzo{right:.5rem;bottom:auto;top:.5rem}
  .cx-bl-volver{right:.5rem;bottom:3.2rem}
  .cx-brujula{right:auto;left:.5rem;top:.5rem;bottom:auto;width:96px;height:72px}
  .cx-pista{top:5.4rem}
  .cx-brujula canvas{width:96px;height:72px}
  .cx-pista{top:.6rem;bottom:auto;left:.8rem}
  .cx-tira{flex-wrap:wrap;gap:.2rem .5rem}
  .cx-tira>.et{display:none}
  .cx-tira .cx-selectores{width:100%;margin:0;display:flex;gap:.4rem}
  .cx-tira .cx-selectores select{flex:1 1 45%;min-width:0;max-width:none}
  .cx-tira-medido{border-top:0}
  .cx-botones{margin-left:0;gap:.5rem}
  .cx-botones .cx-corto{display:none}
  .cx-botones .cx-ico{margin-right:0;font-size:1.05rem}
  .cx-botones button{padding:.35rem .5rem}
  .cx-buscar{flex:1 1 40%;order:0;min-width:8rem}
  .cx-leyenda-capa{position:static;max-width:none;margin:0 calc(-1 * var(--marco));border-left:0;border-top:3px solid var(--cx-c,var(--acento));border-bottom:1px solid var(--linea);padding:.5rem var(--marco) .4rem;grid-row:3;grid-column:1}
  .cx-ley-items{display:flex;gap:.2rem .9rem;flex-wrap:wrap}
  .cx-ley-items button{width:auto;display:inline-grid}
  .cx-ver-recorrido{top:auto;bottom:3.2rem;left:auto;right:.5rem;font-size:var(--t-sello);padding:.35rem .6rem}
  .cx-escena .cx-leyenda-capa{grid-row:4}
  .cx-escena .cx-parada{grid-row:3}
  .cx-escena .cx-panel{grid-row:5}
  .cx-tip{display:none}
  .cx-pista{top:auto;bottom:.6rem;left:.8rem}
  html.cx-inmersivo .cx-escena{padding:0 .6rem;overflow:auto;grid-template-rows:auto 58vh auto}
  html.cx-inmersivo .cx-escena .cx-mapa{margin:0 -.6rem;position:relative}
  .cx-dato .cx-cifra{font-size:2.2rem}
  .cx-rotulo-nodo b{font-size:12px}
  html.cx-cerca .cx-rotulo-nodo b{font-size:13px}
  /* TABLA_REGLAS_390_12NOV · solo en las tablas de proveedores («Qué organismos»): en las de reglas quitaba «no consta en lo juzgado» y en la
     de organismos la primera capa */
  .cx-tabla details.plegado:not(.cx-capa-tabla):not(.cx-tabla-org) th:nth-child(4),.cx-tabla details.plegado:not(.cx-capa-tabla):not(.cx-tabla-org) td:nth-child(4){display:none}
}

/* REVISOR_11NOV · lo que encontró la revisión independiente en la página del sitio */
/* el panel en el móvil: la regla de escritorio (html.cx-js, más específica) le ponía tope de alto y el contenido se salía sobre las cifras */
@media (max-width:760px){html.cx-js .cx-panel{max-height:none;overflow:visible}.cx-ayuda{display:none}}
/* rótulos enteros: la leyenda y las listas del panel cortaban los nombres a media palabra */
.cx-ley-nombre,.cx-nombre{white-space:normal;overflow:visible;text-overflow:clip}
/* ninguna letra por debajo de 12 px */
.cx-ley-pista,.cx-ley-escala,.cx-ley-nota,.cx-ley-num,.cx-par-base{font-size:12px}
.cx-tabla small,.cx-tabla table small{font-size:12px}
.cx-fijo-ley{max-width:42rem}

/* ROTULOS_MOVIL_11NOV · a 390 las luces tapaban los nombres de las comunidades: en el móvil cada rótulo lleva un fondo oscuro y un tono más claro */
@media (max-width:47.5rem){.cx-rotulo-com,.cx-rotulo-prov,.cx-rotulo-org,.cx-rotulo-banda{background:rgba(20,17,16,.8);padding:.08em .32em;border-radius:2px;color:var(--tinta-2)}.cx-rotulo-com{font-size:11.5px}}

/* ══════════════════════════════════════════════════════════════════════════════════════════
   AD1_11NOV · dirección de arte «editorial sobria», elegida por el propietario sobre la opción F: el mapa a todo el ancho
   como protagonista (70 vh), un solo selector de capa como titular (nombre · pregunta · cifra), los mandos de cámara que
   aparecen al pasar el ratón, la leyenda bajo el mapa en una línea, el panel como columna editorial debajo y, en el móvil,
   la leyenda y el panel como hoja inferior que se desliza. Los selectores van con prefijo .cx-escena para pisar las reglas
   .cx- de la capa pro, que se cargan después de esta hoja.
   ══════════════════════════════════════════════════════════════════════════════════════════ */
.cx-escena{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;border-top:0;margin-top:.4rem}
.cx-escena .cx-mapa{grid-row:2;height:min(70vh,46rem);min-height:22rem;background:var(--fondo);background-image:none;border-top:1px solid var(--linea-3);border-bottom:1px solid var(--linea-3)}
.cx-escena .cx-mandos{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem 0;padding:1rem 0 .9rem}
/* el titular: la capa, su pregunta y su cifra */
.cx-titular{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:.2rem 2rem;align-items:end;max-width:none}
.cx-capa-btn{grid-column:1;grid-row:1;appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;color:var(--tinta);font-family:var(--display);font-weight:600;font-size:var(--p-32,2rem);line-height:1.1;letter-spacing:-.02em;display:inline-flex;align-items:baseline;gap:.5rem}
.cx-capa-btn .et{display:inline-block;font-family:var(--mono);font-size:var(--p-12,.75rem);font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-4);margin:0 .4rem 0 0;transform:translateY(-.35em)}
.cx-capa-flecha{display:inline-block;width:.42em;height:.42em;border-right:2px solid var(--tinta-3);border-bottom:2px solid var(--tinta-3);transform:rotate(45deg) translateY(-.35em);transition:transform var(--mov-corto,.16s)}
.cx-capa-btn[aria-expanded="true"] .cx-capa-flecha{transform:rotate(225deg) translateY(.05em)}
.cx-capa-btn:hover .cx-capa-nombre,.cx-capa-btn:focus-visible .cx-capa-nombre{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em;text-decoration-color:var(--cx-color,var(--acento))}
.cx-capa-btn:focus-visible{outline:2px solid var(--acento);outline-offset:4px}
.cx-capa-preg{grid-column:1;grid-row:2;margin:0;font-family:var(--serif);font-size:var(--p-17,1.0625rem);line-height:1.4;color:var(--tinta-2)}
.cx-capa-cifra{grid-column:2;grid-row:1/3;margin:0;text-align:right;align-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}
.cx-capa-num{font-family:var(--display);font-weight:600;font-size:var(--p-44,2.75rem);line-height:1;letter-spacing:-.04em;color:var(--cx-color,var(--tinta));font-variant-numeric:tabular-nums lining-nums}
.cx-capa-sub{font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.04em;color:var(--tinta-3);max-width:18rem;text-align:right}
/* el menú de capas: un listbox con teclado y foco visible */
.cx-menu{position:absolute;z-index:12;left:0;top:calc(100% + .7rem);width:36rem;max-width:calc(100vw - 2rem);padding:.6rem 0 .5rem;background:var(--fondo);border:1px solid var(--linea-3);box-shadow:0 18px 40px rgba(0,0,0,.55);display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.cx-menu[hidden]{display:none}
.cx-menu:focus{outline:none}
.cx-menu-et{display:block;font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-4);padding:.5rem 1rem .3rem}
.cx-capa-op{display:flex;align-items:center;gap:.6rem;padding:.38rem 1rem;cursor:pointer;font-family:var(--sans);font-size:var(--p-15,.9375rem);color:var(--tinta-2);border-left:2px solid transparent}
.cx-capa-op i{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:var(--cx-color);flex:0 0 auto}
.cx-capa-op:hover,.cx-capa-op:focus{color:var(--tinta);background:rgba(243,236,222,.05);outline:none}
.cx-capa-op:focus-visible{border-left-color:var(--acento);background:rgba(79,208,168,.1)}
.cx-capa-op[aria-selected="true"]{color:var(--tinta);border-left-color:var(--cx-color,var(--acento))}
/* los selectores de regla y los filtros: una línea de mono con filete, sin aspecto nativo */
.cx-escena .cx-selectores{padding:0;gap:.5rem 1rem}
.cx-escena .cx-selectores .et{display:none}
.cx-escena .cx-filtros{gap:.6rem 1.6rem;align-items:baseline;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--linea-2)}
.cx-escena .cx-filtros select,.cx-escena .cx-buscar input,.cx-escena .cx-selectores select{appearance:none;-webkit-appearance:none;background:none;border:0;border-bottom:1px solid var(--linea-3);border-radius:0;padding:.35rem 1.4rem .35rem 0;font-family:var(--mono);font-size:var(--p-13,.8125rem);letter-spacing:.02em;color:var(--tinta-2);min-height:0;max-width:13rem;min-width:0}
.cx-escena .cx-filtros select,.cx-escena .cx-selectores select{background-image:linear-gradient(45deg,transparent 50%,var(--tinta-3) 50%),linear-gradient(135deg,var(--tinta-3) 50%,transparent 50%);background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.cx-escena .cx-filtros select:focus-visible,.cx-escena .cx-buscar input:focus-visible,.cx-escena .cx-selectores select:focus-visible{outline:2px solid var(--acento);outline-offset:2px;border-bottom-color:var(--acento)}
.cx-escena .cx-selectores select:disabled{color:var(--tinta-4);border-bottom-color:var(--linea-2)}
.cx-escena .cx-buscar{flex:0 0 18rem}      /* BUSCADOR_12NOV · a 14 rem «Buscar organismo o tecnología» salía cortado en el campo */
.cx-escena .cx-buscar input{padding-right:0;max-width:none;width:100%}
.cx-escena .cx-botones{margin-left:auto;gap:1.2rem}
.cx-escena .cx-botones .cx-txt{display:inline}
.cx-escena .cx-vista,.cx-escena .cx-inmersivo,.cx-escena .cx-recorrido,.cx-escena .cx-relieve{font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3);border:0;border-bottom:1px solid transparent;padding:.3rem 0}
.cx-escena .cx-vista:hover,.cx-escena .cx-inmersivo:hover,.cx-escena .cx-recorrido:hover,.cx-escena .cx-relieve:hover{color:var(--tinta);border-bottom-color:var(--tinta)}
.cx-escena .cx-recorrido{color:var(--acento)}
.cx-escena .cx-recorrido:hover{border-bottom-color:var(--acento)}
/* los mandos de cámara: aparecen al pasar el ratón o al entrar el foco; la brújula sin caja */
.cx-botones-lienzo,.cx-bl-volver,.cx-ver-recorrido,.cx-pista{opacity:0;transition:opacity .25s}
.cx-mapa:hover .cx-botones-lienzo,.cx-mapa:hover .cx-bl-volver,.cx-mapa:hover .cx-ver-recorrido,.cx-mapa:hover .cx-pista,.cx-mapa:focus-within .cx-botones-lienzo,.cx-mapa:focus-within .cx-bl-volver,.cx-mapa:focus-within .cx-ver-recorrido{opacity:1}
html.cx-gesto .cx-mapa:hover .cx-pista{opacity:0}
.cx-botones-lienzo{right:1rem;bottom:3.6rem}
.cx-bl{background:none;border:1px solid var(--linea-3);color:var(--tinta-3);width:1.9rem;height:1.9rem;font-size:.9rem}
.cx-bl:hover,.cx-bl:focus-visible{border-color:var(--tinta);color:var(--tinta)}
.cx-bl-volver{right:1rem;bottom:1rem;background:none;border:0;border-bottom:1px solid var(--linea-3);font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3);padding:.3rem 0}
.cx-brujula{background:none;border:0;width:120px;height:90px;opacity:.7;right:1rem;top:1rem}
.cx-brujula canvas{width:120px;height:90px}
.cx-ver-recorrido{background:none;border:0;border-bottom:1px solid var(--acento);color:var(--acento);font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.08em;text-transform:uppercase;padding:.3rem 0;top:1rem;left:1.25rem}
.cx-ver-recorrido::before{content:''}
.cx-ver-recorrido:hover,.cx-ver-recorrido:focus-visible{background:none;color:var(--acento-2);border-bottom-color:var(--acento-2)}
.cx-pista{left:1.25rem;top:3.1rem}
.cx-saltar{top:1rem}
.cx-parada{left:1.25rem;bottom:1.25rem;background:var(--fondo);border:1px solid var(--linea-3);border-left:3px solid var(--cx-c,var(--acento))}
.cx-fuera{background:var(--fondo)}
/* bajo el mapa: la leyenda en una línea y el panel como columna editorial */
.cx-bajo{grid-row:3;grid-column:1;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.cx-escena .cx-leyenda-capa{position:static;max-width:none;margin:0;padding:.7rem 0 .5rem;background:none;border:0;border-bottom:1px solid var(--linea-2);transition:opacity .3s}
.cx-escena .cx-ley-pregunta{font-family:var(--serif);font-weight:400;font-size:var(--p-15,.9375rem);color:var(--tinta-2);margin:0 0 .4rem}
.cx-escena .cx-ley-items{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}
.cx-escena .cx-ley-items button{width:auto;display:inline-grid;grid-template-columns:auto auto auto;gap:.45rem;padding:.15rem 0;margin:0;border:0;border-bottom:1px solid transparent;border-radius:0;font-family:var(--sans);font-size:var(--p-14,.875rem);transition:color var(--mov-corto,.16s)}
.cx-escena .cx-ley-items button:not([disabled])::after{content:''}
.cx-escena .cx-ley-items button:not([disabled]):hover,.cx-escena .cx-ley-items button:not([disabled]):focus-visible{background:none;color:var(--acento-2);border-bottom-color:var(--acento-2);outline:none}
.cx-escena .cx-ley-items button:not([disabled]):focus-visible{outline:2px solid var(--acento);outline-offset:3px}
.cx-escena .cx-ley-items button.cx-ley-sel{color:var(--tinta);border-bottom-color:var(--c)}
.cx-escena .cx-ley-items .cx-ley-num{font-size:var(--p-13,.8125rem);color:var(--tinta-3)}
.cx-escena .cx-ley-items i{width:.5rem;height:.5rem;box-shadow:none}
.cx-escena .cx-ley-pista,.cx-escena .cx-ley-escala{font-family:var(--mono);font-size:var(--p-12,.75rem);color:var(--tinta-4);margin:.4rem 0 0;border:0;padding:0}
.cx-escena .cx-ley-escala{display:none}
.cx-escena .cx-panel,html.cx-js .cx-escena .cx-panel{grid-row:auto;grid-column:1;justify-self:start;width:auto;max-width:var(--medida,42rem);background:none;border:0;padding:1.4rem 0 0;max-height:none;overflow:visible;z-index:auto;position:static}
html.cx-sin-panel .cx-bajo .cx-panel{display:none}
.cx-mapa.cx-con-pila .cx-leyenda-capa{display:block}
.cx-escena .cx-hoja{display:none}
/* rótulos con jerarquía: comunidades en versalitas de display, provincias en mono espaciado, pueblos en redonda, el elegido en display */
.cx-rotulo-com{font-family:var(--display);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3)}
.cx-rotulo-com.cx-sel{color:var(--acento)}
.cx-rotulo-prov{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--tinta-4)}
.cx-rotulo-luz{font-family:var(--sans);font-size:11px;font-weight:400;color:var(--tinta-2)}
.cx-rotulo-mun{font-size:10px;color:var(--tinta-4);opacity:.8}
.cx-rotulo-org.cx-sel{font-family:var(--display);font-size:15px;font-weight:600;color:var(--tinta)}
/* la tabla por organismo (el equivalente sin WebGL) · TABLA_ORG_12NOV: una tabla del sistema. El organismo, fijo a la izquierda y en su
   letra (el nombre en la de la interfaz; si es un dominio, en la de lo literal), no en las versalitas de máquina de escribir de las
   cabeceras; las capas, agrupadas por su banda del mapa con el rótulo y el color de la banda encima; y, con JavaScript, se elige qué banda
   se ve (columnas.js: visibility:collapse en su <colgroup>). Sin JavaScript se ven todas y la tabla se desplaza */
.cx-tabla-org-caja{max-height:36rem;overflow:auto;border-top:1px solid var(--linea-3);border-bottom:1px solid var(--linea-2)}
.cx-tabla-org-caja:focus-visible{outline:2px solid var(--acento);outline-offset:2px}   /* ACCESIBLE_12NOV · región desplazable con teclado (2.1.1) */
.cx-tabla .cx-tabla-org table{font-size:var(--p-13,.8125rem);margin:0;border-collapse:separate;border-spacing:0}
.cx-tabla .cx-tabla-org th,.cx-tabla .cx-tabla-org td{padding:.5rem 1.1rem .5rem 0;line-height:1.35}
.cx-tabla .cx-tabla-org td{min-width:7.5rem}       /* cada capa, de 7,5 rem y en dos renglones si hace falta: a 1.440 se ven ocho columnas, no cuatro */
.cx-tabla .cx-tabla-org thead th{white-space:nowrap}
.cx-tabla .cx-tabla-org tbody th{position:sticky;left:0;z-index:1;min-width:12rem;background:var(--fondo);font-family:var(--sans);font-size:var(--p-14,.875rem);
  font-weight:500;text-transform:none;letter-spacing:0;color:var(--tinta);box-shadow:inset -1px 0 0 var(--linea-2)}
.cx-tabla .cx-tabla-org tbody th.dom{font-family:var(--mono);font-size:var(--p-13,.8125rem);font-weight:400}
.cx-tabla .cx-tabla-org td:nth-of-type(2){box-shadow:inset -1px 0 0 var(--linea-2)}      /* tras tipo y provincia empiezan las capas */
.cx-tabla .cx-tabla-org td:nth-of-type(1){min-width:10.5rem}      /* «Administración General del Estado», en dos renglones y no en tres */
.cx-tabla .cx-tabla-org thead th,.cx-tabla .cx-tabla-org thead td{position:sticky;z-index:2;background:var(--fondo)}
.cx-tabla .cx-tabla-org thead tr.grupos>*{top:0;height:2.1rem;box-sizing:border-box;padding:.55rem 1.1rem 0 0;border-bottom:0}
.cx-tabla .cx-tabla-org thead tr:not(.grupos)>*{top:2.1rem}
.cx-tabla .cx-tabla-org thead tr:not(.grupos)>th:first-child,.cx-tabla .cx-tabla-org thead tr.grupos>td:first-child{left:0;z-index:3}
.cx-tabla .cx-tabla-org thead tr.grupos th{font-family:var(--display);font-size:var(--p-13,.8125rem);font-weight:500;text-transform:none;
  letter-spacing:0;color:var(--tinta-2);box-shadow:inset 0 2px 0 var(--b,var(--linea-3))}
.cx-tabla-org-caja[data-ver="aplicacion"] colgroup:not(.fijo):not(.b-aplicacion),
.cx-tabla-org-caja[data-ver="interfaz"] colgroup:not(.fijo):not(.b-interfaz),
.cx-tabla-org-caja[data-ver="maquina"] colgroup:not(.fijo):not(.b-maquina),
.cx-tabla-org-caja[data-ver="nombres"] colgroup:not(.fijo):not(.b-nombres),
.cx-tabla-org-caja[data-ver="fuera"] colgroup:not(.fijo):not(.b-fuera){visibility:collapse}
.cx-elige{display:flex;flex-wrap:wrap;gap:.2rem 1.4rem;margin:1rem 0 .6rem}
.cx-elige[hidden]{display:none}
.cx-elige button{font-family:var(--sans);font-size:var(--p-14,.875rem);color:var(--tinta-3);background:none;border:0;border-bottom:1px solid transparent;
  border-radius:0;padding:.4rem 0;min-height:24px;cursor:pointer}
.cx-elige button:hover{color:var(--tinta)}
.cx-elige button[aria-pressed="true"]{color:var(--tinta);border-bottom-color:var(--acento)}
.cx-elige button:focus-visible{outline:2px solid var(--acento);outline-offset:2px}
@media (max-width:640px){.cx-tabla .cx-tabla-org tbody th{width:9.5rem;min-width:9.5rem;overflow-wrap:anywhere}.cx-tabla .cx-tabla-org td{min-width:6.5rem}}   /* un dominio largo parte: si no, ocupaba la pantalla */
/* sin WebGL ni JavaScript, el titular se queda como texto y el menú no se abre */
html.cx-sin-webgl .cx-capa-btn,html:not(.cx-js) .cx-capa-btn{pointer-events:none}
html.cx-sin-webgl .cx-capa-flecha,html:not(.cx-js) .cx-capa-flecha,html.cx-sin-webgl .cx-menu,html:not(.cx-js) .cx-menu{display:none}
html.cx-sin-webgl .cx-bajo .cx-leyenda-capa{display:none}
@media (prefers-reduced-motion:reduce){.cx-botones-lienzo,.cx-bl-volver,.cx-ver-recorrido,.cx-pista,.cx-escena .cx-leyenda-capa,.cx-capa-flecha{transition:none}}
/* ── escritorio estrecho ── */
@media (min-width:761px) and (max-width:1100px){.cx-capa-btn{font-size:var(--p-26,1.625rem)}.cx-capa-num{font-size:var(--p-32,2rem)}}
/* ── móvil: el mapa pegado arriba; la leyenda y el panel como hoja inferior que se desliza ── */
@media (max-width:760px){
  .cx-escena .cx-mandos{gap:.5rem 0;padding:.6rem 0 .6rem}
  .cx-titular{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:.15rem 0}
  .cx-capa-btn{font-size:var(--p-26,1.625rem)}
  .cx-capa-preg{font-size:var(--p-15,.9375rem)}
  .cx-capa-cifra{grid-column:1;grid-row:3;align-items:flex-start;text-align:left;flex-direction:row;align-items:baseline;gap:.6rem;margin-top:.2rem}
  .cx-capa-num{font-size:var(--p-26,1.625rem)}
  .cx-capa-sub{text-align:left}
  .cx-menu{grid-template-columns:1fr;width:calc(100vw - 2rem)}
  .cx-escena .cx-filtros{gap:.5rem 1rem}
  .cx-escena .cx-filtros select{flex:1 1 40%;max-width:none}
  .cx-escena .cx-buscar{flex:1 1 100%;order:3}
  .cx-escena .cx-botones{margin-left:0;width:100%;justify-content:flex-start;gap:1rem}
  .cx-escena .cx-mapa{height:min(62vh,calc(100vw * 0.9));margin:0 calc(-1 * var(--marco));position:sticky;top:0;z-index:3}
  .cx-botones-lienzo,.cx-bl-volver,.cx-ver-recorrido{opacity:1}
  .cx-botones-lienzo{right:.5rem;bottom:auto;top:.5rem}
  .cx-bl-volver{right:.5rem;bottom:5.6rem}
  .cx-brujula{left:auto;right:3.2rem;top:.5rem;width:84px;height:63px;opacity:.75}.cx-brujula canvas{width:84px;height:63px}
  .cx-ver-recorrido{top:auto;bottom:5.6rem;left:.8rem}
  .cx-pista{top:.6rem;left:.8rem;bottom:auto}
  .cx-escena .cx-parada{position:relative;left:auto;right:auto;bottom:auto;width:auto;grid-row:3;grid-column:1;border:0;border-top:3px solid var(--cx-c,var(--acento));padding:.7rem 0 .55rem;background:none}
  /* la hoja inferior: asoma con el nombre y la cifra; se abre con «Ver detalle» o arrastrando el asa */
  .cx-bajo{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--fondo);border-top:1px solid var(--linea-3);box-shadow:0 -12px 30px rgba(0,0,0,.45);max-height:84vh;display:flex;flex-direction:column;transform:translateY(calc(100% - var(--cx-asoma,4.4rem)));transition:transform .36s cubic-bezier(.2,.8,.2,1)}
  .cx-bajo.cx-abierta{transform:none}
  .cx-escena .cx-hoja{display:flex;position:static;z-index:auto;align-items:center;gap:.8rem;padding:.55rem var(--marco);background:none;border:0;min-height:4.4rem;box-sizing:border-box}
  .cx-escena .cx-hoja[hidden]{display:flex}
  .cx-hoja::before{content:'';position:absolute;left:50%;top:.35rem;width:2.4rem;height:3px;margin-left:-1.2rem;border-radius:2px;background:var(--linea-3)}
  .cx-hoja-texto{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:.1rem}
  .cx-hoja-nombre{font-family:var(--display);font-weight:600;font-size:var(--p-15,.9375rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cx-hoja-cifra{font-family:var(--mono);font-size:var(--p-12,.75rem);color:var(--tinta-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cx-hoja-ver{appearance:none;background:none;border:0;border-bottom:1px solid var(--acento);color:var(--acento);font-family:var(--mono);font-size:var(--p-12,.75rem);letter-spacing:.08em;text-transform:uppercase;padding:.3rem 0;cursor:pointer;white-space:nowrap}
  .cx-hoja-ver:focus-visible{outline:2px solid var(--acento);outline-offset:3px}
  .cx-escena .cx-leyenda-capa{margin:0;padding:.3rem var(--marco) .5rem;border-top:1px solid var(--linea-2);border-bottom:1px solid var(--linea-2);grid-row:auto}
  .cx-escena .cx-ley-items{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:.2rem 1.2rem;padding-bottom:.2rem}
  .cx-escena .cx-ley-items::-webkit-scrollbar{display:none}
  .cx-escena .cx-ley-items button{white-space:nowrap}
  .cx-escena .cx-ley-items .cx-ley-nombre{white-space:nowrap}
  .cx-escena .cx-panel,html.cx-js .cx-escena .cx-panel{grid-row:auto;max-width:none;padding:.8rem var(--marco) 1.2rem;overflow:auto;max-height:none;min-height:0;flex:1 1 auto}
  html.cx-sin-panel .cx-bajo{transform:translateY(100%)}
  html.cx-sin-webgl .cx-bajo,html:not(.cx-js) .cx-bajo{position:static;transform:none;box-shadow:none;max-height:none}
  html.cx-inmersivo .cx-bajo{z-index:1001}
  body{padding-bottom:4.6rem}
  @media (prefers-reduced-motion:reduce){.cx-bajo{transition:none}}
}

/* MOTOR_12NOV · el motor sobre three.js: «Ver en relieve» solo en escritorio (en el móvil las agujas no se leen y no se ofrecen); de cerca,
   la base de tinta: los rótulos pasan a tinta sobre papel (html.cx-tinta la pone conexiones.js cuando la cámara ha bajado) */
@media (max-width:760px){.cx-relieve{display:none!important}}
.cx-relieve[aria-pressed=true]{color:var(--tinta);border-bottom-color:var(--acento)}
html.cx-tinta .cx-rotulo{color:#2B2622;text-shadow:0 0 3px #F2EBDC,0 0 3px #F2EBDC,0 0 2px #F2EBDC}
html.cx-tinta .cx-rotulo-com{color:rgba(43,38,34,.7)}
html.cx-tinta .cx-rotulo-prov{color:rgba(43,38,34,.55)}
html.cx-tinta .cx-rotulo-org{color:rgba(43,38,34,.9)}
html.cx-tinta .cx-rotulo-org.cx-sel{color:#2B2622}
html.cx-tinta .cx-rotulo-nodo small,html.cx-tinta .cx-rotulo-nodo.cx-sel small{color:rgba(43,38,34,.7)}
html.cx-tinta .cx-rotulo-nodo.cx-sel{background:rgba(242,235,220,.88);border-color:rgba(43,38,34,.5)}
html.cx-tinta .cx-rotulo-com.cx-sel{color:#1F6B55}
html.cx-tinta .cx-pista,html.cx-tinta .cx-ver-recorrido,html.cx-tinta .cx-bl-volver,html.cx-tinta .cx-bl,html.cx-tinta .cx-fuera{color:#2B2622;border-color:rgba(43,38,34,.45);background:rgba(242,235,220,.72)}
html.cx-tinta .cx-brujula canvas{opacity:.85}
@media (max-width:47.5rem){html.cx-tinta .cx-rotulo-com,html.cx-tinta .cx-rotulo-prov,html.cx-tinta .cx-rotulo-org,html.cx-tinta .cx-rotulo-banda{background:rgba(242,235,220,.82);color:#2B2622}}

/* ACCESIBLE_12NOV · lo que cantó comprobar_accesibilidad.py: el enlace del aviso sin WebGL se distingue sin color (1.4.1); con la
   hoja inferior recogida, la leyenda y el panel no reciben el foco (2.4.7): están fuera de la pantalla hasta que se abre */
.cx-aviso-webgl a{text-decoration:underline;text-underline-offset:.15em}
@media (max-width:760px){
  html.cx-js:not(.cx-sin-webgl) .cx-bajo:not(.cx-abierta) .cx-leyenda-capa,html.cx-js:not(.cx-sin-webgl) .cx-bajo:not(.cx-abierta) .cx-panel{visibility:hidden}
}

/* ARTE_F3_12NOV · fase 6 del plan de arte (SISTEMA.md § 5): en el móvil ningún mando va antes del mapa; la capa, los filtros y los botones
   bajan debajo del lienzo (el mapa empezaba a 660 px por los mandos apilados). En PC no cambia nada */
@media (max-width:640px){
  .cx-escena{grid-template-rows:minmax(0,1fr) auto}
  .cx-escena .cx-mapa{grid-row:1}
  .cx-escena .cx-mandos{grid-row:2;padding-top:var(--e-2)}
}
/* TABLA_REGLAS_390_12NOV · la tabla de reglas de cada familia cabe a 390 (se salía 13 px de su caja): las cabeceras sin espaciado entre letras
   y menos aire entre columnas en el móvil; las seis columnas se quedan */
/* por debajo de 390 las seis columnas no caben: la tabla se arrastra dentro de su caja (que recibe el foco), no la página */
.cx-reglas-caja{overflow-x:auto;overscroll-behavior-x:contain}
.cx-reglas-caja:focus-visible{outline:2px solid var(--acento);outline-offset:2px}
/* y la frase de cada regla, que es la cabecera de su fila, en la letra de la interfaz: con la de las cabeceras de columna (versalitas de
   máquina de escribir, espaciadas) «LA PORTADA NO LLEVA CONTENT-SECURITY-POLICY» se partía letra a letra a 390 */
.cx-tabla .cx-capa-tabla tbody th{font-family:var(--sans);font-size:var(--p-14,.875rem);font-weight:400;text-transform:none;letter-spacing:0;color:var(--tinta);line-height:1.4}
.cx-tabla .cx-capa-tabla tbody th small{color:var(--tinta-3)}
@media (max-width:640px){.cx-tabla .cx-capa-tabla th,.cx-tabla .cx-capa-tabla td{padding-right:.25rem}.cx-tabla .cx-capa-tabla thead th{letter-spacing:0}.cx-tabla .cx-capa-tabla tbody th{overflow-wrap:break-word}}
/* ESTILO_PRO_11NOV · las reglas .cx- de la capa, otra vez: esta hoja va después */
.md-cifra,.kpi .v,.marcadores .m .v,.md-reparto b,.catalogo .n,.fila-sitio .val,.fila-m .val,.placa>.cifra,
.met-rejilla .cifra,.salas .n,.tecnica .v,.mp-cifra,.mp-v,.cx-par-cifra,.cx-cifra{font-variant-numeric:tabular-nums lining-nums}
.cx-cab{padding:var(--e-2) 0 .25rem}
.cx-cab .cx-titulo{font-size:var(--p-32);line-height:1.1;letter-spacing:-.025em}
.cx-cab .cx-entradilla{font-size:var(--p-16);line-height:1.5;color:var(--tinta-2)}
.cx-kpis{margin-top:var(--e-3)}
.cx-kpis .kpis{gap:var(--e-2) var(--e-4)}
.cx-kpis .kpi{border-top:1px solid var(--linea-3);padding-top:.7rem}
.cx-kpis .kpi .v{font-size:var(--p-32);letter-spacing:-.03em}
.cx-kpis .kpi .q{font-size:var(--p-15);font-weight:500;color:var(--tinta)}
.cx-kpis .kpi .b{font-size:var(--p-13)}
.cx-escena{margin-top:var(--e-2);border-top:1px solid var(--linea-2)}
.cx-mandos{padding:.5rem 0 .6rem;gap:.5rem 0}
.cx-filtros label{font-size:var(--p-12);letter-spacing:.12em}
.cx-filtros select,.cx-buscar input{background:var(--panel-3);border:1px solid var(--linea-3);border-radius:var(--r);font-size:var(--p-14);min-height:2.25rem}
.cx-filtros select:focus-visible,.cx-buscar input:focus-visible{border-color:var(--acento)}
.cx-botones{gap:var(--e-3)}
.cx-botones a,.cx-botones button{font-size:var(--p-14)}
.cx-aviso-webgl{font-size:var(--p-13)}
.et.placa,.cx-cab .et.placa{border:0;background:none;padding:0;display:inline-flex;align-items:center;gap:.7rem;
  color:var(--tinta-2);letter-spacing:.14em;font-size:var(--p-12)}
.cx-cab .cx-titulo .fino{font-weight:300;color:var(--tinta-3)}
.cx-selectores select{appearance:none;background:var(--panel-3);color:var(--tinta);border:1px solid var(--linea-3);border-radius:var(--r);
  font-family:var(--sans);font-size:var(--p-14);padding:.42rem 1.6rem .42rem .6rem;min-height:2.25rem;
  background-image:linear-gradient(45deg,transparent 50%,var(--tinta-3) 50%),linear-gradient(135deg,var(--tinta-3) 50%,transparent 50%);
  background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.cx-selectores select:disabled{color:var(--tinta-4);border-color:var(--linea-2)}
.cx-selectores select:focus-visible{outline:none;border-color:var(--acento)}
.cx-selectores .et{font-size:var(--p-12);letter-spacing:.12em}
