/* v3 — Sistema de Análisis de Actividades Municipales · estilos específicos */

.v3-main {
  max-width: 1180px;
  margin: 0 auto;
  padding: 32px 24px 64px;
  font-family: "IBM Plex Sans", sans-serif;
  color: var(--v2-ink-soft, #3a3f4c);
}

/* ─── Portada: dos entidades + buscador destacado ─── */
.v3-buscador-hero {
  background: var(--v2-paper, #fbfaf7);
  border: 1px solid var(--v2-rule, #d9d6cd);
  padding: 28px 28px 22px;
  border-radius: 8px;
  margin-bottom: 28px;
}
.v3-buscador-hero h2 {
  font-family: "Fraunces", serif;
  font-weight: 500;
  font-size: 26px;
  margin: 0 0 6px;
  color: var(--v2-ink, #1a1f2c);
}
.v3-buscador-hero p { font-size: 14px; color: var(--v2-ink-muted, #6a6f7c); margin: 0 0 16px; }
.v3-buscador-form {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
}
.v3-buscador-form input,
.v3-buscador-form select {
  padding: 10px;
  border: 1px solid var(--v2-rule, #d9d6cd);
  border-radius: 4px;
  font-size: 14px;
  font-family: inherit;
}
.v3-buscador-form label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--v2-ink-muted, #6a6f7c);
  display: block;
  margin-bottom: 4px;
}

.v3-entidades {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.v3-entidad {
  background: #fff;
  border: 1px solid var(--v2-rule, #d9d6cd);
  border-radius: 8px;
  padding: 24px;
  display: flex; flex-direction: column;
}
.v3-entidad-cab {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
}
.v3-entidad-cab .icono { font-size: 28px; }
.v3-entidad-cab h2 {
  font-family: "Fraunces", serif;
  font-weight: 500;
  font-size: 22px;
  margin: 0;
  color: var(--v2-ink, #1a1f2c);
}
.v3-entidad p.lede {
  font-size: 13px;
  color: var(--v2-ink-muted, #6a6f7c);
  margin: 0 0 14px;
}
.v3-modulos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.v3-modulo {
  background: var(--v2-paper-dim, #f1efe8);
  border-radius: 4px;
  padding: 14px;
  text-decoration: none;
  color: inherit;
  transition: background 0.12s, transform 0.12s;
}
.v3-modulo:hover { background: var(--v2-paper, #fbfaf7); transform: translateY(-1px); }
.v3-modulo .nombre {
  font-weight: 600;
  font-size: 14px;
  color: var(--v2-ink, #1a1f2c);
  margin-bottom: 4px;
}
.v3-modulo .cuenta {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  color: var(--v2-blue, #1f3a5f);
}

/* ─── Tabla unificada ─── */
.v3-tabla {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  margin-top: 18px;
}
.v3-tabla th, .v3-tabla td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--v2-rule, #d9d6cd);
  text-align: left;
  font-size: 13px;
  vertical-align: top;
}
.v3-tabla th {
  background: var(--v2-paper-dim, #f1efe8);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--v2-ink-muted, #6a6f7c);
}
.v3-tabla tr:hover { background: var(--v2-paper, #fbfaf7); }
.v3-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 3px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.v3-tag.ayto { background: #e4ecf6; color: var(--v2-blue, #1f3a5f); }
.v3-tag.md { background: #fff3d6; color: var(--v2-amber, #c08400); }

/* ─── Plenos ─── */
.v3-voto {
  display: inline-block;
  width: 24px; text-align: center;
  padding: 1px 4px;
  border-radius: 3px;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  font-weight: 600;
}
.v3-voto.si { background: var(--v2-green, #4f7a3a); color: #fff; }
.v3-voto.no { background: var(--v2-red, #9b2226); color: #fff; }
.v3-voto.abstencion { background: var(--v2-amber, #c08400); color: #fff; }
.v3-voto.no_vota { background: #b8b5ad; color: #fff; }
.v3-resultado.aprobado { color: var(--v2-green, #4f7a3a); font-weight: 600; }
.v3-resultado.rechazado { color: var(--v2-red, #9b2226); font-weight: 600; }
.v3-resultado.retirado { color: var(--v2-ink-muted, #6a6f7c); font-style: italic; }

/* ─── Filtros (forms) ─── */
.v3-filtros {
  background: var(--v2-paper-dim, #f1efe8);
  padding: 16px;
  border-radius: 6px;
  margin-bottom: 18px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  align-items: end;
}
.v3-filtros input,
.v3-filtros select {
  padding: 8px;
  border: 1px solid var(--v2-rule, #d9d6cd);
  border-radius: 4px;
  font-size: 13px;
}
.v3-filtros label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--v2-ink-muted, #6a6f7c);
  display: block;
  margin-bottom: 4px;
}
.v3-filtros .v3-filtros-actions {
  grid-column: 1 / -1;
  display: flex; gap: 8px;
}

/* ─── KPI cards ─── */
.v3-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 14px;
  margin: 20px 0 28px;
}
.v3-kpi-card {
  background: #fff;
  border: 1px solid var(--v2-rule, #d9d6cd);
  border-radius: 6px;
  padding: 18px;
}
.v3-kpi-card .label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--v2-ink-muted, #6a6f7c);
}
.v3-kpi-card .num {
  font-family: "Fraunces", serif;
  font-weight: 500;
  font-size: 32px;
  color: var(--v2-ink, #1a1f2c);
  line-height: 1.1;
  margin-top: 4px;
}

/* Responsive */
@media (max-width: 720px) {
  .v3-entidades, .v3-modulos { grid-template-columns: 1fr; }
  .v3-buscador-form { grid-template-columns: 1fr; }
  .v3-tabla { display: block; overflow-x: auto; }
}
