/* Informe ejecutivo electoral — infografía póster (PDF) */

.inf-electoral-page {
    max-width: 920px;
}

.inf-electoral-page-intro {
    margin-bottom: 1rem;
    font-size: 0.92rem;
    color: var(--text-muted, #64748b);
}

.inf-electoral {
    --ie-navy: #1e3a5f;
    --ie-green: #2d6a4f;
    --ie-green-light: #40916c;
    --ie-red: #c1121f;
    --ie-gold: #e9c46a;
    --ie-bg: #f8fafc;
    --ie-border: #cbd5e1;
    background: #fff;
    border: 1px solid var(--ie-border);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.08);
    font-size: 0.82rem;
    line-height: 1.35;
    color: #0f172a;
}

.inf-electoral-head {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1.1rem 1.25rem;
    background: linear-gradient(135deg, var(--ie-navy) 0%, #16324f 100%);
    color: #fff;
}

.inf-electoral-head-icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    display: grid;
    place-items: center;
    font-size: 1.8rem;
}

.inf-electoral-head-copy h1 {
    margin: 0;
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.25;
}

.inf-electoral-head-copy p {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    opacity: 0.92;
}

.inf-electoral-date {
    font-size: 0.78rem;
    text-align: right;
    white-space: nowrap;
}

.inf-electoral-dest {
    padding: 0.75rem 1.25rem;
    background: var(--ie-bg);
    border-bottom: 3px solid var(--ie-green);
    font-size: 0.78rem;
}

.inf-electoral-dest strong {
    display: block;
    color: var(--ie-navy);
    font-size: 0.88rem;
}

.inf-electoral-section {
    padding: 0.9rem 1.25rem 1rem;
    border-bottom: 1px solid var(--ie-border);
}

.inf-electoral-section:last-child {
    border-bottom: 0;
}

.inf-electoral-section-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.75rem;
}

.inf-electoral-section-num {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 50%;
    background: var(--ie-green);
    color: #fff;
    font-weight: 700;
    font-size: 0.78rem;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.inf-electoral-section-head h2 {
    margin: 0;
    font-size: 0.92rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--ie-navy);
}

/* Sección 1 */
.inf-electoral-general-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.inf-electoral-general-card {
    border: 1px solid var(--ie-border);
    border-radius: 6px;
    overflow: hidden;
}

.inf-electoral-general-card h3 {
    margin: 0;
    padding: 0.45rem 0.65rem;
    background: var(--ie-navy);
    color: #fff;
    font-size: 0.78rem;
    text-align: center;
    letter-spacing: 0.05em;
}

.inf-electoral-general-body {
    padding: 0.55rem 0.65rem 0.65rem;
}

.inf-electoral-round {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.45rem;
}

.inf-electoral-round:last-child {
    margin-bottom: 0;
}

.inf-electoral-round label {
    display: block;
    font-size: 0.68rem;
    color: #64748b;
    text-transform: uppercase;
}

.inf-electoral-round strong {
    font-size: 0.95rem;
    color: var(--ie-navy);
}

.inf-electoral-round span {
    font-size: 0.72rem;
    color: #475569;
}

.inf-electoral-badge {
    margin-top: 0.45rem;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.inf-electoral-badge-win {
    background: #dcfce7;
    color: #166534;
}

/* Sección 2 */
.inf-electoral-kpi-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.65rem;
}

.inf-electoral-kpi {
    border: 1px solid var(--ie-border);
    border-radius: 999px;
    padding: 0.65rem 0.75rem;
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 0.55rem;
    align-items: center;
}

.inf-electoral-kpi-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 1.1rem;
}

.inf-electoral-kpi strong {
    display: block;
    font-size: 1.15rem;
    line-height: 1.1;
}

.inf-electoral-kpi span {
    font-size: 0.72rem;
    color: #475569;
}

.inf-electoral-kpi-win .inf-electoral-kpi-icon { background: #bbf7d0; }
.inf-electoral-kpi-loss .inf-electoral-kpi-icon { background: #fecaca; }
.inf-electoral-kpi-total .inf-electoral-kpi-icon { background: #bfdbfe; }

/* Sección 3 */
.inf-electoral-growth {
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 1rem;
    align-items: end;
}

.inf-electoral-bars {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    align-items: end;
    min-height: 120px;
}

.inf-electoral-bar-wrap {
    text-align: center;
}

.inf-electoral-bar {
    width: 100%;
    max-width: 88px;
    margin: 0 auto;
    border-radius: 6px 6px 0 0;
    background: linear-gradient(180deg, var(--ie-green-light), var(--ie-green));
    min-height: 24px;
}

.inf-electoral-bar-label {
    margin-top: 0.35rem;
    font-size: 0.72rem;
    color: #64748b;
}

.inf-electoral-bar-value {
    font-weight: 700;
    color: var(--ie-navy);
    font-size: 0.95rem;
}

.inf-electoral-growth-highlight {
    border-left: 4px solid var(--ie-green);
    padding-left: 0.75rem;
}

.inf-electoral-growth-highlight strong {
    display: block;
    font-size: 1.35rem;
    color: var(--ie-green);
}

/* Sección 4 */
.inf-electoral-consolidado {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.inf-electoral-consolidado-summary {
    max-width: 280px;
}

.inf-electoral-map-wrap {
    width: 100%;
}

.inf-electoral-mini-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.74rem;
}

.inf-electoral-mini-table th,
.inf-electoral-mini-table td {
    border: 1px solid var(--ie-border);
    padding: 0.28rem 0.4rem;
}

.inf-electoral-mini-table th {
    background: var(--ie-bg);
    text-align: left;
    font-weight: 600;
}

.inf-electoral-map-wrap h3 {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    color: var(--ie-navy);
    text-transform: uppercase;
}

.inf-electoral-map-legend {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    font-size: 0.72rem;
}

.inf-electoral-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.inf-electoral-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.inf-electoral-dot-win { background: var(--ie-green-light); }
.inf-electoral-dot-loss { background: var(--ie-red); }

.inf-electoral-map-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.5rem;
    background: var(--ie-bg);
    border: 1px solid var(--ie-border);
    border-radius: 6px;
}

.inf-electoral-map-prov {
    background: #fff;
    border: 1px solid var(--ie-border);
    border-radius: 4px;
    padding: 0.3rem 0.35rem;
    min-width: 0;
}

.inf-electoral-map-prov h4 {
    margin: 0 0 0.2rem;
    font-size: 0.58rem;
    color: var(--ie-navy);
    text-transform: uppercase;
    line-height: 1.2;
}

.inf-electoral-map-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
}

.inf-electoral-chip {
    font-size: 0.52rem;
    padding: 0.08rem 0.22rem;
    border-radius: 999px;
    white-space: nowrap;
    line-height: 1.25;
}

.inf-electoral-chip-win {
    background: #dcfce7;
    color: #166534;
}

.inf-electoral-chip-loss {
    background: #fee2e2;
    color: #991b1b;
}

/* Sección 5 */
.inf-electoral-perdidos-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
}

.inf-electoral-perdidos-list h3,
.inf-electoral-perdidos-traits h3 {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    color: var(--ie-navy);
}

.inf-electoral-perdidos-list ul {
    margin: 0;
    padding-left: 1rem;
    font-size: 0.76rem;
}

.inf-electoral-perdidos-list li {
    margin-bottom: 0.35rem;
}

.inf-electoral-traits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
}

.inf-electoral-trait {
    border: 1px solid var(--ie-border);
    border-radius: 6px;
    padding: 0.45rem;
    background: var(--ie-bg);
    font-size: 0.68rem;
}

.inf-electoral-trait-icon {
    font-size: 1rem;
    margin-bottom: 0.2rem;
}

/* Sección 6 */
.inf-electoral-prov-grid {
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 0.85rem;
}

.inf-electoral-prov-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.68rem;
}

.inf-electoral-prov-table th,
.inf-electoral-prov-table td {
    border: 1px solid var(--ie-border);
    padding: 0.25rem 0.35rem;
    text-align: center;
}

.inf-electoral-prov-table th {
    background: var(--ie-navy);
    color: #fff;
    font-weight: 600;
}

.inf-electoral-prov-table td:first-child,
.inf-electoral-prov-table th:first-child {
    text-align: left;
}

.inf-electoral-prov-table .is-win { color: #166534; font-weight: 600; }
.inf-electoral-prov-table .is-loss { color: #991b1b; font-weight: 600; }

.inf-electoral-donut-wrap {
    text-align: center;
}

.inf-electoral-donut-wrap h3 {
    margin: 0 0 0.5rem;
    font-size: 0.72rem;
    color: var(--ie-navy);
    text-transform: uppercase;
}

.inf-electoral-donut {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin: 0 auto;
    position: relative;
}

.inf-electoral-donut::after {
    content: '';
    position: absolute;
    inset: 28%;
    background: #fff;
    border-radius: 50%;
}

.inf-electoral-donut-legend {
    margin-top: 0.45rem;
    text-align: left;
    max-height: 140px;
    overflow: auto;
    font-size: 0.62rem;
}

.inf-electoral-donut-legend li {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.15rem;
}

.inf-electoral-swatch {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex-shrink: 0;
}

/* Sección 7 */
.inf-electoral-analysis-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.inf-electoral-analysis-box {
    border: 1px solid var(--ie-border);
    border-radius: 6px;
    padding: 0.65rem;
    background: var(--ie-bg);
}

.inf-electoral-analysis-box h3 {
    margin: 0 0 0.45rem;
    font-size: 0.76rem;
    color: var(--ie-navy);
}

.inf-electoral-analysis-box ul {
    margin: 0;
    padding-left: 1rem;
    font-size: 0.72rem;
}

.inf-electoral-analysis-box li {
    margin-bottom: 0.3rem;
}

.inf-electoral-foot-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.55rem;
    padding: 0.85rem 1.25rem 1rem;
    background: linear-gradient(180deg, #fff, var(--ie-bg));
}

.inf-electoral-foot-kpi {
    text-align: center;
    border: 1px solid var(--ie-border);
    border-radius: 6px;
    padding: 0.55rem 0.35rem;
    background: #fff;
}

.inf-electoral-foot-kpi strong {
    display: block;
    font-size: 1rem;
    color: var(--ie-navy);
}

.inf-electoral-foot-kpi span {
    font-size: 0.62rem;
    color: #64748b;
    line-height: 1.2;
}

@media (max-width: 760px) {
    .inf-electoral-head {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .inf-electoral-date { text-align: center; }

    .inf-electoral-general-grid,
    .inf-electoral-kpi-row,
    .inf-electoral-growth,
    .inf-electoral-consolidado,
    .inf-electoral-perdidos-grid,
    .inf-electoral-prov-grid,
    .inf-electoral-analysis-grid,
    .inf-electoral-foot-kpis {
        grid-template-columns: 1fr;
    }

    .inf-electoral-map-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.export-area-capturing .inf-electoral,
.export-area-capturing.inf-electoral {
    box-shadow: none;
}
