/* ==========================================================
   AMERICA'S DATA CENTER
   ELECTED OFFICIAL PROFILE · V4
========================================================== */

.official-v4-hero {
    position: relative;
    margin-top: 28px;
    min-height: 330px;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 235px;
    overflow: hidden;
    border: 1px solid rgba(36,87,166,.12);
    border-radius: 24px;
    background:
        radial-gradient(circle at 40% 0%, rgba(58,130,214,.10), transparent 36%),
        linear-gradient(135deg, #fbfdff 0%, #f4f8fc 100%);
    box-shadow: 0 18px 48px rgba(20,49,89,.07);
}

.official-v4-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 260px;
    width: 84px;
    height: 3px;
    background: linear-gradient(90deg, #2457a6, #5d95e3);
}

.official-v4-portrait {
    min-height: 330px;
    overflow: hidden;
    background: linear-gradient(145deg, #e7eef7, #cadbea);
}

.official-v4-portrait img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
}

.official-v4-fallback {
    width: 100%;
    height: 100%;
    min-height: 330px;
    align-items: center;
    justify-content: center;
    color: #6684a5;
    font-size: 58px;
}

.official-v4-identity {
    padding: 34px 34px 30px;
    align-self: center;
}

.official-v4-identity .eyebrow i,
.record-panel .eyebrow i,
.record-explorer .eyebrow i {
    margin-right: 6px;
}

.official-v4-identity h1 {
    margin: 8px 0 7px;
    color: var(--primary);
    font-size: clamp(44px, 5vw, 68px);
    line-height: .98;
    letter-spacing: -.05em;
}

.official-v4-office {
    margin: 0;
    color: var(--primary);
    font-size: 18px;
    font-weight: 800;
}

.official-v4-badges {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.official-v4-badges span {
    padding: 6px 9px;
    border: 1px solid rgba(36,87,166,.11);
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: #40516a;
    font-size: 10px;
    font-weight: 800;
}

.official-v4-represents {
    margin-top: 22px;
    padding-top: 16px;
    border-top: 1px solid rgba(36,87,166,.10);
}

.official-v4-represents span,
.official-v4-represents strong,
.official-v4-represents small {
    display: block;
}

.official-v4-represents span {
    color: var(--accent);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .10em;
}

.official-v4-represents strong {
    margin-top: 5px;
    color: var(--primary);
    font-size: 18px;
}

.official-v4-represents small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.official-v4-links {
    margin-top: 17px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.official-v4-links a {
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
}

.official-v4-links a:hover {
    text-decoration: underline;
}

.official-v4-snapshot {
    padding: 25px 22px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid rgba(36,87,166,.10);
    background: rgba(255,255,255,.70);
}

.snapshot-heading {
    margin-bottom: 8px;
    color: var(--accent);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .10em;
}

.snapshot-number {
    padding: 13px 0;
    display: grid;
    grid-template-columns: 62px 1fr;
    align-items: baseline;
    gap: 10px;
    border-top: 1px solid rgba(36,87,166,.09);
}

.snapshot-number strong {
    color: var(--primary);
    font-size: 27px;
    line-height: 1;
    letter-spacing: -.04em;
}

.snapshot-number span {
    color: var(--muted);
    font-size: 10px;
    line-height: 1.25;
}

.snapshot-number-primary strong {
    color: #175fae;
}


/* ----------------------------------------------------------
   STORY GRID
---------------------------------------------------------- */

.official-v4-story-grid {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.record-panel {
    min-height: 285px;
    padding: 24px;
    border: 1px solid rgba(36,87,166,.11);
    border-radius: 20px;
    background: white;
    box-shadow: 0 10px 28px rgba(20,49,89,.04);
}

.activity-panel {
    background:
        linear-gradient(145deg, rgba(247,251,255,.98), rgba(255,255,255,.98));
}

.outcome-panel {
    background:
        linear-gradient(145deg, rgba(255,251,243,.82), rgba(255,255,255,.98));
    border-color: rgba(216,162,61,.16);
}

.record-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.record-panel h2 {
    margin: 6px 0 0;
    color: var(--primary);
    font-size: clamp(25px, 3vw, 34px);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.panel-note {
    color: var(--muted);
    font-size: 9px;
    white-space: nowrap;
}

.activity-list {
    margin-top: 20px;
    display: grid;
    gap: 12px;
}

.activity-label {
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.activity-label strong {
    color: var(--primary);
    font-size: 12px;
}

.activity-label span {
    color: var(--muted);
    font-size: 10px;
}

.activity-bar {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef5;
}

.activity-bar span {
    height: 100%;
    display: block;
    border-radius: inherit;
    background: linear-gradient(90deg, #2457a6, #5d95e3);
}

.mini-disclosure {
    margin-top: 17px;
}

.mini-disclosure summary {
    color: var(--accent);
    font-size: 10px;
    font-weight: 850;
    cursor: pointer;
}

.mini-disclosure-body {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.policy-detail-row {
    padding: 8px 0;
    display: grid;
    grid-template-columns: minmax(140px, .55fr) 1fr;
    gap: 12px;
    border-bottom: 1px solid #eef2f6;
}

.policy-detail-row strong {
    color: var(--primary);
    font-size: 10px;
}

.policy-detail-row span {
    color: var(--muted);
    font-size: 9px;
}

.outcome-compact {
    margin-top: 22px;
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 18px;
    align-items: stretch;
}

.outcome-rate {
    padding: 20px;
    border-radius: 16px;
    background: linear-gradient(145deg, #14213d, #214477);
}

.outcome-rate strong,
.outcome-rate span {
    display: block;
}

.outcome-rate strong {
    color: white;
    font-size: 39px;
    line-height: 1;
    letter-spacing: -.05em;
}

.outcome-rate span {
    margin-top: 7px;
    color: #d1dceb;
    font-size: 10px;
}

.outcome-steps {
    display: grid;
    gap: 8px;
}

.outcome-steps > div {
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    border: 1px solid #dde5ee;
    border-radius: 11px;
    background: rgba(255,255,255,.84);
}

.outcome-steps span {
    color: var(--muted);
    font-size: 10px;
}

.outcome-steps strong {
    color: var(--primary);
    font-size: 20px;
}

.outcome-steps .outcome-law {
    border-color: #b9dbc5;
    background: #f6fbf7;
}

.outcome-neutral-note {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 9px;
    line-height: 1.45;
}

.outcome-placeholder {
    min-height: 185px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    color: var(--muted);
}

.outcome-placeholder i {
    margin-bottom: 14px;
    color: #d29a34;
    font-size: 28px;
}

.outcome-placeholder strong {
    color: var(--primary);
    font-size: 16px;
}

.outcome-placeholder span {
    margin-top: 6px;
    font-size: 11px;
}


/* ----------------------------------------------------------
   RECORD EXPLORER
---------------------------------------------------------- */

.record-explorer {
    margin: 28px 0 30px;
}

.record-explorer-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 14px;
}

.record-explorer h2 {
    margin: 5px 0 0;
    color: var(--primary);
    font-size: clamp(30px, 4vw, 42px);
    letter-spacing: -.04em;
}

.civics-mini {
    display: grid;
    gap: 3px;
    color: var(--muted);
    font-size: 9px;
    text-align: right;
}

.civics-mini strong {
    color: var(--primary);
}

.official-disclosure {
    overflow: hidden;
    border: 1px solid rgba(36,87,166,.12);
    border-radius: 15px;
    background: white;
    box-shadow: 0 8px 24px rgba(20,49,89,.035);
}

.official-disclosure > summary {
    min-height: 66px;
    padding: 14px 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    cursor: pointer;
    list-style: none;
    background: linear-gradient(90deg, #fff, #f9fbfe);
}

.official-disclosure > summary::-webkit-details-marker {
    display: none;
}

.official-disclosure > summary > span:first-child {
    display: grid;
    gap: 2px;
}

.official-disclosure > summary strong {
    color: var(--primary);
    font-size: 14px;
}

.official-disclosure > summary small {
    color: var(--muted);
    font-size: 9px;
}

.disclosure-action {
    color: var(--accent);
    font-size: 9px;
    font-weight: 900;
}

.disclosure-action::after {
    content: " +";
}

.official-disclosure[open] .disclosure-action::after {
    content: " −";
}

.official-disclosure-body {
    padding: 17px;
    border-top: 1px solid rgba(36,87,166,.09);
}

.record-utility-grid {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 12px;
}


/* ----------------------------------------------------------
   TABLES + CONTROLS
---------------------------------------------------------- */

.legislation-toolbar {
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.legislation-search {
    flex: 1;
}

.legislation-search input,
.legislation-filters select {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: white;
    color: var(--text);
    font: inherit;
    font-size: 11px;
}

.legislation-search input {
    max-width: 420px;
}

.legislation-filters {
    display: flex;
    gap: 8px;
}

.legislation-filters select {
    min-width: 135px;
}

.legislation-data-table-wrapper,
.legislation-table-wrapper {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: white;
}

.legislation-data-table,
.legislation-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.legislation-data-table {
    min-width: 960px;
}

.legislation-data-table thead,
.legislation-table thead {
    background: #f7f9fc;
}

.legislation-data-table th,
.legislation-table th {
    padding: 11px 12px;
    border-bottom: 1px solid var(--border);
    color: #5d6c80;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .07em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.legislation-data-table th.sortable {
    cursor: pointer;
}

.legislation-data-table td,
.legislation-table td {
    padding: 11px 12px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: top;
}

.table-date,
.table-bill-number {
    white-space: nowrap;
}

.table-bill-number {
    color: var(--primary);
}

.table-title-cell {
    min-width: 300px;
    max-width: 500px;
    color: #26364d;
    font-weight: 600;
    line-height: 1.4;
}

.table-policy,
.legislative-action-badge,
.vote-badge {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
}

.table-policy {
    background: #f0f4f9;
    color: #53657d;
}

.legislative-action-badge,
.vote-badge {
    background: var(--soft);
    color: var(--primary);
}

.action-sponsored {
    background: #e7f3ec;
    color: #245d37;
}

.action-cosponsored {
    background: #edf2f8;
    color: #324a68;
}

.table-muted {
    color: #8b96a7;
}

.table-source-link {
    color: var(--accent);
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.bill-title {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.35;
}

.legislation-table-footer {
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--muted);
    font-size: 10px;
}

.table-footer-actions {
    display: flex;
    gap: 7px;
}

.table-more-button,
.table-reset-button {
    min-height: 34px;
    padding: 0 11px;
    border-radius: 9px;
    font: inherit;
    font-size: 9px;
    font-weight: 800;
    cursor: pointer;
}

.table-more-button {
    border: 0;
    background: var(--primary);
    color: white;
}

.table-reset-button {
    border: 1px solid var(--border);
    background: white;
    color: var(--primary);
}

.table-more-button[hidden] {
    display: none;
}


/* ----------------------------------------------------------
   CONTACT + SOURCE
---------------------------------------------------------- */

.contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
    gap: 9px;
}

.contact-card {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #fbfcfe;
}

.contact-card span {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 9px;
}

.contact-card strong,
.contact-card a {
    color: var(--primary);
    font-size: 10px;
    font-weight: 800;
}

.source-inline {
    margin-top: 12px;
    padding-top: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-top: 1px solid var(--border);
}

.source-inline span,
.source-inline strong {
    display: block;
}

.source-inline span {
    color: var(--muted);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
}

.source-inline strong {
    margin-top: 3px;
    color: var(--primary);
    font-size: 10px;
}

.source-inline a {
    color: var(--accent);
    font-size: 9px;
    font-weight: 800;
    text-decoration: none;
}

.no-data-card {
    padding: 16px;
    border: 1px dashed var(--border);
    border-radius: 12px;
    color: var(--muted);
    font-size: 11px;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}


/* ----------------------------------------------------------
   RESPONSIVE
---------------------------------------------------------- */

@media (max-width: 1050px) {
    .official-v4-hero {
        grid-template-columns: 210px minmax(0, 1fr) 205px;
    }

    .official-v4-hero::before {
        left: 210px;
    }
}

@media (max-width: 850px) {
    .official-v4-hero {
        grid-template-columns: 180px 1fr;
    }

    .official-v4-hero::before {
        left: 180px;
    }

    .official-v4-snapshot {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
        border-top: 1px solid rgba(36,87,166,.10);
        border-left: 0;
    }

    .snapshot-heading {
        grid-column: 1 / -1;
    }

    .snapshot-number {
        grid-template-columns: 1fr;
    }

    .official-v4-story-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .record-explorer-heading,
    .legislation-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .civics-mini {
        text-align: left;
    }

    .record-utility-grid {
        grid-template-columns: 1fr;
    }

    .legislation-search input {
        max-width: none;
    }

    .legislation-filters {
        flex-wrap: wrap;
    }

    .legislation-filters select {
        flex: 1 1 140px;
    }
}

@media (max-width: 560px) {
    .official-v4-hero {
        grid-template-columns: 1fr;
    }

    .official-v4-hero::before {
        left: 22px;
    }

    .official-v4-portrait {
        min-height: 270px;
    }

    .official-v4-identity {
        padding: 24px 20px;
    }

    .official-v4-snapshot {
        grid-template-columns: repeat(2, 1fr);
    }

    .outcome-compact {
        grid-template-columns: 1fr;
    }

    .record-panel {
        padding: 19px;
    }

    .record-panel-heading {
        display: block;
    }

    .panel-note {
        display: block;
        margin-top: 6px;
    }

    .legislation-table-footer {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ============================================================
   ADC OFFICIAL PROFILE — CLEAN VISUAL SYSTEM (2026-10)
   Single source of truth for the hero and dark profile surfaces.
   No fixed-width floating snapshot or !important grid collisions.
   ============================================================ */
body:has(.official-journey) {
    background: #061426;
    color: #e7f2fc;
}
body:has(.official-journey) main { background: transparent; }
.official-journey {
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
    margin: 18px auto 14px; padding: 0 2px; color: #8eabc2; font-size: 12px;
}
.official-journey a { color: #8cdcf7; font-weight: 700; text-decoration: none; }
.official-journey a:hover { color: #fff; text-decoration: underline; }
.official-journey-spacer { flex: 1; }
.official-journey i { margin-right: 4px; }
.official-v4-hero.official-v5-hero {
    display: grid;
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr) minmax(235px, 280px);
    align-items: center; gap: clamp(20px, 2.6vw, 40px);
    min-height: 0; padding: clamp(26px, 3vw, 44px);
    margin-top: 10px; overflow: hidden; isolation: isolate;
    border-radius: 25px; border: 1px solid rgba(77,203,248,.24);
    background: radial-gradient(ellipse at 77% 28%, rgba(14,111,157,.27), transparent 45%),
                linear-gradient(110deg, rgba(3,17,35,.97),rgba(5,28,52,.94)),
                url('/static/img/adc/intelligence-touch.png') center / cover;
    box-shadow: 0 22px 60px rgba(0,0,0,.22);
}
.official-v4-hero.official-v5-hero::before { display: none; }
.official-v4-hero.official-v5-hero > * { position: relative; z-index: 1; min-width: 0; }
.official-v4-hero .official-data-visual { display: none; }
.official-v4-hero .official-v4-portrait {
    width: 100%; height: 295px; min-height: 0; border-radius: 20px;
    overflow: hidden; border: 1px solid rgba(87,211,255,.36);
    background: #10283f; box-shadow: 0 15px 40px rgba(0,0,0,.3);
}
.official-v4-hero .official-v4-portrait img {
    display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 22%;
}
.official-v4-hero .official-v4-fallback { min-height: 100%; background: #10283f; color: #65d9f9; }
.official-v4-hero .official-v4-identity { padding: 0; align-self: center; min-width: 0; }
.official-v4-hero .official-v4-identity .eyebrow {
    color: #62def9; font-size: 11px; letter-spacing: .13em; font-weight: 800;
}
.official-v4-hero .official-v4-identity h1 {
    margin: 12px 0; color: #fff; font-size: clamp(36px, 3.6vw, 60px);
    line-height: 1.04; letter-spacing: -.047em; overflow-wrap: normal; word-break: normal;
    text-wrap: balance; text-shadow: none;
}
.official-v4-hero .official-v4-office { color: #c7dcec; font-size: clamp(15px, 1.4vw, 19px); font-weight: 650; line-height: 1.45; }
.official-v4-hero .official-v4-badges { margin-top: 18px; gap: 8px; }
.official-v4-hero .official-v4-badges span {
    color: #c5ecff; border: 1px solid rgba(97,211,249,.3);
    background: rgba(28,95,128,.3); padding: 7px 12px; font-size: 12px; font-weight: 650;
}
.official-v4-hero .official-v4-links { margin-top: 16px; }
.official-v4-hero .official-v4-links a { color: #78e0fa; font-size: 12px; }
.official-v4-hero .official-v4-snapshot {
    display: flex; flex-direction: column; justify-content: center; align-self: stretch;
    padding: 22px 24px; min-width: 0; border: 1px solid rgba(83,201,244,.23);
    border-radius: 20px; background: rgba(5,23,44,.72);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.official-v4-hero .snapshot-heading { margin: 0 0 11px; color: #70dff8; font-size: 10px; letter-spacing: .11em; }
.official-v4-hero .snapshot-heading small { color: #8aaabd; font-size: 9px; letter-spacing: 0; }
.official-v4-hero .snapshot-number {
    display: flex; flex-direction: column; align-items: flex-start; gap: 5px;
    padding: 12px 0; border-top: 1px solid rgba(142,190,219,.16);
}
.official-v4-hero .snapshot-number strong { color: #fff; font-size: clamp(23px,2.2vw,34px); line-height: 1; letter-spacing: -.03em; }
.official-v4-hero .snapshot-number-primary strong { color: #60dafa; }
.official-v4-hero .snapshot-number span { color: #b5cbda; font-size: 12px; line-height: 1.3; }
/* Dark cards: align with Explore and GOLD rather than white dashboard islands. */
.official-v4-story-grid { margin-top: 18px; gap: 18px; }
.official-v4-story-grid .record-panel,
.record-explorer, .record-utility-grid > *, .adc-vote-explorer {
    background: linear-gradient(145deg, #09233d, #07192f);
    color: #e7f2fc; border: 1px solid rgba(93,186,226,.2);
    border-radius: 22px; box-shadow: 0 14px 35px rgba(0,0,0,.14);
}
.official-v4-story-grid .record-panel h2, .record-explorer h2,
.record-utility-grid h2, .record-panel strong { color: #f4faff; }
.official-v4-story-grid .record-panel .eyebrow,
.record-explorer .eyebrow { color: #64d8fa; }
.official-v4-story-grid .panel-note,
.official-v4-story-grid .activity-label span,
.official-v4-story-grid .outcome-neutral-note,
.record-explorer .civics-mini, .record-explorer .no-data-card { color: #a9c4d8; }
.official-v4-story-grid .activity-bar { background: #183d59; }
.official-v4-story-grid .activity-item strong { color: #edf8ff; }
.official-v4-story-grid .mini-disclosure,
.record-explorer .official-disclosure { border-color: rgba(104,185,224,.25); background: rgba(5,22,40,.42); }
.official-v4-story-grid .mini-disclosure summary,
.record-explorer .official-disclosure summary { color: #eaf8ff; }
.official-v4-story-grid .outcome-steps > div { border-color: rgba(104,185,224,.23); }
.official-v4-story-grid .outcome-rate strong { color: #6bdcf6; }
.record-explorer .legislation-toolbar input,
.record-explorer .legislation-toolbar select { color: #e9f6ff; background: #0b2944; border-color: #365c76; }
.record-explorer .legislation-data-table { color: #dcebf5; }
.record-explorer .legislation-data-table thead th { background: #103550; color: #c5edff; }
.record-explorer .legislation-data-table tbody tr { background: #0b253d; border-color: #244760; }
.record-explorer .legislation-data-table tbody tr:nth-child(even) { background: #102b44; }
.record-explorer .legislation-data-table td { color: #dcebf5; }
.record-explorer .legislation-data-table a, .record-explorer a { color: #7cddfa; }
.adc-vote-explorer { margin: 18px 0 22px; padding: clamp(20px, 3vw, 30px); }
.adc-vote-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.adc-vote-heading h2 { color: #f4fbff; margin: 6px 0; font-size: clamp(24px, 2.8vw, 34px); }
.adc-vote-heading p, .adc-vote-method { color: #a9c4d7; font-size: 12px; line-height: 1.5; }
.adc-vote-count { color: #6be1f8; font-size: 12px; font-weight: 750; }
.adc-vote-controls { display: grid; grid-template-columns: minmax(0,1fr) 200px; gap: 10px; margin-bottom: 10px; }
.adc-vote-controls input, .adc-vote-controls select { min-height: 44px; width: 100%; padding: 10px 13px; border-radius: 10px; border: 1px solid #32607b; background: #0b2239; color: #f2f8ff; font: inherit; font-size: 13px; }
.adc-vote-result-count { font-size: 12px; color: #9bb8cd; margin: 12px 0; }
.adc-vote-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.adc-vote-card { min-width: 0; border: 1px solid #2a4b64; border-radius: 16px; background: rgba(16,46,70,.9); padding: 18px; }
.adc-vote-card[hidden], .adc-vote-more-button[hidden] { display: none; }
.adc-vote-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #a9c4d7; font-size: 11px; flex-wrap: wrap; }
.adc-vote-type { border: 1px solid #337994; border-radius: 99px; padding: 5px 9px; color: #69dff6; text-transform: capitalize; font-weight: 800; }
.adc-vote-card h3 { color: #f3faff; font-size: 17px; line-height: 1.35; margin: 14px 0 5px; overflow-wrap: anywhere; }
.adc-vote-bill { color: #75d8ee; font-size: 12px; font-weight: 800; margin: 5px 0 12px; }
.adc-vote-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px 0; margin-top: 12px; border-top: 1px solid #2a4b64; }
.adc-vote-summary small { display: block; color: #9cbcd0; font-size: 10px; margin-bottom: 6px; }
.adc-vote-summary strong { display: block; color: #f5fbff; font-size: 15px; overflow-wrap: anywhere; }
.adc-vote-cast { color: #6ce1cc; }
.adc-vote-more { border-top: 1px solid #2a4b64; padding-top: 12px; font-size: 12px; }
.adc-vote-more summary { cursor: pointer; color: #83dcf2; font-weight: 750; }
.adc-vote-more p { color: #d2e4ef; line-height: 1.5; }
.adc-vote-more a { display: inline-block; margin: 6px 14px 4px 0; color: #79e2f8; font-weight: 750; }
.adc-vote-more-button { margin-top: 15px; padding: 11px 16px; border-radius: 10px; background: #174a68; color: white; border: 1px solid #387b99; font-weight: 800; cursor: pointer; }
.adc-vote-empty { border: 1px dashed #42647c; padding: 20px; border-radius: 12px; color: #b4cfdf; }
.adc-vote-method { margin-top: 17px; font-size: 11px; }
@media (max-width: 1060px) {
    .official-v4-hero.official-v5-hero { grid-template-columns: 180px minmax(0,1fr); }
    .official-v4-hero .official-v4-portrait { height: 250px; }
    .official-v4-hero .official-v4-snapshot {
        grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px;
    }
    .official-v4-hero .snapshot-heading { grid-column: 1/-1; }
    .official-v4-hero .snapshot-number { padding: 10px 0; }
}
@media (max-width: 720px) {
    .official-journey-spacer, .official-journey a:nth-last-child(-n+2) { display: none; }
    .official-v4-hero.official-v5-hero { padding: 22px; gap: 18px; grid-template-columns: 110px minmax(0,1fr); }
    .official-v4-hero .official-v4-portrait { height: 155px; border-radius: 14px; }
    .official-v4-hero .official-v4-identity h1 { font-size: clamp(27px,6vw,42px); }
    .official-v4-hero .official-v4-office { font-size: 14px; }
    .official-v4-hero .official-v4-snapshot { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .official-v4-story-grid, .adc-vote-results { grid-template-columns: 1fr; }
    .adc-vote-heading { flex-direction: column; }
    .adc-vote-controls { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
    .official-v4-hero.official-v5-hero { grid-template-columns: 1fr; }
    .official-v4-hero .official-v4-portrait { width: 140px; height: 175px; }
    .official-v4-hero .official-v4-snapshot { grid-column: 1; }
}

/* V3: compact, accessible recorded-votes table */
.adc-vote-table-scroll { width:100%; overflow-x:auto; border:1px solid #2a4b64; border-radius:14px; background:#0b253d; }
.adc-vote-table { width:100%; min-width:790px; border-collapse:collapse; color:#eaf5fc; font-size:13px; }
.adc-vote-table thead { background:#11354e; }
.adc-vote-table th { padding:14px 12px; text-align:left; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#a8d7e9; white-space:nowrap; }
.adc-vote-table td { padding:13px 12px; vertical-align:middle; border-top:1px solid rgba(115,174,205,.16); }
.adc-vote-entry:nth-of-type(even) .adc-vote-row { background:rgba(35,73,99,.2); }
.adc-vote-row:hover { background:rgba(39,100,137,.28); }
.adc-vote-entry[hidden], .adc-vote-detail-row[hidden], .adc-vote-no-matches[hidden] { display:none!important; }
.adc-vote-sort { border:0; padding:0; background:none; color:inherit; font:inherit; text-transform:inherit; letter-spacing:inherit; cursor:pointer; }
.adc-vote-sort:hover,.adc-vote-sort:focus-visible { color:#6de0fa; }
.adc-vote-date { white-space:nowrap; color:#b8d0e1; }
.adc-vote-issue { min-width:250px; max-width:430px; }
.adc-vote-issue-name { display:block; color:#f3faff; font-weight:700; line-height:1.45; }
.adc-vote-bill-id,.adc-vote-roll { display:inline-block; margin:5px 10px 0 0; color:#70d9f4; font-size:11px; }
.adc-vote-roll { color:#a5bfd1; }
.adc-vote-table .adc-vote-type { display:inline-block; white-space:nowrap; padding:4px 8px; font-size:10px; }
.adc-vote-table .adc-vote-cast { color:#75e2d0; white-space:nowrap; }
.adc-vote-outcome { max-width:230px; line-height:1.45; }
.adc-vote-expand { background:transparent; color:#7ddcf4; border:1px solid #3a728d; border-radius:8px; padding:7px 10px; cursor:pointer; font-weight:700; }
.adc-vote-expand:hover,.adc-vote-expand:focus-visible { background:#19455e; }
.adc-vote-detail-row { background:#0a1e32; }
.adc-vote-detail-row td { padding:0 18px 18px; }
.adc-vote-detail-inner { border-left:3px solid #4dc7e9; padding:12px 18px; margin:8px 0 0; color:#d5e6f0; line-height:1.6; }
.adc-vote-detail-inner strong { color:#fff; }
.adc-vote-detail-inner p { margin:8px 0; }
.adc-vote-links { display:flex; flex-wrap:wrap; gap:18px; margin-top:10px; }
.adc-vote-links a { color:#75dcf7; font-weight:700; }
.adc-vote-pagination { display:flex; justify-content:flex-end; align-items:center; gap:14px; margin-top:14px; color:#b5ccda; font-size:12px; }
.adc-vote-page { background:#133a55; border:1px solid #376783; color:#f0faff; border-radius:9px; padding:9px 12px; cursor:pointer; }
.adc-vote-page:disabled { opacity:.4; cursor:not-allowed; }
@media(max-width:720px){.adc-vote-pagination{justify-content:space-between;gap:7px}.adc-vote-page{padding:9px}}

/* ADC vote story: editorial reading experience, not nested cards */
.adc-vote-story{padding:clamp(22px,4vw,48px) clamp(18px,4vw,52px);background:linear-gradient(120deg,rgba(5,18,32,.96),rgba(7,31,47,.94));color:#eaf5fc;border-top:1px solid rgba(93,206,236,.3);}
.adc-vote-story-masthead{max-width:920px;padding-bottom:30px;border-bottom:1px solid rgba(167,219,237,.18)}
.adc-vote-story-kicker,.adc-story-overline{font-size:.7rem;letter-spacing:.18em;font-weight:750;color:#7fcee4}
.adc-vote-story-kicker span{padding:0 9px;opacity:.55}
.adc-vote-story-masthead h3{font-size:clamp(1.4rem,2.5vw,2.4rem);line-height:1.2;font-weight:620;letter-spacing:-.03em;margin:14px 0 12px;color:#fff;max-width:850px}
.adc-vote-story-lead{font-size:1rem;color:#bad0dd;line-height:1.65}.adc-vote-story-lead strong{color:#fff}
.adc-vote-story-layout{display:grid;grid-template-columns:minmax(155px,210px) minmax(0,1fr);gap:clamp(20px,4vw,65px);padding-top:32px}
.adc-vote-story-rail{display:flex;flex-direction:column;gap:2px;border-left:1px solid rgba(139,205,229,.22);align-self:start}
.adc-story-tab{border:0;border-left:2px solid transparent;margin-left:-1px;background:transparent;color:#7f9baa;text-align:left;cursor:pointer;padding:14px 12px;font-size:.75rem;letter-spacing:.04em;display:flex;gap:13px;align-items:baseline;transition:color .2s,border-color .2s}
.adc-story-tab span{font-size:.93rem;letter-spacing:0}.adc-story-tab:hover,.adc-story-tab:focus-visible{color:#fff}.adc-story-tab.is-active{color:#fff;border-left-color:#64d7f1}.adc-story-tab:focus-visible{outline:2px solid #64d7f1;outline-offset:2px}
.adc-vote-story-pages{min-width:0;min-height:220px}.adc-story-panel[hidden]{display:none!important}.adc-story-panel{animation:adcStoryFade .22s ease-out}
@keyframes adcStoryFade{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.adc-story-big{font-size:clamp(1.12rem,1.7vw,1.6rem);line-height:1.55;color:#f2f8fc;max-width:820px;margin:15px 0 26px;overflow-wrap:anywhere}
.adc-story-facts{display:flex;flex-wrap:wrap;gap:15px 28px;border-top:1px solid rgba(167,219,237,.16);padding-top:18px}
.adc-story-facts span{display:flex;flex-direction:column;gap:5px;color:#91acbc;font-size:.78rem}.adc-story-facts b{font-size:.98rem;color:#eaf6fb;font-weight:650}
.adc-story-explainer{color:#bcd1df;line-height:1.7;max-width:720px}.adc-story-footnote{color:#8daab9;font-size:.83rem;line-height:1.65;margin-top:20px;max-width:760px}
.adc-story-source-list{max-width:640px}.adc-story-source-list a{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid rgba(167,219,237,.19);color:#d9f5ff;text-decoration:none;font-weight:600}.adc-story-source-list a span:first-child{font-size:.72rem;color:#78c7de}.adc-story-source-list a span:last-child{margin-left:auto}.adc-story-source-list a:hover{color:#fff}
@media(max-width:700px){.adc-vote-story-layout{grid-template-columns:1fr;gap:22px}.adc-vote-story-rail{flex-direction:row;overflow-x:auto;border-left:0;border-bottom:1px solid rgba(139,205,229,.22)}.adc-story-tab{flex:1;white-space:nowrap;border-left:0;border-bottom:2px solid transparent;margin:0 0 -1px;padding:12px 8px;gap:6px;flex-direction:column}.adc-story-tab.is-active{border-left-color:transparent;border-bottom-color:#64d7f1}.adc-vote-story{padding:22px 14px}.adc-vote-story-pages{min-height:0}}
@media(prefers-reduced-motion:reduce){.adc-story-panel{animation:none}.adc-story-tab{transition:none}}

/* Restored governed policy chart styling from V9 */
/* V5: governed, interactive policy-area vote aggregation */
.adc-policy-votes{margin:20px 0 24px;padding:clamp(18px,2.5vw,28px);border:1px solid rgba(82,199,240,.24);border-radius:20px;background:linear-gradient(140deg,#081d32,#0b2941);color:#eef9ff}
.adc-policy-votes-head{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:22px}
.adc-policy-votes-head h3{margin:7px 0;color:#fff;font-size:clamp(22px,2.4vw,30px);line-height:1.2}
.adc-policy-votes-head p,.adc-policy-note{margin:5px 0;color:#aac6d8;font-size:12px;line-height:1.6}
.adc-policy-reset{flex-shrink:0;padding:9px 13px;background:#123d58;color:#a7edff;border:1px solid #397a98;border-radius:10px;cursor:pointer}
.adc-policy-reset[hidden]{display:none}
.adc-policy-bars{display:grid;gap:14px}
.adc-policy-bar-row{display:block;width:100%;padding:8px 10px;margin:0 -10px;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;color:#fff;cursor:pointer;font:inherit}
.adc-policy-bar-row:hover,.adc-policy-bar-row:focus-visible,.adc-policy-bar-row[aria-pressed=true]{background:rgba(73,217,255,.09);border-color:rgba(73,217,255,.4);outline:none}
.adc-policy-bar-label{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:8px;font-size:14px}
.adc-policy-bar-label strong{color:#f1faff;white-space:nowrap;font-size:13px}
.adc-policy-bar-track{display:block;height:10px;background:#29455a;border-radius:99px;overflow:hidden}
.adc-policy-bar-fill{display:flex;height:100%;border-radius:99px;overflow:hidden}
.adc-policy-segment{height:100%;display:block}
.adc-policy-yea,.adc-legend-yea{background:#36c9e8}.adc-policy-nay,.adc-legend-nay{background:#f3ab68}.adc-policy-other,.adc-legend-other{background:#9bacc0}
.adc-policy-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px;font-size:12px;color:#c5dcea}
.adc-policy-legend span{display:inline-flex;align-items:center;gap:7px}.adc-policy-legend i{display:inline-block;width:10px;height:10px;border-radius:50%}
.adc-policy-note{margin-top:13px;font-size:11px}
@media(max-width:600px){.adc-policy-votes-head{flex-direction:column}.adc-policy-bar-label{font-size:12px}.adc-policy-bar-label strong{font-size:11px}}

/* V9: compact, vertical policy vote column chart (six Congress topics). */
.adc-policy-bars{display:block}
.adc-policy-columns{width:100%;min-width:0}
.adc-policy-columns-grid{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px}
.adc-policy-y-axis{height:270px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:0 4px 0 0;color:#8fb5ca;font-size:11px;font-variant-numeric:tabular-nums}
.adc-policy-plot{height:270px;position:relative;border-bottom:1px solid rgba(150,202,227,.45);min-width:0}
.adc-policy-gridline{position:absolute;left:0;right:0;border-top:1px dashed rgba(128,177,204,.18);pointer-events:none}
.adc-policy-column-items{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,2vw,22px);height:100%;align-items:stretch}
.adc-policy-column{display:flex;flex-direction:column;align-items:center;min-width:0;height:100%;padding:0 3px;background:transparent;border:1px solid transparent;border-radius:8px 8px 0 0;color:#effaff;cursor:pointer;font:inherit}
.adc-policy-column:hover,.adc-policy-column:focus-visible,.adc-policy-column[aria-pressed=true]{background:rgba(67,205,243,.10);border-color:rgba(67,205,243,.5);outline:none}
.adc-policy-column-value{height:25px;display:flex;align-items:center;font-size:13px;font-variant-numeric:tabular-nums}
.adc-policy-column-slot{flex:1;width:min(100%,65px);display:flex;flex-direction:column;justify-content:flex-end;min-height:0}
.adc-policy-column-stack{width:100%;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-radius:6px 6px 0 0;min-height:0}
.adc-policy-column-segment{display:block;width:100%;flex-shrink:0}
.adc-policy-column-segment.adc-policy-yea{background:#32c5df}
.adc-policy-column-segment.adc-policy-nay{background:#ffae69}
.adc-policy-column-segment.adc-policy-other{background:#92acc0}
.adc-policy-column-label{position:absolute;top:calc(100% + 9px);width:calc((100% - 38px)/6);max-width:130px;text-align:center;line-height:1.3;font-size:11px;font-weight:600;overflow-wrap:break-word}
.adc-policy-columns{padding-bottom:52px}
.adc-policy-extras{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid rgba(120,183,212,.2);padding-top:15px;margin-top:14px}
.adc-policy-extra{display:flex;justify-content:space-between;align-items:center;gap:16px;flex:1 1 230px;padding:12px 14px;border:1px solid rgba(116,190,224,.25);border-radius:10px;background:#0b2c46;color:#d9effc;text-align:left;cursor:pointer;font:inherit;font-size:12px}
.adc-policy-extra strong{color:#fff;white-space:nowrap}
.adc-policy-extra:hover,.adc-policy-extra:focus-visible,.adc-policy-extra[aria-pressed=true]{border-color:#4cc9eb;background:#16415d;outline:none}
@media(max-width:640px){.adc-policy-columns-grid{grid-template-columns:25px minmax(0,1fr);gap:4px}.adc-policy-plot,.adc-policy-y-axis{height:220px}.adc-policy-column-items{gap:4px}.adc-policy-column-label{font-size:9px;width:calc((100% - 25px)/6)}.adc-policy-columns{padding-bottom:65px}.adc-policy-column-value{font-size:11px}.adc-policy-votes{padding:14px}}


/* V3: editorial links and uncluttered story navigation */
.adc-story-inline-link{display:inline-flex;margin-top:12px;padding:9px 0;color:#82def5;text-decoration:none;font-weight:650;border-bottom:1px solid rgba(130,222,245,.4)}
.adc-story-inline-link:hover,.adc-story-inline-link:focus-visible{color:#fff;border-color:#fff}
.adc-story-panel .adc-story-big{font-size:clamp(1.08rem,1.55vw,1.48rem);line-height:1.55}
.adc-story-panel .adc-story-footnote{margin-top:22px}
.adc-amendment-timeline{margin:1.5rem 0;border-left:1px solid rgba(94,211,242,.45);padding-left:1.4rem}.adc-amendment-entry{padding:0 0 1.6rem;margin:0 0 1.4rem;border-bottom:1px solid rgba(145,190,215,.18)}.adc-amendment-entry .adc-story-big{font-size:clamp(1rem,1.6vw,1.3rem);line-height:1.55}.adc-amendment-entry:last-child{border-bottom:0}
/* ADC verified 2026 election seat indicator + official profile refinement */
.official-election-2026{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:8px 13px;border:1px solid rgba(85,224,160,.64);border-radius:999px;background:rgba(85,224,160,.13);color:#b9ffe1;font-size:12px;font-weight:800;letter-spacing:.01em}
.official-election-orb{width:10px;height:10px;border-radius:50%;background:#55e0a0;box-shadow:0 0 0 4px rgba(85,224,160,.15),0 0 12px rgba(85,224,160,.55)}
.official-v4-hero.official-v5-hero{padding:clamp(20px,2.3vw,30px);gap:clamp(16px,2vw,28px)}
.official-v4-hero .official-v4-portrait{height:260px}
.official-v4-hero .official-v4-snapshot{padding:15px 20px}
.official-v4-hero .snapshot-number{padding:9px 0}
.official-story-no-policy{grid-template-columns:minmax(0,1fr)}
.official-v4-story-grid .outcome-steps>div{background:rgba(16,54,77,.8);border-color:rgba(104,185,224,.23)}
.official-v4-story-grid .outcome-steps span{color:#c2d9e9;font-size:12px}
.official-v4-story-grid .outcome-steps strong{color:#fff;font-size:24px}
.official-v4-story-grid .outcome-steps .outcome-law{background:rgba(40,114,104,.23);border-color:rgba(85,224,160,.35)}
.official-v4-story-grid .outcome-rate{background:linear-gradient(145deg,#103653,#163c60)}
.official-v4-story-grid .outcome-neutral-note{font-size:11px}
.official-v4-story-grid .no-data-card{background:rgba(8,33,55,.7);border-color:rgba(103,188,222,.25);color:#a9c4d8}
.record-explorer .official-disclosure>summary{background:linear-gradient(100deg,#0c2a44,#092139)}
.record-explorer .official-disclosure>summary strong{color:#f3faff}
.record-explorer .official-disclosure>summary small{color:#adc8da}
.record-explorer .official-disclosure>summary .disclosure-action{color:#74ddf8}
.record-explorer .official-disclosure-body{background:#09233a;border-top-color:rgba(93,186,226,.2)}
.record-explorer .record-utility-grid .contact-card{background:#0e304a;border-color:rgba(93,186,226,.25)}
.record-explorer .contact-card strong,.record-explorer .contact-card a{color:#e9f8ff}
@media(max-width:720px){.official-v4-hero .official-v4-portrait{height:155px}.official-election-2026{font-size:11px}}

/* Mobile roll calls: readable cards and full-width editorial detail; desktop unchanged. */
@media (max-width: 700px) {
  .adc-vote-explorer, .adc-vote-table-scroll { min-width:0; max-width:100%; }
  .adc-vote-table-scroll { overflow-x:hidden; border:0; background:transparent; }
  .adc-vote-table { display:block; min-width:0; width:100%; border-collapse:separate; }
  .adc-vote-table thead { display:none; }
  .adc-vote-entry { display:block; width:100%; margin:0 0 14px; border:1px solid rgba(116,190,224,.3); border-radius:14px; overflow:hidden; background:#0b253d; }
  .adc-vote-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:17px 15px; }
  .adc-vote-table .adc-vote-row > td { display:block; min-width:0; max-width:none; padding:0; border:0; overflow-wrap:anywhere; }
  .adc-vote-table .adc-vote-row > td::before { content:attr(data-label); display:block; color:#94b6c9; font-size:10px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:5px; }
  .adc-vote-table .adc-vote-row > .adc-vote-issue { grid-column:1/-1; grid-row:1; }
  .adc-vote-table .adc-vote-row > .adc-vote-date { grid-column:1; grid-row:2; }
  .adc-vote-table .adc-vote-row > .adc-vote-action { grid-column:1/-1; }
  .adc-vote-expand { display:block; width:100%; min-height:44px; }
  .adc-vote-detail-row { display:block; width:100%; }
  .adc-vote-detail-row[hidden] { display:none!important; }
  .adc-vote-detail-row > td { display:block; width:100%; padding:0; border:0; }
  .adc-vote-story { width:100%; max-width:100%; min-width:0; padding:20px 15px; }
  .adc-vote-story-layout, .adc-vote-story-pages, .adc-story-panel { min-width:0; max-width:100%; }
  .adc-vote-story-rail { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
  .adc-story-tab { flex:0 0 auto; min-width:105px; }
  .adc-vote-story-masthead h3, .adc-story-big, .adc-story-explainer { overflow-wrap:anywhere; }
}
