/* Estilos del Portal Estático CPLI Estatal (Proyecto SECIHTI IH-2025-G-19)
   Sin dependencias externas, tipografía del sistema y paleta clara. */

:root {
  --fondo: #f8f9fa;
  --superficie: #ffffff;
  --superficie-alt: #f1f3f5;
  --texto: #1a202c;
  --texto-suave: #4a5568;
  --borde: #cbd5e0;
  --borde-suave: #e2e8f0;
  --primario: #1a4731;
  --primario-hover: #143625;
  --primario-claro: #e6f4ea;
  --acento: #8b2635;
  --foco: #2b6cb0;

  /* Clases del mapa reticular (5 niveles, texto siempre con contraste AA) */
  --mapa-c1-bg: #edf6f0;
  --mapa-c1-txt: #163a28;
  --mapa-c1-borde: #a3cbb2;

  --mapa-c2-bg: #c6e3d0;
  --mapa-c2-txt: #102e1f;
  --mapa-c2-borde: #7db592;

  --mapa-c3-bg: #79b791;
  --mapa-c3-txt: #092014;
  --mapa-c3-borde: #4b8f67;

  --mapa-c4-bg: #2f734c;
  --mapa-c4-txt: #ffffff;
  --mapa-c4-borde: #1f5436;

  --mapa-c5-bg: #16422b;
  --mapa-c5-txt: #ffffff;
  --mapa-c5-borde: #0c291a;

  /* Insignias de tipo */
  --tipo-i-bg: #1e4620;
  --tipo-i-txt: #ffffff;
  --tipo-ii-bg: #1c4532;
  --tipo-ii-txt: #e6fffa;
  --tipo-iii-bg: #2c5282;
  --tipo-iii-txt: #ffffff;
  --tipo-iv-bg: #4a5568;
  --tipo-iv-txt: #ffffff;
  --tipo-r-bg: #744210;
  --tipo-r-txt: #ffffff;

  /* Verificación */
  --ver-v-bg: #def7ec;
  --ver-v-txt: #03543f;
  --ver-v-borde: #84e1bc;

  --ver-p-bg: #fef3c7;
  --ver-p-txt: #78350f;
  --ver-p-borde: #fcd34d;

  --ver-r-bg: #fde8e8;
  --ver-r-txt: #771d1d;
  --ver-r-borde: #f8b4b4;

  /* Advertencias criterio P5 (derogadas / invalidadas SCJN / anotación) */
  --alerta-critica-bg: #fff5f5;
  --alerta-critica-txt: #822727;
  --alerta-critica-borde: #e53e3e;

  --alerta-suave-bg: #ebf8ff;
  --alerta-suave-txt: #2a4365;
  --alerta-suave-borde: #90cdf4;

  --sombra: 0 1px 3px rgba(0, 0, 0, 0.08);
  --radio: 6px;
}


*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  color: var(--texto);
  background-color: var(--fondo);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

a {
  color: var(--primario);
  text-decoration: underline;
  text-underline-offset: 2px;
}

a:hover {
  color: var(--primario-hover);
}

:focus-visible {
  outline: 3px solid var(--foco);
  outline-offset: 2px;
}

.saltar-enlace {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--superficie);
  color: var(--texto);
  padding: 0.75rem 1.25rem;
  z-index: 1000;
  font-weight: 700;
  border: 2px solid var(--foco);
}

.saltar-enlace:focus {
  left: 0.5rem;
  top: 0.5rem;
}

.contenedor {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Encabezado */
.encabezado-sitio {
  background-color: var(--superficie);
  border-bottom: 1px solid var(--borde);
  padding: 1rem 0;
  box-shadow: var(--sombra);
}

.encabezado-interior {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.proyecto-clave {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--primario);
}

.identidad h1 {
  margin: 0.15rem 0;
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  line-height: 1.25;
}

.subtitulo {
  margin: 0;
  font-size: 0.92rem;
  color: var(--texto-suave);
}

.nav-principal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

/* Botones */
.boton-primario,
.boton-secundario,
.boton-nav,
.boton-texto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.9rem;
  font-size: 0.88rem;
  font-weight: 600;
  border-radius: var(--radio);
  cursor: pointer;
  text-decoration: none;
  font-family: inherit;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.boton-primario {
  background-color: var(--primario);
  color: #ffffff;
  border: 1px solid var(--primario);
}

@media (prefers-color-scheme: dark) {
  .boton-primario {
    color: #091e13;
  }
}

.boton-primario:hover {
  background-color: var(--primario-hover);
  color: #ffffff;
}

@media (prefers-color-scheme: dark) {
  .boton-primario:hover {
    color: #091e13;
  }
}

.boton-secundario,
.boton-nav {
  background-color: var(--superficie-alt);
  color: var(--texto);
  border: 1px solid var(--borde);
}

.boton-secundario:hover,
.boton-nav:hover {
  background-color: var(--borde-suave);
  color: var(--texto);
}

.boton-texto {
  background: transparent;
  color: var(--primario);
  border: 1px solid transparent;
  text-decoration: underline;
}

.boton-texto:hover {
  background-color: var(--superficie-alt);
}

/* Aviso metodológico */
.aviso-metodologico {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  background-color: var(--ver-p-bg);
  color: var(--ver-p-txt);
  border-left: 4px solid var(--ver-p-borde);
  border-radius: var(--radio);
  font-size: 0.9rem;
}

.aviso-metodologico p {
  margin: 0;
}

/* Disposición general: escritorio lado a lado, móvil selector/resultados primero y mapa después */
.disposicion-portal {
  display: grid;
  grid-template-columns: 370px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  margin-bottom: 2rem;
}

.panel-mapa {
  order: 1;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 1rem;
  box-shadow: var(--sombra);
  position: sticky;
  top: 1rem;
}

.panel-exploracion {
  order: 2;
  min-width: 0;
}

@media (max-width: 960px) {
  .disposicion-portal {
    display: flex;
    flex-direction: column;
  }

  .panel-exploracion {
    order: 1;
    width: 100%;
  }

  .panel-mapa {
    order: 2;
    width: 100%;
    position: static;
  }
}

/* Selector de entidad */
.barra-entidad {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 0.85rem 1rem;
  margin-bottom: 1rem;
  box-shadow: var(--sombra);
}

.campo-selector-entidad {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 260px;
}

.campo-selector-entidad label {
  font-weight: 700;
  font-size: 0.95rem;
}

.campo-selector-entidad select {
  flex: 1 1 200px;
  min-width: 0;
  padding: 0.45rem 0.65rem;
  font-size: 0.95rem;
  border-radius: var(--radio);
  border: 1px solid var(--borde);
  background-color: var(--superficie);
  color: var(--texto);
}

/* Mapa reticular (10 columnas x 5 filas) */
.encabezado-mapa h2 {
  margin: 0 0 0.25rem 0;
  font-size: 1.05rem;
}

.instruccion-mapa {
  margin: 0 0 0.75rem 0;
  font-size: 0.82rem;
  color: var(--texto-suave);
}

.mapa-reticula {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  grid-template-rows: repeat(5, 42px);
  gap: 4px;
  width: 100%;
  margin-bottom: 0.85rem;
}

.celda-estado {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2px;
  border-radius: 4px;
  border: 1.5px solid transparent;
  font-family: inherit;
  cursor: pointer;
  text-align: center;
  line-height: 1.1;
  user-select: none;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.celda-estado:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.18);
}

.celda-estado .sigla {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.celda-estado .conteo {
  font-size: 0.65rem;
  opacity: 0.92;
}

.celda-estado.clase-1 {
  background-color: var(--mapa-c1-bg);
  color: var(--mapa-c1-txt);
  border-color: var(--mapa-c1-borde);
}

.celda-estado.clase-2 {
  background-color: var(--mapa-c2-bg);
  color: var(--mapa-c2-txt);
  border-color: var(--mapa-c2-borde);
}

.celda-estado.clase-3 {
  background-color: var(--mapa-c3-bg);
  color: var(--mapa-c3-txt);
  border-color: var(--mapa-c3-borde);
}

.celda-estado.clase-4 {
  background-color: var(--mapa-c4-bg);
  color: var(--mapa-c4-txt);
  border-color: var(--mapa-c4-borde);
}

.celda-estado.clase-5 {
  background-color: var(--mapa-c5-bg);
  color: var(--mapa-c5-txt);
  border-color: var(--mapa-c5-borde);
}

.celda-estado[aria-pressed="true"] {
  outline: 3px solid var(--acento);
  outline-offset: 1px;
  font-weight: 800;
  z-index: 2;
}

.leyenda-mapa {
  border-top: 1px solid var(--borde-suave);
  padding-top: 0.65rem;
  font-size: 0.78rem;
}

.leyenda-titulo {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: var(--texto-suave);
}

.leyenda-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.leyenda-item {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.45rem;
  border-radius: 3px;
  border: 1px solid transparent;
  font-size: 0.74rem;
  font-weight: 600;
}

/* Indicadores nacionales */
.encabezado-seccion {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.encabezado-seccion h2 {
  margin: 0;
  font-size: 1.3rem;
}

.texto-suave {
  color: var(--texto-suave);
  font-size: 0.88rem;
  margin: 0;
}

.rejilla-indicadores {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.tarjeta-indicador {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 0.85rem 1rem;
  box-shadow: var(--sombra);
}

.tarjeta-indicador .valor {
  display: block;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--primario);
  line-height: 1.2;
}

.tarjeta-indicador .etiqueta {
  display: block;
  font-size: 0.82rem;
  color: var(--texto-suave);
  margin-top: 0.2rem;
}

/* Tabla nacional */
.contenedor-tabla {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  box-shadow: var(--sombra);
  overflow-x: auto;
}

.encabezado-tabla {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--borde-suave);
}

.encabezado-tabla h3 {
  margin: 0 0 0.2rem 0;
  font-size: 1.05rem;
}

.tabla-entidades {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.tabla-entidades th,
.tabla-entidades td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--borde-suave);
  text-align: left;
  white-space: nowrap;
}

.tabla-entidades th {
  background-color: var(--superficie-alt);
  font-weight: 700;
  color: var(--texto);
}

.tabla-entidades th.num,
.tabla-entidades td.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.tabla-entidades tbody tr {
  cursor: pointer;
  transition: background-color 0.1s ease;
}

.tabla-entidades tbody tr:hover {
  background-color: var(--primario-claro);
}

.enlace-fila-entidad {
  font-weight: 600;
  color: var(--primario);
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
}

/* Vista estatal y filtros */
.encabezado-estatal {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.encabezado-estatal h2 {
  margin: 0 0 0.2rem 0;
  font-size: 1.35rem;
}

.acciones-estatales {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.panel-filtros {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 1rem;
  margin-bottom: 1rem;
  box-shadow: var(--sombra);
}

.campo-filtro {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.campo-busqueda,
.campo-ley {
  grid-column: 1 / -1;
}

@media (min-width: 720px) {
  .campo-busqueda {
    grid-column: span 2;
  }
}

.campo-filtro label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--texto-suave);
}

.campo-filtro input,
.campo-filtro select {
  width: 100%;
  padding: 0.45rem 0.6rem;
  font-size: 0.9rem;
  border: 1px solid var(--borde);
  border-radius: 4px;
  background-color: var(--superficie);
  color: var(--texto);
  font-family: inherit;
}

.barra-resultados {
  margin-bottom: 0.75rem;
}

.contador-resultados {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
}

.estado-carga {
  padding: 2rem;
  text-align: center;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  font-weight: 600;
}

/* Grupos por ley y tarjetas de disposición */
.bloque-ley {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  margin-bottom: 1.25rem;
  box-shadow: var(--sombra);
  overflow: hidden;
}

.encabezado-ley {
  background: var(--superficie-alt);
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--borde);
}

.encabezado-ley h3 {
  margin: 0 0 0.35rem 0;
  font-size: 1.02rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.meta-ley {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.8rem;
  color: var(--texto-suave);
}

.tarjeta-disposicion {
  padding: 1rem;
  border-bottom: 1px solid var(--borde-suave);
}

.tarjeta-disposicion:last-child {
  border-bottom: none;
}

.cabecera-tarjeta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
}

.ubicacion-unidad {
  font-weight: 700;
  font-size: 0.98rem;
}

.insignias-tarjeta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.insignia {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  white-space: nowrap;
}

.tipo-I {
  background-color: var(--tipo-i-bg);
  color: var(--tipo-i-txt);
}

.tipo-II {
  background-color: var(--tipo-ii-bg);
  color: var(--tipo-ii-txt);
}

.tipo-III {
  background-color: var(--tipo-iii-bg);
  color: var(--tipo-iii-txt);
}

.tipo-IV {
  background-color: var(--tipo-iv-bg);
  color: var(--tipo-iv-txt);
}

.tipo-R {
  background-color: var(--tipo-r-bg);
  color: var(--tipo-r-txt);
}

.ver-V {
  background-color: var(--ver-v-bg);
  color: var(--ver-v-txt);
  border: 1px solid var(--ver-v-borde);
}

.ver-P {
  background-color: var(--ver-p-bg);
  color: var(--ver-p-txt);
  border: 1px solid var(--ver-p-borde);
}

.ver-R {
  background-color: var(--ver-r-bg);
  color: var(--ver-r-txt);
  border: 1px solid var(--ver-r-borde);
}

.insignia-transitorio {
  background-color: var(--superficie-alt);
  color: var(--texto-suave);
  border: 1px solid var(--borde);
}

/* Avisos de estado del texto (Criterio P5) */
.aviso-estado-texto {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.65rem;
  border-radius: 4px;
  font-size: 0.84rem;
  font-weight: 700;
}

.aviso-estado-critico {
  background-color: var(--alerta-critica-bg);
  color: var(--alerta-critica-txt);
  border-left: 4px solid var(--alerta-critica-borde);
}

.aviso-estado-suave {
  background-color: var(--alerta-suave-bg);
  color: var(--alerta-suave-txt);
  border-left: 4px solid var(--alerta-suave-borde);
  font-weight: 600;
}

.encabezado-articulo-unidad {
  margin: 0 0 0.4rem 0;
  font-size: 0.84rem;
  color: var(--texto-suave);
  font-style: italic;
}

.cita-literal {
  margin: 0 0 0.75rem 0;
  padding: 0.75rem 0.9rem;
  background-color: var(--superficie-alt);
  border-left: 3px solid var(--primario);
  border-radius: 0 4px 4px 0;
  font-size: 0.93rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.chips-tematicos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}

.chip {
  display: inline-block;
  padding: 0.12rem 0.5rem;
  font-size: 0.75rem;
  border-radius: 999px;
  background-color: var(--primario-claro);
  color: var(--texto);
  border: 1px solid var(--borde);
}

.pie-tarjeta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem 1rem;
  font-size: 0.8rem;
  color: var(--texto-suave);
  margin-bottom: 0.5rem;
}

.id-unidad {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.76rem;
  overflow-wrap: anywhere;
}

/* Desplegables <details> */
.desplegable-tarjeta {
  margin-top: 0.45rem;
  border: 1px solid var(--borde-suave);
  border-radius: 4px;
  background-color: var(--fondo);
}

.desplegable-tarjeta summary {
  padding: 0.45rem 0.75rem;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--primario);
}

.desplegable-tarjeta summary:hover {
  background-color: var(--superficie-alt);
}

.contenido-desplegable {
  padding: 0.75rem;
  border-top: 1px solid var(--borde-suave);
  font-size: 0.86rem;
}

.lista-analisis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.5rem 1rem;
  margin: 0;
}

.item-analisis dt {
  font-weight: 700;
  color: var(--texto-suave);
  font-size: 0.78rem;
}

.item-analisis dd {
  margin: 0.1rem 0 0 0;
  overflow-wrap: anywhere;
}

.item-analisis.ancho-completo {
  grid-column: 1 / -1;
}

.texto-articulo-completo {
  margin: 0;
  white-space: pre-wrap;
  font-family: inherit;
  font-size: 0.86rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  max-height: 420px;
  overflow-y: auto;
}

.paginacion-resultados {
  display: flex;
  justify-content: center;
  margin: 1.25rem 0;
}

/* Sección Acerca de los datos */
.seccion-acerca {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--borde);
}

.seccion-acerca h2 {
  margin: 0 0 1rem 0;
  font-size: 1.4rem;
}

.rejilla-acerca {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.tarjeta-acerca {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  padding: 1.1rem;
  box-shadow: var(--sombra);
  font-size: 0.9rem;
}

.tarjeta-acerca h3 {
  margin: 0 0 0.65rem 0;
  font-size: 1.05rem;
  color: var(--primario);
}

.tarjeta-acerca ol,
.tarjeta-acerca ul {
  margin: 0.5rem 0;
  padding-left: 1.25rem;
}

.tarjeta-acerca li {
  margin-bottom: 0.35rem;
}

.bloque-advertencia {
  margin-top: 0.75rem;
  padding: 0.75rem;
  background-color: var(--superficie-alt);
  border-left: 3px solid var(--acento);
  border-radius: 4px;
  font-size: 0.86rem;
}

.bloque-advertencia p {
  margin: 0 0 0.4rem 0;
}

.bloque-advertencia p:last-child {
  margin-bottom: 0;
}

.lista-definiciones dt {
  font-weight: 700;
  margin-top: 0.55rem;
}

.lista-definiciones dd {
  margin: 0.15rem 0 0.45rem 0;
  color: var(--texto-suave);
  font-size: 0.86rem;
}

.bloque-grupos {
  margin-bottom: 2rem;
}

.rejilla-grupos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 0.65rem;
}

.item-grupo-glosario {
  padding: 0.6rem 0.75rem;
  background: var(--superficie-alt);
  border: 1px solid var(--borde-suave);
  border-radius: 4px;
}

.item-grupo-glosario strong {
  display: block;
  font-size: 0.86rem;
}

.item-grupo-glosario span {
  display: block;
  font-size: 0.8rem;
  color: var(--texto-suave);
  margin-top: 0.15rem;
}

/* Pie de página */
.pie-sitio {
  background: var(--superficie);
  border-top: 1px solid var(--borde);
  padding: 1.25rem 0;
  margin-top: 2rem;
  font-size: 0.86rem;
}

.pie-interior p {
  margin: 0.2rem 0;
}

/* Ajustes para pantallas pequeñas (360px+) */
@media (max-width: 480px) {
  .contenedor {
    padding: 0 0.65rem;
  }

  .mapa-reticula {
    gap: 2px;
    grid-template-rows: repeat(5, 38px);
  }

  .celda-estado .sigla {
    font-size: 0.64rem;
  }

  .celda-estado .conteo {
    font-size: 0.58rem;
  }

  .tarjeta-disposicion {
    padding: 0.75rem;
  }
}

/* Dirección visual: blanco editorial, grises cálidos y acentos de tinta. */
:root {
  color-scheme: light;
  --fondo: #f7f8fa;
  --superficie: #fff;
  --superficie-alt: #f4f6f8;
  --texto: #222a35;
  --texto-suave: #626e7c;
  --borde: #dce1e7;
  --borde-suave: #ebedf0;
  --primario: #334b63;
  --primario-hover: #182d42;
  --primario-claro: #eef2f6;
  --acento: #334b63;
  --radio: 16px;
  --sombra: 0 4px 20px #283a4c04;
  --mapa-c1-bg: #f0f3f6;
  --mapa-c2-bg: #dce3eb;
  --mapa-c3-bg: #bdcbd9;
  --mapa-c4-bg: #91a5ba;
  --mapa-c5-bg: #607d99;
  --mapa-c1-txt: #334b63;
  --mapa-c2-txt: #334b63;
  --mapa-c3-txt: #293f55;
  --mapa-c4-txt: #233449;
  --mapa-c5-txt: #fff;
  --mapa-c1-borde: #c0cbd6;
  --mapa-c2-borde: #b4c0cd;
  --mapa-c3-borde: #9dabb9;
  --mapa-c4-borde: #7c90a5;
  --mapa-c5-borde: #526e89;
  --ver-p-bg: #faf8f3;
  --ver-p-txt: #725d39;
  --ver-p-borde: #ded3bb;
}
[hidden] { display: none !important; }
.contenedor { max-width: 1440px; padding-inline: 48px; }
.encabezado-sitio { padding: 20px 0; }
.encabezado-interior { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.marca-portal { display:flex; align-items:center; gap:12px; font-size:12px; font-weight:750; letter-spacing:1.5px; }
.marca-simbolo { display:grid; place-items:center; width:38px; height:42px; border:1px solid #b4bfca; border-radius:12px 3px 12px 3px; font:30px Georgia,serif; }
.marca-portal small { display:block; font-size:10px; font-weight:400; letter-spacing:0; color:var(--texto-suave); margin-top:3px; }
.nav-principal { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.boton-nav { background:transparent; border-color:transparent; font-size:12px; color:var(--texto-suave); }
.boton-primario,.boton-secundario,.boton-nav { border-radius:8px; padding:10px 16px; font-weight:600; }
.boton-primario { background:var(--primario); color:#fff; font-size:12px; }
.boton-primario:hover { color:#fff; }
.hero-portal { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:52px 0 36px; }
.proyecto-clave,.sobretitulo { font-size:10px; font-weight:700; letter-spacing:1.7px; text-transform:uppercase; color:var(--texto-suave); margin:0 0 14px; }
.identidad { max-width:720px; }
.identidad h1 { font-size:clamp(34px,3.6vw,52px); font-weight:550; line-height:1.12; letter-spacing:-2px; margin:0 0 18px; color:var(--texto); }
.subtitulo { font-size:14px; line-height:1.75; color:var(--texto-suave); max-width:560px; margin:0; }
.hero-edicion { flex:0 0 240px; padding-left:26px; border-left:1px solid var(--borde); color:var(--texto-suave); font-size:10px; letter-spacing:1.4px; line-height:2; }
.hero-edicion strong { display:block; font-size:14px; font-weight:500; color:var(--texto); letter-spacing:0; margin:8px 0; }
.hero-edicion > span:last-child { display:block; font-size:12px; letter-spacing:0; }
.punto-edicion { display:inline-block; width:6px; height:6px; border-radius:50%; background:#81988b; margin-right:6px; }
.rejilla-indicadores { grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; border:1px solid var(--borde); background:#fff; border-radius:14px; margin-bottom:20px; padding:22px 6px; }
.tarjeta-indicador { padding:0 20px; border:0; border-right:1px solid var(--borde-suave); border-radius:0; box-shadow:none; }
.tarjeta-indicador:last-child { border-right:0; }
.tarjeta-indicador .valor { font-size:25px; font-weight:550; color:var(--texto); letter-spacing:-1px; white-space:nowrap; }
.tarjeta-indicador:nth-child(2) .valor { font-size:19px; line-height:30px; }
.tarjeta-indicador .etiqueta { font-size:10px; line-height:1.5; margin-top:7px; }
.aviso-metodologico { font-size:11px; line-height:1.7; border:1px solid #e6dfcf; border-left:3px solid #c6b692; border-radius:9px; margin:0 0 28px; padding:12px 16px; }
.panel-mapa { position:static; padding:28px; border-color:var(--borde); margin-bottom:32px; }
.encabezado-mapa h2 { font-size:25px; font-weight:550; letter-spacing:-.6px; margin-bottom:7px; }
.encabezado-mapa .sobretitulo { margin-bottom:9px; }
.instruccion-mapa { font-size:12px; margin-bottom:24px; }
.mapa-composicion { display:grid; grid-template-columns:minmax(0,1fr) 285px; gap:28px; }
.mapa-lienzo { position:relative; border-radius:12px; background:radial-gradient(ellipse at 45% 40%,#fff,#f5f7fa); border:1px solid var(--borde-suave); overflow:hidden; }
.rotulo-mapa { position:absolute; top:20px; left:22px; font-size:9px; letter-spacing:1.5px; color:#7a8591; }
.mapa-reticula { display:block; margin:12px 0 25px; padding:24px 14px 0; width:100%; }
.mapa-reticula svg { display:block; width:100%; height:auto; max-height:480px; overflow:visible; }
.estado-geografico { stroke:#fff; stroke-width:1.15; vector-effect:non-scaling-stroke; stroke-linejoin:round; cursor:pointer; transition:fill .18s,stroke .18s; }
.estado-geografico.clase-1 { fill:var(--mapa-c1-bg); stroke:#b8c4d0; stroke-width:.7; }
.estado-geografico.clase-2 { fill:var(--mapa-c2-bg); }
.estado-geografico.clase-3 { fill:var(--mapa-c3-bg); }
.estado-geografico.clase-4 { fill:var(--mapa-c4-bg); }
.estado-geografico.clase-5 { fill:var(--mapa-c5-bg); }
.estado-geografico:hover,.estado-geografico:focus-visible,.estado-geografico[aria-pressed=true] { fill:#365b7d; stroke:#263f58; stroke-width:2; outline:none; }
.detalle-mapa { position:absolute; bottom:12px; left:18px; right:18px; margin:0; padding:9px 12px; background:#ffffffec; border:1px solid var(--borde-suave); border-radius:7px; font-size:11px; color:var(--primario); text-align:center; pointer-events:none; }
.rotulo-oceano { position:absolute; left:14%; bottom:26%; font-size:9px; letter-spacing:2px; color:#98a6b4; pointer-events:none; transform:rotate(29deg); }
.directorio-mapa { display:flex; flex-direction:column; min-height:0; }
.directorio-mapa label { font-size:12px; font-weight:650; margin-bottom:10px; }
.directorio-mapa input { font:inherit; font-size:12px; width:100%; border:1px solid var(--borde); padding:11px 12px; border-radius:8px; background:#fff; color:var(--texto); margin-bottom:12px; }
.lista-entidades-mapa { overflow:auto; max-height:357px; scrollbar-width:thin; scrollbar-color:#d0d7df transparent; padding-right:8px; }
.fila-directorio { width:100%; display:flex; align-items:center; gap:10px; border:0; border-bottom:1px solid var(--borde-suave); background:#fff; padding:11px 6px; text-align:left; cursor:pointer; color:var(--texto); font:inherit; font-size:11px; border-radius:4px; }
.fila-directorio strong { margin-left:auto; font-size:11px; font-weight:550; font-variant-numeric:tabular-nums; color:var(--texto-suave); }
.fila-directorio:hover,.fila-directorio[aria-pressed=true] { background:var(--primario-claro); }
.punto-estado { width:8px; height:8px; border-radius:3px; flex-shrink:0; border:1px solid #bac5d0; }
.punto-estado.clase-1 { background:var(--mapa-c1-bg); }
.punto-estado.clase-2 { background:var(--mapa-c2-bg); }
.punto-estado.clase-3 { background:var(--mapa-c3-bg); }
.punto-estado.clase-4 { background:var(--mapa-c4-bg); }
.punto-estado.clase-5 { background:var(--mapa-c5-bg); }
.nota-directorio,.directorio-vacio { font-size:10px; line-height:1.6; color:var(--texto-suave); }
.leyenda-mapa { margin-top:20px; display:flex; flex-wrap:wrap; align-items:center; gap:14px; border-top:0; padding-top:0; }
.leyenda-titulo { margin:0; font-size:10px; font-weight:500; }
.leyenda-lista { gap:7px; }
.leyenda-item.celda-estado { cursor:default; display:inline-flex; border-radius:4px; padding:5px 10px; font-size:10px; box-shadow:none; transform:none; }
.fuente-mapa { margin:14px 0 0; font-size:9px; color:var(--texto-suave); }
.disposicion-portal { display:block; }
.barra-entidad { padding:18px 22px; box-shadow:none; margin-bottom:26px; }
.campo-selector-entidad label { font-size:12px; }
.campo-selector-entidad select { font-size:12px; border-radius:7px; padding:10px; max-width:460px; margin-left:14px; }
.encabezado-seccion { margin:0 0 20px; }
.encabezado-seccion h2,.encabezado-estatal h2 { font-size:25px; font-weight:550; letter-spacing:-.5px; }
.encabezado-seccion .sobretitulo { margin-bottom:8px; }
#resumen-fechas { font-size:10px; max-width:350px; line-height:1.7; }
.encabezado-tabla { padding:23px; }
.encabezado-tabla h3 { font-size:15px; font-weight:600; }
.encabezado-tabla p { font-size:11px; margin-top:6px; }
.tabla-entidades { font-size:12px; }
.tabla-entidades th { font-size:10px; color:var(--texto-suave); font-weight:600; padding:15px 16px; white-space:normal; }
.tabla-entidades td { padding:15px 16px; }
.enlace-fila-entidad { text-decoration:none; font-weight:550; }
.tabla-entidades tbody tr:nth-child(even) { background:#fcfcfd; }
.tabla-entidades tbody tr:hover { background:var(--primario-claro); }
.seccion-acerca { border-top:1px solid var(--borde); padding-top:32px; }
.seccion-acerca h2 { font-weight:550; font-size:25px; letter-spacing:-.5px; }
.rejilla-acerca { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.tarjeta-acerca { padding:26px; font-size:12px; line-height:1.8; }
.tarjeta-acerca h3 { font-size:14px; font-weight:600; }
.tarjeta-acerca .lista-definiciones dd { font-size:12px; }
.panel-filtros { padding:22px; gap:18px; }
.campo-filtro input,.campo-filtro select { padding:10px; border-radius:7px; font-size:12px; }
.campo-filtro label { font-size:11px; }
.cita-literal { font-family:Georgia,serif; line-height:1.8; background:#fafbfc; border-color:#9caec1; }
.encabezado-ley { padding:20px; }
.tarjeta-disposicion { padding:24px; }
.pie-sitio { font-size:11px; padding:26px 0; }
.pie-sitio .texto-suave { font-size:10px; }
@media (min-width:1500px) { .mapa-reticula svg { max-height:510px; } }
@media (max-width:1100px) {
  .contenedor { padding-inline:28px; }
  .hero-edicion { display:none; }
  .rejilla-indicadores { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:24px; }
  .tarjeta-indicador:nth-child(3) { border-right:0; }
  .mapa-composicion { grid-template-columns:minmax(0,1fr) 235px; gap:18px; }
  .lista-entidades-mapa { max-height:270px; }
}
@media (max-width:760px) {
  .contenedor { padding-inline:20px; }
  .encabezado-interior { flex-direction:column; align-items:flex-start; gap:18px; }
  .nav-principal { width:100%; gap:4px; }
  .boton-nav,.nav-principal .boton-primario { font-size:10px; padding:8px 10px; }
  .hero-portal { padding:34px 0 26px; }
  .identidad h1 { letter-spacing:-1.2px; }
  .subtitulo { font-size:12px; }
  .rejilla-indicadores { padding:18px 0; }
  .tarjeta-indicador { padding:0 12px; }
  .tarjeta-indicador .valor { font-size:23px; }
  .tarjeta-indicador:nth-child(2) .valor { font-size:14px; line-height:28px; }
  .tarjeta-indicador .etiqueta { font-size:9px; }
  .aviso-metodologico { font-size:10px; }
  .panel-mapa { padding:18px; }
  .mapa-composicion { grid-template-columns:1fr; }
  .rotulo-mapa { font-size:8px; left:12px; top:12px; }
  .mapa-reticula { padding:24px 6px 10px; margin-bottom:36px; }
  .rotulo-oceano { font-size:7px; }
  .lista-entidades-mapa { max-height:205px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
  .fila-directorio { font-size:10px; gap:6px; min-height:44px; }
  .detalle-mapa { font-size:9px; left:8px; right:8px; }
  .fuente-mapa { line-height:1.7; }
  .rejilla-acerca { grid-template-columns:1fr; }
  .campo-selector-entidad { display:block; }
  .campo-selector-entidad select { display:block; width:100%; margin:10px 0 0; }
  .barra-entidad { padding:16px; }
  .encabezado-estatal h2 { font-size:23px; }
  .panel-filtros { grid-template-columns:1fr; padding:16px; }
  .campo-busqueda { grid-column:1/-1; }
  .tarjeta-acerca { padding:20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
.enlace-resultados-mapa { margin-left:auto; font-size:11px; font-weight:600; text-decoration:none; padding:8px 12px; border:1px solid var(--borde); border-radius:7px; }
#explorar-acervo { scroll-margin-top:20px; }
@media (max-width:760px) { .enlace-resultados-mapa { margin-left:0; } }

/* Sistema de navegación: proximidad, jerarquía, retícula y movimiento funcional. */
.navegacion-secciones { position:sticky; top:0; z-index:20; background:#f7f8faf5; backdrop-filter:blur(16px); padding:16px 0 12px; margin:10px 0 12px; scroll-margin-top:0; }
.pestanas-portal { display:flex; gap:6px; border-bottom:1px solid var(--borde); position:relative; }
.pestanas-portal button { position:relative; display:flex; align-items:center; gap:10px; padding:16px 20px; border:0; background:transparent; color:var(--texto-suave); font:inherit; font-size:12px; font-weight:550; cursor:pointer; white-space:nowrap; transition:color .22s,background .22s; border-radius:9px 9px 0 0; }
.pestanas-portal button span { font-size:9px; font-variant-numeric:tabular-nums; color:#8996a3; }
.pestanas-portal button::after { content:''; position:absolute; left:18px; right:18px; bottom:-1px; height:3px; background:#334b63; transform:scaleX(0); transform-origin:center; transition:transform .3s cubic-bezier(.2,.7,.2,1); border-radius:3px; }
.pestanas-portal button[aria-selected=true] { background:#fff; color:#253d56; font-weight:700; }
.pestanas-portal button[aria-selected=true]::after { transform:scaleX(1); }
.pestanas-portal button:hover { background:#edf1f5; color:#253d56; }
.guia-secciones { font-size:10px; margin:9px 0 0; color:var(--texto-suave); }
.panel-pestana { animation:entrada-panel .38s cubic-bezier(.2,.7,.2,1) both; }
.panel-pestana:focus { outline:none; }
.panel-pestana:focus-visible { outline:2px solid var(--foco); outline-offset:5px; }
@keyframes entrada-panel { from {opacity:0; transform:translateY(12px);} to {opacity:1; transform:translateY(0);} }
.seccion-acerca { margin-top:0; border:0; padding-top:16px; }
.seccion-glosario { padding-top:16px; }
.seccion-glosario h2 { font-size:28px; font-weight:550; letter-spacing:-.7px; margin:0 0 10px; }
.introduccion-seccion { font-size:13px; color:var(--texto-suave); line-height:1.8; max-width:750px; margin:0 0 28px; }
.seccion-acerca h2 { font-size:28px; margin-bottom:10px; }
.rejilla-acerca { align-items:start; }
.rejilla-acerca .tarjeta-acerca { border-top:3px solid #d6dfe8; box-shadow:0 8px 28px #22334404; }
.rejilla-acerca .tarjeta-acerca:first-child ol { padding:0; margin:24px 0 0; list-style:none; counter-reset:etapa; }
.rejilla-acerca .tarjeta-acerca:first-child li { position:relative; counter-increment:etapa; margin:0; padding:0 0 24px 43px; border-left:1px solid #dbe3ea; margin-left:14px; }
.rejilla-acerca .tarjeta-acerca:first-child li::before { content:counter(etapa,decimal-leading-zero); position:absolute; top:0; left:-15px; width:29px; height:29px; display:grid; place-items:center; background:#f0f4f8; border:1px solid #dae3ec; border-radius:50%; color:#48617b; font-size:10px; font-weight:650; }
.rejilla-acerca .tarjeta-acerca:first-child li:last-child { border-color:transparent; padding-bottom:0; }
.lista-metricas { list-style:none; padding:0 !important; }
.lista-metricas li { border-bottom:1px solid var(--borde-suave); padding:12px 0; margin:0; }
.lista-metricas li:last-child { border-bottom:0; }
.bloque-grupos { padding:26px; }
.rejilla-grupos { gap:12px; }
.item-grupo-glosario { border-radius:10px; padding:18px; background:#fafbfc; border-color:var(--borde-suave); transition:background .2s, border-color .2s, transform .2s; }
.item-grupo-glosario:hover { transform:translateY(-2px); background:#f1f5f9; border-color:#c5d2de; }
.item-grupo-glosario strong { font-size:12px; }
.item-grupo-glosario span { font-size:11px; line-height:1.7; margin-top:8px; }
.controles-mapa { position:absolute; top:12px; right:12px; z-index:2; }
.controles-mapa button { background:#ffffffec; color:#4e6378; border:1px solid #dbe2e9; border-radius:7px; padding:8px 11px; font:inherit; font-size:10px; cursor:pointer; transition:background .2s,box-shadow .2s; }
.controles-mapa button:hover { background:#fff; box-shadow:0 3px 10px #334b6314; }
.estado-geografico { transition:fill .24s,stroke .24s,opacity .24s,filter .24s; }
.estado-geografico.estado-atenuado { opacity:.22; }
.estado-geografico.estado-encontrado { fill:#668ba9; stroke:#2d536f; stroke-width:1.7; opacity:1; }
.estado-geografico.estado-en-foco,.estado-geografico[aria-pressed=true] { fill:#365b7d; stroke:#1e405d; stroke-width:1.8; filter:drop-shadow(0 2px 3px #294b7040); opacity:1; }
.estado-geografico[aria-pressed=true] { stroke-dasharray:none; }
.fila-directorio { transition:background .2s,box-shadow .2s; }
.fila-directorio.entidad-en-foco { background:#edf3f8; box-shadow:inset 3px 0 #9fb5c9; }
.fila-directorio[aria-pressed=true] { background:#eaf0f6; box-shadow:inset 3px 0 #365b7d; }
.fila-directorio[aria-pressed=true] strong { color:#2f4d68; font-weight:750; }
.pulso-mapa { fill:#537ea533; stroke:#416d93; stroke-width:1.5; vector-effect:non-scaling-stroke; pointer-events:none; transform-box:fill-box; transform-origin:center; animation:onda-seleccion .85s ease-out both; }
@keyframes onda-seleccion { from {transform:scale(.4); opacity:.9;} to {transform:scale(3.4); opacity:0;} }
.detalle-mapa { transition:border-color .25s,background .25s; }
.tiene-seleccion .detalle-mapa { background:#edf3f9f5; border-color:#c7d5e2; font-weight:600; }
.seleccion-resumen { margin-top:12px; padding:16px; border:1px solid #d8e2eb; background:linear-gradient(135deg,#f3f6fa,#fff); border-radius:12px; animation:entrada-panel .3s both; }
.seleccion-resumen .sobretitulo { display:block; font-size:8px; margin-bottom:8px; }
.seleccion-resumen > strong { display:block; font-size:17px; font-weight:600; letter-spacing:-.3px; }
.seleccion-resumen p { font-size:11px; color:var(--texto-suave); margin:6px 0 14px; }
.seleccion-resumen button { display:flex; align-items:center; justify-content:space-between; width:100%; cursor:pointer; transition:background .2s,box-shadow .2s; }
.seleccion-resumen button span { transition:transform .2s; }
.seleccion-resumen button:hover span { transform:translateX(3px); }
.directorio-mapa:has(.seleccion-resumen:not([hidden])) .lista-entidades-mapa { max-height:205px; }
.tarjeta-disposicion { animation:entrada-panel .32s ease-out both; }
.tarjeta-indicador { transition:background .22s; }
.tarjeta-indicador:hover { background:#f8fafc; }
@media (max-width:760px) {
  .navegacion-secciones { padding-top:8px; }
  .pestanas-portal { gap:0; overflow-x:auto; scrollbar-width:thin; }
  .pestanas-portal button { padding:14px 12px; font-size:11px; gap:6px; }
  .pestanas-portal button span { display:none; }
  .pestanas-portal button::after { left:12px; right:12px; }
  .guia-secciones { font-size:9px; }
  .controles-mapa { top:8px; right:8px; }
  .controles-mapa button { padding:6px 8px; font-size:8px; }
  .rotulo-mapa { font-size:7px; }
  .seleccion-resumen { display:grid; grid-template-columns:1fr auto; gap:0 12px; align-items:center; }
  .seleccion-resumen .sobretitulo { grid-column:1/-1; }
  .seleccion-resumen p { margin-bottom:0; }
  .seleccion-resumen button { grid-column:2; grid-row:2/4; gap:16px; font-size:10px; }
  .seccion-acerca h2,.seccion-glosario h2 { font-size:25px; }
  .introduccion-seccion { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
.panel-pestana { scroll-margin-top:130px; }

/* Cinco indicadores públicos, sin contadores de control interno. */
@media (min-width:1101px) { .rejilla-indicadores { grid-template-columns:repeat(5,minmax(0,1fr)); } }

/* Paleta editorial: arena, marfil, verde petróleo y cobre. */
:root {
  --fondo: #e9e5dc;
  --superficie: #f8f4eb;
  --superficie-alt: #eee8dc;
  --texto: #263c38;
  --texto-suave: #59645c;
  --borde: #cdc8bb;
  --borde-suave: #e0d9cb;
  --primario: #245b52;
  --primario-hover: #173f39;
  --primario-claro: #dde7dc;
  --acento: #a86442;
  --foco: #97522f;
  --sombra: 0 5px 22px #38453709;
  --mapa-c1-bg: #dedfc6;
  --mapa-c2-bg: #b9cbb0;
  --mapa-c3-bg: #8eaf98;
  --mapa-c4-bg: #5d8c7d;
  --mapa-c5-bg: #35685d;
  --mapa-c1-txt: #2d493f;
  --mapa-c2-txt: #2d493f;
  --mapa-c3-txt: #213e34;
  --mapa-c4-txt: #142b25;
  --mapa-c5-txt: #fffaf0;
  --mapa-c1-borde: #b3b9a0;
  --mapa-c2-borde: #93a68b;
  --mapa-c3-borde: #71917b;
  --mapa-c4-borde: #426f61;
  --mapa-c5-borde: #285347;
}
body { background:radial-gradient(ellipse at 90% 5%,#dbe3d4 0,transparent 38%),var(--fondo); }
.encabezado-sitio { background:#233f39; border-bottom-color:#3b584d; color:#f4efdf; }
.marca-simbolo { border-color:#819482; color:#e9d4ab; }
.marca-portal small { color:#c4cdbf; }
.nav-principal .boton-nav { color:#e1e7da; }
.nav-principal .boton-nav:hover { background:#35544a; color:#fff7e7; }
.nav-principal .boton-primario { background:#debf90; color:#293d32; border-color:#debf90; }
.nav-principal .boton-primario:hover { background:#ebd0a5; }
.hero-edicion { border-color:#c5cbb9; }
.punto-edicion { background:#a56544; }
.rejilla-indicadores { background:#dedfcf; border-color:#c8cbb7; }
.tarjeta-indicador { background:transparent; border-right-color:#c5cab6; }
.tarjeta-indicador:hover { background:#d2d9c5; }
.tarjeta-indicador .valor { color:#294d40; }
.navegacion-secciones { background:#e9e5dcf5; }
.pestanas-portal button span { color:#687566; }
.pestanas-portal button[aria-selected=true] { background:#f8f4eb; color:#245b52; }
.pestanas-portal button::after { background:#a86442; }
.pestanas-portal button:hover { background:#dce2d2; color:#244d42; }
.aviso-metodologico { background:#e8dcc5; border-color:#cfc0a3; border-left-color:#a86442; color:#5c4b32; }
.mapa-lienzo { background:radial-gradient(ellipse at 45% 35%,#f2efdf,#dde5d8); border-color:#cdd4c4; }
.rotulo-mapa { color:#566b5c; }
.rotulo-oceano { color:#6f8575; }
.estado-geografico { stroke:#f5eedc; }
.estado-geografico.clase-1 { stroke:#a6b197; }
.estado-geografico:hover,.estado-geografico:focus-visible,.estado-geografico.estado-en-foco,.estado-geografico[aria-pressed=true] { fill:#a55d3e; stroke:#6e3826; filter:drop-shadow(0 2px 3px #60432535); }
.estado-geografico.estado-encontrado { fill:#b87b52; stroke:#7b4a30; }
.estado-geografico.estado-encontrado[aria-pressed=true] { fill:#a55d3e; stroke:#6e3826; }
.punto-estado { border-color:#9cae95; }
.directorio-mapa input,.campo-selector-entidad select,.campo-filtro input,.campo-filtro select { background:#fffbf2; border-color:#c9ccba; }
.fila-directorio { background:#f8f4eb; }
.fila-directorio:hover,.fila-directorio.entidad-en-foco { background:#e8eadb; box-shadow:inset 3px 0 #a4b494; }
.fila-directorio[aria-pressed=true] { background:#ebdfcc; box-shadow:inset 3px 0 #a86442; }
.fila-directorio[aria-pressed=true] strong { color:#744b32; }
.controles-mapa button,.detalle-mapa { background:#f8f4ebed; color:#315d4d; border-color:#bdcbb6; }
.controles-mapa button:hover { background:#e9eddf; box-shadow:0 3px 10px #3a5c3914; }
.tiene-seleccion .detalle-mapa { background:#efe1cef5; border-color:#c8aa87; color:#744b32; }
.pulso-mapa { fill:#b7784933; stroke:#9f603e; }
.seleccion-resumen { background:linear-gradient(135deg,#e7dcc7,#f6efe0); border-color:#cbb89b; }
.tabla-entidades tbody tr:nth-child(even) { background:#f0ebdf; }
.tabla-entidades tbody tr:hover { background:#dde7d7; }
.cita-literal { background:#eeebdf; border-color:#8ba38b; }
.rejilla-acerca .tarjeta-acerca { border-top-color:#9caa89; box-shadow:0 8px 28px #37452d06; }
.rejilla-acerca .tarjeta-acerca:first-child li { border-left-color:#bdc6ac; }
.rejilla-acerca .tarjeta-acerca:first-child li::before { background:#e0e7d6; border-color:#b5c3a5; color:#375746; }
.item-grupo-glosario { background:#efeade; }
.item-grupo-glosario:hover { background:#e0e7d6; border-color:#b6c4a6; }
.pie-sitio { background:#d9decd; border-top-color:#c1cbb4; }

/* Secciones independientes y biblioteca de descargas. */
.pestanas-portal { overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; }
.pestanas-portal button { flex-shrink:0; }
#panel-resumen .encabezado-seccion { margin-top:12px; }
#panel-resumen .rejilla-indicadores { margin:0 0 28px; }
.consulta-vacia { text-align:center; padding:64px 28px; background:var(--superficie); border:1px solid var(--borde); border-radius:16px; }
.consulta-vacia h2 { font-size:26px; font-weight:550; letter-spacing:-.5px; margin:0 0 14px; }
.consulta-vacia p { font-size:13px; color:var(--texto-suave); max-width:510px; margin:0 auto 24px; line-height:1.8; }
.consulta-vacia button { cursor:pointer; }
.seccion-descargas { padding-top:16px; }
.seccion-descargas > h2 { font-size:32px; font-weight:550; letter-spacing:-.8px; margin:0 0 12px; }
#descargas-corte { margin-bottom:24px; font-size:11px; }
.descargas-principales { display:grid; grid-template-columns:1.35fr 1fr; gap:20px; }
.tarjeta-descarga-destacada { padding:30px; background:#e0e4d4; border:1px solid #bdc9b0; border-radius:16px; display:flex; flex-direction:column; align-items:flex-start; }
.tarjeta-descarga-destacada:first-child { background:#284b41; color:#f6efdf; border-color:#284b41; }
.tarjeta-descarga-destacada:first-child .sobretitulo { color:#c4d0b7; }
.tarjeta-descarga-destacada h3 { font-size:25px; font-weight:550; letter-spacing:-.5px; margin:0 0 12px; }
.tarjeta-descarga-destacada > p:not(.sobretitulo) { font-size:12px; line-height:1.8; max-width:480px; margin:0 0 24px; }
.enlace-descarga { display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:650; text-decoration:none; padding:10px 13px; border:1px solid #bcc9b1; border-radius:7px; background:#f8f4eb; color:#245b52; transition:background .2s,transform .2s; }
.enlace-descarga:hover { background:#e3e9d8; color:#173f39; transform:translateY(-1px); }
.tarjeta-descarga-destacada .enlace-descarga { margin-top:auto; }
.tarjeta-descarga-destacada:first-child .enlace-descarga { background:#debf90; color:#293d32; border-color:#debf90; }
.aviso-descargas { margin:20px 0 36px; padding:16px 20px; background:#e4dece; border-left:3px solid #a86442; border-radius:7px; font-size:11px; line-height:1.9; color:#5c5848; }
.aviso-descargas a { font-weight:650; white-space:nowrap; }
.grupo-descargas { margin:0 0 36px; }
.titulo-grupo-descargas { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid var(--borde); padding-top:26px; margin-bottom:18px; }
.titulo-grupo-descargas .sobretitulo { margin-bottom:7px; font-size:9px; }
.titulo-grupo-descargas h3 { margin:0; font-size:22px; font-weight:550; letter-spacing:-.4px; }
.titulo-grupo-descargas > span { font-size:10px; color:var(--texto-suave); }
.rejilla-descargas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
#descargas-temas { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tarjeta-descarga { display:flex; flex-direction:column; align-items:flex-start; padding:23px; background:var(--superficie); border:1px solid var(--borde); border-radius:12px; }
.tarjeta-descarga h4 { font-size:14px; font-weight:650; margin:0 0 8px; line-height:1.5; }
.cantidad-descarga { font-size:11px; color:#6f674e; margin:0 0 12px; }
.descripcion-descarga { font-size:11px; line-height:1.8; color:var(--texto-suave); margin:0 0 18px; }
.formatos-descarga { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.formatos-descarga .enlace-descarga { font-size:10px; padding:8px 10px; }
.rejilla-descargas-entidades { grid-template-columns:repeat(4,minmax(0,1fr)); }
.rejilla-descargas-entidades .tarjeta-descarga { padding:19px; }
.buscador-descargas { display:flex; flex-direction:column; gap:6px; min-width:235px; }
.buscador-descargas span { font-size:10px; color:var(--texto-suave); }
.buscador-descargas input { font:inherit; font-size:12px; padding:10px 12px; border:1px solid var(--borde); border-radius:7px; background:#fffbf2; color:var(--texto); width:100%; }
#contador-descargas-entidad { font-size:11px; margin-bottom:14px; }
@media (max-width:1100px) { .rejilla-descargas-entidades { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) {
  .descargas-principales,.rejilla-descargas,#descargas-temas { grid-template-columns:1fr; }
  .rejilla-descargas-entidades { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tarjeta-descarga-destacada { padding:24px; }
  .seccion-descargas > h2 { font-size:27px; }
  .titulo-grupo-descargas { flex-wrap:wrap; }
  .buscador-descargas { width:100%; }
  .formatos-descarga { gap:6px; }
  .rejilla-descargas-entidades .tarjeta-descarga { padding:15px; }
  .consulta-vacia { padding:40px 20px; }
}
@media (max-width:400px) { .rejilla-descargas-entidades { grid-template-columns:1fr; } }
