:root {
    --bg: #f7f7f5;
    --panel: #ffffff;
    --line: #e7e5e4;
    --text: #1c1917;
    --muted: #78716c;
    --green: #0f766e;
    --amber: #b45309;
}

body {
    background: var(--bg);
    color: var(--text);
}

/* -- Deputy 404 --------------------------------------------- */
.dep404-wrap {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; padding: 6rem 1.5rem 8rem; min-height: 60vh;
}
.dep404-icon {
    width: 80px; height: 80px; border-radius: 50%;
    background: #26292b; display: flex; align-items: center; justify-content: center;
    color: #64748b; margin-bottom: 1.5rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.12);
}
.dep404-title {
    font-size: 1.5rem; font-weight: 700; color: #1c1917; margin: 0 0 0.75rem;
    letter-spacing: -0.01em;
}
.dep404-desc {
    font-size: 0.93rem; color: #64748b; max-width: 380px; line-height: 1.6; margin: 0 0 2rem;
}
.dep404-back {
    display: inline-flex; align-items: center; gap: 0.4rem;
    font-size: 0.85rem; font-weight: 600; color: #f7f7f5;
    background: #26292b; border-radius: 8px; padding: 0.6rem 1.2rem;
    text-decoration: none; transition: background 0.15s;
}
.dep404-back:hover { background: #363a3d; color: #f7f7f5; }

.site-footer {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, 0.04), transparent 28%),
        radial-gradient(circle at top right, rgba(180, 83, 9, 0.05), transparent 24%),
        rgba(255, 255, 255, 0.62);
    border-top: 1px solid rgba(28, 25, 23, 0.08);
    margin-top: 1.25rem;
    padding: 0.65rem 1rem 0.8rem;
}

.site-footer-inner {
    margin: 0 auto;
    max-width: min(1200px, 94vw);
}

.site-footer-shell {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.9rem;
    justify-content: space-between;
}

.site-footer-note {
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.35;
    margin: 0;
}

.site-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.site-footer-link {
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(28, 25, 23, 0.08);
    border-radius: 999px;
    color: var(--text);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.42rem 0.7rem;
    text-decoration: none;
}

.site-footer-link:hover {
    background: rgba(255, 255, 255, 0.92);
    text-decoration: none;
}

@media (max-width: 900px) {
    .site-footer-shell {
        align-items: flex-start;
        flex-direction: column;
    }

    .site-footer-note {
        font-size: 0.68rem;
    }

    .site-footer-link {
        font-size: 0.68rem;
        padding: 0.38rem 0.62rem;
    }
}

.hero {
    border-bottom: 1px solid var(--line);
}

.home-hero {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, 0.06), transparent 26%),
        radial-gradient(circle at top right, rgba(180, 83, 9, 0.08), transparent 24%),
        #f7f7f5;
    border-bottom: 1px solid var(--line);
    color: var(--text);
}

.home-stage-band {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, 0.05), transparent 24%),
        radial-gradient(circle at right top, rgba(180, 83, 9, 0.05), transparent 22%),
        #f7f7f5;
}

.home-signal-bar {
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 1.3rem;
    padding: 0.45rem 0.85rem;
    position: relative;
    z-index: 1;
}

.home-signal-bar span {
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-frame {
    margin: 0 auto;
    max-width: min(1860px, 97vw);
}

.home-shell {
    align-items: end;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1.9fr) minmax(16rem, 0.9fr);
}

.home-stage-header {
    align-items: end;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1.3fr) minmax(18rem, 0.7fr);
    margin: 0 auto;
    max-width: min(1800px, 96vw);
    padding: 2.2rem 1.25rem 1.2rem;
    position: relative;
    z-index: 1;
}

.home-stage-header-copy h2 {
    font-size: clamp(2rem, 4vw, 3.5rem);
    letter-spacing: -0.05em;
    margin: 0 0 0.65rem;
    text-transform: uppercase;
}

.home-stage-header-copy p:last-child {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
    max-width: 60ch;
}

.home-stage-header-metrics {
    display: grid;
    gap: 0.85rem;
}

.home-stage-metric {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1rem 1.1rem;
}

.home-stage-metric span {
    color: var(--muted);
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.home-stage-metric strong {
    display: block;
    font-size: 1.05rem;
}

.home-title {
    font-size: clamp(2.6rem, 5vw, 5.1rem);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 0.94;
    margin: 0 0 1rem;
    max-width: 9ch;
    text-transform: uppercase;
}

.home-lead {
    color: var(--muted);
    font-size: 1.02rem;
    line-height: 1.65;
    margin: 0;
    max-width: 60ch;
}

.home-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.4rem;
}

.home-actions .btn {
    border-radius: 999px;
    font-weight: 600;
    padding: 0.75rem 1.1rem;
}

.home-metrics {
    display: grid;
    gap: 0.85rem;
}

.home-metric-card {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1rem 1.1rem;
    position: relative;
}

.home-metric-card::after {
    background: linear-gradient(90deg, rgba(15, 118, 110, 0.75), rgba(180, 83, 9, 0.75));
    border-radius: 999px;
    content: "";
    height: 2px;
    left: 1.1rem;
    opacity: 0.55;
    position: absolute;
    right: 1.1rem;
    top: 0;
}

.home-metric-card strong {
    display: block;
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: -0.04em;
}

.home-metric-card p {
    color: var(--muted);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 0.55rem 0 0;
}

.home-metric-card-accent {
    background: linear-gradient(135deg, rgba(15, 118, 110, 0.06), rgba(180, 83, 9, 0.08));
}

.home-metric-label {
    color: var(--muted);
    display: block;
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    margin-bottom: 0.3rem;
    text-transform: uppercase;
}

.chamber-panel {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, 0.04), transparent 24%),
        radial-gradient(circle at right center, rgba(180, 83, 9, 0.04), transparent 22%),
        #ffffff;
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    color: var(--text);
    margin-top: 1.4rem;
    overflow: hidden;
}

.chamber-panel-full {
    margin: 0 auto;
    max-width: min(1840px, 97vw);
    position: relative;
    z-index: 1;
}

.chamber-panel-head {
    align-items: end;
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.8fr);
    padding: 1.25rem 1.25rem 1rem;
}

.chamber-panel-head h2 {
    font-size: clamp(1.4rem, 2.2vw, 2rem);
    letter-spacing: -0.04em;
    margin: 0;
}

.chamber-panel-copy {
    color: var(--muted);
    font-size: 0.94rem;
    line-height: 1.6;
    margin: 0;
}

.civic-ribbon {
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.95rem 1.25rem 0;
}

.civic-ribbon span {
    background: #fafaf9;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 0.8rem;
    padding: 0.42rem 0.8rem;
}

.chamber-stage-shell {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 2.35fr) minmax(18rem, 0.52fr);
    padding: 1.1rem 1.25rem 1.25rem;
}

.chamber-stage-shell-wide {
    align-items: start;
}

.chamber-main-column {
    display: grid;
    gap: 0.9rem;
}

.chamber-stage {
    background: #fcfcfb;
    border: 1px solid var(--line);
    border-radius: 2rem;
    min-height: 54rem;
    overflow: hidden;
    position: relative;
}

.chamber-stage::before {
    background-image:
        linear-gradient(rgba(28, 25, 23, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 25, 23, 0.03) 1px, transparent 1px);
    background-size: 4.25rem 4.25rem;
    content: "";
    inset: 0;
    opacity: 0.55;
    pointer-events: none;
    position: absolute;
}

.chamber-svg {
    display: block;
    height: auto;
    width: 100%;
}

.chamber-seat-group {
    outline: none;
    transition: opacity 140ms ease, filter 140ms ease;
}

.chamber-seat-group:hover,
.chamber-seat-group:focus {
    filter: drop-shadow(0 0 10px rgba(15, 118, 110, 0.18));
}

.chamber-tooltip {
    align-items: center;
    background: rgba(28, 25, 23, 0.95);
    border: 1px solid rgba(28, 25, 23, 0.08);
    border-radius: 1rem;
    color: #f5f7fb;
    display: flex;
    gap: 0.8rem;
    max-width: 18rem;
    opacity: 0;
    padding: 0.8rem 0.9rem;
    pointer-events: none;
    position: fixed;
    transform: translate3d(0, 0, 0);
    transition: opacity 120ms ease;
    z-index: 40;
}

.chamber-tooltip.is-visible {
    opacity: 1;
}

.chamber-tooltip strong {
    display: block;
    font-size: 0.95rem;
    line-height: 1.2;
    margin-bottom: 0.3rem;
}

.chamber-tooltip div {
    font-size: 0.8rem;
    line-height: 1.45;
}

.chamber-tooltip-photo {
    background: linear-gradient(135deg, #e7e5e4, #a8a29e);
    background-position: center;
    background-size: cover;
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    flex: 0 0 3.1rem;
    height: 3.1rem;
    width: 3.1rem;
}

.chamber-spotlight {
    background: radial-gradient(circle, rgba(15, 118, 110, 0.16), rgba(15, 118, 110, 0));
    border-radius: 999px;
    height: 7rem;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translate(-50%, -50%);
    transition: opacity 120ms ease;
    width: 7rem;
}

.chamber-aside {
    display: grid;
    gap: 1rem;
}

.seat-legend {
    display: grid;
    gap: 0.45rem;
    padding: 0.35rem 0;
}

.seat-legend div {
    color: var(--muted);
}

.civic-note {
    background: #faf8f3;
    border: 1px solid var(--line);
    border-radius: 1rem;
    padding: 1rem;
}

.civic-note h3 {
    font-size: 1.15rem;
    margin: 0 0 0.45rem;
}

.civic-note p {
    color: var(--muted);
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0 0 0.85rem;
}

.text-link {
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

.text-link:hover {
    color: #000;
    text-decoration: underline;
}

.eyebrow {
    color: var(--muted);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-shell {
    align-items: end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.hero-title {
    font-size: clamp(1.9rem, 3vw, 2.8rem);
    font-weight: 600;
    letter-spacing: -0.03em;
    margin-bottom: 0.35rem;
}

.hero-copy {
    color: var(--muted);
}

.graph-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.graph-chip {
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: 0.8rem;
    padding: 0.35rem 0.65rem;
}

.filter-bar,
.panel {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 0.9rem;
}

.filter-bar {
    padding: 0.85rem;
}

.filter-dropdown {
    position: relative;
}

.filter-dropdown-summary {
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 0.6rem;
    color: var(--text);
    cursor: pointer;
    display: flex;
    font-size: 0.92rem;
    justify-content: space-between;
    list-style: none;
    min-height: 2.4rem;
    padding: 0.5rem 0.75rem;
}

.filter-dropdown-summary::-webkit-details-marker {
    display: none;
}

.filter-dropdown-summary::after {
    color: var(--muted);
    content: "▾";
    font-size: 0.85rem;
}

.filter-dropdown[open] .filter-dropdown-summary::after {
    content: "▴";
}

.filter-dropdown-menu {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 0.35rem;
    box-shadow: 0 10px 24px rgba(28, 25, 23, 0.12);
    left: 0;
    margin-top: 0.35rem;
    min-height: 16rem;
    position: absolute;
    right: 0;
    z-index: 25;
}

.filter-dropdown-header {
    align-items: center;
    background: #eef0f2;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    display: flex;
    font-size: 0.88rem;
    font-weight: 600;
    min-height: 2.6rem;
    padding: 0 0.9rem;
}

.filter-dropdown-header::before {
    color: var(--text);
    content: "✓";
    font-size: 1rem;
    margin-right: 0.55rem;
}

.filter-search {
    border-bottom: 1px solid var(--line);
    padding: 0.65rem 0.8rem;
}

.filter-search-input {
    background: transparent;
    border: 0;
    color: var(--text);
    font-size: 0.9rem;
    outline: none;
    width: 100%;
}

.filter-search-input::placeholder {
    color: #9ca3af;
}

.filter-options-list {
    max-height: 12rem;
    overflow: auto;
    padding: 0.35rem;
}

.filter-option {
    align-items: center;
    border-radius: 0.5rem;
    cursor: pointer;
    display: flex;
    gap: 0.5rem;
    padding: 0.35rem 0.45rem;
}

.filter-option-all {
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    font-weight: 600;
    margin: 0 0.35rem 0.2rem;
    padding: 0.45rem 0.45rem 0.55rem;
}

.filter-option:hover {
    background: #fafaf9;
}

.filter-option input {
    accent-color: #1c1917;
    margin: 0;
}

.filter-option span {
    font-size: 0.88rem;
}

.panel {
    padding: 0.9rem;
}

.panel-head h2 {
    font-size: 0.98rem;
    font-weight: 600;
    margin: 0;
}

.panel-head p {
    color: var(--muted);
    font-size: 0.88rem;
    margin: 0.2rem 0 0;
}

.btn-primary {
    background: var(--text);
    border-color: var(--text);
}

.btn-primary:hover,
.btn-primary:focus {
    background: #000;
    border-color: #000;
}

.graph-legend {
    color: var(--muted);
    flex-wrap: wrap;
    display: flex;
    gap: 0.9rem;
    font-size: 0.84rem;
}

.legend-dot {
    border-radius: 999px;
    display: inline-block;
    height: 0.72rem;
    margin-right: 0.3rem;
    width: 0.72rem;
}

.legend-dot-diputado {
    background: var(--green);
}

.legend-dot-asesor {
    background: #b8b3aa;
}

.legend-dot-left {
    background: #c2410c;
}

.legend-dot-center {
    background: #8f8f8a;
}

.legend-dot-right {
    background: #1d4ed8;
}

.legend-dot-neutral {
    background: #d6d3d1;
}

.network-graph {
    background: #fcfcfb;
    border: 1px solid var(--line);
    border-radius: 0.75rem;
}

@media (max-width: 991px) {
    .home-shell,
    .home-stage-header,
    .chamber-panel-head,
    .chamber-stage-shell {
        grid-template-columns: 1fr;
    }

    .home-subgrid {
        grid-template-columns: 1fr;
    }

    .chamber-stage {
        min-height: 38rem;
    }
}

@media (max-width: 767px) {
    .home-title {
        max-width: none;
    }

    .chamber-stage {
        min-height: 28rem;
    }

    .chamber-tooltip {
        max-width: 15rem;
    }

    .chamber-stage {
        min-height: 33rem;
    }
}

.hero-back {
    color: var(--muted);
    display: inline-block;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 0.55rem;
    text-decoration: none;
}

.hero-back:hover {
    color: var(--text);
}

.empty-state,
.empty-inline {
    color: var(--muted);
    font-size: 0.9rem;
}

.empty-state.compact {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 8rem;
}

.graph-tooltip {
    background: rgba(28, 25, 23, 0.95);
    border-radius: 0.9rem;
    color: #fffbf7;
    font-size: 0.82rem;
    line-height: 1.45;
    max-width: 18rem;
    opacity: 0;
    padding: 0.7rem 0.8rem;
    pointer-events: none;
    position: fixed;
    transition: opacity 120ms ease;
    z-index: 35;
}

.graph-tooltip.is-visible {
    opacity: 1;
}

.advisor-popover {
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid var(--line);
    border-radius: 1rem;
    box-shadow: 0 18px 48px rgba(28, 25, 23, 0.16);
    max-height: min(40rem, 74vh);
    overflow: auto;
    padding: 1rem;
    position: absolute;
    width: min(28rem, calc(100vw - 3rem));
    z-index: 30;
}

.advisor-popover.hidden {
    display: none;
}

.advisor-popover-head {
    align-items: start;
    display: flex;
    gap: 0.8rem;
    justify-content: space-between;
    margin-bottom: 0.8rem;
}

.advisor-popover-close {
    background: transparent;
    border: 0;
    color: var(--muted);
    font-size: 1.15rem;
    line-height: 1;
}

.advisor-subtitle,
.advisor-context {
    color: var(--muted);
    font-size: 0.85rem;
}

.advisor-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0.75rem 0;
}

.advisor-chip {
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 0.76rem;
    padding: 0.3rem 0.65rem;
}

.history-chart-wrap {
    border: 1px solid var(--line);
    border-radius: 0.85rem;
    margin-top: 0.85rem;
    padding: 0.7rem;
}

.history-chart {
    display: block;
    height: auto;
    width: 100%;
}

.history-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.history-legend-item {
    align-items: center;
    color: var(--muted);
    display: inline-flex;
    font-size: 0.8rem;
    gap: 0.35rem;
}

.history-list {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.85rem;
}

.history-row {
    border: 1px solid var(--line);
    border-radius: 0.8rem;
    padding: 0.7rem 0.75rem;
}

.history-row-main {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.history-breakdown {
    border-top: 1px solid var(--line);
    display: grid;
    gap: 0.35rem;
    margin-top: 0.55rem;
    padding-top: 0.55rem;
}

.history-breakdown-row {
    color: var(--muted);
    display: flex;
    font-size: 0.8rem;
    justify-content: space-between;
}

.profile-layout {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
}

.deputy-card,
.deputy-graph-panel,
.gastos-editorial {
    border-radius: 1rem;
}

.deputy-card-top {
    align-items: center;
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
}

.deputy-photo {
    border-radius: 999px;
    height: 6rem;
    object-fit: cover;
    width: 6rem;
}

.deputy-name {
    font-size: 1.8rem;
    letter-spacing: -0.04em;
    margin: 0 0 0.35rem;
}

.deputy-subtitle {
    color: var(--muted);
}

.deputy-meta-grid {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.deputy-meta-item {
    background: #faf8f3;
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    padding: 0.9rem;
}

.deputy-meta-item span {
    color: var(--muted);
    display: block;
    font-size: 0.8rem;
    margin-bottom: 0.2rem;
}

.deputy-meta-item strong {
    display: block;
    font-size: 1rem;
}

.deputy-meta-item-wide {
    grid-column: 1 / -1;
}

.profile-link {
    color: var(--text);
    display: inline-block;
    font-weight: 600;
    margin-top: 1rem;
    text-decoration: none;
}

.deputy-mini-graph {
    background: #fcfcfb;
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    min-height: 28rem;
}

.gastos-editorial {
    overflow: hidden;
    padding: 0;
}

.gastos-editorial-head {
    border-bottom: 1px solid var(--line);
    padding: 1.2rem 1.2rem 1rem;
}

.expense-section-kicker {
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin: 0 0 0.35rem;
    text-transform: uppercase;
}

.shared-period-note {
    align-items: center;
    background: #faf8f3;
    border: 1px solid var(--line);
    border-radius: 999px;
    display: inline-flex;
    gap: 0.6rem;
    margin-top: 0.7rem;
    padding: 0.42rem 0.8rem;
}

.shared-period-note span {
    color: var(--muted);
    font-size: 0.8rem;
}

.shared-period-note strong {
    font-size: 0.9rem;
}

.expense-story-list {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.expense-story {
    border: 1px solid var(--line);
    border-left-width: 3px;
    border-radius: 1rem;
    overflow: hidden;
}

.expense-story-asesores {
    border-left-color: #9a3412;
}

.expense-story-asesorias-externas {
    border-left-color: #155e75;
}

.expense-story-oficinas-parlamentarias {
    border-left-color: #365314;
}

.expense-story-summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.3fr) minmax(19rem, 1fr);
    list-style: none;
    padding: 1.15rem;
}

.expense-story-summary::-webkit-details-marker {
    display: none;
}

.expense-story-summary::after {
    color: var(--muted);
    content: "▾";
    justify-self: end;
}

.expense-story[open] .expense-story-summary::after {
    content: "▴";
}

.expense-story-copy {
    color: var(--muted);
    margin: 0;
}

.expense-story-summary-main h3 {
    font-size: 1.1rem;
    margin: 0 0 0.3rem;
}

.expense-story-summary-metrics {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: end;
}

.expense-summary-chip,
.expense-period-pill,
.expense-stat-box {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 1rem;
    min-width: 9.75rem;
    padding: 0.8rem 0.9rem;
}

.expense-summary-chip span,
.expense-period-pill span,
.expense-stat-box span {
    color: var(--muted);
    display: block;
    font-size: 0.76rem;
    margin-bottom: 0.18rem;
}

.expense-summary-chip strong,
.expense-period-pill strong,
.expense-stat-box strong {
    display: block;
    font-size: 1.05rem;
}

.expense-period-pill {
    border-radius: 999px;
    min-width: 8.75rem;
    text-align: center;
}

.expense-story-body {
    border-top: 1px solid var(--line);
    padding: 1rem;
}

.expense-hero-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.3fr);
}

.expense-total-card {
    background: #211d1a;
    border-radius: 1rem;
    color: #fffaf4;
    min-height: 11rem;
    padding: 1.15rem;
}

.expense-total-label {
    color: rgba(255, 250, 244, 0.72);
    display: block;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 0.7rem;
    text-transform: uppercase;
}

.expense-total-value {
    display: block;
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 700;
    letter-spacing: -0.06em;
    line-height: 0.95;
}

.expense-total-foot {
    color: rgba(255, 250, 244, 0.84);
    margin: 1rem 0 0;
}

.expense-stat-rail {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.expense-timeline-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin: 1rem 0;
}

.expense-month-chip {
    background: #faf8f3;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 0.45rem 0.75rem;
}

.expense-month-chip.current {
    background: #1c1917;
    border-color: #1c1917;
    color: #fff;
}

.expense-month-chip span {
    color: inherit;
    display: block;
    font-size: 0.74rem;
}

.expense-month-chip strong {
    display: block;
    font-size: 0.9rem;
}

.expense-story-grid {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
}

.expense-chart-panel,
.expense-breakdown-panel {
    border: 1px solid var(--line);
    border-radius: 1rem;
    min-height: 19rem;
    padding: 0.95rem;
}

.expense-panel-head {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.expense-panel-head span {
    color: var(--muted);
    font-size: 0.8rem;
}

.expense-history-chart {
    display: block;
    height: auto;
    min-height: 15rem;
    width: 100%;
}

.expense-breakdown-list {
    display: grid;
    gap: 0.7rem;
}

.expense-breakdown-item {
    align-items: center;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 1fr) auto;
}

.expense-breakdown-copy strong,
.expense-breakdown-copy span {
    display: block;
}

.expense-breakdown-copy span {
    color: var(--muted);
    font-size: 0.8rem;
}

.expense-breakdown-bar-wrap {
    background: #f1efeb;
    border-radius: 999px;
    height: 0.65rem;
    overflow: hidden;
}

.expense-breakdown-bar {
    border-radius: 999px;
    height: 100%;
    min-width: 0.35rem;
}

.expense-breakdown-amount {
    font-size: 0.88rem;
}

@media (max-width: 991px) {
    .profile-layout,
    .expense-hero-grid,
    .expense-story-grid,
    .expense-story-summary {
        grid-template-columns: 1fr;
    }

    .expense-story-summary-metrics {
        justify-content: start;
    }
}

@media (max-width: 767px) {
    .deputy-meta-grid,
    .expense-stat-rail {
        grid-template-columns: 1fr;
    }

    .expense-breakdown-item {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════════════
   HOME V2 — CIVIC SYSTEM · WHITE/BLACK
   Fondo blanco · texto negro/plomo · sala oscura full-bleed
   ═══════════════════════════════════════════════════════════ */

.hv2 {
    background: #ffffff;
    color: #08090f;
    font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
    min-height: 100vh;
}

/* ── NAV ────────────────────────────────────────────────── */

.hv2-nav {
    align-items: center;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.09);
    display: flex;
    height: 54px;
    justify-content: space-between;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
    position: sticky;
    top: 0;
    z-index: 100;
}

.hv2-brand {
    align-items: center;
    color: #08090f;
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 700;
    gap: 0.45rem;
    letter-spacing: 0.22em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 150ms ease;
}

.hv2-brand:hover {
    color: #000;
}

.hv2-nav-end {
    align-items: center;
    display: flex;
    gap: 1.75rem;
}

.hv2-nav-status {
    color: rgba(80, 90, 110, 0.45);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hv2-nav-link {
    color: #6b7280;
    font-size: 0.84rem;
    font-weight: 500;
    text-decoration: none;
    transition: color 150ms ease;
}

.hv2-nav-link:hover {
    color: #08090f;
}

/* ── HEADER BAND — blanco ───────────────────────────────── */

.hv2-header-band {
    background: #ffffff;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
}
@media (min-width: 900px) {
    .hv2-header-band {
        min-height: calc(100vh - 54px);
        min-height: calc(100svh - 54px);
        height: calc(100vh - 54px);
        height: calc(100svh - 54px);
        display: flex;
        flex-direction: column;
    }
    .hv2-header-band .hv2-inner {
        flex: 1;
        display: flex;
        flex-direction: column;
    }
    .hv2-head {
        flex: 1;
        align-items: stretch;
        padding-top: 0;
        padding-bottom: 4.5rem;
    }

    .hv2-head-copy {
        align-self: center;
    }

    .hv2-cta-group {
        align-self: flex-end;
    }
}

.hv2-inner {
    margin: 0 auto;
    max-width: min(1800px, 97vw);
}

/* ── SYSTEM BAR ─────────────────────────────────────────── */

.hv2-sysbar {
    align-items: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
    display: flex;
    flex-wrap: wrap;
    gap: 0 1rem;
    padding: 1rem 0;
}

.hv2-sysbar span {
    color: rgba(80, 90, 110, 0.42);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.hv2-sysbar-sep {
    color: rgba(80, 90, 110, 0.18) !important;
    font-size: 0.8rem !important;
    letter-spacing: 0 !important;
}

/* ── HEAD ───────────────────────────────────────────────── */

.hv2-head {
    align-items: flex-end;
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    padding: 3rem 0 5rem;
}

.hv2-title {
    color: #06080e;
    display: block;
    font-size: clamp(3.4rem, 7.5vw, 8rem);
    font-weight: 700;
    inline-size: 9.4ch;
    letter-spacing: -0.055em;
    line-height: 0.87;
    margin: 0 0 0.85rem;
    min-block-size: calc(0.87em * 2);
    text-transform: uppercase;
}

@keyframes hv2-blink {
    0%, 49%  { opacity: 1; }
    50%, 100% { opacity: 0; }
}
.hv2-blink {
    display: inline-block;
    animation: hv2-blink 0.9s step-end infinite;
}
.hv2-cursor {
    display: inline-block;
    font-weight: 300;
    opacity: 0.55;
}

.hv2-desc {
    color: #707888;
    font-size: 0.92rem;
    line-height: 1.6;
    margin: 0;
    max-width: 52ch;
}

/* ── CTA BUTTON ─────────────────────────────────────────── */

.hv2-cta-group {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex-shrink: 0;
    align-items: stretch;
}

.hv2-enter-cta {
    align-items: center;
    background: #06080e;
    border: none;
    border-radius: 3px;
    color: #ffffff;
    display: inline-flex;
    flex-shrink: 0;
    font-size: 0.76rem;
    font-weight: 700;
    gap: 0.6rem;
    letter-spacing: 0.1em;
    padding: 0.9rem 1.6rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 140ms ease;
    white-space: nowrap;
}

.hv2-enter-cta:hover {
    background: #1a2035;
    color: #ffffff;
}

.hv2-enter-cta--secondary {
    background: transparent;
    border: 1.5px solid #06080e;
    color: #06080e;
}

.hv2-enter-cta--secondary:hover {
    background: #06080e;
    color: #ffffff;
}

/* ── CHAMBER BAND — gris Apple, full-bleed ──────────────── */

.hv2-chamber-band {
    background: #d8dfe9; /* coincide con el borde del gradiente SVG */
    scroll-margin-top: 54px; /* compensa el nav sticky al hacer clic en #camara */
    width: 100%;
}

.hv2-chamber-band .hv2-inner {
    padding: 0 clamp(1rem, 3vw, 2.5rem);
}

.hv2-chamber-head {
    align-items: baseline;
    border-bottom: 1px solid rgba(0, 10, 50, 0.09);
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 2rem;
    justify-content: space-between;
    padding: 1.25rem 0;
}

.hv2-microlabel {
    color: rgba(20, 30, 70, 0.38);
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    margin-bottom: 0.22rem;
    text-transform: uppercase;
}

.hv2-chamber-subtitle {
    color: rgba(10, 15, 45, 0.72);
    display: block;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.hv2-chamber-hint {
    margin: 0.6rem 0 0.5rem;
    font-size: 0.7rem;
    color: rgba(20, 30, 70, 0.38);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

/* ── Deputies strip (commune filter result) ─────────────── */
.hv2-deputies-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    justify-content: center;
    padding: 0.75rem 0 1.25rem;
}
.hv2-deputies-strip[hidden] { display: none; }

.hv2-dep-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    text-decoration: none;
    color: inherit;
    width: 80px;
    cursor: pointer;
    transition: transform 0.15s;
}
.hv2-dep-card:hover { transform: translateY(-4px); }
.hv2-dep-card:hover .hv2-dep-photo {
    box-shadow: 0 6px 18px rgba(0,0,0,0.22);
}

.hv2-dep-photo {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: #b8c2d2 center/cover no-repeat;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.14);
    flex-shrink: 0;
    transition: box-shadow 0.15s;
}

.hv2-dep-name {
    font-size: 0.68rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.25;
    color: rgba(10, 15, 45, 0.85);
    word-break: break-word;
}

.hv2-dep-partido {
    font-size: 0.58rem;
    color: rgba(10, 15, 45, 0.42);
    text-align: center;
    line-height: 1.2;
}

/* Controls row (commune filter + legend) */
.hv2-chamber-controls {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1.5rem;
}

.hv2-commune-filter-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.hv2-commune-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
}

.hv2-commune-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-color: rgba(10, 20, 70, 0.08);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5' viewBox='0 0 9 5'%3E%3Cpath d='M1 1l3.5 3L8 1' stroke='rgba(10,20,70,0.45)' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    border: none;
    border-radius: 999px;
    color: rgba(10, 20, 70, 0.6);
    cursor: pointer;
    font-family: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    outline: none;
    padding: 0.34rem 2rem 0.34rem 0.82rem;
    transition: background-color 140ms ease, color 140ms ease;
}

.hv2-commune-select:hover,
.hv2-commune-select:focus {
    background-color: rgba(10, 20, 70, 0.13);
    color: rgba(10, 20, 70, 0.85);
}

.hv2-commune-select option[value=""] {
    color: rgba(10, 20, 70, 0.4);
}

.hv2-legend {
    align-items: center;
    display: flex;
    gap: 1.4rem;
}

.hv2-legend-item {
    align-items: center;
    color: rgba(20, 30, 70, 0.45);
    display: inline-flex;
    font-size: 0.78rem;
    gap: 0.42rem;
}

.hv2-dot {
    border-radius: 999px;
    display: inline-block;
    flex-shrink: 0;
    height: 0.52rem;
    width: 0.52rem;
}

/* Colores de leyenda en sintonía con ideologyColor */
.hv2-dot-l { background: #c01520; }
.hv2-dot-c { background: #9aa0b0; }
.hv2-dot-r { background: #0f35c0; }

/* THE CHAMBER — full-width, sin max-width */
.hv2-chamber {
    min-height: 68rem;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.hv2-chamber .chamber-svg {
    display: block;
    height: auto;
    width: 100%;
}

/* Spotlight: oscuro sobre fondo claro */
.hv2-chamber .chamber-spotlight {
    background: radial-gradient(circle, rgba(0, 20, 80, 0.08), transparent);
}

/* Hover: sombra de elevación Apple — sin glow, con profundidad */
.hv2-chamber .chamber-seat-group:hover,
.hv2-chamber .chamber-seat-group:focus {
    filter: drop-shadow(0 4px 12px rgba(0, 10, 50, 0.22))
            drop-shadow(0 1px 3px rgba(0, 10, 50, 0.14));
}

/* ── CHAMBER FOOTER ─────────────────────────────────────── */

.hv2-chamber-foot {
    align-items: center;
    border-top: 1px solid rgba(0, 10, 50, 0.08);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 2rem;
    justify-content: space-between;
    padding: 1rem 0 2.5rem;
}

.hv2-hint {
    color: rgba(20, 30, 70, 0.3);
    font-size: 0.74rem;
}

.hv2-foot-links {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.hv2-foot-link {
    color: #1c1917;
    font-size: 0.84rem;
    font-weight: 600;
    text-decoration: none;
    transition: color 140ms ease;
}

.hv2-foot-link:hover {
    color: #57534e;
}

/* ── EXPLORE BAND ───────────────────────────────────────── */

.hv2-explore-band {
    background: #ffffff;
    border-top: 1px solid rgba(0,0,0,0.07);
    padding: 3rem 0 4rem;
}

.hv2-approved-band {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, 0.04), transparent 24%),
        radial-gradient(circle at top right, rgba(180, 83, 9, 0.04), transparent 20%),
        #ffffff;
    border-top: 1px solid rgba(0,0,0,0.07);
    padding: 3rem 0 1.75rem;
}

.hv2-approved-band .hv2-inner {
    max-width: none;
    padding: 0;
    width: 100%;
}

.hv2-approved-head {
    align-items: end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0 clamp(1.25rem, 3vw, 2.75rem);
    margin-bottom: 1.4rem;
}

.hv2-approved-eyebrow {
    color: rgba(0,0,0,0.28);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    margin: 0 0 0.6rem;
    text-transform: uppercase;
}

.hv2-approved-title {
    color: #06080e;
    font-size: clamp(1.5rem, 2.8vw, 2.35rem);
    letter-spacing: -0.04em;
    margin: 0 0 0.35rem;
}

.hv2-approved-desc {
    color: #78716c;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0;
}

.hv2-approved-actions {
    display: flex;
    gap: 0.55rem;
}

.hv2-approved-all {
    align-items: center;
    border: 1px solid rgba(0,0,0,0.14);
    border-radius: 8px;
    color: #1c1917;
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    padding: 0.8rem 1rem;
    text-decoration: none;
    text-transform: uppercase;
}

.hv2-approved-all:hover {
    background: rgba(0,0,0,0.03);
    color: #06080e;
}

.hv2-approved-nav {
    align-items: center;
    background: #fafaf9;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 999px;
    color: #1c1917;
    cursor: pointer;
    display: inline-flex;
    height: 2.4rem;
    justify-content: center;
    transition: background 140ms ease, transform 120ms ease, box-shadow 140ms ease;
    width: 2.4rem;
}

.hv2-approved-nav:hover {
    background: #ffffff;
    box-shadow: 0 4px 20px rgba(0,10,50,0.08);
    transform: translateY(-1px);
}

.hv2-approved-rail {
    display: grid;
    gap: 1rem;
    margin-left: 0;
    width: 100%;
}

.hv2-approved-tabs {
    display: none;
}

.hv2-approved-tabs::-webkit-scrollbar {
    display: none;
}

.hv2-approved-tab {
    background: #f4f4f3;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 4px;
    color: rgba(0,0,0,0.36);
    cursor: pointer;
    flex: 0 0 auto;
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1;
    padding: 0.95rem 1.25rem;
    transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
    white-space: nowrap;
}

.hv2-approved-tab.is-active {
    background: #ffffff;
    border-color: rgba(0,0,0,0.12);
    color: #06080e;
}

.hv2-approved-stage {
    background: transparent;
    border-radius: 10px;
    cursor: grab;
    height: min(100vh, max(36rem, calc(100vh - 6.75rem)));
    height: min(100svh, max(36rem, calc(100svh - 6.75rem)));
    min-height: 34rem;
    max-height: 100vh;
    max-height: 100svh;
    overflow: hidden;
    padding: 2.25rem;
    position: relative;
    user-select: none;
}

.hv2-approved-track {
    display: flex;
    height: 100%;
    transition: transform 820ms cubic-bezier(0.2, 0.82, 0.2, 1);
    will-change: transform;
}

.hv2-approved-panel {
    background: #26292b;
    border-left: clamp(0.9rem, 1.8vw, 1.6rem) solid #ffffff;
    border-right: clamp(0.9rem, 1.8vw, 1.6rem) solid #ffffff;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    flex: 0 0 100%;
    height: 100%;
    min-height: 0;
    min-width: 100%;
    overflow: hidden;
    pointer-events: none;
}

.hv2-approved-panel.is-active {
    pointer-events: auto;
}

.hv2-approved-panel--empty {
    background: #26292b;
}

.hv2-approved-panel-top {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 2.35rem;
}

.hv2-approved-kicker-box {
    background: rgba(17, 20, 22, 0.92);
    border-radius: 4px;
    color: #ffffff;
    display: inline-flex;
    flex-direction: column;
    gap: 0.35rem;
    max-width: 36rem;
    padding: 1.25rem 1.45rem;
}

.hv2-approved-kicker {
    color: rgba(255,255,255,0.76);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.hv2-approved-kicker-box strong {
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
}

.hv2-approved-panel-body {
    display: grid;
    flex: 1 1 auto;
    gap: 1.35rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
    padding: 3.9rem 2.85rem 2.1rem;
}

.hv2-approved-panel-copy {
    align-self: center;
    max-width: none;
    width: 100%;
}

.hv2-approved-authors {
    margin-top: 0.95rem;
}

.hv2-approved-authors-label,
.hv2-approved-bancadas-label {
    color: rgba(255,255,255,0.52);
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin-bottom: 0.7rem;
    text-transform: uppercase;
}

.hv2-approved-authors-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.hv2-approved-author {
    align-items: center;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    display: inline-flex;
    gap: 0.45rem;
    max-width: 100%;
    padding: 0.48rem 0.9rem 0.48rem 0.56rem;
}

.hv2-approved-author--more {
    justify-content: center;
    padding-inline: 1.15rem;
}

.hv2-approved-author-avatar {
    background: rgba(255,255,255,0.12);
    border-radius: 50%;
    display: inline-flex;
    flex-shrink: 0;
    height: 1.55rem;
    overflow: hidden;
    width: 1.55rem;
}

.hv2-approved-author-avatar img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hv2-approved-author-avatar--fallback {
    align-items: center;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 700;
    justify-content: center;
}

.hv2-approved-author-name {
    color: rgba(255,255,255,0.84);
    font-size: 0.72rem;
    line-height: 1.2;
}

.hv2-approved-overline {
    color: rgba(255,255,255,0.42);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    margin: 0 0 0.7rem;
    text-transform: uppercase;
}

.hv2-approved-hero-title {
    color: #f7f7f5;
    font-size: clamp(2rem, 3.5vw, 3.45rem);
    letter-spacing: -0.055em;
    line-height: 0.92;
    margin: 0 0 0.75rem;
    max-width: 18ch;
    text-transform: uppercase;
}

.hv2-approved-hero-copy {
    color: rgba(255,255,255,0.72);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    display: -webkit-box;
    font-size: 0.92rem;
    line-height: 1.5;
    margin: 0;
    max-width: 50ch;
    overflow: hidden;
}

.hv2-approved-stats {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hv2-approved-side {
    align-self: center;
    display: grid;
    gap: 0.8rem;
}

.hv2-approved-stat {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 8px;
    padding: 0.75rem 0.85rem;
}

.hv2-approved-stat-label {
    color: rgba(255,255,255,0.45);
    display: block;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin-bottom: 0.25rem;
    text-transform: uppercase;
}

.hv2-approved-stat strong {
    color: #ffffff;
    display: block;
    font-size: 0.95rem;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.hv2-approved-bancadas {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 1.25rem 1.35rem;
}

.hv2-approved-bancada-row + .hv2-approved-bancada-row {
    margin-top: 0.6rem;
}

.hv2-approved-bancada-head {
    align-items: baseline;
    display: flex;
    gap: 0.6rem;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.hv2-approved-bancada-name {
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
}

.hv2-approved-bancada-values {
    color: rgba(255,255,255,0.56);
    font-size: 0.62rem;
    white-space: nowrap;
}

.hv2-approved-bancada-bars {
    display: block;
}

.hv2-approved-vote-bar {
    display: flex; height: 7px; border-radius: 4px; overflow: hidden;
    background: rgba(255,255,255,0.07); gap: 2px;
}
.hv2-approved-vote-bar-si  { height: 100%; background: rgba(110,231,183,0.75); border-radius: 4px 0 0 4px; }
.hv2-approved-vote-bar-no  { height: 100%; background: rgba(252,165,165,0.65); border-radius: 0 4px 4px 0; }

/* Bancada multi-segment bar */
.hv2-approved-bancada-bar-track {
    display: flex; height: 6px; border-radius: 4px;
    overflow: hidden; background: rgba(255,255,255,0.07); gap: 1px;
}
.hv2-approved-bancada-seg { height: 100%; }
.hv2-approved-bancada-seg--favor  { background: rgba(110,231,183,0.75); }
.hv2-approved-bancada-seg--abs    { background: rgba(148,163,184,0.50); }
.hv2-approved-bancada-seg--contra { background: rgba(252,165,165,0.65); }


.hv2-approved-slider {
    display: none;
}

.hv2-approved-slider::-webkit-scrollbar {
    height: 8px;
}

.hv2-approved-date {
    color: rgba(255,255,255,0.55);
    font-size: 0.76rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    align-self: center;
}

.hv2-approved-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
}

.hv2-approved-meta-item + .hv2-approved-meta-item::before {
    content: '·';
    margin-right: 0.6rem;
    color: rgba(255,255,255,0.2);
}

.hv2-approved-meta-item {
    color: rgba(255,255,255,0.45);
    font-size: 0.65rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.hv2-approved-foot {
    align-items: center;
    display: flex;
    gap: 0.8rem;
    justify-content: space-between;
    margin-top: 0.75rem;
    padding: 1.25rem 2.35rem 0;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.hv2-approved-foot-actions {
    align-items: center;
    display: flex;
    gap: 0.8rem;
}

.hv2-approved-foot-actions .share-wrap {
    flex-shrink: 0;
}

.hv2-approved-votes {
    color: rgba(255,255,255,0.7);
    font-size: 0.78rem;
    line-height: 1.45;
}

.hv2-approved-link {
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.hv2-approved-link:hover {
    color: rgba(255,255,255,0.76);
}

.hv2-explore-band .hv2-inner {
    padding: 0 clamp(1rem, 3vw, 2.5rem);
}

.hv2-explore-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(0,0,0,0.28);
    margin: 0 0 1.25rem;
}

.hv2-explore-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.hv2-explore-card {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    padding: 1.4rem 1.5rem;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 12px;
    text-decoration: none;
    background: #fafafa;
    transition: box-shadow 0.15s, transform 0.12s, background 0.15s;
}

.hv2-explore-card:hover {
    background: #ffffff;
    box-shadow: 0 4px 20px rgba(0,10,50,0.09);
    transform: translateY(-2px);
}

.hv2-explore-icon {
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0efee;
    border-radius: 8px;
    color: #1c1917;
}

.hv2-explore-body {
    flex: 1;
    min-width: 0;
}

.hv2-explore-title {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: #06080e;
    margin-bottom: 0.2rem;
}

.hv2-explore-desc {
    font-size: 0.76rem;
    color: #78716c;
    margin: 0;
    line-height: 1.45;
}

.hv2-explore-cta {
    flex-shrink: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #1c1917;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .hv2-approved-band {
        padding-top: 2rem;
    }

    .hv2-approved-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.65rem;
        margin-bottom: 1rem;
        padding: 0 1rem;
    }

    .hv2-approved-eyebrow {
        display: none;
    }

    .hv2-approved-title {
        font-size: clamp(1.2rem, 5.5vw, 1.75rem);
        margin: 0 0 0.2rem;
    }

    .hv2-approved-desc {
        font-size: 0.82rem;
        margin: 0;
    }

    .hv2-approved-actions {
        width: 100%;
        justify-content: flex-end;
    }

    /* Oculta flechas < > en móvil — navegación via swipe */
    .hv2-approved-nav {
        display: none;
    }

    .hv2-approved-all {
        padding: 0.72rem 0.9rem;
    }

    .hv2-approved-stage {
        height: min(100vh, 34rem);
        height: min(100svh, 34rem);
        min-height: 28rem;
        max-height: 100vh;
        max-height: 100svh;
        padding: 1.25rem;
    }

    .hv2-approved-panel {
        border-left-width: 0.75rem;
        border-right-width: 0.75rem;
        min-height: 0;
    }

    .hv2-approved-panel-top,
    .hv2-approved-panel-body,
    .hv2-approved-foot {
        gap: 0.75rem;
        padding-inline: 1.25rem;
    }

    .hv2-approved-panel-top,
    .hv2-approved-panel-body,
    .hv2-approved-foot {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: flex-start;
    }

    .hv2-approved-foot-actions {
        width: 100%;
        justify-content: space-between;
    }

    .hv2-approved-panel-body {
        overflow: hidden;
        padding: 1.2rem 1.25rem 1rem;
    }

    /* Hide bancadas en móvil — demasiado contenido en espacio reducido */
    .hv2-approved-bancadas {
        display: none;
    }

    /* Oculta overline — no aporta info útil en móvil */
    .hv2-approved-overline {
        display: none;
    }

    .hv2-approved-hero-title {
        font-size: clamp(0.9rem, 4.8vw, 1.18rem);
        line-height: 1.15;
        max-width: 100%;
        -webkit-line-clamp: 4;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .hv2-approved-date {
        font-size: 0.68rem;
        padding: 0.44rem 0.68rem;
    }

    .hv2-approved-hero-copy {
        -webkit-line-clamp: 2;
        font-size: 0.78rem;
        line-height: 1.38;
    }

    .hv2-approved-stats {
        grid-template-columns: 1fr 1fr;
    }

    .hv2-approved-side {
        gap: 0.65rem;
        width: 100%;
    }

    .hv2-approved-kicker-box {
        gap: 0.24rem;
        padding: 0.8rem 0.9rem;
    }

    .hv2-approved-kicker {
        font-size: 0.64rem;
    }

    .hv2-approved-kicker-box strong {
        font-size: 0.74rem;
    }

    .hv2-approved-overline,
    .hv2-approved-authors-label,
    .hv2-approved-bancadas-label,
    .hv2-approved-stat-label {
        font-size: 0.6rem;
        letter-spacing: 0.11em;
    }

    .hv2-approved-authors {
        margin-top: 0.75rem;
    }

    .hv2-approved-authors-list {
        gap: 0.35rem;
    }

    .hv2-approved-bancada-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.2rem;
    }

    .hv2-approved-author {
        gap: 0.34rem;
        max-width: 100%;
        padding: 0.34rem 0.62rem 0.34rem 0.42rem;
    }

    .hv2-approved-author-avatar {
        height: 1.3rem;
        width: 1.3rem;
    }

    .hv2-approved-author-name {
        font-size: 0.65rem;
    }

    .hv2-approved-stat {
        padding: 0.85rem 0.95rem;
    }

    .hv2-approved-stat strong {
        font-size: 0.96rem;
    }

    .hv2-approved-bancadas {
        padding: 0.85rem 0.95rem;
    }

    .hv2-approved-bancada-name {
        font-size: 0.66rem;
    }

    .hv2-approved-bancada-values {
        font-size: 0.58rem;
    }


    .hv2-approved-tabs {
        gap: 0.45rem;
        padding-inline: 1rem;
    }

    .hv2-approved-tab {
        font-size: 0.74rem;
        padding: 0.82rem 1rem;
    }

    .hv2-explore-grid { grid-template-columns: 1fr; }
    .hv2-explore-cta { display: none; }
}

@media (max-width: 900px) {
    /* En tablet/móvil mostrar solo la barra general, no la descomposición por bancada */
    .hv2-approved-bancadas { display: none; }
}

@media (max-width: 420px) {
    .hv2-approved-stage {
        height: min(100vh, 30rem);
        height: min(100svh, 30rem);
        max-height: 100vh;
        max-height: 100svh;
        padding: 0.72rem;
    }

    .hv2-approved-panel {
        border-left-width: 0.5rem;
        border-right-width: 0.5rem;
    }

    /* Mantiene la fecha visible pero oculta el kicker (APROBADO/boletín) */
    .hv2-approved-panel-top {
        padding: 0.5rem 0.62rem;
    }

    .hv2-approved-kicker-box {
        display: none;
    }

    .hv2-approved-panel-body,
    .hv2-approved-foot {
        gap: 0.62rem;
        padding-inline: 0.62rem;
    }

    .hv2-approved-panel-body {
        padding: 0.75rem 0.62rem 0.95rem;
    }

    .hv2-approved-overline,
    .hv2-approved-authors-label,
    .hv2-approved-bancadas-label,
    .hv2-approved-stat-label {
        font-size: 0.54rem;
        letter-spacing: 0.09em;
    }

    /* Título más compacto para que no ocupe tanto del card */
    .hv2-approved-hero-title {
        font-size: clamp(0.88rem, 5.5vw, 1.18rem);
        line-height: 1.05;
        margin-bottom: 0.35rem;
        -webkit-line-clamp: 4;
    }

    .hv2-approved-hero-copy {
        -webkit-line-clamp: 2;
        font-size: 0.65rem;
    }

    .hv2-approved-hero-copy {
        -webkit-line-clamp: 2;
        font-size: 0.7rem;
        line-height: 1.28;
    }

    .hv2-approved-authors {
        margin-top: 0.55rem;
    }

    .hv2-approved-authors-list {
        gap: 0.28rem;
    }

    .hv2-approved-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.5rem;
    }

    .hv2-approved-stat,
    .hv2-approved-bancadas {
        padding: 0.56rem 0.62rem;
        border-radius: 10px;
    }

    .hv2-approved-stat strong {
        font-size: 0.82rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hv2-approved-author {
        padding: 0.26rem 0.46rem 0.26rem 0.3rem;
    }

    .hv2-approved-author-avatar {
        height: 1.08rem;
        width: 1.08rem;
    }

    .hv2-approved-author-name,
    .hv2-approved-bancada-name {
        font-size: 0.58rem;
    }

    .hv2-approved-bancada-values {
        font-size: 0.52rem;
    }

    .hv2-approved-bancada-row + .hv2-approved-bancada-row {
        margin-top: 0.42rem;
    }



    .hv2-approved-meta-item {
        font-size: 0.54rem;
        padding: 0.34rem 0.5rem;
    }

    .hv2-approved-link,
    .hv2-approved-foot .share-btn {
        font-size: 0.62rem;
    }

    .hv2-approved-foot {
        padding-top: 0.78rem;
    }

    .hv2-approved-foot-actions {
        gap: 0.45rem;
    }

    .hv2-approved-foot .share-btn {
        padding: 0.4rem 0.75rem;
    }

    .hv2-approved-foot .share-btn svg {
        width: 11px;
        height: 11px;
    }
}

@media (max-width: 360px) {
    .hv2-approved-stage {
        height: min(100vh, 28rem);
        height: min(100svh, 28rem);
        padding: 0.6rem;
    }

    .hv2-approved-panel-body,
    .hv2-approved-foot {
        padding-inline: 0.5rem;
    }

    .hv2-approved-panel-body {
        padding: 1rem 0.5rem 0.8rem;
    }

    .hv2-approved-hero-title {
        font-size: clamp(0.98rem, 6.2vw, 1.34rem);
    }

    /* En pantallas muy pequeñas oculta la sección de autores */
    .hv2-approved-authors {
        display: none;
    }

    .hv2-approved-stats {
        gap: 0.35rem;
    }

    .hv2-approved-stat,
    .hv2-approved-bancadas {
        padding: 0.48rem 0.54rem;
    }

}

@media (prefers-reduced-motion: reduce) {
    .hv2-approved-track {
        transition: none;
    }
}

/* Body overscroll: fondo gris claro para no romper el scroll */
body:has(.hv2) {
    background: #d8dfe9;
}

/* ── RESPONSIVE ─────────────────────────────────────────── */

@media (max-width: 900px) {
    .hv2-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.5rem;
    }
}

@media (max-width: 767px) {
    /* ── Hero: full viewport height on mobile ──────────────── */
    .hv2-header-band {
        display: flex;
        flex-direction: column;
        min-height: calc(100vh - 54px);   /* fallback */
        min-height: calc(100svh - 54px);  /* small viewport unit — excludes browser chrome */
    }

    .hv2-header-band .hv2-inner {
        display: flex;
        flex: 1;
        flex-direction: column;
    }

    .hv2-head {
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 2.5rem;
        padding-top: 0;
        padding-bottom: 0;
    }

    .hv2-head-copy {
        text-align: left;
    }

    .hv2-enter-cta {
        align-self: flex-start;
    }

    /* ── Other ─────────────────────────────────────────────── */
    .hv2-title {
        font-size: clamp(2.8rem, 14vw, 4rem);
        inline-size: 9.4ch;
        min-block-size: calc(0.87em * 2);
    }

    .hv2-chamber {
        min-height: 28rem;
    }

    .hv2-sysbar {
        gap: 0.3rem 0.6rem;
    }

    .hv2-sysbar-sep {
        display: none;
    }

    .hv2-legend {
        gap: 0.85rem;
    }

    .hv2-nav-status {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════
   DEPUTY PROFILE — .dp
   Mismo sistema visual: blanco / gris Apple / negro
   ═══════════════════════════════════════════════════════════ */

.dp {
    background: #ffffff;
    color: #06080e;
    font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
    min-height: 100vh;
}

body:has(.dp) {
    background: #f2f4f9;
}

.dp-inner {
    margin: 0 auto;
    max-width: 1200px;
    padding: 0 clamp(1rem, 3vw, 2.5rem);
}

/* ── HEADER ─────────────────────────────────────────────── */

.dp-header {
    background: #ffffff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
    padding: 1.75rem 0 2rem;
}

.dp-back {
    align-items: center;
    color: rgba(10, 20, 60, 0.35);
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 700;
    gap: 0.45rem;
    letter-spacing: 0.1em;
    margin-bottom: 1.5rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 140ms;
}
.dp-back:hover { color: #06080e; }

/* Perfil horizontal: foto + copy + link */
.dp-profile {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.dp-photo {
    border-radius: 999px;
    box-shadow: 0 2px 12px rgba(0, 10, 50, 0.1);
    flex-shrink: 0;
    height: 5rem;
    object-fit: cover;
    width: 5rem;
    border: 3px solid #fff;
}

.dp-photo-placeholder {
    align-items: center;
    background: #e8ecf4;
    border: 3px solid #fff;
    border-radius: 999px;
    box-shadow: 0 2px 12px rgba(0, 10, 50, 0.1);
    color: rgba(10, 20, 60, 0.35);
    display: flex;
    flex-shrink: 0;
    font-size: 1.3rem;
    font-weight: 700;
    height: 5rem;
    justify-content: center;
    width: 5rem;
}

.dp-profile-copy {
    flex: 1;
    min-width: 0;
    padding-top: 0.2rem;
}

.dp-sysbar-label {
    color: rgba(10, 20, 60, 0.35);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    margin: 0 0 0.4rem;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dp-name {
    color: #06080e;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.6rem, 3.2vw, 2.6rem);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 0.95;
    margin: 0 0 0.65rem;
}

/* Chips de bancada / región */
.dp-profile-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.dp-chip {
    background: #06080e;
    border-radius: 4px;
    color: #ffffff;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0.2rem 0.55rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.dp-chip--muted {
    background: transparent;
    border: 1px solid rgba(10, 20, 60, 0.15);
    color: rgba(10, 20, 60, 0.5);
}

.dp-profile-comunas {
    color: rgba(10, 20, 60, 0.42);
    font-size: 0.78rem;
    line-height: 1.4;
    margin: 0;
}

/* Enlace ficha oficial (arriba a la derecha del perfil) */
.dp-profile-link {
    align-items: center;
    align-self: flex-start;
    border: 1px solid rgba(10, 20, 60, 0.15);
    border-radius: 7px;
    color: rgba(10, 20, 60, 0.5);
    display: inline-flex;
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 700;
    gap: 0.35rem;
    letter-spacing: 0.05em;
    margin-top: 0.25rem;
    padding: 0.45rem 0.85rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 140ms;
}
.dp-profile-link:hover {
    background: #06080e;
    border-color: #06080e;
    color: #fff;
}

/* ── CONTENT ────────────────────────────────────────────── */

.dp-content {
    background: #f2f4f9;
    padding: 2.5rem 0 5rem;
}

.dp-microlabel {
    color: rgba(10, 20, 60, 0.34);
    display: block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    margin-bottom: 0.2rem;
    text-transform: uppercase;
}

/* Encabezado de sección */
.dp-section-head {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.dp-section-title {
    color: #06080e;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin: 0.15rem 0 0;
}

.dp-period-note {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(0, 10, 50, 0.08);
    border-radius: 999px;
    display: inline-flex;
    flex-shrink: 0;
    gap: 0.5rem;
    padding: 0.3rem 0.85rem;
}
.dp-period-note span { color: rgba(10, 20, 60, 0.38); font-size: 0.7rem; }
.dp-period-note strong { font-size: 0.8rem; font-weight: 700; }

/* ── CATEGORY CARDS ──────────────────────────────────────── */

.dp-cat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 2.5rem;
}

.dp-cat-card {
    background: #ffffff;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-top: 3px solid var(--accent, #4b5563);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1.1rem 1.1rem 1rem;
    transition: box-shadow 0.15s;
}
.dp-cat-card:hover { box-shadow: 0 4px 18px rgba(0, 10, 50, 0.08); }

/* Cabecera de la tarjeta */
.dp-cat-top {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.dp-cat-icon {
    align-items: center;
    background: rgba(0, 0, 0, 0.04);
    border-radius: 7px;
    color: var(--accent);
    display: flex;
    flex-shrink: 0;
    height: 1.75rem;
    justify-content: center;
    width: 1.75rem;
}
.dp-cat-icon svg { height: 1rem; width: 1rem; }

.dp-cat-name {
    color: rgba(10, 20, 60, 0.5);
    flex: 1;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.dp-cat-delta {
    border-radius: 4px;
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 700;
    padding: 0.1rem 0.38rem;
    font-variant-numeric: tabular-nums;
}
.dp-cat-delta--up { background: rgba(180,83,9,0.09); color: #92400e; }
.dp-cat-delta--dn { background: rgba(22,101,52,0.08); color: #166534; }

/* Número grande — valor del último mes */
.dp-cat-main { display: flex; flex-direction: column; gap: 0.15rem; }

.dp-cat-value {
    color: #06080e;
    display: block;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
}

.dp-cat-sublabel {
    color: rgba(10, 20, 60, 0.33);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Sparkline */
.dp-cat-spark {
    display: block;
    flex-shrink: 0;
    height: 56px;
    overflow: visible;
    width: 100%;
}

/* Footer con stats secundarios */
.dp-cat-footer {
    border-top: 1px solid rgba(0, 10, 50, 0.06);
    display: flex;
    gap: 0.5rem;
    padding-top: 0.75rem;
}

.dp-cat-foot-stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1;
}
.dp-cat-foot-right { align-items: flex-end; }

.dp-cat-foot-stat > span {
    color: rgba(10, 20, 60, 0.3);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dp-cat-foot-stat > strong {
    color: #06080e;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.84rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* ── DIVIDER DETALLE ─────────────────────────────────────── */

.dp-detail-head {
    border-top: 1px solid rgba(0, 10, 50, 0.08);
    margin-bottom: 1rem;
    padding-top: 2rem;
}

.dp-detail-hint {
    color: rgba(10, 20, 60, 0.4);
    font-size: 0.82rem;
    margin: 0.25rem 0 0;
}

/* ── EXPENSE BLOCKS ─────────────────────────────────────── */

.dp-expense-blocks { display: grid; gap: 0.6rem; }

.dp-block {
    background: #ffffff;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 12px;
    overflow: hidden;
}
.dp-block-asesores                { border-left: 3px solid #cc3f10; }
.dp-block-asesorias-externas      { border-left: 3px solid #6366f1; }
.dp-block-oficinas-parlamentarias { border-left: 3px solid #2d7a42; }
.dp-block-pasajes-aereos          { border-left: 3px solid #8b6f00; }

.dp-block-summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    list-style: none;
    padding: 1rem 1.1rem;
}
.dp-block-summary::-webkit-details-marker { display: none; }
.dp-block-summary::after {
    color: rgba(10, 20, 60, 0.25);
    content: "›";
    font-size: 1.4rem;
    line-height: 1;
    transition: transform 150ms;
}
.dp-block[open] .dp-block-summary::after { transform: rotate(90deg); }

.dp-block-label {
    color: rgba(10, 20, 60, 0.33);
    display: block;
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin-bottom: 0.14rem;
    text-transform: uppercase;
}

.dp-block-title {
    color: #06080e;
    display: block;
    font-size: 0.95rem;
    font-weight: 600;
}

.dp-block-amounts { display: flex; gap: 1.25rem; }
.dp-block-amount { text-align: right; }
.dp-block-amount span {
    color: rgba(10, 20, 60, 0.33);
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.dp-block-amount strong {
    color: #06080e;
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.dp-block-period {
    background: #f2f4f9;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 999px;
    min-width: 5rem;
    padding: 0.25rem 0.7rem;
    text-align: center;
}
.dp-block-period span {
    color: rgba(10, 20, 60, 0.33);
    display: block;
    font-size: 0.56rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.dp-block-period strong { display: block; font-size: 0.76rem; font-weight: 700; }

/* Bloque abierto */
.dp-block-body {
    border-top: 1px solid rgba(0, 10, 50, 0.06);
    padding: 1.25rem;
}

.dp-expense-hero {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    margin-bottom: 1.25rem;
}

.dp-total-card {
    background: #06080e;
    border-radius: 12px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 8.5rem;
    padding: 1.2rem;
}
.dp-total-label {
    color: rgba(255,255,255,0.4);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.dp-total-value {
    color: #fff;
    display: block;
    font-size: clamp(1.5rem, 3.2vw, 2.4rem);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1;
    margin: 0.7rem 0 0;
}
.dp-total-trend {
    color: rgba(255,255,255,0.38);
    font-size: 0.75rem;
    margin: 0.55rem 0 0;
}

.dp-stat-rail {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(2, 1fr);
}
.dp-stat-box {
    background: #f5f6fa;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 10px;
    padding: 0.65rem 0.8rem;
}
.dp-stat-box span {
    color: rgba(10, 20, 60, 0.34);
    display: block;
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 0.16rem;
    text-transform: uppercase;
}
.dp-stat-box strong {
    color: #06080e;
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* Grilla de gráfico + breakdown */
.dp-viz-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 3fr 2fr;
}
.dp-chart-panel, .dp-breakdown-panel {
    background: #f8f9fc;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 10px;
    overflow: hidden;
}
.dp-panel-head {
    border-bottom: 1px solid rgba(0, 10, 50, 0.07);
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.75rem 1rem;
}
.dp-panel-head strong { color: #06080e; font-size: 0.82rem; font-weight: 700; }
.dp-panel-head span { color: rgba(10, 20, 60, 0.34); font-size: 0.75rem; }

.dp-history-chart { display: block; width: 100%; }

.dp-breakdown-list { padding: 0.75rem 1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.dp-breakdown-item {
    display: grid;
    gap: 0.4rem 0.75rem;
    grid-template-columns: minmax(0, 1fr) 5rem auto;
    align-items: center;
}
.dp-breakdown-copy { min-width: 0; }
.dp-breakdown-name {
    color: #06080e;
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dp-breakdown-sub {
    color: rgba(10, 20, 60, 0.38);
    display: block;
    font-size: 0.68rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dp-bar-wrap {
    background: rgba(0, 10, 50, 0.06);
    border-radius: 99px;
    height: 4px;
    overflow: hidden;
}
.dp-bar { border-radius: 99px; height: 100%; }
.dp-breakdown-amount {
    color: #06080e;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.dp-empty-note { color: rgba(10, 20, 60, 0.35); font-size: 0.82rem; }

/* ── RESPONSIVE ─────────────────────────────────────────── */

@media (max-width: 1024px) {
    .dp-cat-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .dp-header-main {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.5rem;
    }
    .dp-block-summary {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
    }
    .dp-block-amounts {
        grid-column: 1;
        justify-content: flex-start;
    }
    .dp-block-period {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center;
    }
    .dp-expense-hero, .dp-viz-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .dp-cat-grid { grid-template-columns: repeat(2, 1fr); gap: 0.65rem; }
    .dp-name { font-size: 1.6rem; }
    .dp-stat-rail { grid-template-columns: 1fr; }
    .dp-breakdown-item {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }
    .dp-bar-wrap { grid-column: 1 / -1; }
    .dp-profile-link { display: none; }
}

@media (max-width: 420px) {
    .dp-cat-grid { grid-template-columns: 1fr; }
    .dp-cat-foot-stat.dp-cat-foot-right { display: none; }
}

/* ── MONTH CHIP (legacy, mantenido por compatibilidad) ──── */
.dp-month-chip {
    background: #f5f6fa;
    border: 1px solid rgba(0, 10, 50, 0.08);
    border-radius: 999px;
    padding: 0.32rem 0.7rem;
    text-align: center;
}

.dp-month-chip.current {
    background: #06080e;
    border-color: #06080e;
    color: #ffffff;
}

.dp-month-chip span {
    color: rgba(10, 20, 60, 0.4);
    display: block;
    font-size: 0.6rem;
    font-weight: 600;
}

.dp-month-chip.current span {
    color: rgba(255, 255, 255, 0.5);
}

.dp-month-chip strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
}

.dp-empty-note {
    color: rgba(10, 20, 60, 0.35);
    font-size: 0.84rem;
}

/* ── VIZ GRID ───────────────────────────────────────────── */

.dp-viz-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
}

.dp-chart-panel,
.dp-breakdown-panel {
    background: #f5f6fa;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 12px;
    padding: 1rem;
}

.dp-panel-head {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.dp-panel-head strong {
    color: #06080e;
    font-size: 0.86rem;
    font-weight: 600;
}

.dp-panel-head span {
    color: rgba(10, 20, 60, 0.35);
    font-size: 0.74rem;
}

.dp-history-chart {
    display: block;
    height: auto;
    min-height: 12rem;
    width: 100%;
}

.dp-breakdown-list {
    display: grid;
    gap: 0.6rem;
}

.dp-breakdown-item {
    align-items: center;
    display: grid;
    gap: 0.7rem;
    grid-template-columns: minmax(0, 1fr) minmax(5.5rem, 0.9fr) auto;
}

.dp-breakdown-name {
    color: #06080e;
    display: block;
    font-size: 0.86rem;
    font-weight: 500;
}

.dp-breakdown-sub {
    color: rgba(10, 20, 60, 0.4);
    display: block;
    font-size: 0.73rem;
}

.dp-bar-wrap {
    background: rgba(0, 10, 50, 0.07);
    border-radius: 999px;
    height: 0.5rem;
    overflow: hidden;
}

.dp-bar {
    border-radius: 999px;
    height: 100%;
    min-width: 0.2rem;
}

.dp-breakdown-amount {
    color: #06080e;
    font-size: 0.82rem;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

/* ── RESPONSIVE ─────────────────────────────────────────── */

@media (max-width: 1024px) {
    .dp-top-grid {
        grid-template-columns: 1fr;
    }
    .dp-ov-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    .dp-ov-stats {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto auto;
    }
}

@media (max-width: 700px) {
    .dp-ov-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 440px) {
    .dp-ov-grid {
        grid-template-columns: 1fr;
    }
    .dp-ov-stats {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: auto;
    }
}

@media (max-width: 900px) {
    .dp-header-main {
        align-items: flex-start;
        flex-direction: column;
        gap: 1.5rem;
    }

    .dp-header-stats {
        flex-wrap: wrap;
    }

    .dp-block-summary {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
    }

    .dp-block-amounts {
        grid-column: 1;
        justify-content: flex-start;
    }

    .dp-block-period {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center;
    }

    .dp-expense-hero,
    .dp-viz-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .dp-name {
        font-size: 1.7rem;
    }

    .dp-header-stats {
        width: 100%;
    }

    .dp-hstat {
        flex: 1;
        min-width: 0;
        text-align: left;
    }

    .dp-stat-rail {
        grid-template-columns: 1fr;
    }

    .dp-breakdown-item {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
    }

    .dp-bar-wrap {
        grid-column: 1 / -1;
    }
}

/* ═══════════════════════════════════════════════════════════
   RELACIONES — /relaciones  (.rl-*)
═══════════════════════════════════════════════════════════ */

.rl-page {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    overflow: hidden;
    font-family: 'Space Grotesk', sans-serif;
}

body:has(.rl-page) {
    overflow: hidden;
    background: #06080e;
}

.hv2-nav-link--active {
    color: #06080e;
    font-weight: 600;
}

/* Dark nav variant for dark-page contexts (asesorías) */
.as-page .hv2-nav {
    background: rgba(3,5,9,0.88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.as-page .hv2-brand { color: rgba(255,255,255,0.85); }
.as-page .hv2-brand:hover { color: #ffffff; }
.as-page .hv2-nav-link { color: rgba(255,255,255,0.45); }
.as-page .hv2-nav-link:hover { color: rgba(255,255,255,0.85); }
.as-page .hv2-nav-link--active { color: #ffffff; font-weight: 600; }

/* ── WORKSPACE ────────────────────────────────────────────── */
.rl-workspace {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 0;
}

/* ── SIDEBAR ──────────────────────────────────────────────── */
.rl-sidebar {
    width: 252px;
    flex-shrink: 0;
    background: #06080e;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    border-right: 1px solid rgba(255,255,255,0.06);
}

/* Scrollbar del sidebar */
.rl-sidebar::-webkit-scrollbar { width: 3px; }
.rl-sidebar::-webkit-scrollbar-track { background: transparent; }
.rl-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

/* Cabecera del sidebar */
.rl-sidebar-head {
    padding: 1.5rem 1.25rem 1.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.rl-sidebar-eyebrow {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
    margin: 0 0 0.5rem;
}

.rl-sidebar-title {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.15;
    color: #ffffff;
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
}

.rl-sidebar-stats {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.rl-sidebar-share {
    margin-top: 1rem;
}

.rl-sidebar-share .share-wrap {
    display: flex;
    width: 100%;
}

.rl-sidebar-share .share-btn {
    width: 100%;
    justify-content: center;
}

.rl-sidebar-share .share-drop {
    width: 100%;
    min-width: 0;
}

.rl-sstat {
    display: flex;
    flex-direction: column;
}

.rl-sstat-n {
    font-size: 1.15rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
    letter-spacing: -0.02em;
}

.rl-sstat-l {
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.38);
    margin-top: 0.1rem;
}

.rl-sstat-div {
    width: 1px;
    height: 1.6rem;
    background: rgba(255,255,255,0.1);
}

/* ── FORM DE FILTROS ──────────────────────────────────────── */
.rl-filter-form {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 0.75rem 0;
}

.rl-filter-section {
    border-bottom: 1px solid rgba(255,255,255,0.06);
    padding: 0.75rem 1.25rem;
}

.rl-filter-section--slim {
    padding-bottom: 0.65rem;
}

.rl-filter-label {
    display: block;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.38);
    margin-bottom: 0.5rem;
}

/* Search dentro del sidebar */
.rl-search {
    width: 100%;
    height: 1.9rem;
    padding: 0 0.65rem;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.75rem;
    color: #ffffff;
    outline: none;
    margin-bottom: 0.4rem;
    transition: border-color 0.15s, background 0.15s;
}

.rl-search::placeholder { color: rgba(255,255,255,0.28); }
.rl-search:focus { border-color: rgba(255,255,255,0.3); background: rgba(255,255,255,0.1); }

/* Lista de checkboxes */
.rl-check-list {
    max-height: 140px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.12) transparent;
}

.rl-check-list::-webkit-scrollbar { width: 3px; }
.rl-check-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

.rl-check-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.28rem 0;
    font-size: 0.76rem;
    color: rgba(255,255,255,0.65);
    cursor: pointer;
    border-radius: 4px;
    transition: color 0.1s;
}

.rl-check-item:hover { color: #ffffff; }

.rl-check-all {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.4);
    padding-bottom: 0.35rem;
    margin-bottom: 0.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.rl-check-item input[type="checkbox"] {
    width: 0.8rem;
    height: 0.8rem;
    accent-color: #ffffff;
    flex-shrink: 0;
    cursor: pointer;
}

/* Select de región */
.rl-select {
    width: 100%;
    height: 1.9rem;
    padding: 0 0.65rem;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.75rem;
    color: rgba(255,255,255,0.75);
    outline: none;
    cursor: pointer;
    appearance: none;
    transition: border-color 0.15s;
}

.rl-select option { background: #0e1120; color: #ffffff; }
.rl-select:focus { border-color: rgba(255,255,255,0.3); }

/* Botones de acción */
.rl-filter-actions {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: auto;
}

.rl-apply-btn {
    width: 100%;
    height: 2.2rem;
    background: #ffffff;
    color: #06080e;
    border: none;
    border-radius: 8px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.15s, transform 0.1s;
}

.rl-apply-btn:hover { opacity: 0.88; transform: translateY(-1px); }

.rl-clear-btn {
    width: 100%;
    height: 2rem;
    background: transparent;
    color: rgba(255,255,255,0.38);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.12s, color 0.12s;
}

.rl-clear-btn:hover { border-color: rgba(255,255,255,0.25); color: rgba(255,255,255,0.7); }

/* ── LEYENDA ──────────────────────────────────────────────── */
.rl-sidebar-legend {
    padding: 0.9rem 1.25rem;
    border-top: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rl-legend-item {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.7rem;
    font-weight: 500;
    color: rgba(255,255,255,0.4);
}

.rl-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
}

/* ── ÁREA DEL GRAFO ───────────────────────────────────────── */
.rl-graph-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: #0b0d18;
}

.rl-graph {
    flex: 1;
    position: relative;
    overflow: hidden;
    min-height: 0;
}

.rl-graph .graph-canvas {
    width: 100%;
    height: 100%;
    display: block;
}

.rl-graph-label {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 10px;
    font-weight: 500;
    fill: rgba(232,234,246,0.7);
    pointer-events: none;
}

.rl-graph-empty {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.3);
    font-size: 0.9rem;
    font-family: 'Space Grotesk', sans-serif;
}

/* ── Toggle button (mobile only) ──────────────────────────── */
.rl-sidebar-toggle {
    display: none;
    align-items: center;
    gap: 0.35rem;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 6px;
    color: rgba(255,255,255,0.55);
    cursor: pointer;
    flex-shrink: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    margin-left: auto;
    padding: 0.32rem 0.65rem;
    text-transform: uppercase;
    transition: background 0.14s, color 0.14s;
}
.rl-sidebar-toggle:hover { background: rgba(255,255,255,0.08); color: #fff; }
.rl-sidebar-toggle--open { background: rgba(255,255,255,0.1); color: #fff; }
.rl-sidebar-toggle svg { transition: transform 0.22s; flex-shrink: 0; }
.rl-sidebar-toggle--open svg { transform: rotate(180deg); }

/* ── Sidebar body wrapper ─────────────────────────────────── */
.rl-sidebar-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 800px) {
    .rl-workspace    { flex-direction: column; }
    .rl-sidebar      { width: 100%; max-height: 50vh; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.07); }
    .rl-check-list   { max-height: 90px; }
    .rl-page         { height: auto; }
    body:has(.rl-page) { overflow: visible; }
    .rl-graph-wrap   { min-height: 60svh; }
}

@media (max-width: 390px) {
    /* Sidebar: compact header row on small phones */
    .rl-sidebar { max-height: none; overflow: visible; border-bottom: 1px solid rgba(255,255,255,0.07); }
    .rl-sidebar-head {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        padding: 0.7rem 1rem;
    }
    .rl-sidebar-eyebrow,
    .rl-sidebar-stats,
    .rl-sidebar-share { display: none; }
    .rl-sidebar-title { font-size: 0.88rem; letter-spacing: -0.01em; margin: 0; flex: 1; }
    .rl-sidebar-title br { display: none; }
    .rl-sidebar-toggle { display: flex; }

    /* Body: collapsible filter panel */
    .rl-sidebar-body {
        flex: none;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.28s ease;
    }
    .rl-sidebar-body--open {
        max-height: 62vh;
        overflow-y: auto;
    }

    /* Graph: fill remaining viewport below compact sidebar header (~54px nav + ~52px head) */
    .rl-graph-wrap { min-height: calc(100dvh - 106px); }
}

/* ═══════════════════════════════════════════════════════════
   ASESORÍAS — /asesorias  (.as-*)
═══════════════════════════════════════════════════════════ */

.as-page {
    background: #030509;
    min-height: 100vh;
    color: #f0f2f8;
}

/* ── HERO ──────────────────────────────────────────────── */
.as-hero {
    background: #030509;
    min-height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.as-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 40% at 20% 60%, rgba(30,64,175,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 40% 50% at 80% 30%, rgba(124,58,237,0.12) 0%, transparent 60%),
        radial-gradient(ellipse 50% 60% at 50% 100%, rgba(13,148,136,0.08) 0%, transparent 50%);
    pointer-events: none;
}

.as-hero-inner {
    max-width: 900px;
    margin: 0 auto;
    padding: 8rem 2rem 5rem;
    position: relative;
    z-index: 1;
    width: 100%;
    box-sizing: border-box;
}

.as-hero-tag {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
    margin-bottom: 2.5rem;
}

.as-hero-main { margin-bottom: 3.5rem; }

.as-hero-title {
    font-size: clamp(4rem, 12vw, 9rem);
    font-weight: 800;
    letter-spacing: -0.06em;
    line-height: 0.9;
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    margin: 0 0 1.5rem;
}

.as-hero-currency {
    color: rgba(255,255,255,0.3);
    font-weight: 700;
}

.as-hero-claim {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.55);
    line-height: 1.65;
    max-width: 520px;
    margin: 0;
}

.as-hero-claim strong { color: rgba(255,255,255,0.85); }

/* Proportion bars */
.as-hero-bars {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-bottom: 3rem;
}

.as-hero-bar-row {
    display: grid;
    grid-template-columns: 7rem 1fr 4rem;
    align-items: center;
    gap: 1rem;
}

.as-hero-bar-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.45);
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-hero-bar-track {
    height: 5px;
    background: rgba(255,255,255,0.06);
    border-radius: 99px;
    overflow: hidden;
}

.as-hero-bar-fill {
    height: 100%;
    width: var(--w, 0%);
    background: var(--c, #4b5563);
    border-radius: 99px;
    animation: asBarGrow 1.4s cubic-bezier(.4,0,.2,1) both;
}

@keyframes asBarGrow {
    from { width: 0; }
    to   { width: var(--w, 0%); }
}

.as-hero-bar-pct {
    font-size: 0.78rem;
    font-weight: 700;
    font-family: 'Space Grotesk', sans-serif;
    letter-spacing: -0.02em;
}

.as-hero-scroll-hint {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.7rem;
    color: rgba(255,255,255,0.28);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    animation: asScrollBounce 2.4s ease-in-out infinite;
}

@keyframes asScrollBounce {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(5px); }
}

/* ── INSTITUCIONES ─────────────────────────────────────── */
.as-institutions {
    background: #05070f;
    padding: 5rem max(2rem, calc((100% - 1100px) / 2));
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.as-inst-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
    border-top: 3px solid var(--c, #4b5563);
    border-radius: 16px;
    padding: 2rem;
    position: relative;
    overflow: hidden;
    transition: background 0.2s;
}

.as-inst-card:hover { background: rgba(255,255,255,0.055); }

.as-inst-bg-number {
    position: absolute;
    top: -0.5rem;
    right: 1.2rem;
    font-size: 7rem;
    font-weight: 900;
    color: var(--c, #4b5563);
    opacity: 0.06;
    line-height: 1;
    font-family: 'Space Grotesk', sans-serif;
    pointer-events: none;
    user-select: none;
}

.as-inst-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.as-inst-pct {
    font-size: 3.2rem;
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: 1;
    color: var(--c, #ffffff);
    font-family: 'Space Grotesk', sans-serif;
    flex-shrink: 0;
}

.as-inst-pct small {
    font-size: 1.4rem;
    font-weight: 600;
    opacity: 0.7;
}

.as-inst-meta {
    display: flex;
    flex-direction: column;
    padding-top: 0.35rem;
    gap: 0.25rem;
}

.as-inst-name {
    font-size: 0.85rem;
    font-weight: 700;
    color: rgba(255,255,255,0.85);
    line-height: 1.3;
}

.as-inst-tag {
    font-size: 0.68rem;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.04em;
}

.as-inst-total-line {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.as-inst-total {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--c, #ffffff);
    font-family: 'Space Grotesk', sans-serif;
}

.as-inst-total-label {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.3);
}

.as-inst-spark {
    display: block;
    width: 100%;
    height: 56px;
    margin-bottom: 1.25rem;
}

/* Deputies accordion */
.as-inst-deps {
    border-top: 1px solid rgba(255,255,255,0.07);
    padding-top: 0.85rem;
}

.as-inst-deps > summary {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c, rgba(255,255,255,0.6));
    cursor: pointer;
    list-style: none;
    user-select: none;
    letter-spacing: 0.04em;
}

.as-inst-deps > summary::-webkit-details-marker { display: none; }
.as-inst-deps[open] > summary { margin-bottom: 0.85rem; }

.as-inst-dep-list {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 220px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.1) transparent;
}

.as-inst-dep {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.3rem 0.4rem;
    border-radius: 7px;
    text-decoration: none;
    transition: background 0.12s;
}

.as-inst-dep:hover { background: rgba(255,255,255,0.07); }

.as-inst-dep img {
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1.5px solid rgba(255,255,255,0.12);
}

.as-inst-dep-name {
    flex: 1;
    font-size: 0.75rem;
    color: rgba(255,255,255,0.7);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-inst-dep-amt {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--c, rgba(255,255,255,0.8));
    white-space: nowrap;
    flex-shrink: 0;
    font-family: 'Space Grotesk', sans-serif;
}

/* ── TIMELINE ──────────────────────────────────────────── */
.as-timeline-section {
    background: #030509;
    padding: 5rem 2rem 6rem;
    border-top: 1px solid rgba(255,255,255,0.05);
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.as-timeline-inner {
    max-width: 1000px;
    margin: 0 auto;
}

.as-tl-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.as-tl-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    margin: 0 0 0.5rem;
}

.as-tl-title {
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #ffffff;
    margin: 0;
    font-family: 'Space Grotesk', sans-serif;
}

.as-tl-selected {
    text-align: right;
    min-width: 180px;
    flex-shrink: 0;
}

.as-tl-info-month {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    margin-bottom: 0.25rem;
}

.as-tl-info-total {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    margin-bottom: 0.5rem;
}

.as-tl-info-breakdown {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: flex-end;
}

.tl-bd-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: rgba(255,255,255,0.6);
}

.tl-bd-item i {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.as-tl-chart-wrap {
    width: 100%;
    overflow: hidden;
}

.as-tl-svg { display: block; width: 100%; }

/* ── DEPUTIES BUBBLES ──────────────────────────────────── */
.as-deputies-section {
    background: #05070f;
    padding: 5rem 2rem 6rem;
}

.as-dep-inner {
    max-width: 1000px;
    margin: 0 auto;
}

.as-dep-header { margin-bottom: 2.5rem; }

.as-dep-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    margin: 0 0 0.5rem;
}

.as-dep-title {
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #ffffff;
    margin: 0 0 0.5rem;
    font-family: 'Space Grotesk', sans-serif;
}

.as-dep-hint {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.3);
    margin: 0;
}

.as-bubbles {
    width: 100%;
    overflow: hidden;
    border-radius: 16px;
}

@media (max-width: 700px) {
    .as-hero-inner { padding: 7rem 1.25rem 4rem; }
    .as-hero-bar-row { grid-template-columns: 5.5rem 1fr 3rem; }
    .as-tl-header { flex-direction: column; }
    .as-tl-selected { text-align: left; }
    .as-tl-info-breakdown { align-items: flex-start; }
    .as-institutions { grid-template-columns: 1fr; padding: 3rem 1.25rem; }
    .as-timeline-section, .as-deputies-section { padding: 3rem 1.25rem; }
}

/* ── TIMELINE — leyenda inline ─────────────────────────────────────────── */
.as-tl-legend {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.as-tl-leg-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: rgba(255,255,255,0.5);
    letter-spacing: 0.04em;
}

.as-tl-leg-item i {
    display: inline-block;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: var(--c);
    flex-shrink: 0;
}

/* ── RANKING SECTION ───────────────────────────────────────────────────── */
.as-rank-section {
    background: #060a14;
    padding: 5rem 0 6rem;
    border-top: 1px solid rgba(255,255,255,0.05);
}

.as-rank-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
}

.as-rank-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.as-rank-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    margin: 0 0 0.5rem;
}

.as-rank-title {
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #ffffff;
    margin: 0 0 0.3rem;
    font-family: 'Space Grotesk', sans-serif;
}

.as-rank-desc {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.3);
    margin: 0;
}

.as-rank-filters {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    align-items: center;
    padding-top: 0.25rem;
}

.as-rank-filter {
    padding: 0.35rem 0.9rem;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 99px;
    background: transparent;
    color: rgba(255,255,255,0.45);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all 0.15s;
    font-family: 'Space Grotesk', sans-serif;
}

.as-rank-filter:hover {
    border-color: rgba(255,255,255,0.28);
    color: rgba(255,255,255,0.8);
}

.as-rank-filter--active {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.22);
    color: #ffffff;
}

.as-rank-filter[data-filter]:not([data-filter="all"]).as-rank-filter--active {
    background: rgba(255,255,255,0.04);
    border-color: var(--c);
    color: var(--c);
}

.as-rank-table {
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 12px;
    overflow: hidden;
}

.as-rank-cols {
    display: grid;
    grid-template-columns: 3rem 1fr 14rem 1fr 7rem;
    gap: 1rem;
    padding: 0.55rem 1.2rem;
    background: rgba(255,255,255,0.03);
    border-bottom: 1px solid rgba(255,255,255,0.07);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.22);
}

.as-rank-col-right { text-align: right; }

.as-rank-row {
    display: grid;
    grid-template-columns: 3rem 1fr 14rem 1fr 7rem;
    align-items: center;
    gap: 1rem;
    padding: 0.7rem 1.2rem;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    text-decoration: none;
    transition: background 0.12s;
    position: relative;
}

.as-rank-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--accent, transparent);
    border-radius: 0 2px 2px 0;
    opacity: 0.7;
}

.as-rank-row:last-child { border-bottom: none; }
.as-rank-row:hover { background: rgba(255,255,255,0.035); }

.as-rank-num {
    font-size: 0.8rem;
    font-weight: 700;
    color: rgba(255,255,255,0.18);
    font-family: 'Space Grotesk', sans-serif;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.as-rank-identity {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.as-rank-photo {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1.5px solid rgba(255,255,255,0.1);
    display: block;
}

.as-rank-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.07);
    font-size: 0.58rem;
    font-weight: 700;
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    flex-shrink: 0;
}

.as-rank-name-block {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0.1rem;
}

.as-rank-name {
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-rank-party {
    font-size: 0.62rem;
    color: rgba(255,255,255,0.28);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-rank-corp-tags {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
}

.as-rank-corp-tag {
    font-size: 0.58rem;
    font-weight: 600;
    color: var(--c);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--c);
    border-radius: 4px;
    padding: 0.12rem 0.38rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
    opacity: 0.85;
}

.as-rank-bar-wrap {
    height: 4px;
    background: rgba(255,255,255,0.05);
    border-radius: 99px;
    overflow: hidden;
}

.as-rank-bar {
    display: block;
    height: 100%;
    border-radius: 99px;
    transition: width 0.7s cubic-bezier(.4,0,.2,1);
}

.as-rank-amt {
    font-size: 0.76rem;
    font-weight: 700;
    color: rgba(255,255,255,0.65);
    text-align: right;
    white-space: nowrap;
    font-family: 'Space Grotesk', sans-serif;
    font-variant-numeric: tabular-nums;
}

/* ── INSTITUTION SPLIT SECTION ─────────────────────────────────────────── */
.as-corp-section {
    background: #05070f;
    padding: 5rem 0 6rem;
    border-top: 1px solid rgba(255,255,255,0.05);
}

.as-corp-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 2rem;
}

.as-corp-section-header {
    margin-bottom: 2.5rem;
}

.as-corp-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.3);
    margin: 0 0 0.5rem;
}

.as-corp-title {
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #ffffff;
    margin: 0 0 0.3rem;
    font-family: 'Space Grotesk', sans-serif;
}

.as-corp-subtitle {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.3);
    margin: 0;
}

.as-corp-split {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2rem;
    align-items: start;
}

.as-corp-nav {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    position: sticky;
    top: 5rem;
}

.as-corp-btn {
    display: flex;
    align-items: stretch;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    width: 100%;
    padding: 0;
}

.as-corp-btn:hover {
    background: rgba(255,255,255,0.055);
    border-color: rgba(255,255,255,0.14);
}

.as-corp-btn--active {
    background: rgba(255,255,255,0.05);
    border-color: var(--c);
}

.as-corp-btn-bar {
    width: 4px;
    background: var(--c);
    flex-shrink: 0;
    opacity: 0.35;
    transition: opacity 0.15s;
}

.as-corp-btn--active .as-corp-btn-bar { opacity: 1; }

.as-corp-btn-body {
    padding: 0.9rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    flex: 1;
    min-width: 0;
}

.as-corp-btn-pct {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--c);
    font-family: 'Space Grotesk', sans-serif;
    line-height: 1;
}

.as-corp-btn-name {
    font-size: 0.72rem;
    font-weight: 600;
    color: rgba(255,255,255,0.72);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-corp-btn-meta {
    font-size: 0.6rem;
    color: rgba(255,255,255,0.28);
}

.as-corp-panel { display: none; }
.as-corp-panel--active { display: block; }

.as-corp-panel-top {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}

.as-corp-panel-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    background: rgba(255,255,255,0.03);
    border-radius: 10px;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(255,255,255,0.07);
    gap: 0.2rem;
}

.as-corp-panel-pct {
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: 1;
    font-family: 'Space Grotesk', sans-serif;
}

.as-corp-panel-pct-label {
    font-size: 0.6rem;
    color: rgba(255,255,255,0.28);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.as-corp-panel-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.3rem;
    min-width: 0;
}

.as-corp-panel-name {
    font-size: 1rem;
    font-weight: 700;
    color: rgba(255,255,255,0.9);
    margin: 0;
    line-height: 1.3;
}

.as-corp-panel-total {
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: rgba(255,255,255,0.8);
    font-family: 'Space Grotesk', sans-serif;
}

.as-corp-panel-meta {
    font-size: 0.68rem;
    color: rgba(255,255,255,0.3);
}

.as-corp-spark {
    display: block;
    width: 100%;
    height: 72px;
    margin-bottom: 1.5rem;
    overflow: visible;
}

.as-corp-dep-header {
    display: flex;
    justify-content: space-between;
    padding: 0.4rem 0.4rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    margin-bottom: 0.25rem;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.22);
}

.as-corp-dep-list {
    display: flex;
    flex-direction: column;
    max-height: 400px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.08) transparent;
}

.as-corp-dep-row {
    display: grid;
    grid-template-columns: 1.8rem 1fr auto 90px 6rem;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.4rem;
    border-radius: 7px;
    text-decoration: none;
    transition: background 0.12s;
    border-bottom: 1px solid rgba(255,255,255,0.03);
}

.as-corp-dep-row:last-child { border-bottom: none; }
.as-corp-dep-row:hover { background: rgba(255,255,255,0.05); }

.as-corp-dep-photo {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    object-fit: cover;
    border: 1.5px solid rgba(255,255,255,0.1);
    flex-shrink: 0;
    display: block;
}

.as-corp-dep-initials {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    border: 1.5px solid rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.54rem;
    font-weight: 700;
    color: rgba(255,255,255,0.38);
    text-transform: uppercase;
    flex-shrink: 0;
}

.as-corp-dep-name {
    font-size: 0.74rem;
    font-weight: 600;
    color: rgba(255,255,255,0.8);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.as-corp-dep-party {
    font-size: 0.62rem;
    color: rgba(255,255,255,0.28);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
}

.as-corp-dep-bar-wrap {
    height: 3px;
    background: rgba(255,255,255,0.06);
    border-radius: 99px;
    overflow: hidden;
}

.as-corp-dep-bar {
    display: block;
    height: 100%;
    border-radius: 99px;
}

.as-corp-dep-amt {
    font-size: 0.72rem;
    font-weight: 700;
    color: rgba(255,255,255,0.62);
    text-align: right;
    white-space: nowrap;
    font-family: 'Space Grotesk', sans-serif;
    font-variant-numeric: tabular-nums;
}

/* ── Responsive — nuevas secciones ────────────────────────────────────── */
@media (max-width: 960px) {
    .as-corp-split {
        grid-template-columns: 1fr;
    }
    .as-corp-nav {
        position: static;
        flex-direction: row;
        overflow-x: auto;
        gap: 0.5rem;
        padding-bottom: 0.25rem;
        scrollbar-width: none;
    }
    .as-corp-nav::-webkit-scrollbar { display: none; }
    .as-corp-btn {
        min-width: 180px;
        flex-shrink: 0;
    }
    .as-rank-cols,
    .as-rank-row {
        grid-template-columns: 2.5rem 1fr 12rem 5.5rem;
    }
    .as-rank-cols > span:nth-child(4),
    .as-rank-row > .as-rank-bar-wrap { display: none; }
}

@media (max-width: 700px) {
    .as-rank-section,
    .as-corp-section { padding: 3rem 0 4rem; }
    .as-rank-inner,
    .as-corp-inner { padding: 0 1.25rem; }
    .as-rank-header { flex-direction: column; gap: 1.25rem; }
    .as-rank-cols { display: none; }
    .as-rank-row {
        grid-template-columns: 2rem 1fr 5.5rem;
        padding: 0.65rem 1rem;
        gap: 0.75rem;
    }
    .as-rank-row > .as-rank-corp-tags,
    .as-rank-row > .as-rank-bar-wrap { display: none; }
    .as-corp-dep-row {
        grid-template-columns: 1.8rem 1fr 5.5rem;
    }
    .as-corp-dep-row > .as-corp-dep-party,
    .as-corp-dep-row > .as-corp-dep-bar-wrap { display: none; }
    .as-corp-panel-top { flex-direction: column; gap: 1rem; }
    .as-corp-panel-stat {
        flex-direction: row;
        align-items: center;
        width: 100%;
        box-sizing: border-box;
    }
}

/* ── Page loader ──────────────────────────────────────────────────────────── */
.pl {
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: 9999;
    background: rgba(247, 247, 245, 0.72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    transition: opacity 0.22s ease;
}
.pl.pl-hidden {
    opacity: 0;
    pointer-events: none;
}
.pl-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    user-select: none;
    text-align: center;
}
.pl-dots {
    display: flex;
    flex-direction: row;
    gap: 8px;
    flex-shrink: 0;
}
.pl-dot {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.pl-dot--r { background: #c01520; animation: dot-pulse 1.4s ease-in-out -0.4s infinite; }
.pl-dot--m { background: #9aa0b0; animation: dot-pulse 1.4s ease-in-out -0.2s infinite; }
.pl-dot--b { background: #0f35c0; animation: dot-pulse 1.4s ease-in-out 0s   infinite; }
@keyframes dot-pulse {
    0%, 80%, 100% { opacity: 0.25; transform: scale(0.8); }
    40%           { opacity: 1;    transform: scale(1); }
}
.pl-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    max-width: 380px;
}
.pl-phrase {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.72rem;
    font-style: italic;
    color: rgba(10, 20, 60, 0.78);
    transition: opacity 0.32s ease;
    margin: 0;
    line-height: 1.4;
    letter-spacing: 0.01em;
}
.pl-author {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.60rem;
    font-weight: 600;
    color: rgba(10, 20, 60, 0.40);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: opacity 0.32s ease;
}

/* ── DIPUTADO profile actions row ──────────────────────── */
.dp-profile-actions {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

/* ── Duel CTA from profile ──────────────────────────────── */
.dp-duel-btn {
    align-items: center;
    background: rgba(220,38,38,0.07);
    border: 1px solid rgba(220,38,38,0.2);
    border-radius: 7px;
    color: #c01520;
    display: inline-flex;
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 700;
    gap: 0.4rem;
    letter-spacing: 0.06em;
    padding: 0.45rem 0.85rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 140ms;
    white-space: nowrap;
}
.dp-duel-btn:hover {
    background: #c01520;
    border-color: #c01520;
    color: #fff;
}

/* ── SHARE BUTTON ───────────────────────────────────────── */
.share-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.share-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1.1rem;
    border-radius: 3px;
    border: 1.5px solid #06080e;
    background: transparent;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    color: #06080e;
    cursor: pointer;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: background 140ms ease, color 140ms ease;
    white-space: nowrap;
}
.share-btn:hover {
    background: #06080e;
    color: #ffffff;
}
.share-btn svg {
    flex-shrink: 0;
}
/* Dark variant (for dark-background sections) */
.share-btn--dark {
    border-color: rgba(255, 255, 255, 0.5);
    color: rgba(255, 255, 255, 0.85);
}
.share-btn--dark:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.85);
    color: #ffffff;
}
.share-drop {
    background: #ffffff;
    border: 1px solid rgba(10, 20, 60, 0.1);
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(10, 20, 60, 0.13);
    min-width: 190px;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    transform: translateY(-4px);
    transition: opacity 0.14s ease, transform 0.14s ease;
    z-index: 300;
    overflow: hidden;
}
.share-drop.share-drop--open {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
}
.share-option {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.6rem 0.9rem;
    text-decoration: none;
    color: rgba(10, 20, 60, 0.8);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    transition: background 0.1s;
}
.share-option:hover {
    background: rgba(10, 20, 60, 0.05);
}
.share-option-icon {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.75rem;
}
.share-option--x .share-option-icon    { background: #000; color: #fff; }
.share-option--wa .share-option-icon   { background: #25d366; color: #fff; }
.share-option--fb .share-option-icon   { background: #1877f2; color: #fff; }
.share-option--copy .share-option-icon { background: rgba(10, 20, 60, 0.08); color: rgba(10, 20, 60, 0.6); }
.share-sep {
    height: 1px;
    background: rgba(10, 20, 60, 0.07);
    margin: 0.2rem 0;
}

/* ══════════════════════════════════════════════════════════
   VERSUS PAGE (/dversusd)
   ══════════════════════════════════════════════════════════ */

:root {
    --vs-a:      #dc2626;
    --vs-b:      #1d4ed8;
    --vs-a-glow: rgba(220, 38, 38, 0.2);
    --vs-b-glow: rgba(29, 78, 216, 0.2);
    --vs-bg:     #05070f;
    --vs-surf:   #0c0f1e;
    --vs-text:   #f1f5f9;
    --vs-muted:  rgba(241,245,249,0.45);
}

.vs-page {
    min-height: 100vh;
    background: var(--vs-bg);
    font-family: 'Space Grotesk', sans-serif;
    color: var(--vs-text);
}

/* ── NAV ────────────────────────────────────────────────── */
.vs-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2rem;
    height: 52px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--vs-bg);
}
.vs-brand {
    align-items: center;
    color: rgba(255,255,255,0.55);
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 700;
    gap: 0.45rem;
    letter-spacing: 0.18em;
    text-decoration: none;
    text-transform: uppercase;
}
.vs-brand:hover { color: #fff; }
.vs-nav-end { display: flex; align-items: center; gap: 1.4rem; }
.vs-nav-link {
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    text-decoration: none;
    transition: color 0.15s;
}
.vs-nav-link:hover { color: #fff; }

/* ── PICKER ─────────────────────────────────────────────── */
.vs-picker { display: flex; flex-direction: column; min-height: calc(100vh - 52px); }
.vs-picker--hidden { display: none; }

.vs-picker-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 3rem 2rem 4rem;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.vs-picker-eyebrow {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--vs-muted);
    margin: 0;
    text-align: center;
}

.vs-picker-title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 700;
    letter-spacing: -0.04em;
    color: #fff;
    margin: 0;
    text-align: center;
}

/* Slots */
.vs-slots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    flex-wrap: wrap;
}

.vs-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    text-align: center;
    min-width: 130px;
}

.vs-slot-ring {
    padding: 4px;
    border-radius: 50%;
    background: transparent;
    transition: transform 0.2s;
}
.vs-slot--a .vs-slot-ring { border: 2.5px solid var(--vs-a); }
.vs-slot--b .vs-slot-ring { border: 2.5px solid var(--vs-b); }
.vs-slot:hover .vs-slot-ring { transform: scale(1.05); }

.vs-slot-avatar {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    background: rgba(255,255,255,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}
.vs-slot-qmark {
    font-size: 1.8rem;
    font-weight: 700;
    color: rgba(255,255,255,0.2);
    line-height: 1;
}
.vs-slot-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.vs-slot-corner {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--vs-a);
}
.vs-slot-corner--b { color: var(--vs-b); }
.vs-slot-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #fff;
    max-width: 140px;
    line-height: 1.2;
}
.vs-slot-sub {
    font-size: 0.72rem;
    color: var(--vs-muted);
}

.vs-badge-vs {
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: rgba(255,255,255,0.12);
    line-height: 1;
    flex-shrink: 0;
}

/* Search */
.vs-search-wrap {
    position: relative;
    max-width: 480px;
    margin: 0 auto;
    width: 100%;
}
.vs-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(255,255,255,0.3);
    pointer-events: none;
}
.vs-search-input {
    width: 100%;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 10px;
    padding: 0.7rem 1rem 0.7rem 2.6rem;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.88rem;
    outline: none;
    transition: border-color 0.15s, background 0.15s;
}
.vs-search-input::placeholder { color: rgba(255,255,255,0.3); }
.vs-search-input:focus {
    border-color: rgba(255,255,255,0.3);
    background: rgba(255,255,255,0.09);
}

/* Deputy grid */
.vs-dep-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 0.75rem;
    max-height: 380px;
    overflow-y: auto;
    padding-right: 4px;
}
.vs-dep-grid::-webkit-scrollbar { width: 4px; }
.vs-dep-grid::-webkit-scrollbar-track { background: transparent; }
.vs-dep-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }

.vs-dep-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 0.75rem 0.4rem;
    background: rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    transition: background 0.12s, border-color 0.12s, transform 0.12s;
    font-family: 'Space Grotesk', sans-serif;
}
.vs-dep-card:hover {
    background: rgba(255,255,255,0.09);
    border-color: rgba(255,255,255,0.2);
    transform: translateY(-2px);
}
.vs-dep-card--sel-a {
    background: var(--vs-a-glow);
    border-color: var(--vs-a);
}
.vs-dep-card--sel-b {
    background: var(--vs-b-glow);
    border-color: var(--vs-b);
}

.vs-dep-photo-wrap { position: relative; flex-shrink: 0; }
.vs-dep-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
.vs-dep-initials {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
    color: rgba(255,255,255,0.6);
}
.vs-dep-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    font-weight: 800;
    color: #fff;
    border: 2px solid var(--vs-bg);
}
.vs-dep-badge--a { background: var(--vs-a); }
.vs-dep-badge--b { background: var(--vs-b); }

.vs-dep-name {
    font-size: 0.7rem;
    font-weight: 600;
    color: rgba(255,255,255,0.9);
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.vs-dep-bancada {
    font-size: 0.6rem;
    color: rgba(255,255,255,0.35);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Fight button */
.vs-fight-wrap { display: flex; justify-content: center; }
.vs-fight-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem 2.4rem;
    background: linear-gradient(135deg, var(--vs-a), #b91c1c);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.2s, transform 0.15s, box-shadow 0.2s;
    box-shadow: 0 4px 24px rgba(220,38,38,0.35);
}
.vs-fight-btn:disabled {
    background: rgba(255,255,255,0.08);
    box-shadow: none;
    color: rgba(255,255,255,0.25);
    cursor: not-allowed;
}
.vs-fight-btn:not(:disabled):hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(220,38,38,0.5);
}

/* ── ARENA ──────────────────────────────────────────────── */
.vs-arena { min-height: calc(100vh - 52px); display: flex; flex-direction: column; }

/* Hero */
.vs-arena-hero {
    display: grid;
    grid-template-columns: 1fr 120px 1fr;
    align-items: center;
    gap: 0;
    padding: 3rem 2rem 2.5rem;
    max-width: 1100px;
    margin: 0 auto;
    width: 100%;
}

.vs-contender {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.vs-contender--b {
    flex-direction: row-reverse;
    text-align: right;
}

.vs-cont-photo {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 3px solid var(--vs-a);
}
.vs-contender--b .vs-cont-photo { border-color: var(--vs-b); }
.vs-cont-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    font-weight: 700;
    background: rgba(255,255,255,0.08);
}
.vs-cont-initials--a { border-color: var(--vs-a); color: var(--vs-a); }
.vs-cont-initials--b { border-color: var(--vs-b); color: var(--vs-b); }

.vs-cont-meta { flex: 1; }
.vs-cont-meta--b { text-align: right; }

.vs-cont-corner-lbl {
    display: block;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--vs-a);
    margin-bottom: 0.25rem;
}
.vs-cont-corner-lbl--b { color: var(--vs-b); }
.vs-cont-name {
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #fff;
    margin: 0 0 0.2rem;
    line-height: 1.15;
}
.vs-cont-details {
    font-size: 0.72rem;
    color: var(--vs-muted);
    margin: 0 0 0.4rem;
}
.vs-cont-chip {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 4px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.vs-cont-chip--a { background: var(--vs-a-glow); color: #fca5a5; border: 1px solid rgba(220,38,38,0.3); }
.vs-cont-chip--b { background: var(--vs-b-glow); color: #93c5fd; border: 1px solid rgba(29,78,216,0.3); }

.vs-arena-center {
    display: flex;
    align-items: center;
    justify-content: center;
}
.vs-vs-badge {
    font-size: 2rem;
    font-weight: 900;
    color: rgba(255,255,255,0.12);
    letter-spacing: -0.04em;
    line-height: 1;
}

/* Metrics section */
.vs-metrics-section {
    flex: 1;
    padding: 0 2rem 3rem;
    border-top: 1px solid rgba(255,255,255,0.06);
    background: rgba(0,0,0,0.2);
}
.vs-metrics-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding-top: 2rem;
}
.vs-metrics-label {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--vs-muted);
    margin: 0 0 1.5rem;
    text-align: center;
}

/* Metric rows */
.vs-row {
    display: grid;
    grid-template-columns: 1fr 180px 1fr;
    align-items: center;
    gap: 0;
    margin-bottom: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.vs-side {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    transition: opacity 0.3s;
}
.vs-side--lose { opacity: 0.45; }
.vs-side--a { align-items: flex-end; }
.vs-side--b { align-items: flex-start; }

.vs-side-val {
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.vs-side--win .vs-side-val { font-size: 1.25rem; }

.vs-win-tag {
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 0.18rem 0.5rem;
    border-radius: 4px;
}
.vs-win-tag--a { background: var(--vs-a-glow); color: #fca5a5; border: 1px solid rgba(220,38,38,0.35); }
.vs-win-tag--b { background: var(--vs-b-glow); color: #93c5fd; border: 1px solid rgba(29,78,216,0.35); }

.vs-bar-track {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    background: rgba(255,255,255,0.06);
}
.vs-bar-track--a { display: flex; justify-content: flex-end; }
.vs-bar-track--b { display: flex; justify-content: flex-start; }

.vs-bar {
    height: 100%;
    border-radius: 4px;
    transition: width 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.vs-bar--a { background: linear-gradient(90deg, rgba(220,38,38,0.6), var(--vs-a)); }
.vs-bar--b { background: linear-gradient(90deg, var(--vs-b), rgba(29,78,216,0.6)); }

.vs-row-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0 0.8rem;
}
.vs-row-icon { color: rgba(255,255,255,0.4); display: flex; }
.vs-row-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
    text-align: center;
    line-height: 1.2;
}

/* Total row */
.vs-total-wrap { margin-top: 1.5rem; }
.vs-total-eyebrow {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--vs-muted);
    text-align: center;
    margin: 0 0 1rem;
}
.vs-total-row {
    display: grid;
    grid-template-columns: 1fr 60px 1fr;
    align-items: center;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 14px;
    padding: 1.5rem 1.5rem;
    gap: 0;
}
.vs-total-side {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.vs-total-side--a { align-items: flex-end; }
.vs-total-side--b { align-items: flex-start; }

.vs-total-name {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--vs-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.vs-total-val {
    font-size: 1.7rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: rgba(255,255,255,0.55);
}
.vs-total-side--win .vs-total-val { color: #fff; }

.vs-bar-track--fat { height: 10px; }
.vs-bar--fat { border-radius: 5px; }

.vs-total-winner-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
    background: rgba(250,204,21,0.12);
    color: #fbbf24;
    border: 1px solid rgba(250,204,21,0.25);
}
.vs-total-winner-tag--b { align-self: flex-start; }

.vs-total-sep {
    display: flex;
    align-items: center;
    justify-content: center;
}
.vs-total-vs {
    font-size: 1rem;
    font-weight: 900;
    color: rgba(255,255,255,0.1);
}

/* Footer */
.vs-arena-footer {
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 1.5rem 2rem;
}
.vs-arena-footer-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.vs-new-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.1rem;
    border: 1.5px solid rgba(255,255,255,0.18);
    border-radius: 8px;
    color: rgba(255,255,255,0.65);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.15s;
    white-space: nowrap;
}
.vs-new-btn:hover { border-color: rgba(255,255,255,0.45); color: #fff; }

.vs-footer-profiles {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    flex: 1;
    justify-content: center;
}
.vs-profile-link {
    font-size: 0.76rem;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.15s;
    white-space: nowrap;
}
.vs-profile-link--a { color: rgba(252,165,165,0.8); }
.vs-profile-link--a:hover { color: #fca5a5; }
.vs-profile-link--b { color: rgba(147,197,253,0.8); }
.vs-profile-link--b:hover { color: #93c5fd; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 760px) {
    .vs-arena-hero {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 2rem 1.5rem 1.5rem;
    }
    .vs-arena-center { display: none; }
    .vs-contender, .vs-contender--b { flex-direction: row; text-align: left; }
    .vs-cont-meta--b { text-align: left; }
    .vs-contender--b { border-left: 3px solid var(--vs-b); padding-left: 1rem; }
    .vs-contender--a { border-left: 3px solid var(--vs-a); padding-left: 1rem; }
    .vs-cont-corner-lbl--b { text-align: left; }
    .vs-cont-photo { width: 56px; height: 56px; }

    /* ── Metric rows: card layout ───────────────────────── */
    .vs-row {
        display: flex; flex-direction: column; gap: 0;
        padding: 0.8rem 0.9rem;
        background: rgba(255,255,255,0.025);
        border: 1px solid rgba(255,255,255,0.07);
        border-radius: 11px;
        margin-bottom: 0.6rem;
    }
    /* Category header moves to top */
    .vs-row-center {
        order: -1;
        flex-direction: row; gap: 0.4rem;
        justify-content: flex-start;
        padding: 0 0 0.5rem;
        border-bottom: 1px solid rgba(255,255,255,0.06);
        margin-bottom: 0;
    }
    /* Side A: red left border, row layout */
    .vs-side--a {
        order: 0;
        flex-direction: row; align-items: center;
        flex-wrap: nowrap; gap: 0.45rem;
        padding: 0.55rem 0 0.3rem 0.7rem;
        margin-top: 0.45rem;
        border-left: 3px solid var(--vs-a);
    }
    /* Side B: blue left border, row layout */
    .vs-side--b {
        order: 1;
        flex-direction: row; align-items: center;
        flex-wrap: nowrap; gap: 0.45rem;
        padding: 0.3rem 0 0 0.7rem;
        border-left: 3px solid var(--vs-b);
    }
    /* Reorder children: name(0) → value(1) → GANA(2) → bar(3) */
    .vs-side--a .vs-side-val, .vs-side--b .vs-side-val { order: 1; font-size: 0.95rem; }
    .vs-side--a .vs-win-tag,  .vs-side--b .vs-win-tag  { order: 2; }
    .vs-side--a .vs-bar-track, .vs-side--b .vs-bar-track {
        order: 3; flex: 1; min-width: 50px; justify-content: flex-start;
    }
    .vs-bar--a, .vs-bar--b { border-radius: 3px; }
    /* Reveal name labels on mobile */
    .vs-side-name { display: inline; }

    /* ── Total section ───────────────────────────────────── */
    .vs-total-row {
        display: flex; flex-direction: column; gap: 0;
        border-radius: 11px; padding: 0.85rem 0.9rem;
    }
    .vs-total-side--a {
        align-items: flex-start;
        padding: 0 0 0.75rem 0.7rem;
        border-left: 3px solid var(--vs-a);
        border-bottom: 1px solid rgba(255,255,255,0.07);
        margin-bottom: 0.5rem;
    }
    .vs-total-side--b {
        align-items: flex-start;
        padding: 0 0 0 0.7rem;
        border-left: 3px solid var(--vs-b);
    }
    /* Reorder total-B children: name → val → bar → VENCEDOR */
    .vs-total-side--b .vs-total-name   { order: 0; }
    .vs-total-side--b .vs-total-val    { order: 1; }
    .vs-total-side--b .vs-bar-track    { order: 2; }
    .vs-total-side--b .vs-total-winner-tag { order: 3; align-self: flex-start; }
    .vs-total-sep { display: none; }
    .vs-total-val { font-size: 1.3rem; }

    .vs-picker-inner { padding: 2rem 1.25rem 3rem; }
    .vs-slots { gap: 1.5rem; }
    .vs-badge-vs { font-size: 1.6rem; }
    .vs-dep-grid { grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); max-height: 300px; }
    .vs-group-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); max-height: 320px; }
}

/* ── Mode tabs ──────────────────────────────────────────── */
.vs-mode-tabs {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 0.3rem;
    width: fit-content;
    margin: 0 auto;
}
.vs-mode-tab {
    padding: 0.45rem 1.2rem;
    border-radius: 7px;
    border: none;
    background: transparent;
    color: rgba(255,255,255,0.45);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.14s, color 0.14s;
    white-space: nowrap;
}
.vs-mode-tab:hover { color: rgba(255,255,255,0.75); }
.vs-mode-tab--active {
    background: rgba(255,255,255,0.12);
    color: #fff;
}

/* ── Group grid ─────────────────────────────────────────── */
.vs-group-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.75rem;
    max-height: 360px;
    overflow-y: auto;
    padding-right: 4px;
}
.vs-group-grid::-webkit-scrollbar { width: 4px; }
.vs-group-grid::-webkit-scrollbar-track { background: transparent; }
.vs-group-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }

.vs-group-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 0.75rem 0.8rem;
    background: rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    transition: background 0.12s, border-color 0.12s, transform 0.12s;
    font-family: 'Space Grotesk', sans-serif;
}
.vs-group-card:hover {
    background: rgba(255,255,255,0.09);
    border-color: rgba(255,255,255,0.2);
    transform: translateY(-2px);
}
.vs-group-card--sel-a { background: var(--vs-a-glow); border-color: var(--vs-a); }
.vs-group-card--sel-b { background: var(--vs-b-glow); border-color: var(--vs-b); }

.vs-group-avatar-wrap { position: relative; }
.vs-group-avatar {
    width: 58px;
    height: 58px;
    border-radius: 14px;
    background: rgba(255,255,255,0.09);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: rgba(255,255,255,0.7);
    border: 1.5px solid rgba(255,255,255,0.1);
}
.vs-group-card--sel-a .vs-group-avatar { background: var(--vs-a-glow); border-color: rgba(220,38,38,0.4); color: #fca5a5; }
.vs-group-card--sel-b .vs-group-avatar { background: var(--vs-b-glow); border-color: rgba(29,78,216,0.4); color: #93c5fd; }

.vs-group-name {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255,255,255,0.9);
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.vs-group-count {
    font-size: 0.65rem;
    color: rgba(255,255,255,0.35);
    font-weight: 500;
}

/* ── Group arena avatar ─────────────────────────────────── */
.vs-cont-group {
    width: 90px;
    height: 90px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}
.vs-cont-group--a {
    background: var(--vs-a-glow);
    border: 3px solid var(--vs-a);
    color: #fca5a5;
}
.vs-cont-group--b {
    background: var(--vs-b-glow);
    border: 3px solid var(--vs-b);
    color: #93c5fd;
}

/* Side name labels — hidden on desktop, shown on mobile */
.vs-side-name {
    display: none;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    flex-shrink: 0;
    min-width: 52px;
}
.vs-side-name--a { color: rgba(252,165,165,0.75); }
.vs-side-name--b { color: rgba(147,197,253,0.75); }

/* ═══════════════════════════════════════════════════════════
   MOBILE POLISH — responsive improvements all pages
   ═══════════════════════════════════════════════════════════ */

/* ── Navigation — compact on narrow screens ──────────────── */
@media (max-width: 480px) {
    .hv2-nav { height: 50px; padding: 0 1rem; }
    .hv2-brand { font-size: 0.68rem; letter-spacing: 0.15em; }
    .hv2-nav-end { gap: 0.9rem; }
    .hv2-nav-link { font-size: 0.78rem; }
}
@media (max-width: 360px) {
    /* Longest link first — hide on smallest phones to prevent overflow */
    .hv2-nav-end .hv2-nav-link:first-child { display: none; }
}

/* ── Deputy profile header — mobile ─────────────────────── */
@media (max-width: 600px) {
    .dp-header { padding: 1.25rem 0 1.5rem; }
    .dp-profile { gap: 0.9rem; }
    .dp-photo,
    .dp-photo-placeholder { width: 3.75rem; height: 3.75rem; font-size: 1.1rem; }
    /* Allow long partido/distrito label to wrap instead of clipping */
    .dp-sysbar-label { white-space: normal; line-height: 1.45; }
    .dp-content { padding: 1.5rem 0 4rem; }
    .dp-section-head { flex-direction: column; gap: 0.5rem; margin-bottom: 1rem; }
    .dp-block-body { padding: 1rem; }
    .dp-block-summary { padding: 0.85rem 1rem; }
    .dp-total-card { min-height: 7rem; }
    .dp-detail-hint { font-size: 0.78rem; }
    /* Bigger tap area on "Volver" */
    .dp-back { min-height: 44px; }
    /* Min tap size share button */
    .share-btn { min-height: 44px; padding: 0 1rem; }
    /* Keep share dropdown in-viewport on mobile */
    .dp-profile-actions .share-drop { left: 0; right: auto; }
}

/* ── Category cards — legible footer stats on mobile ─────── */
@media (max-width: 480px) {
    .dp-cat-card { padding: 0.9rem 0.9rem 0.85rem; gap: 0.65rem; }
    .dp-cat-foot-stat > span  { font-size: 0.6rem; }
    .dp-cat-foot-stat > strong { font-size: 0.88rem; }
}

/* ── Home explore — bigger description text ──────────────── */
@media (max-width: 600px) {
    .hv2-explore-desc { font-size: 0.82rem; }
    .hv2-explore-card { padding: 1rem 1.1rem; }
}

/* ── Asesorias — extra polish at 480px ───────────────────── */
@media (max-width: 480px) {
    .as-hero-inner { padding: 6.5rem 1rem 3.5rem; }
    .as-hero-title { font-size: clamp(3rem, 18vw, 5rem); }
    .as-hero-claim { font-size: 0.88rem; }
    .as-rank-inner  { padding: 0 1rem; }
    .as-rank-filters { gap: 0.3rem; flex-wrap: wrap; }
    .as-rank-filter  { padding: 0.38rem 0.65rem; font-size: 0.7rem; min-height: 36px; }
    .as-rank-name    { font-size: 0.82rem; }
    .as-rank-amt     { font-size: 0.8rem; }
    .as-rank-row     { padding: 0.7rem; gap: 0.65rem; }
    .as-timeline-inner { padding: 0 1rem; }
    .as-tl-title       { font-size: 1.3rem; }
    .as-corp-inner     { padding: 0 1rem; }
    .as-corp-btn       { min-height: 52px; }
    /* Share button in dark nav — keep in viewport */
    .as-page .share-drop { right: 0; left: auto; }
}

/* ── VS picker / Duelo ───────────────────────────────────── */
@media (max-width: 480px) {
    /* 16px prevents iOS from auto-zooming into the search field */
    .vs-search-input { font-size: 1rem; }
    .vs-fight-btn    { min-height: 52px; font-size: 1rem; }
}

/* ── Universal: prevent iOS zoom on any input/select ─────── */
@media (max-width: 768px) {
    input, select, textarea { font-size: max(1rem, 16px); }
}

/* ═══════════════════════════════════════════════════════════
   3-MONTH TREND COMPONENT — .dp-trend-3m
   Shows last 3 months as proportional bars with delta arrows.
   Used inside expandable expense blocks on /diputado.
   ═══════════════════════════════════════════════════════════ */

.dp-trend-3m {
    display: flex;
    align-items: flex-end;
    gap: 0;
    background: #f5f6fa;
    border: 1px solid rgba(0, 10, 50, 0.07);
    border-radius: 10px;
    padding: 0.85rem 1rem 0.75rem;
    margin-bottom: 1.25rem;
    min-height: 120px;
    overflow: hidden;
}
.dp-trend-3m:empty { display: none; }

.dp-trend-month {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
}
.dp-trend-divider {
    width: 1px;
    align-self: stretch;
    background: rgba(0, 10, 50, 0.08);
    flex-shrink: 0;
    margin: 0 0.4rem;
}
.dp-trend-bar-wrap {
    width: 100%;
    height: 52px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.dp-trend-bar {
    width: 52%;
    border-radius: 4px 4px 0 0;
    min-height: 3px;
    transition: height 0.4s cubic-bezier(.4, 0, .2, 1);
}
.dp-trend-val {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #06080e;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.dp-trend-delta {
    font-size: 0.58rem;
    font-weight: 700;
    border-radius: 3px;
    padding: 0.07rem 0.26rem;
    letter-spacing: 0.01em;
}
.dp-trend-delta--up { background: rgba(180, 83, 9, 0.09); color: #92400e; }
.dp-trend-delta--dn { background: rgba(22, 101, 52, 0.08); color: #166534; }
.dp-trend-label {
    font-size: 0.58rem;
    font-weight: 600;
    color: rgba(10, 20, 60, 0.35);
    letter-spacing: 0.04em;
    text-align: center;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════
   DIPUTADO v2 — redesigned profile page (.dp2-*)
   ═══════════════════════════════════════════════════════════ */

/* ── Overview tiles strip ────────────────────────────────── */
.dp2-overview {
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,0.07);
    padding: 1rem 0 1.1rem;
}
/* ── Overview tile groups ─────────────────────────────── */
.dp2-ov-wrap {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}
.dp2-ov-group {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.dp2-ov-group--gastos    { flex: 4; }
.dp2-ov-group--eficiencia { flex: 2; }
.dp2-ov-group-label {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(0,0,0,0.28);
    padding-left: 0.25rem;
}
.dp2-ov-grid {
    display: grid;
    gap: 0.65rem;
}
.dp2-ov-group--gastos .dp2-ov-grid    { grid-template-columns: repeat(4, 1fr); }
.dp2-ov-group--eficiencia .dp2-ov-grid { grid-template-columns: repeat(2, 1fr); }

/* ── Overview tiles ───────────────────────────────────── */
.dp2-ov-tile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    border: 1.5px solid rgba(0,10,50,0.10);
    border-left: 4px solid var(--acc);
    border-bottom: 3px solid rgba(0,0,0,0.08);
    background: #fff;
    box-shadow: 0 2px 0 rgba(0,0,0,0.06), 0 3px 8px rgba(0,0,0,0.05);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.14s, transform 0.12s, background 0.14s, border-color 0.14s;
}
.dp2-ov-tile::after {
    content: "›";
    color: var(--acc, rgba(0,0,0,0.25));
    flex-shrink: 0;
    font-size: 1.1rem;
    font-weight: 700;
    opacity: 0.55;
    transition: opacity 0.14s, transform 0.14s;
}
.dp2-ov-tile:hover {
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), 0 6px 18px rgba(0,0,0,0.10);
    transform: translateY(-2px);
    background: #fafafa;
    border-bottom-color: rgba(0,0,0,0.13);
}
.dp2-ov-tile:hover::after {
    opacity: 1;
    transform: translateX(3px);
}
.dp2-ov-tile:active {
    transform: translateY(1px);
    box-shadow: 0 0px 0 rgba(0,0,0,0.04), 0 1px 4px rgba(0,0,0,0.07);
    border-bottom-width: 1px;
}
.dp2-ov-tile--active {
    background: #fff;
    border-left-width: 5px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    cursor: default;
    transform: none;
}
.dp2-ov-tile--active:hover {
    transform: none;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    background: #fff;
}
.dp2-ov-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}
.dp2-ov-label {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(10,20,60,0.38);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dp2-ov-val {
    display: block;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(1rem, 1.6vw, 1.25rem);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    color: #06080e;
    line-height: 1.1;
}
.dp2-ov-period {
    font-size: 0.58rem;
    color: rgba(10,20,60,0.28);
    letter-spacing: 0.01em;
    margin-top: 0.05rem;
}
.dp2-ov-delta {
    font-size: 0.64rem;
    font-weight: 700;
    border-radius: 5px;
    padding: 0.18rem 0.42rem;
    flex-shrink: 0;
    white-space: nowrap;
}
.dp2-ov-delta--up   { background: rgba(180,83,9,0.09);  color: #92400e; }
.dp2-ov-delta--dn   { background: rgba(22,101,52,0.08); color: #166534; }
.dp2-ov-delta--flat { background: rgba(10,20,60,0.06);  color: rgba(10,20,60,0.38); }

/* ── Expense sections ────────────────────────────────────── */
.dp2-section {
    background: #fff;
    border-radius: 16px;
    border-top: 3px solid var(--acc);
    margin-bottom: 1.25rem;
    overflow: hidden;
    scroll-margin-top: 70px;
}

/* Section header */
.dp2-sec-hd {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem 1rem;
    flex-wrap: wrap;
}
.dp2-sec-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #06080e;
    margin: 0 0 0.18rem;
}
.dp2-sec-desc {
    font-size: 0.77rem;
    color: rgba(10,20,60,0.4);
    margin: 0;
    line-height: 1.4;
}
.dp2-sec-hd-meta {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 0.15rem;
}
.dp2-sec-period {
    font-size: 0.65rem;
    font-weight: 700;
    color: rgba(10,20,60,0.38);
    letter-spacing: 0.05em;
    background: rgba(10,20,60,0.05);
    border-radius: 5px;
    padding: 0.18rem 0.5rem;
}
.dp2-sec-delta {
    font-size: 0.66rem;
    font-weight: 700;
    border-radius: 5px;
    padding: 0.18rem 0.55rem;
    white-space: nowrap;
}
.dp2-sec-delta--up   { background: rgba(180,83,9,0.09);  color: #92400e; }
.dp2-sec-delta--dn   { background: rgba(22,101,52,0.08); color: #166534; }
.dp2-sec-delta--flat { background: rgba(10,20,60,0.05);  color: rgba(10,20,60,0.38); }

/* Stats row */
.dp2-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(0,10,50,0.06);
    border-bottom: 1px solid rgba(0,10,50,0.06);
}
.dp2-stat {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    padding: 0.9rem 1.5rem;
    border-right: 1px solid rgba(0,10,50,0.06);
}
.dp2-stat:last-child { border-right: none; }
.dp2-stat > span {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(10,20,60,0.3);
}
.dp2-stat > strong {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(0.95rem, 1.8vw, 1.25rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    color: #06080e;
    line-height: 1.1;
    margin-top: 0.1rem;
}
.dp2-stat--primary > strong {
    color: var(--acc);
    font-size: clamp(1.1rem, 2.2vw, 1.55rem);
}
.dp2-stat--minor > span { color: rgba(10,20,60,0.22); }
.dp2-stat--minor > strong { font-size: 1rem; color: rgba(10,20,60,0.55); }

/* Chart */
.dp2-chart-wrap {
    position: relative;
    padding: 0.75rem 1.5rem 0.25rem;
    min-height: 160px;
}

/* Tooltip */
.dp2-chart-tt {
    position: absolute;
    background: rgba(6,8,14,0.9);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: #fff;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.74rem;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    white-space: nowrap;
    z-index: 20;
    transition: opacity 0.08s;
    border: 1px solid rgba(255,255,255,0.09);
    box-shadow: 0 4px 16px rgba(0,0,0,0.22);
}
.dp2-chart-tt strong {
    display: block;
    color: rgba(255,255,255,0.45);
    font-size: 0.6rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 0.2rem;
}
.dp2-chart-tt span {
    display: block;
    font-weight: 700;
    font-size: 0.84rem;
    letter-spacing: -0.01em;
}
.dp2-tt-sub {
    color: rgba(255,255,255,0.4) !important;
    font-size: 0.64rem !important;
    font-weight: 400 !important;
    margin-top: 0.12rem;
}

/* Breakdown */
.dp2-breakdown {
    padding: 1rem 1.5rem 1.5rem;
    border-top: 1px solid rgba(0,10,50,0.06);
}
.dp2-bk-hd {
    font-size: 0.68rem;
    font-weight: 700;
    color: rgba(10,20,60,0.38);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 0.85rem;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
}
.dp2-bk-hd span {
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    font-size: 0.68rem;
    color: rgba(10,20,60,0.28);
}
.dp2-bk-list { display: flex; flex-direction: column; gap: 0.6rem; }
.dp2-bk-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) 5.5rem auto;
    gap: 0.4rem 0.85rem;
    align-items: center;
}
.dp2-bk-copy { min-width: 0; }
.dp2-bk-name {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: #06080e;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dp2-bk-sub {
    display: block;
    font-size: 0.67rem;
    color: rgba(10,20,60,0.36);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dp2-bk-track {
    background: rgba(0,10,50,0.07);
    border-radius: 99px;
    height: 5px;
    overflow: hidden;
}
.dp2-bk-fill { border-radius: 99px; height: 100%; min-width: 2px; }
.dp2-bk-amt {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: #06080e;
    text-align: right;
    white-space: nowrap;
}

/* ── Votaciones section ─────────────────────────────────── */
.dp-vote-filter,
.dp-autoria-filter {
    cursor: pointer;
    user-select: none;
    border: 1.5px solid rgba(0,0,0,0.10);
    border-radius: 10px;
    transition: border-color 0.12s, background 0.12s, box-shadow 0.12s, transform 0.1s;
    position: relative;
}
.dp-vote-filter::after,
.dp-autoria-filter::after {
    content: "›";
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9rem;
    color: rgba(0,0,0,0.25);
    transition: color 0.12s;
}
.dp-vote-filter:hover,
.dp-autoria-filter:hover {
    border-color: rgba(0,0,0,0.22);
    background: #f5f6f8;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.dp-vote-filter:active,
.dp-autoria-filter:active { transform: scale(0.98); }
.dp-vote-filter--active,
.dp-autoria-filter--active {
    border-color: #374151;
    border-width: 2px;
    background: #eef0f3;
    box-shadow: 0 2px 8px rgba(55,65,81,0.14);
}
.dp-vote-filter--active::after,
.dp-autoria-filter--active::after { color: #374151; font-weight: 700; }

.dp-vote-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
}
.dp-vote-badge--favor  { color: #16a34a; }
.dp-vote-badge--contra { color: #d97706; }
.dp-vote-badge--abs    { color: #9ca3af; }

.dp-vote-list {
    padding: 0 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.dp-vote-item {
    display: block;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.dp-vote-item:last-child { border-bottom: none; }

/* ── Row (button or anchor) ──────────────────────────────── */
.dp-vi-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: calc(100% + 1rem);
    margin: 0 -0.5rem;
    padding: 0.65rem 0.5rem;
    text-decoration: none;
    background: none;
    border: none;
    cursor: default;
    text-align: left;
    border-radius: 6px;
    transition: background 0.13s;
    color: inherit;
    font: inherit;
}
.dp-vote-item--has-sub .dp-vi-row { cursor: pointer; }
a.dp-vi-row { cursor: pointer; }
.dp-vi-row:hover { background: rgba(0,0,0,0.03); }

/* ── Chevron / arrow ─────────────────────────────────────── */
.dp-vi-chevron {
    margin-left: auto;
    flex-shrink: 0;
    color: #c4c9d4;
    transition: transform 0.22s ease, color 0.13s;
}
.dp-vi-arrow {
    margin-left: auto;
    flex-shrink: 0;
    color: #d1d5db;
    opacity: 0;
    transition: opacity 0.13s;
}
.dp-vi-row:hover .dp-vi-arrow   { opacity: 1; }
.dp-vi-row:hover .dp-vi-chevron { color: #6b7280; }
.dp-vi--open .dp-vi-chevron     { transform: rotate(180deg); color: #6b7280; }

/* ── Animated sub-list ───────────────────────────────────── */
.dp-vi-sub {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.24s ease;
    overflow: hidden;
}
.dp-vi--open .dp-vi-sub  { grid-template-rows: 1fr; }
.dp-vi-sub-inner         { min-height: 0; }
.dp-vi-sub-inner .vt-votes-list {
    border-radius: 8px;
    margin-bottom: 0.5rem;
}

/* ── Deputy vote label inside sub-list ───────────────────── */
.dp-vi-voto         { font-weight: 700; font-size: 0.7rem; letter-spacing: 0.03em; }
.dp-vi-voto--ok     { color: #6ee7b7; }
.dp-vi-voto--no     { color: #fca5a5; }
.dp-vi-voto--abs    { color: #a1a1aa; }

/* Multi-badge on light background (diputado sections) */
.dp-vote-list .vt-multi-badge {
    background: #ede9fe; color: #7c3aed;
}

/* Sub-list on light background (diputado sections) */
.dp-vote-list .vt-votes-list {
    background: #f1f3f6;
    border: 1px solid rgba(0,0,0,0.07);
}
.dp-vote-list .vt-vote-row:hover          { background: rgba(0,0,0,0.03); }
.dp-vote-list .vt-vr-date                 { color: #6b7280; }
.dp-vote-list .vt-vr-desc                 { color: #374151; }
.dp-vote-list .vt-vr-quorum               { background: rgba(0,0,0,0.06); color: #9ca3af; }
.dp-vote-list .vt-vr-arrow                { color: rgba(0,0,0,0.2); }
.dp-vote-meta {
    display: flex;
    gap: 0.45rem;
    flex-shrink: 0;
    align-items: center;
}
.dp-vote-date {
    font-size: 0.68rem;
    font-weight: 600;
    color: #9ca3af;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.dp-vote-boletin {
    font-size: 0.65rem;
    font-weight: 600;
    color: #374151;
    background: #f3f4f6;
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    white-space: nowrap;
}
.dp-vote-name {
    flex: 1;
    min-width: 0;
    font-size: 0.8rem;
    color: #374151;
    line-height: 1.4;
}
.dp-vote-empty {
    font-size: 0.8rem;
    color: #9ca3af;
    padding: 1rem 0;
}

/* ── Responsive — dp2 ────────────────────────────────────── */
@media (max-width: 900px) {
    .dp2-ov-wrap  { flex-direction: column; gap: 0.9rem; }
    .dp2-ov-group--gastos,
    .dp2-ov-group--eficiencia { flex: none; width: 100%; }
    .dp2-ov-group--gastos .dp2-ov-grid    { grid-template-columns: repeat(2, 1fr); }
    .dp2-ov-group--eficiencia .dp2-ov-grid { grid-template-columns: repeat(2, 1fr); }
    .dp2-stats    { grid-template-columns: repeat(2, 1fr); }
    .dp2-stat     { border-bottom: 1px solid rgba(0,10,50,0.06); }
    .dp2-stat:nth-child(even) { border-right: none; }
    .dp2-stat:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 600px) {
    .dp2-ov-group--gastos .dp2-ov-grid,
    .dp2-ov-group--eficiencia .dp2-ov-grid { grid-template-columns: repeat(2, 1fr); gap: 0.45rem; }
    .dp2-ov-tile   { padding: 0.7rem 0.85rem; gap: 0.55rem; }
    .dp2-ov-val    { font-size: 1rem; }
    .dp2-ov-delta  { display: none; }
    .dp2-sec-hd    { padding: 1rem 1.1rem 0.85rem; }
    .dp2-stat      { padding: 0.75rem 1.1rem; }
    .dp2-chart-wrap { padding: 0.5rem 1.1rem 0.25rem; }
    .dp2-breakdown  { padding: 0.85rem 1.1rem 1.25rem; }
    .dp2-bk-row    { grid-template-columns: minmax(0,1fr) auto; }
    .dp2-bk-track  { display: none; }
}
@media (max-width: 420px) {
    .dp2-stats { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   360 × 740 — VERY SMALL PHONES
   Targets the common 360px-wide Android viewport.
   Supplements the 767px and 600px breakpoints above.
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 390px) {

    /* ── Nav brand: reduce letter-spacing so it fits ───────── */
    .hv2-brand { font-size: 0.65rem; letter-spacing: 0.08em; }
    /* Hide "Asesorías" at 360 — 2nd <a> regardless of status span ─ */
    .hv2-nav-end a.hv2-nav-link:nth-of-type(2) { display: none; }

    /* ── Home header: trim vertical padding ────────────────── */
    .hv2-head { padding: 1.5rem 0 1.5rem; gap: 0.9rem; }
    .hv2-desc { font-size: 0.85rem; line-height: 1.5; }
    .hv2-enter-cta { padding: 0.72rem 1.1rem; font-size: 0.72rem; gap: 0.45rem; }

    /* ── Chamber: tighter at 360px ─────────────────────────── */
    .hv2-chamber { min-height: 16rem; }
    .hv2-chamber-head { padding: 0.85rem 0; }
    .hv2-chamber-foot { padding: 0.75rem 0 1.25rem; }
    .hv2-legend { gap: 0.7rem; }
    .hv2-legend-item { font-size: 0.7rem; }
    .hv2-hint { font-size: 0.68rem; }
    .hv2-chamber-controls { gap: 0.45rem 1rem; }
    .hv2-commune-select { font-size: 0.73rem; padding: 0.28rem 1.8rem 0.28rem 0.65rem; }

    /* ── Explore section: reduce vertical padding ──────────── */
    .hv2-explore-band { padding: 1.75rem 0 2.25rem; }
    .hv2-explore-card { padding: 0.9rem 1rem; gap: 0.85rem; }
    .hv2-explore-title { font-size: 0.84rem; }
    .hv2-explore-desc { font-size: 0.78rem; }
    .hv2-explore-icon { width: 2rem; height: 2rem; }

    /* ── Diputado: profile header ──────────────────────────── */
    .dp-header { padding: 0.9rem 0 1.1rem; }
    .dp-back { margin-bottom: 0.85rem; font-size: 0.62rem; }
    .dp-photo,
    .dp-photo-placeholder { width: 3rem; height: 3rem; font-size: 1rem; }
    /* Hide "Ver ficha" link — too wide at 360px */
    .dp-profile-link { display: none; }
    .dp-name { font-size: 1.45rem; }
    .dp-profile-chips { gap: 0.25rem; }
    .dp-chip { font-size: 0.58rem; padding: 0.15rem 0.45rem; }
    .dp-profile-comunas { font-size: 0.72rem; }
    .dp-content { padding: 1.1rem 0 3.5rem; }

    /* ── Diputado v2: overview tiles ───────────────────────── */
    .dp2-overview { padding: 0.75rem 0 0.85rem; }
    .dp2-ov-wrap { gap: 0.65rem; }
    .dp2-ov-group--gastos .dp2-ov-grid,
    .dp2-ov-group--eficiencia .dp2-ov-grid { grid-template-columns: repeat(2, 1fr); gap: 0.35rem; }
    .dp2-ov-tile { padding: 0.5rem 0.6rem; gap: 0.4rem; }
    .dp2-ov-label { font-size: 0.52rem; }
    .dp2-ov-val { font-size: 0.92rem; }
    .dp2-ov-period { font-size: 0.5rem; }

    /* ── Diputado v2: expense sections ─────────────────────── */
    .dp2-section { border-radius: 12px; margin-bottom: 0.9rem; }
    .dp2-sec-hd { padding: 0.8rem 0.9rem 0.7rem; gap: 0.5rem; }
    .dp2-sec-title { font-size: 0.95rem; }
    .dp2-sec-desc { font-size: 0.7rem; }
    .dp2-sec-hd-meta { gap: 0.35rem; }
    .dp2-sec-period { font-size: 0.58rem; padding: 0.14rem 0.4rem; }
    .dp2-sec-delta { font-size: 0.58rem; padding: 0.14rem 0.42rem; }

    /* ── Diputado v2: stats row ─────────────────────────────── */
    .dp2-stat { padding: 0.6rem 0.75rem; }
    .dp2-stat > span { font-size: 0.5rem; letter-spacing: 0.04em; }
    .dp2-stat > strong { font-size: 0.92rem; }
    .dp2-stat--primary > strong { font-size: 1.05rem; }

    /* ── Diputado v2: chart + breakdown ─────────────────────── */
    .dp2-chart-wrap { padding: 0.4rem 0.85rem 0.2rem; min-height: 110px; }
    .dp2-breakdown { padding: 0.7rem 0.85rem 0.9rem; }
    .dp2-bk-name { font-size: 0.75rem; }
    .dp2-bk-sub { font-size: 0.62rem; }
    .dp2-bk-amt { font-size: 0.74rem; }
    .dp2-bk-hd { font-size: 0.62rem; margin-bottom: 0.65rem; }

    /* ── Duelo: nav compact ─────────────────────────────────── */
    .vs-nav { padding: 0 1rem; height: 48px; }
    .vs-brand { font-size: 0.62rem; letter-spacing: 0.08em; }
    .vs-nav-end { gap: 0.9rem; }
    .vs-nav-link { font-size: 0.7rem; }

    /* ── Duelo: slots — force both circles on one row ────────── */
    .vs-slots { flex-wrap: nowrap; gap: 0.5rem; }
    .vs-slot { min-width: 0; flex: 1; }
    .vs-slot-avatar { width: 68px; height: 68px; }
    .vs-slot-qmark { font-size: 1.45rem; }
    .vs-slot-name { font-size: 0.78rem; max-width: 100px; }
    .vs-slot-sub { font-size: 0.62rem; }
    .vs-badge-vs { font-size: 1.3rem; flex-shrink: 0; }

    /* ── Duelo: mode tabs fit on one line ───────────────────── */
    .vs-mode-tabs { gap: 0.25rem; padding: 0.22rem; }
    .vs-mode-tab { padding: 0.35rem 0.65rem; font-size: 0.7rem; }

    /* ── Footer: tighter on small phones ───────────────────── */
    .site-footer { padding: 0.5rem 0.85rem 0.6rem; }
    .site-footer-note { font-size: 0.62rem; }
}

/* ═══════════════════════════════════════════════════════════
   SESIÓN · "Acta Viva"  (sx- prefix)
   ═══════════════════════════════════════════════════════════ */

.sx-page {
    background: #09090f;
    min-height: 100vh;
    color: rgba(255,255,255,0.85);
    font-family: 'Space Grotesk', sans-serif;
}
.sx-inner {
    max-width: 820px;
    margin: 0 auto;
    padding: 0 1.75rem;
}

/* ── Hero ───────────────────────────────────────────────── */
.sx-hero {
    position: relative;
    overflow: hidden;
    padding: 5.5rem 0 3.5rem;
    background: linear-gradient(155deg, #0d0f1c 0%, #07080f 100%);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sx-hero-deco {
    position: absolute;
    right: -0.5rem;
    top: 50%;
    transform: translateY(-52%);
    font-size: clamp(6rem, 22vw, 16rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    color: rgba(255,255,255,0.022);
    user-select: none;
    pointer-events: none;
    line-height: 1;
}
.sx-hero-eyebrow {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.24);
    margin: 0 0 1.1rem;
}
.sx-hero-title {
    font-size: clamp(1.55rem, 4vw, 2.4rem);
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -0.025em;
    color: #fff;
    margin: 0 0 1rem;
    max-width: 620px;
}
.sx-hero-date {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 0 1.5rem;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.38);
}
.sx-hero-date span { display: inline-flex; align-items: center; gap: 0.4rem; }
.sx-hero-summary {
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.55);
    max-width: 580px;
    margin: 0 0 1.75rem;
    padding-left: 1rem;
    border-left: 3px solid rgba(255,255,255,0.12);
}
.sx-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
}
.sx-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.45);
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 100px;
    padding: 0.28rem 0.7rem;
}
.sx-pill--topic { color: rgba(255,255,255,0.35); }

/* Officers strip */
.sx-officers {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 1.25rem;
}
.sx-officer {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}
.sx-officer-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 800;
    color: rgba(255,255,255,0.5);
    flex-shrink: 0;
}
.sx-officer strong {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(255,255,255,0.7);
    line-height: 1.2;
}
.sx-officer span {
    font-size: 0.6rem;
    color: rgba(255,255,255,0.3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ── Timeline wrap ──────────────────────────────────────── */
.sx-timeline-wrap {
    padding: 2rem 0 5rem;
    background: #09090f;
}
.sx-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
}
/* Vertical spine */
.sx-timeline::before {
    content: '';
    position: absolute;
    left: 1.25rem;
    top: 0; bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom,
        transparent 0%,
        rgba(255,255,255,0.07) 6%,
        rgba(255,255,255,0.07) 94%,
        transparent 100%);
}

/* ── Chapter (agenda item) ──────────────────────────────── */
.sx-chapter {
    display: flex;
    gap: 0;
    padding: 2.75rem 0 0.75rem;
    position: relative;
    z-index: 2;
}
.sx-chapter-spine {
    width: 2.5rem;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    padding-top: 0.2rem;
}
.sx-chapter-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #09090f;
    border: 2px solid rgba(255,255,255,0.2);
    flex-shrink: 0;
}
.sx-chapter-dot--end {
    border-color: rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.05);
}
.sx-chapter-body { flex: 1; }
.sx-chapter-num {
    display: inline-block;
    font-size: 0.55rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.2);
    margin-bottom: 0.4rem;
}
.sx-chapter-title {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    margin: 0 0 0.3rem;
    line-height: 1.3;
}
.sx-chapter-desc {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.25);
    margin: 0;
    line-height: 1.5;
}
.sx-chapter-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #f59e0b;
    margin-top: 0.5rem;
}

/* ── Bubble (intervention) ──────────────────────────────── */
.sx-bubble {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.85rem 0;
    position: relative;
    z-index: 2;
    /* Default: left-aligned, avatar on the left of speech */
    padding-left: 2.5rem; /* align with spine offset */
    max-width: 88%;
}
.sx-bubble--right {
    flex-direction: row-reverse;
    margin-left: auto;
    padding-left: 0;
    padding-right: 2.5rem;
    max-width: 88%;
}

/* Avatar circle */
.sx-avatar {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 50%;
    background: var(--rc, #4b5563);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 800;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.1);
    position: relative;
    align-self: flex-start;
    margin-top: 0.65rem;
    box-shadow: 0 0 0 4px rgba(0,0,0,0.5),
                0 0 18px color-mix(in srgb, var(--rc, #4b5563) 30%, transparent);
    flex-shrink: 0;
}
.sx-avatar-star {
    position: absolute;
    bottom: -3px;
    right: -3px;
    font-size: 0.55rem;
    color: #f59e0b;
    background: #1a1b24;
    border-radius: 50%;
    width: 14px;
    height: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(245,158,11,0.3);
}

/* Speech bubble card */
.sx-speech {
    flex: 1;
    background: #131520;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 14px;
    padding: 1rem 1.2rem;
    position: relative;
    min-width: 0;
}
/* Tail: left bubble → tail points left (from avatar) */
.sx-bubble:not(.sx-bubble--right) .sx-speech::before {
    content: '';
    position: absolute;
    top: 1.05rem;
    left: -7px;
    border: 7px solid transparent;
    border-right-color: rgba(255,255,255,0.07);
}
.sx-bubble:not(.sx-bubble--right) .sx-speech::after {
    content: '';
    position: absolute;
    top: 1.1rem;
    left: -5px;
    border: 6px solid transparent;
    border-right-color: #131520;
}
/* Tail: right bubble → tail points right */
.sx-bubble--right .sx-speech::before {
    content: '';
    position: absolute;
    top: 1.05rem;
    right: -7px;
    left: auto;
    border: 7px solid transparent;
    border-left-color: rgba(255,255,255,0.07);
}
.sx-bubble--right .sx-speech::after {
    content: '';
    position: absolute;
    top: 1.1rem;
    right: -5px;
    left: auto;
    border: 6px solid transparent;
    border-left-color: #131520;
}
/* Key intervention style */
.sx-bubble--key .sx-speech {
    border-color: rgba(245,158,11,0.22);
    background: #15141f;
}
.sx-bubble--key .sx-bubble:not(.sx-bubble--right) .sx-speech::after { border-right-color: #15141f; }
.sx-bubble--key .sx-bubble--right .sx-speech::after  { border-left-color:  #15141f; }

/* Speech header */
.sx-speech-header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
}
.sx-speech-name {
    font-size: 0.78rem;
    font-weight: 700;
    color: #fff;
}
.sx-speech-role {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.12rem 0.45rem;
    border-radius: 100px;
}
.sx-speech-party,
.sx-speech-district {
    font-size: 0.56rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.26);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    padding: 0.1rem 0.38rem;
    border-radius: 4px;
}

/* Plain language text */
.sx-speech-plain {
    font-size: 0.9rem;
    line-height: 1.65;
    color: rgba(255,255,255,0.72);
    margin: 0 0 0.7rem;
}

/* Key phrase quote */
.sx-key-phrase {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    font-size: 0.85rem;
    font-style: italic;
    color: #f59e0b;
    border-left: 2px solid rgba(245,158,11,0.4);
    padding: 0.5rem 0.85rem;
    margin: 0 0 0.75rem;
    background: rgba(245,158,11,0.05);
    border-radius: 0 8px 8px 0;
    line-height: 1.55;
}

/* Citizen relevance note */
.sx-citizen-rel {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.68rem;
    color: rgba(255,255,255,0.28);
    line-height: 1.5;
    margin: 0 0 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(255,255,255,0.05);
}
.sx-citizen-rel svg { flex-shrink: 0; margin-top: 1px; }

/* Expand button */
.sx-expand-wrap { padding-top: 0.55rem; border-top: 1px solid rgba(255,255,255,0.05); }
.sx-expand-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.28);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: color 0.14s;
}
.sx-expand-btn:hover { color: rgba(255,255,255,0.62); }
.sx-expand-icon { transition: transform 0.22s ease; }
.sx-speech-full {
    font-size: 0.76rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.36);
    font-style: italic;
    margin: 0.65rem 0 0;
}
.sx-speech-full[hidden] { display: none; }

/* ── Vote card ──────────────────────────────────────────── */
.sx-vote-wrap {
    padding: 1rem 0 0.5rem;
    position: relative;
    z-index: 2;
    padding-left: 2.5rem;
}
.sx-vote-card {
    background: #0f1119;
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: 16px;
    padding: 1.75rem 1.75rem 1.5rem;
    max-width: 520px;
}
.sx-vote-eyebrow {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.25);
    margin: 0 0 0.3rem;
}
.sx-vote-title {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.4rem;
    line-height: 1.3;
}
.sx-vote-desc {
    font-size: 0.74rem;
    color: rgba(255,255,255,0.35);
    margin: 0 0 1.5rem;
    line-height: 1.5;
}
.sx-candidates { display: flex; flex-direction: column; gap: 1.1rem; }
.sx-candidate {}
.sx-cand-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.4rem;
}
.sx-cand-name {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgba(255,255,255,0.6);
}
.sx-candidate--winner .sx-cand-name { color: #fff; font-weight: 700; }
.sx-winner-tag {
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #10b981;
    background: rgba(16,185,129,0.1);
    border: 1px solid rgba(16,185,129,0.25);
    padding: 0.1rem 0.4rem;
    border-radius: 100px;
}
.sx-cand-track {
    height: 5px;
    background: rgba(255,255,255,0.06);
    border-radius: 100px;
    overflow: hidden;
    margin-bottom: 0.35rem;
}
.sx-cand-fill {
    height: 100%;
    border-radius: 100px;
    width: 0%;
    transition: width 1.1s cubic-bezier(0.16, 1, 0.3, 1);
    background: rgba(255,255,255,0.18);
}
.sx-candidate--winner .sx-cand-fill  { background: #10b981; }
.sx-candidate--winner .sx-cand-track { background: rgba(16,185,129,0.1); }
.sx-cand-bottom {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.sx-cand-votes {
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(255,255,255,0.35);
}
.sx-candidate--winner .sx-cand-votes { color: #10b981; }
.sx-cand-pct {
    font-size: 0.65rem;
    color: rgba(255,255,255,0.22);
}
.sx-vote-total {
    font-size: 0.65rem;
    color: rgba(255,255,255,0.2);
    margin: 1.25rem 0 0;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(255,255,255,0.06);
    text-align: right;
}

/* ── Close marker ───────────────────────────────────────── */
.sx-close-marker {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 2.5rem 0 1rem;
    position: relative;
    z-index: 2;
}
.sx-close-body { padding-left: 0.85rem; }
.sx-close-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.2);
    margin: 0 0 0.15rem;
}
.sx-close-time {
    font-size: 0.72rem;
    color: rgba(255,255,255,0.14);
    margin: 0;
}

/* ── Scroll-in animation ────────────────────────────────── */
.sx-animate {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.48s ease, transform 0.48s ease;
}
.sx-animate.sx-visible {
    opacity: 1;
    transform: none;
}

/* ── Back link ───────────────────────────────────────────── */
.sx-back {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.38);
    text-decoration: none;
    margin-bottom: 1.2rem;
    transition: color 0.18s;
}
.sx-back:hover { color: rgba(255,255,255,0.7); }
.sx-back svg { opacity: 0.6; }

/* ── Topic pills ─────────────────────────────────────────── */
.sx-topic-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.65rem;
}
.sx-topic-pill {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.22rem 0.55rem;
    border-radius: 99px;
    background: rgba(255,255,255,0.07);
    color: rgba(255,255,255,0.5);
    border: 1px solid rgba(255,255,255,0.1);
}

/* ── Bills section ───────────────────────────────────────── */
.sx-bills-wrap {
    padding-left: 3.5rem;
    margin: 0.5rem 0 2rem;
}
.sx-bills-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}
.sx-bill-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 1.1rem 1.2rem;
    transition: background 0.18s, border-color 0.18s;
}
.sx-bill-card:hover {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.14);
}
.sx-bill-top {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
    flex-wrap: wrap;
}
.sx-bill-num {
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
    background: rgba(255,255,255,0.06);
    padding: 0.18rem 0.5rem;
    border-radius: 4px;
}
.sx-bill-stage {
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #10b981;
    background: rgba(16,185,129,0.12);
    padding: 0.18rem 0.5rem;
    border-radius: 4px;
}
.sx-bill-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: rgba(255,255,255,0.88);
    margin: 0 0 0.45rem;
    line-height: 1.35;
}
.sx-bill-summary {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.5);
    margin: 0;
    line-height: 1.55;
}

/* ── Oversight section ───────────────────────────────────── */
.sx-oversight-wrap {
    padding-left: 3.5rem;
    margin: 0.5rem 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.sx-oversight-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    transition: background 0.18s;
}
.sx-oversight-row:hover { background: rgba(255,255,255,0.06); }
.sx-oversight-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgba(255,255,255,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.4);
    margin-top: 1px;
}
.sx-oversight-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.sx-oversight-author {
    font-size: 0.75rem;
    font-weight: 700;
    color: rgba(255,255,255,0.75);
}
.sx-oversight-target {
    font-size: 0.72rem;
    color: rgba(255,255,255,0.38);
}
.sx-oversight-topic {
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255,255,255,0.85);
    margin-top: 0.1rem;
}
.sx-oversight-summary {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.48);
    margin: 0.1rem 0 0;
    line-height: 1.5;
}

/* ── Mobile ─────────────────────────────────────────────── */
@media (max-width: 640px) {
    .sx-hero { padding: 4rem 0 2.5rem; }
    .sx-hero-title { font-size: 1.45rem; }
    .sx-inner { padding: 0 1rem; }

    .sx-bubble { max-width: 100%; padding-left: 2.5rem; }
    .sx-bubble--right { max-width: 100%; padding-right: 0; padding-left: 2.5rem;
        flex-direction: row; margin-left: 0; }
    /* On mobile all tails point left */
    .sx-bubble--right .sx-speech::before {
        right: auto; left: -7px;
        border-left-color: transparent;
        border-right-color: rgba(255,255,255,0.07);
    }
    .sx-bubble--right .sx-speech::after {
        right: auto; left: -5px;
        border-left-color: transparent;
        border-right-color: #131520;
    }
    .sx-vote-wrap { padding-left: 2.5rem; }
    .sx-vote-card { padding: 1.25rem; }
    .sx-hero-deco { font-size: 5rem; }
    .sx-bills-wrap { padding-left: 1.5rem; }
    .sx-bills-grid { grid-template-columns: 1fr; }
    .sx-oversight-wrap { padding-left: 1.5rem; }
}

/* ════════════════════════════════════════════════════════════
   SESSIONS LIST PAGE  (sxl- prefix)
   ════════════════════════════════════════════════════════════ */

/* ── Page shell ──────────────────────────────────────────── */
.sxl-header {
    background: linear-gradient(160deg, #0d1424 0%, #111827 100%);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    padding: 5rem 0 3rem;
    position: relative;
    overflow: hidden;
}
.sxl-header::before {
    content: 'ACTAS';
    position: absolute;
    right: -1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 8rem;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: rgba(255,255,255,0.025);
    pointer-events: none;
    user-select: none;
    line-height: 1;
}

.sxl-title {
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    font-weight: 800;
    color: #fff;
    margin: 0.35rem 0 0.6rem;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.sxl-desc {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.5);
    margin: 0 0 1.5rem;
    max-width: 520px;
    line-height: 1.6;
}
.sxl-stats {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.sxl-stat-pill {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 0.28rem 0.7rem;
    border-radius: 99px;
}

/* ── List ────────────────────────────────────────────────── */
.sxl-list-wrap {
    padding: 2.5rem 0 4rem;
}
.sxl-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.sxl-empty {
    color: rgba(255,255,255,0.3);
    font-size: 0.9rem;
    text-align: center;
    padding: 3rem 0;
}

/* ── Card ────────────────────────────────────────────────── */
.sxl-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: background 0.18s, border-color 0.18s, transform 0.18s, box-shadow 0.18s;
}
.sxl-card:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.16);
    transform: translateY(-1px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.3);
}

/* ── Date column ─────────────────────────────────────────── */
.sxl-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.05rem;
    min-width: 64px;
    padding: 1rem 0.75rem;
    background: rgba(255,255,255,0.04);
    border-right: 1px solid rgba(255,255,255,0.07);
    flex-shrink: 0;
}
.sxl-day {
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}
.sxl-month {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.4);
    text-transform: uppercase;
}
.sxl-year {
    font-size: 0.6rem;
    color: rgba(255,255,255,0.25);
    letter-spacing: 0.05em;
}

/* ── Card body ───────────────────────────────────────────── */
.sxl-body {
    flex: 1;
    min-width: 0;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.sxl-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.sxl-badges {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.sxl-badge {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.18rem 0.5rem;
    border-radius: 4px;
    color: rgba(255,255,255,0.6);
    background: rgba(255,255,255,0.08);
}
.sxl-badge--ordinaria { color: #60a5fa; background: rgba(96,165,250,0.12); }
.sxl-badge--especial  { color: #f59e0b; background: rgba(245,158,11,0.12); }
.sxl-badge--vote {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #a78bfa;
    background: rgba(167,139,250,0.12);
}
.sxl-badge--bill { color: #34d399; background: rgba(52,211,153,0.12); }
.sxl-arrow {
    font-size: 1rem;
    color: rgba(255,255,255,0.2);
    flex-shrink: 0;
    transition: color 0.18s, transform 0.18s;
}
.sxl-card:hover .sxl-arrow {
    color: rgba(255,255,255,0.55);
    transform: translateX(3px);
}

.sxl-session-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: rgba(255,255,255,0.88);
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sxl-summary {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.45);
    margin: 0;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Meta row ────────────────────────────────────────────── */
.sxl-meta {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
    margin-top: 0.1rem;
}
.sxl-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    color: rgba(255,255,255,0.3);
}
.sxl-meta svg { flex-shrink: 0; opacity: 0.6; }

/* ── Commission list ─────────────────────────────────────── */
.sxl-commissions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0.3rem 0 0.1rem;
}
.sxl-commission {
    font-size: 0.7rem;
    font-weight: 600;
    color: rgba(255,255,255,0.55);
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.09);
    padding: 0.18rem 0.5rem;
    border-radius: 4px;
    white-space: nowrap;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sxl-commission--more {
    color: rgba(255,255,255,0.3);
    background: transparent;
    border-color: rgba(255,255,255,0.07);
}

/* ── Topic chips ─────────────────────────────────────────── */
.sxl-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.3rem;
}
.sxl-topic-chip {
    font-size: 0.68rem;
    color: rgba(255,255,255,0.4);
    background: transparent;
    border: 1px solid rgba(255,255,255,0.1);
    padding: 0.18rem 0.5rem;
    border-radius: 99px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}
.sxl-topic-chip--more {
    color: rgba(255,255,255,0.25);
    border-color: rgba(255,255,255,0.07);
}

/* ── Badge: informe ──────────────────────────────────────── */
.sxl-badge--informe {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #818cf8;
    background: rgba(129,140,248,0.12);
}

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 640px) {
    .sxl-header { padding: 3.5rem 0 2rem; }
    .sxl-header::before { font-size: 5rem; }
    .sxl-list-wrap { padding: 1.5rem 0 3rem; }
    .sxl-date { min-width: 54px; padding: 0.75rem 0.5rem; }
    .sxl-day { font-size: 1.2rem; }
    .sxl-body { padding: 0.85rem; }
    .sxl-commission { max-width: 160px; }
    .sxl-topic-chip { max-width: 140px; }
}

/* ════════════════════════════════════════════════════════════
   SESSION DETAIL — INFORME ITEMS  (sxi- prefix)
   ════════════════════════════════════════════════════════════ */

/* ── Item meta row (bulletin, stage) ─────────────────────── */
.sxi-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.6rem;
}
.sxi-badge {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
}
.sxi-badge--bulletin { color: #818cf8; background: rgba(129,140,248,0.12); }
.sxi-badge--stage    { color: rgba(255,255,255,0.45); background: rgba(255,255,255,0.06); text-transform: none; letter-spacing: 0; font-weight: 500; }
.sxi-badge--urgent   { color: #f59e0b; background: rgba(245,158,11,0.12); }

.sxi-reporter {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.4);
    margin: 0.55rem 0 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.sxi-reporter strong { color: rgba(255,255,255,0.65); }

/* ── Civic summary block ─────────────────────────────────── */
.sxi-summary-wrap {
    padding-left: 3.5rem;
    margin: -0.25rem 0 1.5rem;
}
.sxi-summary {
    font-size: 0.88rem;
    color: rgba(255,255,255,0.55);
    line-height: 1.65;
    margin: 0 0 0.5rem;
    max-width: 640px;
}

/* ── Stance badge on speech bubble ──────────────────────── */
.sxi-stance {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    flex-shrink: 0;
}

/* ── Vote number display ─────────────────────────────────── */
.sxi-vote-numbers {
    display: flex;
    gap: 0.75rem;
    margin: 1.1rem 0 0.8rem;
    flex-wrap: wrap;
}
.sxi-vnum {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 64px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 0.7rem 1rem;
}
.sxi-vnum-n {
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1;
}
.sxi-vnum-l {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin-top: 0.3rem;
    opacity: 0.55;
}
.sxi-vnum--favor .sxi-vnum-n { color: #10b981; }
.sxi-vnum--contra .sxi-vnum-n { color: #ef4444; }
.sxi-vnum--abs .sxi-vnum-n { color: #94a3b8; }

/* ── Vote bar ────────────────────────────────────────────── */
.sxi-vote-bar-wrap {
    display: flex;
    height: 6px;
    border-radius: 99px;
    overflow: hidden;
    gap: 2px;
    margin: 0 0 0.75rem;
}
.sxi-vbar {
    height: 100%;
    border-radius: 99px;
    transition: width 0.8s cubic-bezier(.4,0,.2,1);
}
.sxi-vbar--favor { background: #10b981; }
.sxi-vbar--contra { background: #ef4444; }
.sxi-vbar--abs { background: #94a3b8; }

.sxi-vote-winner {
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255,255,255,0.6);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

/* ── Alignment block ─────────────────────────────────────── */
.sxi-align-wrap {
    padding-left: 3.5rem;
    margin: 0.25rem 0 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.sxi-align-col {
    flex: 1;
    min-width: 160px;
}
.sxi-align-header {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
.sxi-align-col--favor .sxi-align-header { color: #10b981; }
.sxi-align-col--contra .sxi-align-header { color: #ef4444; }
.sxi-align-col--abs .sxi-align-header { color: #94a3b8; }

.sxi-align-names {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.sxi-name-chip {
    font-size: 0.7rem;
    font-weight: 500;
    padding: 0.22rem 0.55rem;
    border-radius: 99px;
    border: 1px solid;
    white-space: nowrap;
}
.sxi-name-chip--favor  { color: #10b981; border-color: rgba(16,185,129,0.25); background: rgba(16,185,129,0.07); }
.sxi-name-chip--contra { color: #ef4444; border-color: rgba(239,68,68,0.25);  background: rgba(239,68,68,0.07); }
.sxi-name-chip--abs    { color: #94a3b8; border-color: rgba(148,163,184,0.2); background: rgba(148,163,184,0.06); }

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 640px) {
    .sxi-summary-wrap { padding-left: 1.5rem; }
    .sxi-align-wrap   { padding-left: 1.5rem; }
    .sxi-vote-numbers { gap: 0.5rem; }
    .sxi-vnum         { min-width: 52px; padding: 0.55rem 0.7rem; }
    .sxi-vnum-n       { font-size: 1.3rem; }
    .sxi-align-col    { min-width: 130px; }
}


/* ════════════════════════════════════════════════════════════
   VOTACIONES PAGE  (vt- prefix)
   ════════════════════════════════════════════════════════════ */

/* Header */
/* =================================================================
   /sesiones + /votacion/{id}  --  Home-card design language
================================================================= */

/* -- Page shell -- warm off-white, same as home ----------------*/
.sx-page--sesiones {
    background: var(--bg, #f7f7f5);
    color: var(--text, #1c1917);
}

/* Shared inner container */
.vt-inner { max-width: 960px; margin: 0 auto; padding: 0 clamp(1rem, 3vw, 2rem); }

/* -- LIST PAGE Header ------------------------------------------ */
.vt-header {
    background: #ffffff;
    border-bottom: 1px solid rgba(0,0,0,0.07);
    padding: 5rem 0 3rem;
}
.vt-eyebrow {
    font-size: 0.62rem; font-weight: 700; letter-spacing: 0.16em;
    text-transform: uppercase; color: rgba(0,0,0,0.28);
    margin: 0 0 1rem;
}
.vt-title {
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    font-weight: 700; color: #06080e; letter-spacing: -0.05em;
    line-height: 0.93; margin: 0 0 1rem; text-transform: uppercase;
}
.vt-desc {
    font-size: 0.92rem; color: #78716c;
    margin: 0 0 2.5rem; max-width: 420px; line-height: 1.6;
}
.vt-stats-row { display: flex; align-items: stretch; gap: 0; flex-wrap: wrap; }
.vt-stat-sep  { width: 0.5rem; flex-shrink: 0; }
.vt-stat-block {
    display: flex; flex-direction: column;
    padding: 0.9rem 1.25rem;
    border: 1px solid rgba(0,0,0,0.09); border-radius: 8px;
    background: #fafaf9;
}
.vt-stat-n   { font-size: 2rem; font-weight: 800; color: #06080e; line-height: 1; font-variant-numeric: tabular-nums; }
.vt-stat-n--ok { color: #0f766e; }
.vt-stat-n--no { color: #b91c1c; }
.vt-stat-l   { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(0,0,0,0.32); margin-top: 0.2rem; }

/* -- Filters --------------------------------------------------- */
.vt-filters-wrap {
    background: rgba(247,247,245,0.96);
    border-bottom: 1px solid rgba(0,0,0,0.07);
    padding: 0.7rem 0;
    position: sticky; top: 54px; z-index: 10;
    backdrop-filter: blur(10px);
}
.vt-filters-inner { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.vt-filters       { display: flex; align-items: center; gap: 0.3rem; flex-wrap: wrap; }
.vt-filter {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em;
    padding: 0.3rem 0.75rem; border-radius: 999px;
    background: rgba(0,0,0,0.04); border: 1px solid rgba(0,0,0,0.08);
    color: rgba(0,0,0,0.46); cursor: pointer; transition: all 0.14s;
}
.vt-filter:hover  { background: rgba(0,0,0,0.07); color: rgba(0,0,0,0.72); }
.vt-filter--active { background: #06080e; color: #fff; border-color: #06080e; }
.vt-filter--ok.vt-filter--active { background: #0f766e; border-color: #0f766e; color: #fff; }
.vt-filter--no.vt-filter--active { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.vt-filter-sep   { width: 1px; height: 1.1rem; background: rgba(0,0,0,0.1); flex-shrink: 0; margin: 0 0.15rem; }
.vt-count-label  { font-size: 0.65rem; color: rgba(0,0,0,0.3); letter-spacing: 0.05em; white-space: nowrap; }

/* -- Vote cards ------------------------------------------------ */
.vt-list-wrap { padding: 2rem 0 5rem; }
.vt-list { display: flex; flex-direction: column; gap: 0.75rem; }
.vt-empty-msg { color: #78716c; text-align: center; padding: 4rem 0; font-size: 0.9rem; }

.vt-card {
    display: flex; align-items: center; gap: 0;
    background: #26292b;
    border-radius: 10px; overflow: hidden;
    text-decoration: none; color: inherit;
    transition: transform 0.14s ease, box-shadow 0.14s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.vt-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}
.vt-card:hover .vt-card-arrow { opacity: 1; transform: translateX(2px); }

.vt-card-date {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-width: 62px; padding: 1.2rem 0.75rem; align-self: stretch;
    border-right: 1px solid rgba(255,255,255,0.07); flex-shrink: 0;
}
.vt-cd-day { font-size: 1.4rem; font-weight: 800; color: #f7f7f5; line-height: 1; font-variant-numeric: tabular-nums; }
.vt-cd-mon { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.1em; color: rgba(255,255,255,0.35); text-transform: uppercase; }

.vt-card-body { flex: 1; min-width: 0; padding: 1rem 1.1rem; }
.vt-card-kicker {
    display: flex; align-items: center; gap: 0.45rem;
    flex-wrap: wrap; margin-bottom: 0.4rem;
}
.vt-kicker-result {
    font-size: 0.6rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase;
    padding: 0.18rem 0.5rem; border-radius: 3px;
}
.vt-kicker--ok  { color: #6ee7b7; background: rgba(16,183,129,0.14); }
.vt-kicker--no  { color: #fca5a5; background: rgba(239,68,68,0.14); }
.vt-kicker-sep  { color: rgba(255,255,255,0.2); font-size: 0.65rem; }
.vt-kicker-tipo { font-size: 0.6rem; font-weight: 600; color: rgba(255,255,255,0.38); letter-spacing: 0.04em; }
.vt-kicker-bol  { font-size: 0.6rem; font-weight: 600; color: #a5b4fc; letter-spacing: 0.04em; }
.vt-card-title {
    font-size: 0.88rem; font-weight: 600; color: #f7f7f5;
    margin: 0; line-height: 1.42;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

.vt-card-stats {
    display: flex; flex-direction: column; gap: 0.25rem;
    padding: 1rem 1rem 1rem 0; min-width: 115px; flex-shrink: 0;
}
.vt-cs-row   { display: flex; align-items: baseline; justify-content: space-between; gap: 0.4rem; }
.vt-cs-label { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.35); }
.vt-cs-val   { font-size: 0.88rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.vt-cs-val--ok { color: #6ee7b7; }
.vt-cs-val--no { color: #fca5a5; }
.vt-cs-bar {
    height: 3px; border-radius: 99px; overflow: hidden;
    background: rgba(255,255,255,0.08); display: flex; margin-top: 0.2rem;
}
.vt-cs-bar-si { height: 100%; background: #6ee7b7; }
.vt-cs-bar-no { height: 100%; background: #fca5a5; }
.vt-card-arrow {
    color: rgba(255,255,255,0.2); flex-shrink: 0; margin-right: 0.85rem;
    transition: opacity 0.14s, transform 0.14s; opacity: 0;
}

/* Multi-vote badge inside kicker */
.vt-multi-badge {
    font-size: 0.58rem; font-weight: 700; letter-spacing: 0.07em;
    padding: 0.15rem 0.45rem; border-radius: 3px;
    background: rgba(165,180,252,0.14); color: #a5b4fc;
}

/* Project wrapper — holds main card + optional nested votes */
.vt-project { display: flex; flex-direction: column; }

/* Nested vote list */
.vt-votes-list {
    background: #1e2022;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,0.06);
}

.vt-vote-row {
    display: flex; align-items: center; gap: 0.65rem;
    padding: 0.55rem 1rem 0.55rem 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.045);
    text-decoration: none;
    transition: background 0.12s;
}
.vt-vote-row:last-child { border-bottom: none; }
.vt-vote-row:hover { background: rgba(255,255,255,0.04); }
.vt-vote-row:hover .vt-vr-arrow { opacity: 1; }

.vt-vr-dot  { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.vt-vr-dot--ok { background: #6ee7b7; }
.vt-vr-dot--no { background: #fca5a5; }

.vt-vr-date {
    font-size: 0.68rem; font-weight: 700; font-variant-numeric: tabular-nums;
    color: rgba(255,255,255,0.32); white-space: nowrap; flex-shrink: 0; min-width: 44px;
}
.vt-vr-desc {
    flex: 1; min-width: 0;
    font-size: 0.75rem; color: rgba(255,255,255,0.55);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vt-vr-meta {
    display: flex; align-items: center; gap: 0.5rem;
    flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end;
}
.vt-vr-quorum {
    font-size: 0.6rem; color: rgba(255,255,255,0.3);
    padding: 0.12rem 0.4rem; background: rgba(255,255,255,0.05);
    border-radius: 3px; white-space: nowrap;
}
.vt-vr-result {
    font-size: 0.6rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase;
    padding: 0.12rem 0.4rem; border-radius: 3px;
}
.vt-vr-result--ok { color: #6ee7b7; background: rgba(16,183,129,0.12); }
.vt-vr-result--no { color: #fca5a5; background: rgba(239,68,68,0.12); }
.vt-vr-counts {
    font-size: 0.65rem; font-weight: 600; font-variant-numeric: tabular-nums;
    color: rgba(255,255,255,0.28); white-space: nowrap;
}
.vt-vr-arrow {
    color: rgba(255,255,255,0.2); flex-shrink: 0;
    opacity: 0; transition: opacity 0.12s;
}

/* When the main card is above a vote list, remove its bottom radius */
.vt-project:has(.vt-votes-list) .vt-card {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* -- DETAIL PAGE (vdt-) --------------------------------------- */

.vdt-breadcrumb {
    padding: 0.7rem 0;
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}
.vdt-breadcrumb .vt-inner { display: flex; align-items: center; gap: 0.5rem; }
.vdt-back {
    display: inline-flex; align-items: center; gap: 0.3rem;
    font-size: 0.7rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
    color: rgba(0,0,0,0.38); text-decoration: none; transition: color 0.14s;
}
.vdt-back:hover { color: rgba(0,0,0,0.75); }
.vdt-breadcrumb-sep     { color: rgba(0,0,0,0.22); font-size: 0.75rem; }
.vdt-breadcrumb-current { font-size: 0.7rem; font-weight: 600; color: rgba(0,0,0,0.45); }

.vdt-wrap { padding: 1.5rem 0 0; }

.vdt-main-card {
    background: #26292b;
    border-radius: 12px; overflow: hidden;
    display: grid;
    grid-template-columns: 1fr minmax(220px, 300px);
    box-shadow: 0 4px 24px rgba(0,0,0,0.16);
}

.vdt-col-left { padding: 2.5rem; display: flex; flex-direction: column; }

.vdt-kicker-box {
    display: inline-flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
    background: rgba(17,20,22,0.92);
    border-radius: 4px; padding: 0.65rem 1rem;
    margin-bottom: 1.4rem; align-self: flex-start;
}
.vdt-kicker-result {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
}
.vdt-kr--ok  { color: #6ee7b7; }
.vdt-kr--no  { color: #fca5a5; }
.vdt-kicker-bol { font-size: 0.7rem; font-weight: 600; color: rgba(255,255,255,0.72); }

.vdt-overline {
    font-size: 0.66rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(255,255,255,0.42); margin: 0 0 0.55rem;
}
.vdt-title {
    font-size: clamp(1.3rem, 3vw, 2rem);
    font-weight: 800; color: #f7f7f5; letter-spacing: -0.03em;
    line-height: 1.1; margin: 0 0 1rem; text-transform: uppercase;
}
.vdt-meta { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-bottom: 1.5rem; }
.vdt-meta-tag {
    font-size: 0.58rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
    padding: 0.15rem 0.45rem; border-radius: 3px;
    background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.4);
    border: 1px solid rgba(255,255,255,0.08);
}
.vdt-authors { margin-top: auto; }
.vdt-authors-label {
    display: block; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.12em;
    text-transform: uppercase; color: rgba(255,255,255,0.42); margin-bottom: 0.65rem;
}
.vdt-authors-list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.vdt-author-chip {
    display: inline-flex; align-items: center; gap: 0.4rem;
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px; padding: 0.35rem 0.8rem 0.35rem 0.42rem;
    text-decoration: none; transition: background 0.14s;
}
.vdt-author-chip:hover { background: rgba(255,255,255,0.1); }
.vdt-author-more { padding: 0.35rem 1rem; color: rgba(255,255,255,0.48); font-size: 0.7rem; font-weight: 600; }
.vdt-author-name { font-size: 0.7rem; font-weight: 500; color: rgba(255,255,255,0.82); }
.vdt-av {
    width: 1.4rem; height: 1.4rem; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: rgba(255,255,255,0.12); display: inline-flex; align-items: center; justify-content: center;
}
.vdt-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vdt-av-ini { font-size: 0.58em; font-weight: 700; color: rgba(255,255,255,0.65); }

.vdt-col-right {
    padding: 2.2rem 2rem;
    background: rgba(0,0,0,0.22);
    border-left: 1px solid rgba(255,255,255,0.06);
    display: flex; flex-direction: column; gap: 0.6rem;
}
.vdt-stat-grid { display: flex; flex-direction: column; gap: 0.5rem; }
.vdt-stat-tile {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px; padding: 1rem 1.1rem;
}
.vdt-st-label {
    display: block; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.12em;
    text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 0.28rem;
}
.vdt-st-val {
    display: block; font-size: 1.55rem; font-weight: 800; color: #fff;
    letter-spacing: -0.04em; line-height: 1; font-variant-numeric: tabular-nums;
}
.vdt-st-val--md { font-size: 1rem; letter-spacing: -0.02em; }
.vdt-st-raw { font-size: 0.62rem; color: rgba(255,255,255,0.28); margin-top: 0.12rem; display: block; }
.vdt-st--ok .vdt-st-val { color: #6ee7b7; }
.vdt-st--no .vdt-st-val { color: #fca5a5; }
.vdt-st--abs .vdt-st-val { color: #94a3b8; }
.vdt-bar-wrap { }
.vdt-bar {
    height: 5px; border-radius: 99px; overflow: hidden;
    background: rgba(255,255,255,0.08); display: flex;
}
.vdt-bar-ok  { height: 100%; background: linear-gradient(90deg, rgba(255,255,255,0.35), #86efac); }
.vdt-bar-no  { height: 100%; background: rgba(252,165,165,0.55); }
.vdt-bar-abs { height: 100%; background: rgba(148,163,184,0.4); }

/* -- Breadcrumb share button ---------------------------------- */
.vdt-breadcrumb-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.vdt-breadcrumb-left  { display: flex; align-items: center; gap: 0.5rem; }
.vdt-share-wrap       { position: relative; }
.share-btn--outline {
    /* same CTA style as base .share-btn — inherits all properties */
}
.share-btn--outline:hover { background: #06080e; color: #ffffff; }
.share-drop--right { right: 0; left: auto; }

/* -- Bancada breakdown ---------------------------------------- */
.vdt-bancada-wrap   { padding: 2rem 0 0; }
.vdt-bancada-header {
    display: flex; align-items: center; gap: 1rem;
    margin-bottom: 1rem;
}
.vdt-bancada-title  { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #94a3b8; }
.vdt-bancada-clear  {
    display: inline-flex; align-items: center; gap: 0.35rem;
    font-size: 0.72rem; font-weight: 600; color: #a5b4fc;
    background: rgba(165,180,252,0.12); border: none; border-radius: 5px;
    padding: 0.25rem 0.6rem; cursor: pointer; transition: background 0.15s;
}
.vdt-bancada-clear:hover { background: rgba(165,180,252,0.22); }

.vdt-bancada-grid { display: flex; flex-direction: column; gap: 0; background: #26292b; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }

.vdt-bancada-row {
    display: grid;
    grid-template-columns: 180px 1fr auto auto;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 1.2rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    cursor: pointer;
    transition: background 0.15s;
    user-select: none;
}
.vdt-bancada-row:last-child { border-bottom: none; }
.vdt-bancada-row:hover { background: rgba(255,255,255,0.04); }
.vdt-bancada-row--active { background: rgba(165,180,252,0.1); outline: 1px solid rgba(165,180,252,0.25); }
.vdt-bancada-row--active .vdt-bancada-name { color: #c7d2fe; }

.vdt-bancada-filter-icon { color: #475569; flex-shrink: 0; transition: color 0.15s; }
.vdt-bancada-row:hover .vdt-bancada-filter-icon { color: #94a3b8; }
.vdt-bancada-row--active .vdt-bancada-filter-icon { color: #a5b4fc; }

.vdt-bancada-name { font-size: 0.82rem; color: #e2e8f0; font-weight: 500; }

.vdt-bancada-bars-wrap { flex: 1; }
.vdt-bancada-bar-track {
    display: flex; height: 6px; border-radius: 3px;
    overflow: hidden; background: rgba(255,255,255,0.07);
    gap: 1px;
}
.vdt-bancada-bar-favor  { height: 100%; background: rgba(110,231,183,0.7); border-radius: 3px 0 0 3px; transition: width 0.4s ease; }
.vdt-bancada-bar-abs    { height: 100%; background: rgba(148,163,184,0.5); transition: width 0.4s ease; }
.vdt-bancada-bar-contra { height: 100%; background: rgba(252,165,165,0.6); border-radius: 0 3px 3px 0; transition: width 0.4s ease; }

.vdt-bancada-vals { display: flex; align-items: center; gap: 0.4rem; font-size: 0.73rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vdt-bancada-val--ok  { color: #6ee7b7; }
.vdt-bancada-val--no  { color: #fca5a5; }
.vdt-bancada-sep      { color: #475569; }

/* -- Deputy filter label ------------------------------------- */
.vdt-dep-active-filter {
    display: flex; align-items: center; gap: 0.5rem;
    margin-bottom: 1rem; padding: 0.55rem 0.9rem;
    background: rgba(165,180,252,0.1); border-radius: 7px;
    border: 1px solid rgba(165,180,252,0.2);
}
.vdt-dep-filter-text { font-size: 0.8rem; color: #94a3b8; }
.vdt-dep-filter-text strong { color: #c7d2fe; }

@media (max-width: 600px) {
    .vdt-bancada-row { grid-template-columns: 1fr; gap: 0.4rem; }
    .vdt-bancada-vals { flex-wrap: wrap; }
    .vdt-bancada-filter-icon { display: none; }
}

/* -- Sibling votaciones --------------------------------------- */
.vdt-siblings-wrap { padding: 0 0 0.5rem; }
.vdt-siblings-header {
    display: flex; align-items: baseline; gap: 0.75rem;
    margin-bottom: 0.75rem;
}
.vdt-siblings-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #94a3b8; }
.vdt-siblings-count { font-size: 0.75rem; color: #64748b; }
.vdt-siblings-list  { background: #26292b; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }

.vdt-sib-row {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    text-decoration: none; color: inherit;
    transition: background 0.15s;
}
.vdt-sib-row:last-child { border-bottom: none; }
a.vdt-sib-row:hover { background: rgba(255,255,255,0.04); }
.vdt-sib-row--current { background: rgba(255,255,255,0.04); cursor: default; }

.vdt-sib-dot {
    flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%;
    background: rgba(148,163,184,0.4);
}
.vdt-sib-dot--ok  { background: #6ee7b7; }
.vdt-sib-dot--no  { background: #fca5a5; }

.vdt-sib-date  { flex-shrink: 0; font-size: 0.74rem; color: #94a3b8; min-width: 130px; }
.vdt-sib-desc  { flex: 1; font-size: 0.82rem; color: #e2e8f0; line-height: 1.4; min-width: 0; }
.vdt-sib-meta  { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.vdt-sib-quorum { font-size: 0.72rem; color: #94a3b8; padding: 0.2rem 0.5rem; background: rgba(255,255,255,0.07); border-radius: 4px; }
.vdt-sib-result { font-size: 0.74rem; font-weight: 600; }
.vdt-sib-result--ok { color: #6ee7b7; }
.vdt-sib-result--no { color: #fca5a5; }
.vdt-sib-counts { font-size: 0.72rem; color: #64748b; font-variant-numeric: tabular-nums; }
.vdt-sib-current-pill {
    font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
    color: #a5b4fc; background: rgba(165,180,252,0.14); border-radius: 4px; padding: 0.15rem 0.5rem;
}
.vdt-sib-arrow { flex-shrink: 0; color: #475569; }

/* -- Deputy breakdown ----------------------------------------- */
.vdt-deputies-wrap { padding: 2rem 0 5rem; }
.vdt-dep-grid { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.vdt-dep-col  {
    flex: 1; min-width: 220px;
    background: #26292b; border-radius: 10px; overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.vdt-dep-col-header {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.85rem 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.vdt-dch-dot  { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.vdt-dch-label { font-size: 0.63rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.52); flex: 1; }
.vdt-dch-count { font-size: 0.63rem; font-weight: 700; color: rgba(255,255,255,0.28); font-variant-numeric: tabular-nums; }
.vdt-dch--ok .vdt-dch-dot { background: #6ee7b7; }
.vdt-dch--no .vdt-dch-dot { background: #fca5a5; }
.vdt-dch--abs .vdt-dch-dot { background: #94a3b8; }
.vdt-dep-list { padding: 0.4rem 0; max-height: 340px; overflow-y: auto; }
.vdt-dep-row {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 0.3rem 1rem; text-decoration: none;
    color: rgba(255,255,255,0.62); font-size: 0.77rem; font-weight: 500;
    transition: background 0.12s, color 0.12s;
}
.vdt-dep-row--link:hover { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.9); }
.vdt-dav {
    width: 1.35rem; height: 1.35rem; border-radius: 50%; overflow: hidden; flex-shrink: 0;
    background: rgba(255,255,255,0.1); display: inline-flex; align-items: center; justify-content: center;
}
.vdt-dav img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vdt-dep-name { line-height: 1.3; }
.vdt-nobody { color: rgba(255,255,255,0.22); font-size: 0.8rem; margin: 0; padding: 0.6rem 1rem; }

/* -- Mobile --------------------------------------------------- */
@media (max-width: 700px) {
    .vt-card-stats { min-width: unset; width: calc(100% - 62px); margin-left: 62px; padding: 0 1rem 0.85rem; }
    .vt-vr-meta    { display: none; }
    .vdt-main-card { grid-template-columns: 1fr; }
    .vdt-col-right { border-left: none; border-top: 1px solid rgba(255,255,255,0.07); padding: 1.5rem; }
    .vdt-col-left  { padding: 1.75rem 1.5rem; }
    .vdt-stat-grid { flex-direction: row; gap: 0.5rem; }
    .vdt-stat-tile { flex: 1; min-width: 0; }
    .vdt-st-val    { font-size: 1.25rem; }
    .vdt-dep-grid  { flex-direction: column; }
    .vdt-dep-col   { min-width: unset; width: 100%; }
    .vdt-dep-list  { max-height: 220px; }
    .vt-card-date  { min-width: 52px; }
    .vt-cd-day     { font-size: 1.1rem; }
}

@media (max-width: 440px) {
    .vt-title { font-size: 2.2rem; }
    .vt-card-stats { display: none; }
}


@media (max-width: 767px) {
    .hv2-header-band {
        height: calc(100vh - 54px);
        height: calc(100svh - 54px);
    }
}

/* ── SUBSCRIPTION BAND ──────────────────────────────────── */
/* ── SUSCRIPCIÓN BAND ─────────────────────────────────────── */

.hv2-subscribe-band {
    background: #26292b;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 5rem 0;
}

.hv2-subscribe-band .hv2-inner {
    padding: 0 2rem;
}

.hv2-subscribe-layout {
    display: grid;
    gap: 3rem 5rem;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    max-width: 960px;
    margin: 0 auto;
}

/* ── Copy column ── */

.hv2-subscribe-eyebrow {
    color: #555b61;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    margin: 0 0 1rem;
    text-transform: uppercase;
}

.hv2-subscribe-title {
    color: #f1f5f9;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
    margin: 0 0 1.1rem;
}

.hv2-subscribe-desc {
    color: #7c8287;
    font-size: 0.92rem;
    line-height: 1.7;
    margin: 0 0 1.5rem;
}

.hv2-subscribe-bullets {
    color: #7c8287;
    font-size: 0.88rem;
    line-height: 1.8;
    list-style: none;
    margin: 0;
    padding: 0;
}

.hv2-subscribe-bullets li::before {
    content: '—';
    color: #3d4042;
    font-weight: 700;
    margin-right: 0.6em;
}

/* ── Form column ── */

.hv2-subscribe-form-wrap {
    background: #1c1f21;
    border: 1px solid #2f3336;
    padding: 2rem;
}

.hv2-subscribe-flash {
    align-items: flex-start;
    border-radius: 3px;
    display: flex;
    font-size: 0.85rem;
    font-weight: 500;
    gap: 0.6rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
    padding: 0.8rem 1rem;
}

.hv2-subscribe-flash svg {
    flex-shrink: 0;
    margin-top: 1px;
}

.hv2-subscribe-flash--ok {
    background: rgba(20, 83, 45, 0.25);
    border: 1px solid rgba(134, 239, 172, 0.15);
    color: #86efac;
}

.hv2-subscribe-flash--error {
    background: rgba(69, 10, 10, 0.3);
    border: 1px solid rgba(252, 165, 165, 0.15);
    color: #fca5a5;
}

.hv2-subscribe-label {
    color: #555b61;
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
}

.hv2-subscribe-input {
    background: #26292b;
    border: 1px solid #2f3336;
    color: #e2e8f0;
    display: block;
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 0.92rem;
    margin-bottom: 1.1rem;
    padding: 0.75rem 0.9rem;
    transition: border-color 140ms ease;
    width: 100%;
    box-sizing: border-box;
}

.hv2-subscribe-input::placeholder {
    color: #3d4042;
}

.hv2-subscribe-input:focus {
    border-color: #4a5057;
    outline: none;
}

.hv2-subscribe-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%233d4042' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9rem center;
    cursor: pointer;
    padding-right: 2.2rem;
}

.hv2-subscribe-submit {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    margin-top: 0.5rem;
    width: 100%;
}

/* ── Responsive ── */

@media (max-width: 760px) {
    .hv2-subscribe-band {
        padding: 3.5rem 0;
    }
    .hv2-subscribe-band .hv2-inner {
        padding: 0 1.25rem;
    }
    .hv2-subscribe-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .hv2-subscribe-form-wrap {
        padding: 1.5rem;
    }
}

/* ── TOAST SUSCRIPCIÓN ──────────────────────────────────────── */

.sub-toast {
    align-items: center;
    bottom: 2rem;
    box-shadow: 0 4px 24px rgba(0,0,0,0.4);
    display: flex;
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 0.9rem;
    font-weight: 500;
    gap: 0.75rem;
    left: 50%;
    max-width: 420px;
    opacity: 0;
    padding: 0.9rem 1.1rem;
    position: fixed;
    transform: translateX(-50%) translateY(1rem);
    transition: opacity 260ms ease, transform 260ms ease;
    width: calc(100% - 2.5rem);
    z-index: 9999;
}

.sub-toast--visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.sub-toast--ok {
    background: #052e16;
    border: 1px solid rgba(134,239,172,0.25);
    color: #86efac;
}

.sub-toast--error {
    background: #450a0a;
    border: 1px solid rgba(252,165,165,0.2);
    color: #fca5a5;
}

.sub-toast-icon {
    display: flex;
    flex-shrink: 0;
}

.sub-toast-msg {
    flex: 1;
}

.sub-toast-close {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    flex-shrink: 0;
    opacity: 0.6;
    padding: 2px;
}

.sub-toast-close:hover {
    opacity: 1;
}
