/* ============ DemocratIA — estilos ============ */
/* Paleta cívica: azul urna + morado participación. Modo claro y oscuro.
   La tipografía del relato manda: cuerpo grande y line-height cómodo,
   porque la gente tiene que LEER antes de votar. */

:root{
  --azul:#2f57c9;
  --azul-osc:#152a68;
  --azul-claro:#e9edfc;
  --morado:#7c6cf0;
  --morado-claro:#efecfe;
  --rojo:#d64545;
  --rojo-claro:#fdeaea;
  --verde:#17a06b;
  --verde-claro:#e3f5ec;
  --ambar:#e0921f;
  --ambar-claro:#fdf1de;

  --tinta:#151a26;
  --texto:#2a3142;
  --gris:#5c6474;
  --gris-claro:#8b93a4;
  --linea:#e4e7f0;
  --borde:#e4e7f0;
  --fondo:#f4f6fb;
  --superficie:#ffffff;
  --superficie-2:#fafbfe;

  --radio:16px;
  --radio-sm:10px;
  --sombra:0 1px 3px rgba(20,30,60,.06), 0 6px 20px rgba(20,30,60,.05);
  --sombra-alta:0 8px 30px rgba(20,30,60,.12);
  --ancho:840px;
}

@media (prefers-color-scheme: dark){
  :root{
    --azul:#7d9bff;
    --azul-osc:#0d1530;
    --azul-claro:#1b2547;
    --morado:#a396ff;
    --morado-claro:#241f45;
    --rojo:#ff7b7b;
    --rojo-claro:#3a1f22;
    --verde:#4bd39b;
    --verde-claro:#12352a;
    --ambar:#f0b356;
    --ambar-claro:#3a2c14;

    --tinta:#f0f2f8;
    --texto:#dfe3ee;
    --gris:#a6adbd;
    --gris-claro:#7b8394;
    --linea:#262c3d;
    --borde:#262c3d;
    --fondo:#0e111a;
    --superficie:#161a26;
    --superficie-2:#1b202e;

    --sombra:0 1px 3px rgba(0,0,0,.4), 0 6px 20px rgba(0,0,0,.3);
    --sombra-alta:0 8px 30px rgba(0,0,0,.5);
  }
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',sans-serif;
  background:var(--fondo);color:var(--texto);
  min-height:100vh;display:flex;flex-direction:column;
  font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--azul);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3{color:var(--tinta);line-height:1.25}
b,strong{color:var(--tinta);font-weight:700}

/* ---------- barra superior ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  background:var(--superficie);border-bottom:1px solid var(--linea);
  padding:10px 18px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  backdrop-filter:saturate(180%) blur(8px);
}
.brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;color:var(--tinta)}
.brand:hover{text-decoration:none}
.brand-icon{font-size:22px}
.brand-ia{color:var(--morado)}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav a{
  padding:8px 13px;border-radius:999px;font-weight:600;font-size:14.5px;
  color:var(--gris);display:flex;align-items:center;gap:6px;
  transition:background .15s,color .15s;
}
.nav a:hover{background:var(--azul-claro);color:var(--azul);text-decoration:none}
.nav a.activa{background:var(--azul);color:#fff}
@media (max-width:640px){
  .nav{width:100%;justify-content:space-between;gap:2px}
  .nav a span{display:none}
  .nav a{font-size:19px;padding:8px 14px;justify-content:center;flex:1}
}

main{
  flex:1;width:100%;max-width:var(--ancho);
  margin:0 auto;padding:26px 18px 60px;
}

/* ---------- tipografía de página ---------- */
.titulo{font-size:29px;font-weight:800;letter-spacing:-.4px;margin-bottom:6px}
.bajada{color:var(--gris);margin-bottom:22px;font-size:15.5px}
.seccion{
  font-size:18px;font-weight:800;margin:30px 0 14px;
  display:flex;align-items:center;gap:8px;
}
.centro{text-align:center}
.ayuda{font-size:13.5px;color:var(--gris-claro);line-height:1.5}
.desc{color:var(--gris);font-size:15px}
.desc.grande{font-size:17.5px;line-height:1.75;color:var(--texto)}
.meta-linea{font-size:13px;color:var(--gris-claro);margin:8px 0}
.volver{
  display:inline-flex;gap:6px;align-items:center;
  color:var(--gris);font-weight:600;margin-bottom:16px;font-size:14.5px;
}

/* ---------- tarjetas ---------- */
.card{
  background:var(--superficie);border:1px solid var(--linea);
  border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);
  margin-bottom:16px;
}
.card.centrado{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.card.promo{
  background:linear-gradient(135deg,var(--morado-claro),var(--azul-claro));
  border-color:transparent;
}
.card.promo .btn{margin-top:12px}
.destacado-inicio{border-left:5px solid var(--rojo)}
.graf-titulo{font-weight:800;color:var(--tinta);margin-bottom:12px;font-size:16px}

.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px;margin-bottom:22px}
.kpi{
  background:var(--superficie);border:1px solid var(--linea);border-radius:var(--radio);
  padding:16px;box-shadow:var(--sombra);
}
.kpi .valor{font-size:28px;font-weight:800;color:var(--azul);line-height:1.1}
.kpi .etiqueta{font-size:13px;color:var(--gris);margin-top:3px;font-weight:600}
.kpi .sub{font-size:11.5px;color:var(--gris-claro);margin-top:2px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:720px){.grid-2{grid-template-columns:1fr}}

/* ---------- chips ---------- */
.chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 11px;border-radius:999px;font-size:12.5px;font-weight:700;
  background:var(--azul-claro);color:var(--azul);
}
.chip.cerrado{background:var(--linea);color:var(--gris)}
.chips-filtro{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
.chips-filtro button{
  padding:7px 14px;border-radius:999px;border:1px solid var(--borde);
  background:var(--superficie);font-size:13.5px;font-weight:600;color:var(--gris);
  transition:all .15s;
}
.chips-filtro button:hover{border-color:var(--azul);color:var(--azul)}
.chips-filtro button.activo{background:var(--azul);color:#fff;border-color:var(--azul)}

/* sello de modalidad */
.sello{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 9px;border-radius:999px;font-size:12px;font-weight:800;
  vertical-align:middle;
}
.sello.verificado{background:var(--verde-claro);color:var(--verde)}
.sello.invitado{background:var(--ambar-claro);color:var(--ambar)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 18px;border-radius:var(--radio-sm);font-weight:700;font-size:14.5px;
  border:1px solid transparent;transition:transform .12s,filter .15s,background .15s;
}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ancho{width:100%;margin-top:8px}
.btn-mini{padding:7px 13px;font-size:13px}
.btn-primario{background:var(--azul);color:#fff}
.btn-morado{background:var(--morado);color:#fff}
.btn-verde{background:var(--verde);color:#fff}
.btn-suave{background:var(--azul-claro);color:var(--azul)}
.btn-linea{background:transparent;border-color:var(--borde);color:var(--gris)}
.btn-linea:hover{border-color:var(--azul);color:var(--azul)}
.btn-texto{background:transparent;color:var(--gris);text-decoration:underline}

/* ---------- lista de temas ---------- */
.lista-temas{display:flex;flex-direction:column;gap:16px}
.tema{
  background:var(--superficie);border:1px solid var(--linea);
  border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);
  transition:box-shadow .18s,transform .18s;
}
.tema:hover{box-shadow:var(--sombra-alta)}
.tema-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.tema h3{font-size:19.5px;font-weight:800;margin-bottom:8px;letter-spacing:-.2px}
.tema h3 a{color:inherit}
.tema h3 a:hover{color:var(--azul)}
.cierra{
  font-size:12.5px;font-weight:700;color:var(--gris);
  background:var(--superficie-2);border:1px solid var(--linea);
  padding:3px 10px;border-radius:999px;margin-left:auto;
}
.cierra.urgente{color:var(--rojo);background:var(--rojo-claro);border-color:transparent}
.cierra.pagarian{color:var(--morado);background:var(--morado-claro);border-color:transparent}

/* ideas: se distinguen del plebiscito con el morado de la marca */
.tema.idea{border-left:4px solid var(--morado)}

/* ---------- captación de correo (aparece recién después de votar) ---------- */
.card.captura{
  background:linear-gradient(135deg,var(--azul-claro),var(--morado-claro));
  border-color:transparent;
}
.fila-correo{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.input-correo{
  flex:1;min-width:190px;
  padding:12px 14px;border-radius:var(--radio-sm);
  border:1px solid var(--borde);background:var(--superficie);
  color:var(--texto);font-size:15px;font-family:inherit;
}
.input-correo:focus{outline:2px solid var(--azul);outline-offset:1px;border-color:transparent}
.btn-correo{white-space:nowrap}
.card.captura .ayuda{margin-top:9px}

/* aún sin votos: honesto, en vez de una barra de 100% abstención */
.sin-votos{
  margin:12px 0 8px;padding:11px 14px;border-radius:var(--radio-sm);
  background:var(--superficie-2);border:1px dashed var(--borde);
  font-size:13.5px;color:var(--gris);text-align:center;
}

/* gancho narrativo: el dato que engancha antes del título */
.gancho{
  background:var(--ambar-claro);color:var(--tinta);
  border-left:3px solid var(--ambar);
  padding:9px 13px;border-radius:0 var(--radio-sm) var(--radio-sm) 0;
  font-size:14px;font-weight:600;margin-bottom:11px;line-height:1.5;
}
.leer-mas{
  display:inline-block;font-size:14px;font-weight:700;
  color:var(--morado);margin:4px 0 12px;
}

/* ---------- barras de votos ---------- */
.barra-votos{
  display:flex;height:11px;border-radius:999px;overflow:hidden;
  background:var(--linea);margin:12px 0 8px;
}
.barra-votos.fina{height:7px;margin:7px 0 5px}
.barra-votos .ap{background:var(--verde)}
.barra-votos .re{background:var(--rojo)}
.barra-votos .ab{background:#c4c9d6}
@media (prefers-color-scheme: dark){.barra-votos .ab{background:#454b5e}}
.leyenda-votos{
  display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--gris);
}
.leyenda-votos.mini{font-size:11.5px;gap:11px}
.leyenda-votos .punto{
  display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;
}
.leyenda-votos .tot{color:var(--gris-claro)}

/* pulso abierto (votos de invitados) */
.pulso{
  margin-top:12px;padding:11px 13px;
  background:var(--superficie-2);border:1px dashed var(--borde);
  border-radius:var(--radio-sm);
}
.pulso-cab{font-size:12.5px;font-weight:800;color:var(--ambar)}
.pulso-cab span{font-weight:600;color:var(--gris-claro)}

/* ---------- botones de voto ---------- */
.acciones-voto{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.acciones-voto.grande{justify-content:center}
.btn-voto{
  flex:1;min-width:120px;padding:12px 14px;border-radius:var(--radio-sm);
  border:1.5px solid var(--borde);background:var(--superficie);
  font-weight:700;font-size:14.5px;color:var(--gris);
  transition:all .15s;
}
.btn-voto:hover{transform:translateY(-1px)}
.btn-voto.ap:hover,.btn-voto.ap.elegido{background:var(--verde);border-color:var(--verde);color:#fff}
.btn-voto.re:hover,.btn-voto.re.elegido{background:var(--rojo);border-color:var(--rojo);color:#fff}
.btn-voto.ab:hover,.btn-voto.ab.elegido{background:var(--gris);border-color:var(--gris);color:#fff}
.acciones-voto.grande .btn-voto{min-width:150px;padding:15px 18px;font-size:15.5px}
.voto-nota{
  margin-top:10px;font-size:13px;color:var(--verde);
  background:var(--verde-claro);padding:8px 12px;border-radius:var(--radio-sm);
  font-weight:600;text-align:center;
}

/* ---------- apoyos ---------- */
.barra-apoyo{
  height:9px;background:var(--linea);border-radius:999px;overflow:hidden;margin:12px 0 6px;
}
.barra-apoyo div{height:100%;background:linear-gradient(90deg,var(--morado),var(--azul));border-radius:999px}
.apoyo-info{font-size:13px;color:var(--gris);text-align:center}

/* ---------- detalle del tema (la página del relato) ---------- */
.detalle{max-width:680px;margin:0 auto}
.detalle-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.detalle-titulo{
  font-size:33px;font-weight:800;letter-spacing:-.7px;
  line-height:1.2;margin-bottom:18px;
}
@media (max-width:600px){.detalle-titulo{font-size:26px}}

.dato-clave{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--ambar-claro);border-radius:var(--radio);
  padding:16px 18px;margin-bottom:24px;
}
.dato-clave span{font-size:22px;line-height:1}
.dato-clave p{font-size:16px;font-weight:700;color:var(--tinta);line-height:1.55}

/* el relato: lectura cómoda, cuerpo grande */
.relato{margin-bottom:26px}
.relato p{
  font-size:18px;line-height:1.8;color:var(--texto);margin-bottom:16px;
}
.relato p:first-child::first-letter{
  font-size:52px;float:left;line-height:.85;
  margin:4px 10px 0 0;font-weight:800;color:var(--morado);
}

.bloque{
  background:var(--superficie);border:1px solid var(--linea);
  border-radius:var(--radio);padding:20px;margin-bottom:16px;box-shadow:var(--sombra);
}
.bloque p{margin-bottom:10px;line-height:1.7}
.bloque p:last-child{margin-bottom:0}
.bloque-titulo{
  font-size:17px;font-weight:800;margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.bloque-titulo.centro{justify-content:center;margin:28px 0 14px}
.bloque.resultados{background:var(--superficie-2)}

/* los dos lados, mismo peso visual */
.posturas{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px}
@media (max-width:640px){.posturas{grid-template-columns:1fr}}
.postura{
  border-radius:var(--radio);padding:18px;border:1px solid var(--linea);
  background:var(--superficie);
}
.postura.ap{border-top:4px solid var(--verde)}
.postura.re{border-top:4px solid var(--rojo)}
.postura-cab{font-weight:800;font-size:14px;margin-bottom:9px}
.postura.ap .postura-cab{color:var(--verde)}
.postura.re .postura-cab{color:var(--rojo)}
.postura p{font-size:15px;line-height:1.65;color:var(--texto)}

.zona-voto{
  background:linear-gradient(135deg,var(--azul-claro),var(--morado-claro));
  border-radius:var(--radio);padding:24px 20px;margin:26px 0 18px;
}
.compartir-caja{
  background:var(--superficie);border:1px dashed var(--morado);
  border-radius:var(--radio);padding:20px;margin-top:22px;
}

/* ---------- bienvenida ---------- */
.bienvenida{max-width:760px;margin:0 auto}
.hero{text-align:center;padding:20px 0 30px}
.hero-logo{font-size:56px;margin-bottom:8px}
.hero h1{font-size:42px;font-weight:800;letter-spacing:-1px;margin-bottom:16px}
.hero h1 span{color:var(--morado)}
.hero-frase{
  font-size:24px;font-weight:700;color:var(--tinta);
  line-height:1.4;margin-bottom:14px;
}
.hero-sub{font-size:16.5px;color:var(--gris);max-width:520px;margin:0 auto;line-height:1.7}
@media (max-width:600px){
  .hero h1{font-size:34px}
  .hero-frase{font-size:20px}
}

.hero-tema{
  background:var(--superficie);border:1px solid var(--linea);
  border-left:5px solid var(--rojo);
  border-radius:var(--radio);padding:20px;box-shadow:var(--sombra);margin-bottom:14px;
}
.hero-tema-tag{font-size:12.5px;font-weight:800;color:var(--rojo);margin-bottom:8px}
.hero-tema h2{font-size:20px;font-weight:800;margin-bottom:8px}
.hero-dato{font-size:14.5px;color:var(--gris);line-height:1.6;margin-bottom:10px}
.hero-tema-pie{font-size:12.5px;color:var(--gris-claro)}

.modos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
@media (max-width:680px){.modos{grid-template-columns:1fr}}
.modo-card{
  background:var(--superficie);border:1px solid var(--linea);
  border-radius:var(--radio);padding:22px;box-shadow:var(--sombra);
  display:flex;flex-direction:column;
}
.modo-card.destacada{border:2px solid var(--azul);box-shadow:var(--sombra-alta)}
.modo-sello{
  align-self:flex-start;padding:3px 11px;border-radius:999px;
  font-size:12px;font-weight:800;margin-bottom:11px;
}
.modo-sello.verificado{background:var(--verde-claro);color:var(--verde)}
.modo-sello.invitado{background:var(--ambar-claro);color:var(--ambar)}
.modo-card h3{font-size:20px;font-weight:800;margin-bottom:7px}
.modo-card>p{font-size:14.5px;color:var(--gris);line-height:1.6;margin-bottom:13px}
.modo-card ul{list-style:none;margin-bottom:16px;flex:1}
.modo-card li{font-size:14px;color:var(--texto);padding:5px 0;line-height:1.5}
.nota-privacidad{
  text-align:center;font-size:13.5px;color:var(--gris);
  background:var(--superficie-2);border:1px solid var(--linea);
  border-radius:var(--radio);padding:14px 18px;line-height:1.6;
}

/* ---------- modal elegir modalidad ---------- */
.modal-fondo{
  position:fixed;inset:0;z-index:100;
  background:rgba(10,14,26,.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:aparecer .18s ease;
}
@keyframes aparecer{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--superficie);border-radius:var(--radio);
  padding:26px;max-width:400px;width:100%;box-shadow:var(--sombra-alta);
}
.modal h3{font-size:20px;font-weight:800;margin-bottom:8px}
.modal p{font-size:14.5px;color:var(--gris);line-height:1.6;margin-bottom:16px}

/* ---------- acceso / registro ---------- */
.registro-wrap{max-width:440px;margin:10px auto}
.registro-hero{text-align:center;margin-bottom:22px}
.registro-hero .logo{font-size:46px;margin-bottom:6px}
.registro-hero h1{font-size:32px;font-weight:800;letter-spacing:-.6px}
.registro-hero p{color:var(--gris);margin-top:8px;font-size:15px;line-height:1.6}
.form-grupo{margin-bottom:15px}
.form-grupo label{
  display:block;font-size:13.5px;font-weight:700;color:var(--tinta);margin-bottom:6px;
}
.form-grupo input,.form-grupo select,.form-grupo textarea{
  width:100%;padding:11px 13px;border:1px solid var(--borde);
  border-radius:var(--radio-sm);font-family:inherit;font-size:15px;
  background:var(--superficie-2);color:var(--texto);
}
.form-grupo textarea{min-height:96px;resize:vertical;line-height:1.6}
.form-grupo input:focus,.form-grupo select:focus,.form-grupo textarea:focus{
  outline:none;border-color:var(--azul);box-shadow:0 0 0 3px var(--azul-claro);
}
.form-grupo .ayuda{margin-top:5px}

/* ---------- propuesta ciudadana ---------- */
.manifiesto-cab{
  background:linear-gradient(135deg,var(--azul-osc),var(--morado));
  color:#fff;border-radius:var(--radio);padding:26px 22px;margin-bottom:20px;
}
.manifiesto-cab h1{color:#fff;font-size:26px;font-weight:800;margin-bottom:8px}
.manifiesto-cab p{color:rgba(255,255,255,.85);font-size:14.5px;line-height:1.65}
.mandato{
  background:var(--superficie);border:1px solid var(--linea);
  border-left:4px solid var(--morado);
  border-radius:var(--radio);padding:18px;margin-bottom:12px;box-shadow:var(--sombra);
}
.mandato-cab{display:flex;gap:13px;align-items:flex-start}
.mandato-cab .num{
  font-size:24px;font-weight:800;color:var(--morado);line-height:1;min-width:28px;
}
.mandato-cab h3{font-size:17px;font-weight:700;line-height:1.4}
.respaldo{font-size:13px;color:var(--gris);margin-top:10px}

/* ---------- tabla ranking ---------- */
.ranking{width:100%;border-collapse:collapse;font-size:14px}
.ranking th{
  text-align:left;font-size:12px;color:var(--gris-claro);
  text-transform:uppercase;letter-spacing:.5px;padding:12px 8px;
  border-bottom:1px solid var(--linea);
}
.ranking td{padding:13px 8px;border-bottom:1px solid var(--linea);vertical-align:top}
.ranking tr:last-child td{border-bottom:0}

/* ---------- estados vacíos ---------- */
.vacio{
  text-align:center;padding:44px 20px;color:var(--gris);
  background:var(--superficie);border:1px dashed var(--borde);
  border-radius:var(--radio);line-height:1.7;
}
.vacio .icono{font-size:40px;margin-bottom:10px}

/* ---------- pie ---------- */
.pie{
  text-align:center;padding:26px 20px;font-size:12.5px;color:var(--gris-claro);
  border-top:1px solid var(--linea);background:var(--superficie);line-height:1.8;
}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);
  background:var(--tinta);color:var(--fondo);
  padding:13px 20px;border-radius:999px;font-size:14px;font-weight:600;
  box-shadow:var(--sombra-alta);z-index:200;transition:transform .3s cubic-bezier(.2,.8,.3,1);
  max-width:90vw;text-align:center;
}
@media (prefers-color-scheme: dark){
  .toast{background:var(--superficie-2);color:var(--tinta);border:1px solid var(--linea)}
}
.toast.visible{transform:translate(-50%,0)}

/* gráficos SVG heredan el color del texto */
svg{color:var(--texto)}

/* ---- Nota metodológica en el pie: lo que hace citable el dato ---- */
.metodo{max-width:62ch;margin:0 auto 16px;text-align:left;border:1px solid var(--borde);
  border-radius:10px;background:var(--superficie,var(--blanco));overflow:hidden}
.metodo summary{cursor:pointer;padding:11px 14px;font-weight:700;font-size:.88rem;list-style:none}
.metodo summary::-webkit-details-marker{display:none}
.metodo summary:hover{color:var(--morado)}
.metodo[open] summary{border-bottom:1px solid var(--borde)}
.metodo-cuerpo{padding:13px 14px;font-size:.86rem;line-height:1.65;color:var(--gris)}
.metodo-cuerpo p{margin:0 0 9px}
.metodo-cuerpo p:last-child{margin-bottom:0}
.metodo-cuerpo strong{color:var(--tinta)}
