/* concejales.css — «Concejales y contratistas de su ayuntamiento» (PUB-INC, 27-oct-2026): /cumplimiento/concejales y el
 * bloque #concejales de la ficha de un ayuntamiento. Sobre la lámina del sistema (sistema.css: e1-cifras, e1-tabla, e1-pleg,
 * e1-pestanas) y los tokens de la casa; filetes y espacio, sin cajas tintadas. Todo en el ámbito .cj.
 */
.cj * { box-sizing: border-box; }
.cj-pagina { max-width: var(--ancho-pagina); margin: 0 auto; padding: var(--sp-4) var(--margen-der) var(--sp-10) var(--margen-izq); }
.cj-sup { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); }
.cj-sup .migas { margin: 0; min-width: 0; }
.cj-cabeza { padding-bottom: var(--sp-4); border-bottom: 2px solid var(--color-acento); }
.cj-ante { margin: 0 0 var(--sp-2); }
.cj-cabeza .e1-h1 { max-width: 30ch; color: var(--color-texto-fuerte); }
.cj-entradilla { margin: var(--sp-3) 0 0; max-width: 84ch; font-size: var(--e1-15); line-height: var(--e1-lh-15); color: var(--e1-gris-2); }
.cj-entradilla strong { color: var(--e1-tinta); font-weight: 600; }
/* El texto fijo (EIPD, Anexo C): siempre a la vista, con un filete marino a la izquierda */
.cj-aviso { margin: var(--sp-3) 0 0; max-width: 84ch; padding: 2px 0 2px var(--sp-3); border-left: 2px solid var(--e1-marino);
    font-size: var(--e1-14); line-height: var(--e1-lh-14); font-weight: 600; color: var(--e1-tinta); }
.cj-aviso a { font-weight: 400; margin-left: 0.25em; }

/* ── Mandato, cifras y filtros ──────────────────────────────────────────────────────────────────────────── */
.cj-pestanas { position: static; margin-top: var(--sp-6); align-items: baseline; }
.cj-pest-rot { align-self: center; padding-top: 12px; margin-right: calc(-1 * var(--sp-4)); }
.cj-cifras { margin-top: var(--sp-4); border-top-color: var(--e1-filete-2); }
.cj-cifras .e1-c-valor { font-size: var(--e1-32); }
.cj-filtros { margin-top: var(--sp-6); }
.cj-ccaa-t { margin: 0 0 var(--sp-2); }
.cj-ccaa { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); column-gap: var(--sp-6);
    border-top: 1px solid var(--e1-filete-2); }
.cj-ccaa a { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-2); min-height: 32px; padding: 6px 0;
    border-bottom: 1px solid var(--e1-filete); font-size: var(--e1-14); line-height: var(--e1-lh-14); color: var(--e1-tinta); text-decoration: none; }
.cj-ccaa a:hover .cj-ccaa-n { color: var(--e1-marino); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.cj-ccaa-k { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.cj-ccaa-de { font-weight: 400; color: var(--e1-gris-3); font-size: var(--e1-13); }
.cj-ccaa a.cj-ccaa-cero .cj-ccaa-k { color: var(--e1-gris-3); font-weight: 400; }
.cj-ccaa a[aria-current="true"] { color: var(--e1-marino); box-shadow: inset 0 -2px 0 var(--e1-marino); }
.cj-ccaa a[aria-current="true"] .cj-ccaa-n { font-weight: 600; }
.cj-form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-4); margin-top: var(--sp-4); }
.cj-que { display: inline-flex; margin: 0; padding: 0; border: 1px solid var(--color-borde-control); border-radius: var(--radio-s); overflow: hidden; }
.cj-que label { position: relative; display: inline-flex; }
.cj-que input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cj-que span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--sp-3); font-size: var(--e1-14); color: var(--e1-gris-2); cursor: pointer; white-space: nowrap; }
.cj-que label + label span { border-left: 1px solid var(--color-borde-control); }
.cj-que input:checked + span { background: var(--e1-marino); color: var(--color-sobre-acento); font-weight: 600; }
.cj-que input:focus-visible + span { outline: 2px solid var(--e1-marino); outline-offset: -2px; }
.cj-buscar input { min-height: 36px; width: 15rem; padding: 0 var(--sp-3); font: inherit; font-size: var(--e1-14); color: var(--e1-tinta);
    background: var(--color-fondo); border: 1px solid var(--color-borde-control); border-radius: var(--radio-s); }
.cj-boton { min-height: 36px; }
.cj-csv { margin: 0 0 0 auto; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 6px; min-height: 36px; font-size: var(--e1-14); color: var(--e1-gris-2); }
.cj-csv a { color: var(--e1-marino); }
.cj-csv .icono { width: 16px; height: 16px; }
.cj-cuenta { margin: var(--sp-4) 0 var(--sp-2); }

/* ── La tabla: un ayuntamiento por fila, agrupada por comunidad ─────────────────────────────────────────── */
.cj-tabla { table-layout: fixed; }
.cj-tabla .cj-c-ayto { width: 21%; }
.cj-tabla .cj-c-pf { width: 25%; }
.cj-tabla .cj-c-priv { width: 29%; }
.cj-tabla .cj-c-pub { width: 25%; }
.cj-tabla td { vertical-align: top; overflow-wrap: anywhere; padding-top: var(--sp-2); padding-bottom: var(--sp-2); }
.cj-tabla td.cj-c-ayto a { font-weight: 600; }
/* EST-DENS (RUMBO D5.1): el título de grupo y la cifra, en la letra de sección y de cifra (serif solo en el H1) */
.cj-grupo th { padding: var(--sp-5) 0 var(--sp-2); border-bottom: 1px solid var(--e1-filete-2); font-family: var(--fuente-seccion); font-size: calc(var(--e1-20) * var(--inter-k) + var(--inter-b));
    line-height: var(--e1-lh-20); font-weight: var(--peso-inter); letter-spacing: 0; text-transform: none; color: var(--e1-tinta); }
.cj-grupo-n { font-family: var(--fuente-sans); font-size: var(--e1-13); color: var(--e1-gris-3); margin-left: var(--sp-2); }
.cj-soc { display: block; }
.cj-cod { font-weight: 600; white-space: nowrap; }
.cj-soc + .cj-soc { margin-top: var(--sp-2); }
.cj-raya { color: var(--e1-gris-3); }
.cj-no-nombrada { color: var(--e1-gris-2); font-style: italic; }
.cj-gris { color: var(--e1-gris-3); }
.cj-vacio-lista { padding: var(--sp-6) 0; border-top: 1px solid var(--e1-filete); border-bottom: 1px solid var(--e1-filete); color: var(--e1-gris-2); }
.cj-fila-oculta { display: none; }

/* ── «Cómo leerlo» ──────────────────────────────────────────────────────────────────────────────────────── */
.cj-leer .cj-lista { max-width: 92ch; }
.cj-lista { margin: 0; padding: 0 0 0 1.25rem; font-size: var(--e1-14); line-height: var(--e1-lh-14); color: var(--e1-gris-2); }
.cj-lista li + li { margin-top: var(--sp-2); }
.cj-lista strong { color: var(--e1-tinta); font-weight: 600; }
.cj-canal { margin: var(--sp-4) 0 0; font-size: var(--e1-14); color: var(--e1-tinta); }

/* ── El bloque de la ficha del ayuntamiento ─────────────────────────────────────────────────────────────── */
.cj-bloque { margin-top: var(--sp-8); scroll-margin-top: 80px; }
.cj-bloque .e1-sec-cab { margin-bottom: var(--sp-2); }
.cj-bloque .cj-entradilla { margin-top: 0; font-size: var(--e1-14); line-height: var(--e1-lh-14); }
.cj-mandatos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-8); margin-top: var(--sp-5); }
.cj-mandato { border-top: 1px solid var(--e1-tinta); padding-top: var(--sp-2); min-width: 0; }
.cj-mandato-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--sp-3); margin: 0; }
.cj-pieza { margin-top: var(--sp-4); }
.cj-pieza-t { margin: 0 0 var(--sp-1); font-family: var(--fuente-sans); font-size: var(--e1-14); line-height: var(--e1-lh-14); font-weight: 600; color: var(--e1-tinta); }
.cj-cifra-linea { display: flex; align-items: baseline; gap: var(--sp-2); margin: 0; }
.cj-cifra { font-family: var(--fuente-cifra); font-weight: var(--peso-inter); font-size: calc(var(--e1-32) * var(--inter-k) + var(--inter-b)); line-height: var(--e1-lh-32); color: var(--e1-tinta); font-variant-numeric: tabular-nums; }
.cj-cifra-lectura { font-size: var(--e1-14); line-height: var(--e1-lh-14); color: var(--e1-gris-2); }
.cj-tipos { list-style: none; margin: var(--sp-2) 0 0; padding: 0; border-top: 1px solid var(--e1-filete); }
.cj-tipos li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--sp-3); padding: 6px 0; border-bottom: 1px solid var(--e1-filete); }
.cj-tipo-t { font-size: var(--e1-14); line-height: var(--e1-lh-14); color: var(--e1-tinta); }
.cj-tipo-n { font-size: var(--e1-13); line-height: var(--e1-lh-13); color: var(--e1-gris-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cj-pieza .e1-nota { margin-top: var(--sp-2); }
.cj-vacio { margin: 0; padding: var(--sp-2) 0; border-top: 1px solid var(--e1-filete); border-bottom: 1px solid var(--e1-filete); font-size: var(--e1-13); line-height: var(--e1-lh-13); color: var(--e1-gris-3); }
.cj-vacio[data-cj-vacio="sin"] { color: var(--e1-gris-2); }
.cj-socs td:first-child a { font-weight: 600; }
.cj-aviso-canal { font-weight: 400; }
.cj-no-det { margin: var(--sp-3) 0 0; padding-top: var(--sp-2); border-top: 1px solid var(--e1-filete); font-size: var(--e1-14); line-height: var(--e1-lh-14); color: var(--e1-gris-2); }
.cj-no-det-l { color: var(--e1-gris-2); }
.cj-personas { margin-top: var(--sp-2); }
.cj-personas .cj-p-cod { width: 7.5rem; white-space: nowrap; font-weight: 600; }
.cj-personas td { vertical-align: top; }
.cj-anios { font-variant-numeric: tabular-nums; }
.cj-anio { white-space: nowrap; }
.cj-vacio-r { font-size: var(--e1-12); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--e1-gris-2); margin-right: var(--sp-2); }
.cj-publicas { margin-top: var(--sp-4); }
.cj-pub-lista { list-style: none; margin: var(--sp-1) 0 0; padding: 0; border-top: 1px solid var(--e1-filete); }
.cj-pub-lista li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--sp-3); padding: 6px 0; border-bottom: 1px solid var(--e1-filete); }
.cj-pub-n { font-size: var(--e1-14); line-height: var(--e1-lh-14); }
.cj-pub-d { font-size: var(--e1-13); line-height: var(--e1-lh-13); color: var(--e1-gris-3); font-variant-numeric: tabular-nums; }
.cj-mas { margin-top: var(--sp-5); }
.cj-mas .cj-lista { margin-top: var(--sp-2); }
.cj-bloque .cj-canal { font-size: var(--e1-13); color: var(--e1-gris-2); }

/* ── Escritorio estrecho y móvil ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .cj-mandatos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
    /* La tabla pasa a filas: el municipio arriba; cada pieza con su rótulo encima; la que no tiene nada, fuera */
    .cj-tabla { table-layout: auto; }
    .cj-tabla .cj-c-ayto, .cj-tabla .cj-c-pf, .cj-tabla .cj-c-priv, .cj-tabla .cj-c-pub { width: auto; }
    .cj-tabla.e1-filas tr[data-cj-fila] { gap: var(--sp-2) var(--sp-4); }
    .cj-tabla.e1-filas td[data-r] { flex: 1 1 100%; font-size: var(--e1-14); }
    .cj-tabla.e1-filas td[data-r]::before { display: block; margin: 0 0 2px; }
    .cj-tabla.e1-filas td.cj-vacia { display: none; }
    .cj-tabla.e1-filas tr.cj-grupo { display: block; padding: 0; border: 0; }
    .cj-tabla.e1-filas tr.cj-grupo th { display: block; padding: var(--sp-5) 0 var(--sp-2); }
    .cj-socs.e1-filas td:first-child { font-weight: 400; }
    .cj-personas.e1-filas td.cj-vacia { display: none; }
    .cj-personas.e1-filas td[data-r] { flex: 1 1 100%; }
    .cj-personas.e1-filas td[data-r]::before { display: block; margin-bottom: 2px; }
    .cj-personas .cj-p-cod { width: auto; }
    .cj-socs.e1-filas tr { gap: 2px var(--sp-4); justify-content: flex-start; }
    .cj-socs.e1-filas td.n { flex: 0 0 auto; width: auto; text-align: left; }
}
@media (max-width: 640px) {
    .cj-tabla td.cj-c-ayto > a { min-width: 44px; }
    .cj-sec-enlace a, .cj-leer .e1-sec-cab a, .cj-bloque .e1-sec-cab a { display: inline-flex; align-items: center; min-height: 40px; }
    .cj-pestanas a .n { display: none; }
    .cj-pestanas { margin-top: var(--sp-4); }
    .cj-ccaa { display: flex; grid-template-columns: none; gap: var(--sp-4); overflow-x: auto; scrollbar-width: none; border-top: 0;
        border-bottom: 1px solid var(--e1-filete-2); margin: 0 calc(-1 * var(--margen-lateral)); padding: 0 var(--margen-lateral); }
    .cj-ccaa::-webkit-scrollbar { display: none; }
    .cj-ccaa a { min-height: 44px; align-items: center; border-bottom: 0; white-space: nowrap; }
    .cj-ccaa-de { display: none; }
    .cj-form { gap: var(--sp-2) var(--sp-3); }
    .cj-que { width: 100%; }
    .cj-que label { flex: 1 1 0; }
    .cj-que span { width: 100%; min-height: 40px; justify-content: center; padding: 0 var(--sp-1); font-size: var(--e1-13); white-space: normal; text-align: center; line-height: 1.15; }
    .cj-buscar { flex: 1 1 auto; }
    .cj-buscar input { width: 100%; min-height: 40px; font-size: 16px; }
    .cj-csv { margin-left: 0; min-height: 40px; }
    .cj-csv a { display: inline-flex; align-items: center; min-height: 40px; }
    .cj-pub-lista a { display: inline-flex; align-items: center; min-height: 40px; }
    .cj-boton { min-height: 40px; }
    .cj-cifra { font-size: calc(var(--e1-25) * var(--inter-k) + var(--inter-b)); line-height: var(--e1-lh-25); }
    .cj-ccaa-t { margin-bottom: 0; }
}
