/* SEI Dashboard — adds Civic Intelligence System components on top of
   the existing dashboard/css/style.css token set.

   This file does NOT redefine existing tokens (--primary, --primary-dark,
   --bg, --card-bg, --text, --text-muted, --border, --shadow, --radius).
   Just adds:
     - the Ember accent
     - the hero stat row
     - the year-card / diff-card / lease-card / flag-chip / cross-ref-badge
       components introduced in .stitch/DESIGN.md
*/

:root {
    --accent-ember: #c44536;        /* Noteworthy disclosure indicator */
    --accent-ember-bg: #fdf3f2;     /* Tinted bg for ember-flagged surfaces */
}

/* ============================================================
   Defensive left-alignment — every SEI-built section starts
   left-aligned. Override explicitly when something must center
   (hero blocks below).
   ============================================================ */
.sei-overview-grid,
.sei-overview-grid *,
.sei-leases-list,
.sei-leases-list *,
.sei-officials-list,
.sei-officials-list *,
#changes-list,
#changes-list *,
#recent-changes,
#recent-changes *,
.sei-profile-layout,
.sei-profile-layout * {
    text-align: left;
}

/* Empty-state and pagination summary copy can stay quiet + left-aligned */
.empty-msg {
    color: var(--text-muted);
    padding: 1.25rem 0;
}
.pagination-summary {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin-top: 0.5rem;
    text-align: center;
}
.card-more {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border);
}

/* ============================================================
   Hero stat row — overview page
   Four-up flat stats, no card chrome.
   ============================================================ */

.sei-hero {
    background: var(--bg);
    padding: 2.75rem 2rem 2.5rem;
    margin: -2rem -2rem 2.25rem;       /* break out of .container padding */
    border-bottom: 1px solid var(--border);
}

.sei-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    max-width: 1200px;
    margin: 0 auto;
}

.sei-hero-stat {
    border-left: 1px solid var(--border);
    padding-left: 1.75rem;
    padding-right: 1rem;
    text-align: left;
}
.sei-hero-stat:first-child { border-left: none; padding-left: 0; }

.sei-hero-stat .value {
    font-size: 2.75rem;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.025em;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
}
.sei-hero-stat .label {
    margin-top: 0.6rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
}

.sei-hero-deck {
    max-width: 720px;
    margin: 1.5rem auto 0;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
    text-align: left;
}
.sei-hero-deck a { color: var(--primary); }

.profile-empty, .profile-error {
    padding: 2rem;
    text-align: left;
}
.profile-empty h2, .profile-error h2 {
    color: var(--primary-dark);
    font-size: 1.1rem;
    font-weight: 600;
    border: none;
    margin-bottom: 0.5rem;
}
.profile-empty p, .profile-error p {
    color: var(--text-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}
.profile-error .error-detail {
    margin-top: 0.75rem;
    font-size: 0.8rem;
}

@media (max-width: 768px) {
    .sei-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
    .sei-hero-stat:nth-child(3) { border-left: none; padding-left: 0; }
    .sei-hero-stat .value { font-size: 2rem; }
}

/* ============================================================
   Activity feed (recently amended)
   ============================================================ */

.sei-change-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.1rem 1.5rem 1.15rem;
    margin-bottom: 0.65rem;
}
.sei-change-card .meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 0.55rem;
}
.sei-change-card .meta-left { min-width: 0; flex: 1; }
.sei-change-card .meta-left .date-line {
    font-size: 0.7rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.2rem;
}
.sei-change-card .meta-left .name {
    font-weight: 600;
    font-size: 1rem;
    color: var(--text);
    line-height: 1.3;
}
.sei-change-card .meta-left .name a {
    color: inherit;
    text-decoration: none;
}
.sei-change-card .meta-left .name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.sei-change-card .meta-left .agency {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-top: 0.15rem;
    line-height: 1.35;
}
.sei-year-badge {
    flex-shrink: 0;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--primary);
    background: var(--bg);
    border: 1px solid var(--border);
    padding: 0.2rem 0.55rem;
    border-radius: 4px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}
.sei-change-summary {
    color: var(--text);
    font-size: 0.88rem;
    line-height: 1.55;
}

/* Subdued card subtitle (used after .card h2) */
.card-sub {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin: -0.5rem 0 0.85rem;
}

/* ============================================================
   Noteworthy callout — the "Leases to AL gov" card on overview
   ============================================================ */

.sei-card-noteworthy {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    border-left: 4px solid var(--accent-ember);
}
.sei-card-noteworthy h2 {
    color: var(--primary-dark);
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}
.sei-card-noteworthy p {
    color: var(--text-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    margin-bottom: 0.85rem;
}

/* ============================================================
   Tertiary text-only "see all →" links
   ============================================================ */

.sei-link-more {
    display: inline-block;
    color: var(--primary-light);
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
}
.sei-link-more:hover { text-decoration: underline; }
.sei-eyebrow-link {
    float: right;
    color: var(--text-muted);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
}
.sei-eyebrow-link:hover { color: var(--primary); }

/* ============================================================
   Leaderboard rows (top officials by other compensation)
   ============================================================ */

.sei-leaderboard-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: start;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border);
}
.sei-leaderboard-row:last-of-type { border-bottom: none; }
.sei-leaderboard-row .lb-info { min-width: 0; }
.sei-leaderboard-row .lb-name {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--text);
    line-height: 1.25;
}
.sei-leaderboard-row .lb-name a {
    color: inherit;
    text-decoration: none;
}
.sei-leaderboard-row .lb-name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.sei-leaderboard-row .lb-agency {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 0.12rem;
    line-height: 1.35;
}
.sei-leaderboard-row .lb-payers {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    margin-top: 0.45rem;
}
.sei-leaderboard-row .lb-band {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
    padding-top: 0.08rem;
}

/* ============================================================
   Payer chips
   ============================================================ */

.sei-chip {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--text);
    background: var(--bg);
    border-radius: 999px;
    padding: 0.18rem 0.65rem;
    line-height: 1.4;
}
a.sei-chip-link {
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
}
a.sei-chip-link:hover {
    background: var(--primary);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   Top payers — horizontal bar list
   ============================================================ */

.sei-bar-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--border);
    font-size: 0.85rem;
}
.sei-bar-row:last-child { border-bottom: none; }
.sei-bar-row .br-label {
    position: relative;
    padding: 0.3rem 0.6rem;
    color: var(--text);
    overflow: hidden;
}
.sei-bar-row .br-fill {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    background: var(--primary-light);
    opacity: 0.18;
    z-index: 0;
}
.sei-bar-row .br-label > span { position: relative; z-index: 1; }
.sei-bar-row .br-count {
    font-weight: 600;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
}
a.sei-bar-row-link {
    text-decoration: none;
    color: inherit;
    border-radius: 4px;
    transition: background 0.12s;
}
a.sei-bar-row-link:hover {
    background: var(--bg);
    text-decoration: none;
}
a.sei-bar-row-link:hover .br-label .br-fill {
    opacity: 0.32;
}

/* ============================================================
   Profile page — year cards + diff cards
   ============================================================ */

.sei-profile-header {
    background: var(--card-bg);
    padding: 1.75rem 0 1.5rem;
    margin: -2rem -2rem 1.5rem;
    padding-left: 2rem; padding-right: 2rem;
    border-bottom: 1px solid var(--border);
}
.sei-profile-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: start;
}
.sei-profile-name {
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary-dark);
    letter-spacing: -0.01em;
    line-height: 1.15;
}
.sei-profile-address {
    color: var(--text);
    font-size: 0.95rem;
    margin-top: 0.4rem;
}
.sei-profile-meta {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin-top: 0.25rem;
}
.sei-agency-tag {
    text-align: right;
}
.sei-agency-tag .agency-level {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    background: var(--primary-dark);
    color: #fff;
    padding: 0.18rem 0.5rem;
    border-radius: 3px;
}
.sei-agency-tag .agency-name {
    font-weight: 500;
    font-size: 1.05rem;
    color: var(--text);
    margin-top: 0.4rem;
}
.sei-agency-tag .agency-role {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-top: 0.15rem;
}

@media (max-width: 768px) {
    .sei-profile-header-inner { grid-template-columns: 1fr; }
    .sei-agency-tag { text-align: left; }
    .sei-profile-name { font-size: 1.5rem; }
}

/* Year card */
.sei-year-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.5rem 1.75rem;
    margin-bottom: 0.5rem;
}
.sei-year-card .year-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 1rem;
}
.sei-year-card .year-num {
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
}
.sei-year-card .year-filed {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.sei-flag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 1rem;
}
.sei-flag {
    display: inline-block;
    font-size: 0.75rem;
    background: var(--card-bg);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 999px;
    padding: 0.25rem 0.7rem;
    line-height: 1.4;
}
.sei-flag.new::before {
    content: '';
    display: inline-block;
    width: 6px; height: 6px;
    background: var(--success);
    border-radius: 50%;
    margin-right: 0.4rem;
    vertical-align: middle;
}
.sei-flag.noteworthy {
    color: var(--accent-ember);
    border-color: var(--accent-ember);
    background: var(--accent-ember-bg);
}

.sei-year-subgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.sei-year-subgrid .sub-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 0.5rem;
}
.sei-year-subgrid .payer-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.sei-income-pairs {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.4rem 1rem;
    font-size: 0.85rem;
}
.sei-income-pairs dt { color: var(--text-muted); }
.sei-income-pairs dd {
    color: var(--text);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

@media (max-width: 768px) {
    .sei-year-subgrid { grid-template-columns: 1fr; gap: 1rem; }
}

/* Diff card */
.sei-diff-card {
    background: var(--bg);
    border-radius: 4px;
    padding: 0.85rem 1.1rem;
    margin: -0.25rem 0 0.5rem 2rem;
}
.sei-diff-card .diff-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 0.4rem;
}
.sei-diff-card ul {
    list-style: none;
    margin: 0; padding: 0;
}
.sei-diff-card li {
    font-size: 0.85rem;
    color: var(--text);
    line-height: 1.55;
    font-variant-numeric: tabular-nums;
}
.sei-diff-card li::before {
    display: inline-block;
    width: 1.2em;
    font-weight: 600;
    color: var(--text-muted);
}
.sei-diff-card li.add::before    { content: '+'; color: var(--success); }
.sei-diff-card li.drop::before   { content: '−'; color: var(--accent); }
.sei-diff-card li.shift::before  { content: '→'; color: var(--primary); }
.sei-diff-card li.flag-new::before     { content: '★'; color: var(--success); }
.sei-diff-card li.flag-cleared::before { content: '✕'; color: var(--text-muted); }

/* Year-card actions row (replaces inline "Load full filing detail →") */
.sei-year-card .year-actions {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--border);
}

/* Diff card placeholder copy */
.sei-diff-card .diff-placeholder {
    color: var(--text-muted);
    font-size: 0.85rem;
    font-style: italic;
}

/* "Show all filing details" toggle */
/* Overview grid columns: stretch to equal height so the feed bottom
   aligns with the bottom of the right-side stack. */
.sei-overview-grid { align-items: stretch; }
.sei-overview-grid .col-feed,
.sei-overview-grid .col-side { display: flex; flex-direction: column; }

/* ============================================================ */
/* "For reporters" 2×2 grid of story-hook cards                 */
/* ============================================================ */
.sei-reporter-section {
    margin-top: 3rem;
}
.sei-section-head {
    margin-bottom: 1.25rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--border);
}
.sei-section-head h2 {
    margin: 0 0 0.25rem;
    font-size: 1.45rem;
    color: var(--text);
}
.sei-section-sub {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.9rem;
}
.sei-reporter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
}
@media (max-width: 900px) {
    .sei-reporter-grid { grid-template-columns: 1fr; }
}
.sei-reporter-grid .card h3 {
    margin: 0 0 0.25rem;
    font-size: 1.05rem;
    color: var(--primary-dark);
}
.sei-reporter-grid .card .card-sub {
    margin: 0 0 0.85rem;
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.4;
}
.sei-reporter-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sei-reporter-list li {
    padding: 0.65rem 0;
    border-top: 1px solid var(--border);
}
.sei-reporter-list li:first-child { border-top: none; padding-top: 0; }
.sei-reporter-list .rp-name {
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    font-size: 0.92rem;
}
.sei-reporter-list .rp-name:hover { text-decoration: underline; }
.sei-reporter-list .rp-sub {
    color: var(--text-muted);
    font-size: 0.78rem;
    margin-top: 0.15rem;
}
.sei-reporter-list .rp-detail {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.8rem;
    align-items: baseline;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: var(--text);
}
.sei-reporter-list .rp-shift {
    font-variant-numeric: tabular-nums;
}
.sei-reporter-list .rp-arrow {
    color: var(--accent-ember);
    font-weight: 600;
    margin: 0 0.15rem;
}
.sei-reporter-list .rp-tag {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}
.sei-reporter-list .rp-count {
    font-weight: 600;
    color: var(--text);
}
.sei-reporter-list .rp-sample {
    color: var(--text-muted);
}

.sei-detail-toggle {
    background: none;
    border: none;
    padding: 0;
    color: var(--primary);
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    text-align: left;
}
.sei-detail-toggle:hover { text-decoration: underline; }

/* Fold-out filing-detail panel inside year card */
.sei-filing-detail {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--border);
}
.sei-detail-section { margin-bottom: 1.4rem; }
.sei-detail-section:last-child { margin-bottom: 0; }
.sei-detail-section-title {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin: 0 0 0.5rem;
}
.sei-detail-qa {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 0.4rem 1.25rem;
    font-size: 0.85rem;
    margin: 0;
}
.sei-detail-qa dt {
    color: var(--text-muted);
    line-height: 1.45;
    white-space: pre-line;
}
.sei-detail-qa dd {
    margin: 0;
    color: var(--text);
    line-height: 1.45;
    word-break: break-word;
    white-space: pre-line;
}
.sei-detail-qa dd.is-na { color: var(--text-muted); font-style: italic; }
@media (max-width: 640px) {
    .sei-detail-qa { grid-template-columns: 1fr; gap: 0.15rem 0; }
    .sei-detail-qa dd { margin-bottom: 0.5rem; }
}

/* Spouse Employers directory list */
.sei-spouse-employers-list .row {
    display: grid;
    grid-template-columns: minmax(0, 3fr) 110px 140px;
    gap: 1rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--border);
    align-items: baseline;
}
.sei-spouse-employers-list .row.header {
    font-size: 0.7rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border);
}
.sei-spouse-employers-list .col-name a { color: var(--primary); text-decoration: none; font-weight: 500; }
.sei-spouse-employers-list .col-name a:hover { text-decoration: underline; }
.sei-spouse-employers-list .col-years,
.sei-spouse-employers-list .col-count { color: var(--text-muted); font-size: 0.85rem; font-variant-numeric: tabular-nums; }
.sei-spouse-employers-list .col-count { text-align: right; }
.page-helper {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin: 0.5rem 0 0;
    line-height: 1.5;
}

/* Spouse-employer page: toggle row for include-same-employer */
.payer-toggle-row {
    background: var(--bg);
    border-left: 3px solid var(--text-muted);
    padding: 0.5rem 0.75rem;
    margin: 0.85rem 0;
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}
.payer-toggle-row a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    white-space: nowrap;
    margin-left: 0.4rem;
}
.payer-toggle-row a:hover { text-decoration: underline; }

/* ============================================================ */
/* Global search results                                        */
/* ============================================================ */
.sei-search-status {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin: 0.75rem 0 1.5rem;
}
.sei-search-results { display: flex; flex-direction: column; gap: 2rem; }
.sei-search-group {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.25rem 1.5rem;
}
.sei-search-group-title {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    color: var(--primary-dark);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.sei-search-group-count {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
}
.sei-search-list { list-style: none; margin: 0; padding: 0; }
.sei-search-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--border);
    font-size: 0.9rem;
}
.sei-search-list li:first-child { border-top: none; padding-top: 0; }
.sei-search-list .search-name {
    color: var(--primary);
    font-weight: 500;
    text-decoration: none;
}
.sei-search-list .search-name:hover { text-decoration: underline; }
.sei-search-list .search-sub {
    color: var(--text-muted);
    font-size: 0.78rem;
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    text-align: right;
}

/* ============================================================ */
/* Agencies directory + agency profile                          */
/* ============================================================ */
.sei-agencies-list .row {
    display: grid;
    grid-template-columns: minmax(0,3fr) 110px 90px 130px;
    gap: 1rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--border);
    align-items: baseline;
}
.sei-agencies-list .row.header {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border);
}
.sei-agencies-list .col-name a { color: var(--primary); text-decoration: none; font-weight: 500; }
.sei-agencies-list .col-name a:hover { text-decoration: underline; }
.sei-agencies-list .col-years,
.sei-agencies-list .col-filings { color: var(--text-muted); font-size: 0.85rem; font-variant-numeric: tabular-nums; }
.sei-agency-level-pill {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 0.1rem 0.45rem;
}
.sei-agency-level-pill.state     { color: var(--primary); border-color: var(--primary); }
.sei-agency-level-pill.county    { color: #6b6b89; border-color: #b5b5c5; }
.sei-agency-level-pill.municipal { color: #6f6646; border-color: #cfc7a9; }

/* Agency profile components */
.agency-stats { display: flex; flex-direction: column; gap: 0.5rem; }
.agency-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}
.agency-stat-count { color: var(--text-muted); font-size: 0.85rem; font-variant-numeric: tabular-nums; }

.agency-by-year { display: flex; flex-direction: column; gap: 0.4rem; }
.ayy-row {
    display: grid;
    grid-template-columns: 60px 1fr 70px;
    gap: 0.75rem;
    align-items: center;
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}
.ayy-year { color: var(--text-muted); }
.ayy-bar { height: 14px; background: var(--bg); border-radius: 3px; overflow: hidden; }
.ayy-fill { height: 100%; background: var(--primary); }
.ayy-n { text-align: right; color: var(--text); }

.agency-officials { display: flex; flex-direction: column; max-height: 600px; overflow-y: auto; }
.ao-row {
    display: grid;
    grid-template-columns: 1fr 110px 100px;
    gap: 0.75rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid var(--border);
    align-items: baseline;
    font-size: 0.9rem;
}
.ao-row:last-child { border-bottom: none; }
.ao-name { color: var(--primary); text-decoration: none; font-weight: 500; }
.ao-name:hover { text-decoration: underline; }
.ao-years, .ao-filings { color: var(--text-muted); font-size: 0.8rem; font-variant-numeric: tabular-nums; }

.agency-top-payers { display: flex; flex-direction: column; }
.atp-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    font-size: 0.88rem;
}
.atp-row:last-child { border-bottom: none; }
.atp-row:hover .atp-name { text-decoration: underline; color: var(--primary); }
.atp-name { color: var(--text); flex: 1; }
.atp-count { color: var(--text-muted); font-variant-numeric: tabular-nums; }

@media (max-width: 700px) {
    .sei-agencies-list .row { grid-template-columns: 1fr; gap: 0.2rem; }
    .ao-row { grid-template-columns: 1fr; gap: 0.2rem; }
    .ayy-row { grid-template-columns: 50px 1fr 60px; }
}

/* Repeating-question rendered as a table (e.g., List Business × N) */
.sei-detail-table-wrap {
    margin: 0.75rem 0 0;
    overflow-x: auto;
}
.sei-detail-table-wrap + .sei-detail-table-wrap { margin-top: 1rem; }
.sei-detail-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}
.sei-detail-table th,
.sei-detail-table td {
    text-align: left;
    padding: 0.4rem 0.75rem 0.4rem 0;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
    line-height: 1.4;
}
.sei-detail-table th {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.45rem;
}
.sei-detail-table td.qa-na { color: var(--text-muted); font-style: italic; }
.sei-detail-table-count {
    margin-top: 0.4rem;
    font-size: 0.75rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* Raw filings card (right rail) */
.raw-filings-card .rail-helper {
    color: var(--text-muted);
    font-size: 0.75rem;
    line-height: 1.4;
    margin: 0 0 0.65rem;
}
.raw-filings-card .raw-filing-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--border);
}
.raw-filings-card .raw-filing-row:last-of-type { border-bottom: none; }
.raw-filings-card .rf-meta strong {
    font-size: 0.85rem;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}
.raw-filings-card .rf-meta .rf-id {
    color: var(--text-muted);
    font-size: 0.72rem;
    margin-left: 0.5rem;
    font-variant-numeric: tabular-nums;
}
.raw-filings-card .rf-link {
    font-size: 0.8rem;
    color: var(--primary);
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}
.raw-filings-card .rf-link:hover { text-decoration: underline; }

/* Profile right rail */
.sei-profile-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 1.5rem;
    align-items: start;
}
.sei-profile-rail {
    position: sticky;
    top: 80px;
}
.sei-profile-rail .card {
    padding: 1.25rem;
    margin-bottom: 1rem;
}
.sei-profile-rail .rail-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 0.6rem;
}

@media (max-width: 1024px) {
    .sei-profile-layout { grid-template-columns: 1fr; }
    .sei-profile-rail { position: static; }
}

/* Cross-reference badges (lobbyist match confidence) */
.sei-badge-conf {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 0.25rem 0.55rem;
    border-radius: 3px;
}
.sei-badge-conf.high {
    background: var(--accent-ember);
    color: #fff;
}
.sei-badge-conf.medium {
    background: var(--warning);
    color: #fff;
}
.sei-badge-conf.low {
    background: var(--bg);
    color: var(--text-muted);
    border: 1px solid var(--border);
}

/* ============================================================
   Breadcrumb (used on profile, agency, etc.)
   ============================================================ */
.sei-breadcrumb {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin: -1rem 0 1.25rem;
}
.sei-breadcrumb a {
    color: var(--primary);
    text-decoration: none;
}
.sei-breadcrumb a:hover { text-decoration: underline; }

/* ============================================================
   Leases page — editorial hero + lease entry cards
   ============================================================ */

.sei-leases-hero {
    background: var(--bg);
    padding: 3.5rem 0 2.5rem;
    margin: -2rem -2rem 2rem;
    padding-left: 2rem;
    padding-right: 2rem;
    text-align: center;
}
.sei-leases-hero-inner {
    max-width: 760px;
    margin: 0 auto;
}
.sei-leases-eyebrow {
    color: var(--accent-ember);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 0.75rem;
}
.sei-leases-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary-dark);
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin-bottom: 1rem;
}
.sei-leases-deck {
    color: var(--text);
    font-size: 1.05rem;
    line-height: 1.55;
    margin-bottom: 1.5rem;
}
.sei-year-selector {
    display: inline-flex;
    gap: 0.5rem;
    justify-content: center;
}
.sei-year-selector a {
    padding: 0.4rem 0.85rem;
    border: 1px solid var(--border);
    background: var(--card-bg);
    color: var(--text);
    font-size: 0.85rem;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
    font-variant-numeric: tabular-nums;
}
.sei-year-selector a:hover { border-color: var(--primary); }
.sei-year-selector a.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

@media (max-width: 768px) {
    .sei-leases-title { font-size: 1.7rem; }
}

/* Lease entry card — editorial spread, left-aligned for clarity */
.sei-leases-list {
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding-top: 0.5rem;
}
.sei-lease-card {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.75rem 2rem 1.5rem;
    border-left: 4px solid var(--accent-ember);
}
.sei-lease-card .lease-eyebrow {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 0.5rem;
}
.sei-lease-card .lease-name {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--primary-dark);
    line-height: 1.25;
    margin: 0 0 0.2rem;
}
.sei-lease-card .lease-name a {
    color: inherit;
    text-decoration: none;
}
.sei-lease-card .lease-name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.sei-lease-card .lease-role {
    color: var(--text-muted);
    font-size: 0.88rem;
    line-height: 1.4;
}
.sei-lease-card hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 1.1rem 0 1rem;
}
.sei-lease-card .lease-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
    margin-bottom: 1.1rem;
}
.sei-lease-card .lease-sub-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 0.4rem;
}
.sei-lease-card .lease-statement {
    color: var(--text);
    font-size: 0.92rem;
    line-height: 1.55;
}
.sei-lease-card .lease-lessor {
    color: var(--text);
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.4;
}
.sei-lease-card .lease-lessor-empty {
    color: var(--text-muted);
    font-style: italic;
    font-weight: 400;
}
.sei-lease-card .lease-band {
    color: var(--text-muted);
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    margin-top: 0.35rem;
}
.sei-lease-card .lease-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 0.4rem;
}
.sei-flag-chip-ember {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--accent-ember-bg);
    color: var(--accent-ember);
    border: 1px solid var(--accent-ember);
    border-radius: 3px;
    padding: 0.2rem 0.55rem;
}

@media (max-width: 768px) {
    .sei-lease-card { padding: 1.25rem; }
    .sei-lease-card .lease-grid { grid-template-columns: 1fr; gap: 1rem; }
}

/* Methodology block */
.sei-methodology {
    max-width: 760px;
    margin: 3rem auto 0;
    padding: 1.5rem;
    background: var(--bg);
    border-radius: var(--radius);
}
.sei-methodology h3 {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
}
.sei-methodology p {
    color: var(--text);
    font-size: 0.9rem;
    line-height: 1.55;
}

/* ============================================================
   Overview layout: 60/40 two-column for activity + side modules
   ============================================================ */

.sei-overview-grid {
    display: grid;
    grid-template-columns: 60fr 40fr;
    gap: 1.5rem;
    align-items: start;
}
.sei-overview-grid > .col-feed > h2 {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--primary-dark);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border);
}
.sei-overview-grid > .col-side .card {
    padding: 1.25rem;
}

@media (max-width: 1024px) {
    .sei-overview-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Officials directory rows (lighter than data-table)
   ============================================================ */
.sei-officials-list {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.sei-officials-list .row {
    display: grid;
    grid-template-columns: 1fr 110px 100px;
    gap: 1rem;
    align-items: center;
    padding: 0.7rem 1.5rem;
    border-bottom: 1px solid var(--border);
}
.sei-officials-list .row:last-child { border-bottom: none; }
.sei-officials-list .row:not(.header):hover { background: var(--bg); }
.sei-officials-list .row.header {
    background: var(--bg);
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}
.sei-officials-list .row.header > div {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
.sei-officials-list .col-name {
    font-weight: 600;
    font-size: 0.95rem;
    text-align: left;
}
.sei-officials-list .col-name a {
    color: var(--text);
    text-decoration: none;
}
.sei-officials-list .col-name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.sei-officials-list .col-years,
.sei-officials-list .col-filings {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    text-align: left;
    white-space: nowrap;
}

/* ============================================================
   Payer detail page
   ============================================================ */
.payer-header {
    margin-bottom: 1.75rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--border);
}
.payer-eyebrow {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 0.5rem;
}
.payer-name {
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary-dark);
    letter-spacing: -0.015em;
    line-height: 1.15;
    margin: 0 0 0.5rem;
}
.payer-meta {
    color: var(--text);
    font-size: 0.95rem;
    line-height: 1.55;
    max-width: 720px;
}
.payer-aliases {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem;
}
.payer-aliases .aliases-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-right: 0.25rem;
}
.payer-aliases .alias-chip {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--text);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    line-height: 1.4;
}

.payer-year-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 1rem;
}
.payer-year-filter a {
    padding: 0.3rem 0.7rem;
    border: 1px solid var(--border);
    background: var(--card-bg);
    color: var(--text);
    font-size: 0.8rem;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
    font-variant-numeric: tabular-nums;
}
.payer-year-filter a:hover { border-color: var(--primary); }
.payer-year-filter a.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.payer-year-block { margin-bottom: 2rem; }
.payer-year-head {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--primary-dark);
    margin-bottom: 0.85rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border);
}
.payer-year-head .payer-year-count {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--text-muted);
    margin-left: 0.5rem;
}

.payer-rows {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.payer-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: start;
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid var(--border);
}
.payer-row:last-child { border-bottom: none; }
.payer-row .pr-info { min-width: 0; }
.payer-row .pr-name {
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.3;
}
.payer-row .pr-name a {
    color: var(--text);
    text-decoration: none;
}
.payer-row .pr-name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.payer-row .pr-agency {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin-top: 0.15rem;
}
.payer-row .pr-copayers {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem;
}
.payer-row .pr-copayers-label {
    font-size: 0.72rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-right: 0.25rem;
}
.payer-row .pr-copayer-chip {
    font-size: 0.72rem;
}
.payer-row .pr-band {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--primary-dark);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: right;
    padding-top: 0.1rem;
}
.payer-empty {
    padding: 2rem;
    color: var(--text-muted);
}

/* ============================================================
   Payers directory page (sister of officials directory)
   ============================================================ */
.sei-sort-bar {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.sei-sort-bar .sort-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
.sei-sort-bar .sort-link {
    font-size: 0.85rem;
    color: var(--text-muted);
    text-decoration: none;
    padding: 0.2rem 0.55rem;
    border-radius: 4px;
    border: 1px solid transparent;
}
.sei-sort-bar .sort-link:hover {
    color: var(--text);
    background: var(--bg);
    text-decoration: none;
}
.sei-sort-bar .sort-link.active {
    color: var(--primary-dark);
    background: var(--card-bg);
    border-color: var(--border);
    font-weight: 600;
}

.sei-payers-list {
    background: var(--card-bg);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
}
.sei-payers-list .row {
    display: grid;
    grid-template-columns: 1fr 130px;
    gap: 1rem;
    align-items: center;
    padding: 0.7rem 1.5rem;
    border-bottom: 1px solid var(--border);
}
.sei-payers-list .row:last-child { border-bottom: none; }
.sei-payers-list .row:not(.header):hover { background: var(--bg); }
.sei-payers-list .row.header {
    background: var(--bg);
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}
.sei-payers-list .row.header > div {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
}
.sei-payers-list .col-name {
    font-weight: 600;
    font-size: 0.92rem;
    text-align: left;
}
.sei-payers-list .col-name a {
    color: var(--text);
    text-decoration: none;
}
.sei-payers-list .col-name a:hover {
    color: var(--primary);
    text-decoration: underline;
}
.sei-payers-list .variant-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 0.05rem 0.4rem;
    margin-left: 0.4rem;
    vertical-align: middle;
    cursor: help;
}
.sei-payers-list .col-officials {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
    text-align: left;
    white-space: nowrap;
}

/* Search input — reuses existing styling where possible */
.sei-search-bar {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
}
.sei-search-bar input {
    flex: 1;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: 0.95rem;
    font-family: inherit;
    background: var(--card-bg);
}
.sei-search-bar input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(26, 82, 118, 0.1);
}
