/*
 * Fichas: tarjetas con encabezado, mismo lenguaje que el listado y el detalle de prensa
 * (_posts_list.php, _post.php). Las usan _comision.php, _legislador.php y _contacto.php.
 */
.ficha { background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; overflow: hidden; margin-bottom: 1.5rem; }
.ficha-header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .9rem 1.2rem; border-bottom: 1px solid #e2e8f0; font-weight: 700; color: #0f172a; }
.ficha-header i { color: var(--color-principal-texto, #1B365D); }
.ficha-body { padding: 1.2rem; }
.ficha-badge { display: inline-block; min-width: 1.8rem; padding: .15rem .55rem; border-radius: 50rem; background: #e8eef6; color: var(--color-principal-texto, #1B365D); font-size: .78rem; font-weight: 700; text-align: center; }

/* lista de datos: etiqueta a la izquierda, valor a la derecha (o debajo si es largo) */
.ficha-datos { margin: 0; }
.ficha-datos > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding: .7rem 1.2rem; border-top: 1px solid #f1f5f9; }
.ficha-datos > div:first-child { border-top: 0; }
.ficha-datos dt { font-weight: 500; color: #64748b; margin: 0; }
.ficha-datos dd { font-weight: 600; color: #0f172a; margin: 0; text-align: right; overflow-wrap: anywhere; }
.ficha-datos > .ficha-dato-largo { display: block; }
.ficha-datos > .ficha-dato-largo dd { text-align: left; font-weight: 400; color: #334155; line-height: 1.6; margin-top: .35rem; }

/* personas (autoridades, integrantes) */
.ficha-persona { display: flex; align-items: center; gap: .85rem; padding: .75rem 1.2rem; border-top: 1px solid #f1f5f9; color: #0f172a; text-decoration: none !important; transition: background .15s ease; }
.ficha-persona:first-child { border-top: 0; }
a.ficha-persona:hover { background: #f8fafc; }
.ficha-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; background: #f1f5f9; flex-shrink: 0; }
.ficha-persona-nombre { font-weight: 700; line-height: 1.25; }
.ficha-persona-detalle { font-size: .82rem; color: #64748b; }

/* pestañas dentro de una ficha */
.ficha-tabs { display: flex; flex-wrap: wrap; gap: .25rem; padding: .5rem .75rem 0; border-bottom: 1px solid #e2e8f0; margin: 0; list-style: none; }
.ficha-tabs .nav-link { border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: #475569; font-weight: 600; padding: .65rem .9rem; background: none; }
.ficha-tabs .nav-link:hover { color: var(--color-principal-texto, #1B365D); }
.ficha-tabs .nav-link.active { color: var(--color-principal-texto, #1B365D); border-bottom-color: var(--color-principal, #1B365D); background: none; }

/* indicadores numericos */
.ficha-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1px; background: #e2e8f0; }
.ficha-stat { background: #fff; padding: 1.1rem; text-align: center; }
.ficha-stat-num { display: block; font-size: 2rem; font-weight: 800; line-height: 1.1; color: var(--color-principal-texto, #1B365D); font-variant-numeric: tabular-nums; }
.ficha-stat-label { font-size: .75rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #64748b; }

/* tablas dentro de una ficha */
.ficha .table { margin-bottom: 0; }
.ficha .table > :not(caption) > * > * { padding: .65rem .9rem; vertical-align: middle; }
.ficha .table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; font-weight: 600; border-bottom-width: 1px; }
.ficha .dataTables_wrapper { padding: .75rem 1rem 1rem; }

/* textos secundarios: el tema pinta de violeta .text-secondary */
.ficha .text-secondary, .ficha-persona small { color: #64748b !important; }

/* listados (_al_legisladores.php, _al_bloques.php, _al_comisiones.php) */
.ficha .table td a { text-decoration: none; }
.ficha .table td a:hover { text-decoration: underline; }
.ficha-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; margin-right: .5rem; vertical-align: middle; background: #94a3b8; }
.ficha-barra { display: flex; align-items: center; gap: .6rem; min-width: 160px; }
.ficha-barra-pista { flex: 1; height: .5rem; border-radius: 50rem; background: #eef2f6; overflow: hidden; }
.ficha-barra-valor { display: block; height: 100%; border-radius: 50rem; background: var(--color-principal, #1B365D); }
.ficha-barra-texto { flex: 0 0 3.2rem; text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }

/* titulo de grupo dentro de una pagina (Autoridades, Secretarias, tipos de area) */
.ficha-grupo { display: flex; align-items: center; gap: 1rem; margin: 2rem 0 1rem; font-size: 1.15rem; font-weight: 700; color: #0f172a; }
.ficha-grupo::after { content: ""; flex: 1; height: 1px; background: #e2e8f0; }
.row > .col-12:first-child > .ficha-grupo { margin-top: 0; } /* solo el primer grupo de la pagina va pegado arriba */

/* autoridades (_institucional_autoridades.php): foto, cargo, nombre, bloque y enlace al perfil */
.aut-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid #e2e8f0; border-radius: 14px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.aut-card:hover { transform: translateY(-4px); box-shadow: 0 12px 22px -8px rgba(15,32,56,.18); }
.aut-foto { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: top; background: #f1f5f9; border-bottom: 4px solid var(--aut-color, var(--color-principal, #1B365D)); }
.aut-cuerpo { display: flex; flex-direction: column; flex: 1; padding: 1rem 1.1rem 1.1rem; }
.aut-cargo { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--color-principal-texto, #1B365D); margin-bottom: .35rem; }
.aut-nombre { font-size: 1.05rem; font-weight: 700; line-height: 1.3; color: #0f172a; margin: 0; }
.aut-bloque { font-size: .85rem; color: #64748b; margin-top: .25rem; }
.aut-desc { font-size: .85rem; color: #475569; margin: .5rem 0 0; }
.aut-perfil { margin-top: auto; padding-top: .9rem; font-size: .85rem; font-weight: 600; color: var(--color-principal-texto, #1B365D); text-decoration: none !important; }
.aut-perfil i { display: inline-block; transition: transform .2s ease; }
.aut-perfil:hover i { transform: translateX(3px); }

/* areas (_areas_autoridades.php): area y responsable */
.area-card { height: 100%; background: #fff; border: 1px solid #e2e8f0; border-left: 4px solid var(--color-principal, #1B365D); border-radius: 10px; padding: .9rem 1.1rem; }
.area-nombre { font-size: .78rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: #64748b; line-height: 1.35; }
.area-persona { display: flex; align-items: center; gap: .5rem; margin-top: .45rem; font-weight: 700; color: #0f172a; }
.area-persona i { color: var(--color-principal-texto, #1B365D); }
