/*
 * charts_cis_preelectoral_29n.css - UNICO CSS de los mapas de escanos del CIS preelectoral.
 *   1) BLOQUE BASE  -> copia LITERAL del de charts_listas_29n.css (shared/: tokens, base, buscador, desplegable).
 *   2) ESPECIFICO   -> lo de los dos mapas, todo bajo .chart-cis-29n (calco de los mapas de listas).
 */

/* =====================================================================
   1) BLOQUE BASE — copiado de shared/styles/tokens.css + shared/styles/base.css
   ===================================================================== */

:root {
  /* Colores de marca */
  --ed-rojo: #D0021B;
  --ed-negro: #1a1a1a;
  --ed-amarillo: #ECDC19;
  --ed-azul: #4A90E2;
  --ed-azul-principal: #005695;

  /* Grises de UI / ejes */
  --ed-gris-900: #333333;
  --ed-gris-700: #4a4a4a;
  --ed-gris-500: #939393;
  --ed-gris-300: #c5c5c5;
  --ed-gris-200: #dedede;
  --ed-gris-100: #eaeaea;

  /* Texto */
  --ed-texto: #1a1a1a;
  --ed-texto-suave: #4a4a4a;

  /* Radio de las esquinas de los controles */
  --ed-radio: 4px;

  /* Tipografías */
  --ed-fuente: 'Encode Sans', 'Helvetica Neue', Arial, sans-serif;
  --ed-fuente-titulo: 'Sanomat-Bold', Georgia, 'Times New Roman', serif;
}

.ed-rectos { --ed-radio: 0px; }

/* Reset mínimo, SOLO dentro del gráfico */
.ed-chart,
.ed-chart *,
.ed-chart *::before,
.ed-chart *::after {
  box-sizing: border-box;
}

.ed-chart {
  font-family: var(--ed-fuente);
  color: var(--ed-texto);
  line-height: 1.4;
  margin: 24px 0;
  text-align: left;
  clear: left;
}

.ed-titulo {
  font-family: var(--ed-fuente);
  font-weight: 700;
  color: var(--ed-negro);
  font-size: 22px;
  line-height: 1.2;
  margin: 0 0 4px;
}
.ed-titulo.ed-display,
.ed-display .ed-titulo {
  font-family: var(--ed-fuente-titulo);
}
.ed-subtitulo {
  font-family: var(--ed-fuente);
  color: var(--ed-texto-suave);
  font-size: 14px;
  margin: 0 0 16px;
}
.ed-fuente {
  font-family: var(--ed-fuente);
  color: var(--ed-gris-500);
  font-size: 12px;
  margin-top: 8px;
}

.ed-chart .ed-svg { display: block; width: 100%; height: auto; overflow: visible; }
.ed-chart .ed-svg text { font-family: var(--ed-fuente); }
.ed-chart .ed-eje text { font-size: 14px; fill: var(--ed-gris-500); }
.ed-chart .ed-eje path { stroke-width: 0; }
.ed-chart .ed-eje line { stroke: var(--ed-gris-500); stroke-width: 1; }
.ed-chart .ed-eje-grid line { stroke: var(--ed-gris-300); stroke-width: 0.5; stroke-dasharray: 3; }

.ed-chart .ed-halo { stroke: #fff; stroke-width: 3px; stroke-opacity: 0.9; paint-order: stroke; }

.ed-chart .ed-highlight-layer rect,
.ed-chart .ed-highlight-layer circle,
.ed-chart .ed-highlight-layer path { fill: none; stroke: var(--ed-negro); stroke-width: 2px; }

/* --- shared/components/buscador.css --- */
.ed-buscador, .ed-buscador * { box-sizing: border-box; }
.ed-buscador { position: relative; max-width: 360px; font-family: var(--ed-fuente); }
.ed-buscador-wrap { position: relative; width: 100%; }
.ed-buscador-lupa {
  position: absolute; top: 50%; left: 12px; transform: translateY(-50%);
  display: flex; color: rgba(0, 0, 0, 0.5); pointer-events: none;
}
.ed-buscador-input {
  width: 100%; height: 38px; padding: 10px 10px 10px 38px;
  border: 1px solid #cecece; border-radius: var(--ed-radio);
  font-family: var(--ed-fuente); font-size: 14px;
  background: #fff; color: rgba(0, 0, 0, 0.78);
  text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
}
.ed-buscador-input:focus { outline: none; border-color: var(--ed-gris-500); }
.ed-buscador-lista {
  display: none; position: absolute; left: 0; right: 0; top: 42px; z-index: 1000;
  list-style: none; margin: 0; padding: 4px 0;
  background: #fff; border: 1px solid #ececec; border-radius: var(--ed-radio);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  max-height: 260px; overflow-y: auto; font-size: 14px;
}
.ed-buscador-item {
  padding: 6px 12px; cursor: pointer;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  border-bottom: 1px solid var(--ed-gris-100);
}
.ed-buscador-item:last-child { border-bottom: none; }
.ed-buscador-item.activo,
.ed-buscador-item:hover { background: var(--ed-gris-100); }
.ed-buscador-mun { color: var(--ed-negro); }
.ed-buscador-mun b { font-weight: 700; }
.ed-buscador-prov { color: var(--ed-gris-500); font-size: 12.5px; }
@media (max-width: 600px) {
  .ed-buscador-input { font-size: 16px; }
}

/* --- shared/components/controles.css (solo el desplegable) --- */
.ed-dropdown { position: relative; display: inline-block; font-family: var(--ed-fuente); }
.ed-dropdown-trigger {
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  background: #fff; border: 1px solid #cecece; border-radius: var(--ed-radio);
  padding: 6px 11px; font-size: 13px; color: var(--ed-negro);
}
.ed-dropdown-trigger:hover { border-color: #bbb; }
.ed-dropdown-lbl { color: #888; font-weight: 600; }
.ed-dropdown-cur { font-weight: 700; }
.ed-dropdown-caret { color: #888; transition: transform 0.15s; }
.ed-dropdown.abierto .ed-dropdown-caret { transform: rotate(180deg); }
.ed-dropdown-menu {
  display: none; position: absolute; left: 0; top: calc(100% + 5px); z-index: 1000; min-width: 210px;
  list-style: none; margin: 0; padding: 4px 0; background: #fff; border: 1px solid #ececec; border-radius: var(--ed-radio);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); text-align: left;
}
.ed-dropdown.abierto .ed-dropdown-menu { display: block; }
.ed-dropdown-menu li { padding: 7px 13px; cursor: pointer; display: flex; flex-direction: column; gap: 1px; border-bottom: 1px solid #eee; }
.ed-dropdown-menu li:last-child { border-bottom: none; }
.ed-dropdown-menu li:hover, .ed-dropdown-menu li.sel { background: var(--ed-gris-100); }
.ed-dropdown-menu .ed-dropdown-n { font-weight: 600; color: var(--ed-negro); font-size: 13.5px; }
.ed-dropdown-menu .ed-dropdown-d { color: #999; font-size: 12px; }

/* =====================================================================
   2) ESPECÍFICO DEL PROYECTO (.chart-cis-29n) — calco de los mapas de charts_listas_29n.css
   ===================================================================== */

/* --- Botonera (shared/components/controles.css) --- */
.ed-botonera { display: inline-flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.ed-botonera .ed-boton, .chart-cis-29n .ed-boton {
  font-family: var(--ed-fuente); font-size: 13px; padding: 6px 12px; height: 34px;
  background: #fff; color: var(--ed-texto); border: 1px solid #cecece; border-radius: var(--ed-radio);
  cursor: pointer; transition: all 0.15s;
}
.ed-botonera .ed-boton:hover, .chart-cis-29n .ed-boton:hover { background: var(--ed-gris-100); }
.ed-botonera .ed-boton.activo, .chart-cis-29n .ed-boton.activo { background: var(--ed-negro); color: #fff; border-color: var(--ed-negro); }
.chart-cis-29n .cis29-control .ed-botonera { margin: 0; }

/* --- Controles y leyenda --- */
.chart-cis-29n .cis29-controles { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 24px; margin-bottom: 10px; }
.chart-cis-29n .cis29-control { min-width: 240px; }
.chart-cis-29n .cis29-control-lbl { display: block; font-size: 12px; font-weight: 700; margin-bottom: 4px; }
.chart-cis-29n .ed-buscador { width: 300px; }
.chart-cis-29n .cis29-leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; margin-bottom: 6px; }
.chart-cis-29n .cis29-leyenda span { display: inline-flex; align-items: center; gap: 5px; }
.chart-cis-29n .cis29-leyenda i { display: inline-block; width: 11px; height: 11px; }
.chart-cis-29n .cis29-resumen { font-size: 14px; margin: 4px 0 14px; }

/* --- Mapa de escaños: un cuadrado por escaño (medidas del mapa de encuestas) --- */
.chart-cis-29n .cis29-layout { display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: flex-start; }
.chart-cis-29n .cis29-mapa-col { flex: 1 1 100%; min-width: 0; }
.chart-cis-29n .cis29-mapa { position: relative; }
.chart-cis-29n .cis29-tile { position: absolute; padding: 1px; border: 2px solid transparent; cursor: pointer; }
.chart-cis-29n .cis29-tile--sel { border-color: var(--ed-negro); }
.chart-cis-29n .cis29-tile-lab { display: block; font-size: 12px; line-height: 13px; white-space: nowrap; }
.chart-cis-29n .cis29-tile--sel .cis29-tile-lab { font-weight: 700; }
.chart-cis-29n .cis29-tile--sin .cis29-tile-lab { color: #b5b5b5; }
.chart-cis-29n .cis29-tile-sq { display: flex; flex-wrap: wrap; }
.chart-cis-29n .cis29-sq { display: block; border: 0.5px solid #fff; }

/* --- Mapa del ganador: una casilla por provincia --- */
.chart-cis-29n .cis29-pct {
  position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center;
  line-height: 1.1; cursor: default;
}
.chart-cis-29n .cis29-pct-lab { font-size: 11px; }
.chart-cis-29n .cis29-pct b { font-size: 13px; font-variant-numeric: tabular-nums; }
.chart-cis-29n .cis29-pct:hover { box-shadow: inset 0 0 0 2px var(--ed-negro); z-index: 2; }
.chart-cis-29n .cis29-mapa--pct { margin: 24px auto 0; }

/* --- Tooltip de la provincia (los dos mapas) --- */
.chart-cis-29n .cis29-panel-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; border-bottom: 1px solid #c5c5c5; margin-bottom: 4px; }
.chart-cis-29n .cis29-panel-nom { font-size: 14px; font-weight: 700; line-height: 1.3; }
.chart-cis-29n .cis29-panel-esc { font-size: 10px; color: var(--ed-gris-500); white-space: nowrap; }
.chart-cis-29n .cis29-panel-pct { font-size: 12px; margin: 0 0 6px; }
.chart-cis-29n .cis29-panel-nota { color: var(--ed-texto-suave); }
.chart-cis-29n .cis29-lista { list-style: none; margin: 0; padding: 0; }
  height: 16px; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 9px; font-weight: 700;
}

/* --- Desplegable dentro de los controles (como en listas) --- */
.chart-cis-29n .ed-dropdown-trigger { height: 38px; min-width: 240px; font-size: 14px; }
.chart-cis-29n .ed-dropdown-caret { margin-left: auto; }
.chart-cis-29n .ed-dropdown-menu { max-height: 340px; overflow-y: auto; }

/* --- Buscador por provincia o por partido (calco del buscador por provincias de listas) --- */
.chart-cis-29n .cis29-provs { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-top: 8px; container-type: inline-size; }
.chart-cis-29n .cis29-prov-nom { font-size: 12px; margin-bottom: 5px; }
.chart-cis-29n .cis29-prov-sq {
  --cis29-sq: calc((100cqw - 25px) / 24);
  display: grid; grid-template-columns: repeat(min(var(--n, 12), 12), var(--cis29-sq)); max-width: none;
}
@container (min-width: 600px) {
  .chart-cis-29n .cis29-prov-sq { --cis29-sq: calc((100cqw - 49px) / 36); }
}
.chart-cis-29n .cis29-prov-sq .cis29-num { width: auto; height: var(--cis29-sq); }
.chart-cis-29n .cis29-num {
  position: relative; width: 25px; height: 25px; display: flex; align-items: center; justify-content: center;
  border: 1px solid #fff; color: #fff; font-size: 11px; font-weight: 400; cursor: pointer;   /* números sin negrita; el color fuerte del partido se mantiene (10-nov) */
}
.chart-cis-29n .cis29-num:hover { box-shadow: 0 0 0 2px #000; z-index: 3; }   /* hover por fuera, como en la pieza de listas (10-nov) */
.chart-cis-29n .cis29-num--sin { font-weight: 400; color: #707070 !important; }
/* Raya punteada después del último escaño de la elección anterior */
.chart-cis-29n .cis29-num--corte::after {
  content: ""; position: absolute; right: -2px; top: -6px; bottom: -6px; z-index: 1;
  border-right: 2px dashed var(--ed-negro); pointer-events: none;
}
.chart-cis-29n .cis29-ley-corte { width: 0 !important; height: 16px !important; border-right: 2px dashed var(--ed-negro); }
.chart-cis-29n .cis29-prov-esc { font-weight: 400; color: var(--ed-gris-500); }
.chart-cis-29n .cis29-provs-cab { font-size: 16px; margin: 4px 0 0; }
.chart-cis-29n .cis29-provs-cab:empty { display: none; }
.chart-cis-29n .cis29-leyenda--control { align-self: flex-end; margin: 0 0 9px; }
@media (max-width: 600px) and (pointer: coarse) {
  .chart-cis-29n .cis29-provs { gap: 12px 16px; }
  .chart-cis-29n .cis29-provs > * { flex: 0 0 auto; min-width: 0; }
  .chart-cis-29n .cis29-prov-sq {
    --cis29-sq: calc((100cqw - 16px) / 16);
    grid-template-columns: repeat(min(var(--n, 16), 16), var(--cis29-sq));
  }
  .chart-cis-29n .cis29-prov-sq .cis29-num { font-size: 10px; }
}
/* --- Listado general: tarjetas por provincia en columnas (de más a menos escaños), compactas --- */
/* Varias columnas a lo ancho (cada una, 220px como mínimo); las tarjetas no se parten entre columnas */
.chart-cis-29n .cis29-listado { columns: 3 220px; column-gap: 20px; margin-top: 6px; }
.chart-cis-29n .cis29-fila { break-inside: avoid; display: block; padding: 7px 0 9px; border-bottom: 1px solid var(--ed-gris-100); }
.chart-cis-29n .cis29-fila-prov { display: flex; align-items: baseline; gap: 6px; font-size: 14px; line-height: 1.2; }
.chart-cis-29n .cis29-fila-prov .cis29-prov-esc { font-size: 11px; }
/* Resumen de cada partido, debajo del nombre: «■ PP 14-15 (10)» */
.chart-cis-29n .cis29-fila-resumen { display: flex; flex-wrap: wrap; gap: 1px 10px; font-size: 11.5px; margin: 3px 0 5px; }
.chart-cis-29n .cis29-res { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.chart-cis-29n .cis29-res i { display: inline-block; width: 9px; height: 9px; }
.chart-cis-29n .cis29-res .cis29-prov-esc { font-size: 10.5px; }
.chart-cis-29n .cis29-res--sin { color: var(--ed-gris-500); }
/* Todos los escaños juntos, en horizontal (10 por fila) */
.chart-cis-29n .cis29-tira { display: flex; flex-wrap: wrap; max-width: calc(10 * 22px); cursor: pointer; }
.chart-cis-29n .cis29-tira-sq { display: block; width: 22px; height: 22px; border: 1px solid #fff; }
.chart-cis-29n .cis29-tira:hover .cis29-tira-sq { border-color: #fff; }
.chart-cis-29n .cis29-tira:hover { outline: 1px solid var(--ed-gris-300); outline-offset: 1px; }
@media (max-width: 600px) {
  .chart-cis-29n .cis29-listado { columns: 1; }
  .chart-cis-29n .cis29-tira { max-width: calc(14 * 22px); }
}.chart-cis-29n .cis29-dif { color: var(--ed-texto); font-variant-numeric: tabular-nums; }

/* --- Parlamento en cuadrados (calco del Parlamento de Andalucía 17M: .table_block_results / .election_block_results) --- */
.chart-cis-29n .cis29-parl { position: relative; margin-top: 30px; }
.chart-cis-29n .cis29-parl-mayoria { text-align: center; font-size: 11px; color: #4a4a4a; margin-bottom: 4px; }
/* Se rellena por columnas: la mitad de las columnas es la mitad de los escaños */
.chart-cis-29n .cis29-parl-waffle { position: relative; display: grid; grid-auto-flow: column; gap: 1px; width: max-content; margin: 0 auto; cursor: pointer; }
.chart-cis-29n .cis29-parl-sq { display: block; }
.chart-cis-29n .cis29-parl-sq:hover { box-shadow: inset 0 0 0 2px var(--ed-negro); }
.chart-cis-29n .cis29-parl-linea { position: absolute; left: calc(50% - 1px); top: -4px; bottom: -4px; border-left: 2px solid #000; pointer-events: none; }
.chart-cis-29n .cis29-parl-leyenda { display: flex; justify-content: center; font-size: 12px; margin: 12px 0 18px; }
.chart-cis-29n .cis29-parl-leyenda span { display: inline-flex; align-items: center; gap: 5px; }
.chart-cis-29n .cis29-parl-leyenda i { display: inline-block; width: 11px; height: 11px; }

.chart-cis-29n .cis29-botones-vista { margin: 6px 0 14px; }

/* «Quién entraría» en el tooltip del mapa (calco de .l29-lista / .l29-cand del mapa de listas de paridad) */
.chart-cis-29n .cis29-mp-quien { font-size: 10px; text-transform: uppercase; color: #9b9b9b; margin: 10px 0 4px; border-top: 1px solid #ededed; padding-top: 6px; }
.chart-cis-29n .cis29-lista { list-style: none; margin: 0; padding: 0; }
.chart-cis-29n .cis29-lista--dos { columns: 2; column-gap: 12px; }
.chart-cis-29n .cis29-lista--tres { columns: 3; column-gap: 12px; }
.chart-cis-29n .cis29-lista li { break-inside: avoid; }
.chart-cis-29n .cis29-lista-part { font-size: 11px; font-weight: 700; margin: 4px 0 1px; }
.chart-cis-29n .cis29-lista-part span { font-weight: 400; color: #707070; }
.chart-cis-29n .cis29-sb-ley-ant { background: #fff !important; box-shadow: inset 0 0 0 2px #9b9b9b; border-radius: 50%; }
.chart-cis-29n .cis29-sb-ley-act { background: #707070 !important; border-radius: 50%; }

/* --- Horquillas por partido (filas de «Estimación del reparto de escaños» del promedio de encuestas) --- */
.chart-cis-29n .cis29-hq-leyenda { margin: 6px 0 4px; flex-wrap: wrap; }
.chart-cis-29n .cis29-hq-ley-max { box-shadow: inset 0 0 0 1px #1a1a1a; outline: 1px dotted #fff; outline-offset: -1px; }
.chart-cis-29n .cis29-hq-ley-res2 { height: 5px !important; margin-top: 3px; }
.chart-cis-29n .cis29-hq-ley-raya { background: repeating-linear-gradient(-45deg, #707070 0 2px, #fff 2px 4px) !important; }
.chart-cis-29n .cis29-hq-ley-prev { background: #e9e9e9 !important; box-shadow: inset 0 0 0 1px #707070; height: 6px !important; margin-top: 3px; }
.chart-cis-29n .cis29-hq-ley-res { width: 2px !important; height: 13px !important; background: #1a1a1a !important; }
/* eje vertical: sin regla propia, usa el estilo de la casa (.ed-chart .ed-eje text: 14px, gris --ed-gris-500, sin negrita) (10-nov) */

/* --- Mapa «Cómo está la carrera» (calco de .pe-tile / .pe-mapa-* de charts_promedio_encuestas.css) --- */
.chart-cis-29n .cis29-mp-mapa { position: relative; }
.chart-cis-29n .cis29-tile2 { position: absolute; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; cursor: pointer; }
.chart-cis-29n .cis29-tile2-seats { display: flex; flex-wrap: wrap; gap: 0; justify-content: flex-start; align-content: flex-start; }
.chart-cis-29n .cis29-sq2 { display: block; border-left: 1px solid rgba(255,255,255,0.25); border-top: 1px solid rgba(255,255,255,0.25); box-sizing: border-box; }
.chart-cis-29n .cis29-sq2--vacio { box-shadow: inset 0 0 0 1px #9b9b9b; border-color: transparent; }
.chart-cis-29n .cis29-ley-vacio { background: #fff; box-shadow: inset 0 0 0 1px #9b9b9b; }
.chart-cis-29n .cis29-tile2-lab { font-size: 13px; font-weight: 400; color: #333; margin: 0 0 2px; line-height: 1; white-space: nowrap; }
/* móvil: en la fila de arriba se pisaban las etiquetas («A Cor.Lug.»): letra más pequeña (10-nov) */
@media (max-width: 480px) { .chart-cis-29n .cis29-tile2-lab { font-size: 11px; letter-spacing: -0.3px; } }
.chart-cis-29n .cis29-tile2--sel { z-index: 5; }
.chart-cis-29n .cis29-tile2--sel .cis29-tile2-seats { outline: 2px solid #000; outline-offset: 1px; }
.chart-cis-29n .cis29-tile2--sel .cis29-tile2-lab { font-weight: 700; color: #1a1a1a; }
/* Mapa en % (casillas iguales, como el mapa de cabezas de lista de paridad) */
.chart-cis-29n .cis29-vt { position: absolute; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; border-radius: 2px; font-size: 13px; line-height: 1.1; }
.chart-cis-29n .cis29-vt b { font-weight: 700; }
.chart-cis-29n .cis29-vt-lab { font-size: 10px; opacity: 0.9; }
.chart-cis-29n .cis29-vt--sel { outline: 2px solid #1a1a1a; outline-offset: 1px; z-index: 5; }
.chart-cis-29n .cis29-mp-panel { margin-top: 16px; border: 1px solid #e6e6e6; border-radius: 8px; padding: 12px 14px; }
.chart-cis-29n .cis29-mp-ph { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 1px solid #4a4a4a; padding-bottom: 8px; margin-bottom: 8px; }
.chart-cis-29n .cis29-mp-pnom { font-size: 16px; font-weight: 700; color: #181818; }
.chart-cis-29n .cis29-mp-pesc { font-size: 11px; color: #979797; white-space: nowrap; }
.chart-cis-29n .cis29-mp-row { display: flex; align-items: center; gap: 12px; margin: 9px 0; }
.chart-cis-29n .cis29-mp-main { flex: 1 1 auto; min-width: 0; }
.chart-cis-29n .cis29-mp-row-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.chart-cis-29n .cis29-mp-part { flex: 0 1 auto; font-size: 13px; font-weight: 600; display: flex; align-items: center; min-width: 0; }
.chart-cis-29n .cis29-mp-part-nm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chart-cis-29n .cis29-mp-sw { width: 9px; height: 9px; margin-right: 6px; flex: 0 0 auto; }
.chart-cis-29n .cis29-mp-vval { font-size: 12px; font-weight: 600; color: #181818; white-space: nowrap; font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.chart-cis-29n .cis29-mp-row-bar { margin-top: 4px; }
.chart-cis-29n .cis29-mp-track { position: relative; height: 6px; background: #eee; }
.chart-cis-29n .cis29-mp-fill { position: absolute; left: 0; top: 0; height: 6px; }
.chart-cis-29n .cis29-mp-band { position: absolute; top: 0; height: 6px; opacity: 0.35; }
.chart-cis-29n .cis29-mp-seats-col { flex: 0 0 86px; box-sizing: border-box; text-align: right; font-size: 14px; color: #181818; white-space: nowrap; font-variant-numeric: tabular-nums; padding-left: 12px; border-left: 1px solid #ededed; }
.chart-cis-29n .cis29-mp-rango { color: #979797; font-weight: 400; font-size: 12px; }
.chart-cis-29n .cis29-mp-head { margin: 0 0 6px; align-items: baseline; font-size: 10px; text-transform: uppercase; color: #9b9b9b; }
.chart-cis-29n .cis29-mp-head .cis29-mp-seats-col { font-size: 10px; color: #9b9b9b; border-left: none; }
.chart-cis-29n .cis29-mp-nota { font-size: 11px; color: #979797; margin: 8px 0 0; }
/* La ficha va en el tooltip (como en paridad), no en un panel fijo */
.chart-cis-29n.cis29-mp-tt .cis29-mp-row { margin: 7px 0; }
.chart-cis-29n.cis29-mp-tt .cis29-mp-seats-col { flex-basis: 78px; font-size: 13px; }

/* --- Barra única del Congreso (calco de .pe-congreso de la calculadora de encuestas, charts_promedio_encuestas) --- */
.chart-cis-29n .cis29-cong-bloque { margin: 0; }   /* las dos barras juntas, una encima de otra */
.chart-cis-29n .cis29-cong-bloque + .cis29-cong-bloque { margin-top: -4px; }
.chart-cis-29n .cis29-cong-bloque:last-of-type { margin-bottom: 24px; }
.chart-cis-29n .cis29-cong-tit { font-size: 15px; font-weight: 700; color: var(--ed-negro); }
.chart-cis-29n .cis29-cong-desc { font-size: 13px; color: #4a4a4a; margin-top: 2px; line-height: 1.35; }
.chart-cis-29n .cis29-congreso { position: relative; display: flex; width: 100%; height: 40px; margin: 42px 0 26px; }
.chart-cis-29n .cis29-cong-seg { position: relative; height: 100%; flex: 0 0 auto; min-width: 0; border: 1px solid #fff; border-radius: 3px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.chart-cis-29n .cis29-congreso--sin176 { margin-bottom: 14px; }
.chart-cis-29n .cis29-cong-seg--aire { background: transparent; }
.chart-cis-29n .cis29-cong-seg--hover { outline: 2px solid #000; outline-offset: 0; z-index: 2; }   /* barras: outline, como en listas */
.chart-cis-29n .cis29-cong-num { font-size: 12px; font-weight: 500; }
.chart-cis-29n .cis29-cong-lab { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); font-size: 13px; font-weight: 700; white-space: nowrap; pointer-events: none; }
.chart-cis-29n .cis29-cong-176 { position: absolute; top: -5px; bottom: -5px; width: 2px; margin-left: -1px; background: var(--ed-negro); pointer-events: none; }
.chart-cis-29n .cis29-cong-176::after { content: "Mayoría " attr(data-label); position: absolute; top: calc(100% + 5px); left: 50%; transform: translateX(-50%); font-size: 11px; color: #4a4a4a; white-space: nowrap; }
.chart-cis-29n .cis29-cong-rango { font-size: 13px; color: var(--ed-texto); margin-top: 6px; }

/* Tablas: las de Andalucía */
.chart-cis-29n .cis29-parl-tabla { width: 100%; border-collapse: collapse; font-size: 14px; }
.chart-cis-29n .cis29-parl-tabla th {
  font-weight: 400; font-size: 10px; text-transform: uppercase; color: #9b9b9b; text-align: left;
  border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 5px 0;
}
.chart-cis-29n .cis29-parl-tabla td { padding: 5px 0; border-bottom: 1px solid #ddd; font-variant-numeric: tabular-nums; }
.chart-cis-29n .cis29-parl-tabla .num { text-align: right; padding-right: 4px; }
.chart-cis-29n .cis29-parl-tabla .dif { text-align: left; padding-left: 10px; font-weight: 700; white-space: nowrap; }
.chart-cis-29n .cis29-parl-tabla .gris { color: #939393; }
.chart-cis-29n .cis29-parl-tabla .partido { font-weight: 600; white-space: nowrap; }
.chart-cis-29n .cis29-parl-tabla .partido i { display: inline-block; width: 10px; height: 10px; margin-right: 5px; }
.chart-cis-29n .cis29-parl-nota { font-size: 11px; color: var(--ed-gris-500); margin: 6px 0 0; }

/* Flechas de las diferencias (flechaazul / flecharoja / flechaigual de Andalucía) */
.chart-cis-29n .cis29-flecha { display: inline-block; width: 0; height: 0; vertical-align: middle; }
.chart-cis-29n .cis29-flecha--sube { border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 6px solid #309430; }
.chart-cis-29n .cis29-flecha--baja { border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 6px solid #ff2f37; }
.chart-cis-29n .cis29-flecha--igual { width: 8px; height: 2px; background: #999; }

/* Fichas de las provincias: dos por fila desde 600px */
.chart-cis-29n .cis29-parl-tit { font-size: 18px; font-weight: 700; margin: 36px 0 10px; }
.chart-cis-29n .cis29-parl-provs { display: flex; flex-wrap: wrap; gap: 0 30px; container-type: inline-size; }
.chart-cis-29n .cis29-parl-prov { flex-basis: 100%; border-top: 1px solid #4a4a4a; margin-bottom: 24px; }
@container (min-width: 600px) {
  .chart-cis-29n .cis29-parl-prov { flex-basis: calc(50% - 15px); }
}
.chart-cis-29n .cis29-parl-prov h4 { font-size: 16px; font-weight: 700; margin: 6px 0 8px; }
.chart-cis-29n .cis29-parl-mini { display: flex; flex-wrap: wrap; gap: 1px; margin-bottom: 10px; cursor: pointer; }
.chart-cis-29n .cis29-parl-prov .cis29-parl-tabla { font-size: 13px; }
.chart-cis-29n .cis29-parl-prov .cis29-parl-tabla td { padding-top: 3px; padding-bottom: 3px; }
/* Tabla del Gráfico 2: las columnas de escaños, centradas */
.chart-cis-29n .cis29-parl-tabla th.centro, .chart-cis-29n .cis29-parl-tabla td.centro { text-align: center; }
/* Símbolo del rayado de la horquilla, para usarlo en el subtítulo */
.chart-cis-29n .cis29-sw-raya { display: inline-block; width: 16px; height: 10px; vertical-align: middle; background: repeating-linear-gradient(-45deg, #707070 0 2px, #fff 2px 4px); box-shadow: inset 0 0 0 1px #707070; }
.chart-cis-29n .cis29-mp-pend { display: flex; align-items: center; gap: 2px; color: var(--ed-texto); font-size: 12px; }
.chart-cis-29n .cis29-mp-pend .cis29-ley-vacio { display: inline-block; width: 11px; height: 11px; }
.chart-cis-29n .cis29-sw-sq { display: inline-block; width: 11px; height: 11px; vertical-align: -1px; }
.chart-cis-29n .cis29-sw-sq--vacio { background: #fff; box-shadow: inset 0 0 0 1px #9b9b9b; }

/* Hover en todo lo que tiene tooltip: cursor de mano, como en la pieza de listas (10-nov) */
.chart-cis-29n .cis29-num,
.chart-cis-29n .cis29-cong-seg,
.chart-cis-29n .cis29-tile2,
.chart-cis-29n .cis29-vt,
.chart-cis-29n .cis29-pct,
.chart-cis-29n .cis29-tramo,
.chart-cis-29n svg rect[fill="transparent"] { cursor: pointer; }

.chart-cis-29n .cis29-sq2--disputa { background: repeating-linear-gradient(135deg, #d6d6d6 0, #d6d6d6 2px, #f2f2f2 2px, #f2f2f2 4px); }
.chart-cis-29n .cis29-leyenda-sq { display: inline-block; width: 12px; height: 12px; vertical-align: -1px; }
/* GRÁFICO 9 · foto fija de los líderes (ChartsCisPreelectoral.initCandidatos): el mismo estilo que la tabla del Congreso */
.chart-cis-29n .cis29-cand-tabla { width: 100%; border-collapse: collapse; font-size: 14px; }
.chart-cis-29n .cis29-cand-tabla th { font-weight: 400; font-size: 10px; text-transform: uppercase; color: #9b9b9b; text-align: right; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 5px 0 5px 8px; }
.chart-cis-29n .cis29-cand-tabla th:first-child, .chart-cis-29n .cis29-cand-tabla td:first-child { text-align: left; padding-left: 0; }
.chart-cis-29n .cis29-cand-tabla td { text-align: right; padding: 5px 0 5px 8px; border-bottom: 1px solid #ddd; vertical-align: middle; font-variant-numeric: tabular-nums; }
.chart-cis-29n .cis29-cand-nombre { font-weight: 600; line-height: 1.2; }
.chart-cis-29n .cis29-cand-partido { display: block; font-size: 11px; font-weight: 400; color: #939393; margin-top: 1px; }
.chart-cis-29n .cis29-cand-tabla td.cis29-cand-nota { width: 45%; font-weight: 400; }
.chart-cis-29n .cis29-cand-celda { display: flex; align-items: center; gap: 8px; }
.chart-cis-29n .cis29-cand-barra { flex: 1; height: 14px; }
.chart-cis-29n .cis29-cand-relleno { height: 100%; }
.chart-cis-29n .cis29-cand-valor { min-width: 34px; text-align: right; font-weight: 400; }
