/* ======================================================================
   gov_tree.css — Government power-structure tree
   Used by: templates/state_government.html, templates/federal_government.html
   Formal / civic styling — no glows, restrained palette, schematic connectors.
   ====================================================================== */

/* ─────────────────────────────────────────────────────────────
   Base page scaffolding (overrides style.min.css body light bg)
   ───────────────────────────────────────────────────────────── */
html, body { margin: 0; padding: 0; }

body.gt-page {
  background: #0b1524;
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(32,129,195,.08), transparent),
    radial-gradient(ellipse 60% 40% at 80% 110%, rgba(74,111,165,.06), transparent);
  color: #e2e8f0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  text-align: left;
}

/* Header / nav mirrors the .sd-page pattern used elsewhere on the site */
.gt-page .site-header { min-height: auto; padding: .35rem 0 .25rem; position: relative; }
.gt-page .logo-container { display: flex; justify-content: center; align-items: center; padding: .25rem 0; }
.gt-page .logo { height: auto; }
.gt-page .site-nav { position: relative; min-height: 44px; }
.gt-page .menu-toggle { display: none; }
@media (min-width: 881px) {
  .gt-page .site-header { z-index: 3000; }
  .gt-page .site-nav { z-index: 3001; }
  .gt-page .menu-toggle { z-index: 3003; }
}
.gt-page #primary-menu a { color: #fff !important; text-decoration: none; }
@media (max-width: 880px) {
  .gt-page .menu-toggle {
    display: inline-block; background: transparent; border: 0;
    font-size: 1.35rem; z-index: 3003; color: #e2e8f0;
  }
  .gt-page #primary-menu li { margin: 0; }
}

/* Breadcrumb (shared class name used across site) */
.sd-breadcrumb {
  display: flex; flex-wrap: wrap; gap: .3rem; align-items: center;
  list-style: none; padding: 0 .5rem; margin: .6rem 0 1rem;
  font-size: .82rem;
}
.sd-breadcrumb a { color: #93c5fd; text-decoration: none; }
.sd-breadcrumb a:hover { text-decoration: underline; }
.sd-breadcrumb__sep { color: #475569; margin: 0 .15rem; }
.sd-breadcrumb__current { color: #e2efff; font-weight: 600; }

/* ─────────────────────────────────────────────────────────────
   Wrapper
   ───────────────────────────────────────────────────────────── */
.gt-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: .75rem 1rem 3rem;
}

/* ─────────────────────────────────────────────────────────────
   ROOT — "The People" node
   More formal: no laurel, no glow, thin borders, paper surface
   ───────────────────────────────────────────────────────────── */
.gt-people {
  text-align: center;
  margin: 1rem auto 0;
  max-width: 760px;
  padding: 2rem 1.75rem 1.5rem;
  border-radius: 4px;
  background: linear-gradient(180deg, rgba(30,41,59,.45), rgba(15,23,42,.7));
  border: 1px solid rgba(255,255,255,.1);
  border-top: 2px solid rgba(148,163,184,.35);
  box-shadow: 0 1px 0 rgba(255,255,255,.04) inset;
}

.gt-people__kicker {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: .82rem;
  color: #94a3b8;
  letter-spacing: .12em;
  margin: 0 0 .45rem;
  text-transform: lowercase;
}

.gt-people h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.7rem, 3.4vw, 2.4rem);
  color: #f1f5f9;
  margin: 0 0 1.5rem;
  letter-spacing: .005em;
  line-height: 1.15;
}

.gt-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  max-width: 560px;
  margin: 0 auto;
  background: rgba(148,163,184,.15);
  border: 1px solid rgba(148,163,184,.15);
}
.gt-stat {
  padding: .95rem .5rem;
  background: rgba(15,23,42,.8);
  text-align: center;
}
.gt-stat .v {
  display: block;
  font-family: Georgia, serif;
  font-size: 1.4rem;
  font-weight: 400;
  color: #f1f5f9;
  line-height: 1.1;
  letter-spacing: .01em;
}
.gt-stat .l {
  display: block;
  font-size: .66rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-top: .45rem;
  font-weight: 500;
}
.gt-stat--stub .v { color: #475569; font-style: italic; }
.gt-stat--stub::after {
  content: 'pending';
  display: block;
  font-size: .58rem;
  color: #64748b;
  font-style: italic;
  margin-top: .1rem;
  letter-spacing: .05em;
}

/* ─────────────────────────────────────────────────────────────
   TREE CONNECTORS — simple schematic T, no curves
   ───────────────────────────────────────────────────────────── */
.gt-connectors {
  position: relative;
  height: 56px;
  margin: 0 auto;
}
.gt-connectors svg { display: block; width: 100%; height: 100%; overflow: visible; }
.gt-connectors line, .gt-connectors path {
  stroke: rgba(148,163,184,.3);
  stroke-width: 1;
  fill: none;
}
.gt-connectors circle { fill: rgba(148,163,184,.4); }

/* ─────────────────────────────────────────────────────────────
   BRANCHES
   ───────────────────────────────────────────────────────────── */
.gt-branches {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  align-items: start;
}

.gt-node {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  background: rgba(15,23,42,.65);
  border: 1px solid rgba(255,255,255,.08);
  border-top: 2px solid var(--accent);
  transition: border-color .2s, background .2s;
}

.gt-node--leg { --accent: #4a6fa5; --accent-rgb: 74,111,165; }
.gt-node--exec { --accent: #a67c3a; --accent-rgb: 166,124,58; }
.gt-node--jud { --accent: #7a2f3e; --accent-rgb: 122,47,62; }

.gt-node:hover {
  background: rgba(15,23,42,.85);
  border-color: rgba(255,255,255,.14);
  border-top-color: var(--accent);
}

.gt-node > summary {
  list-style: none;
  cursor: pointer;
  padding: 1.25rem 2.75rem 1.1rem 1.25rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  border-bottom: 1px solid transparent;
}
.gt-node > summary::-webkit-details-marker { display: none; }
.gt-node[open] > summary { border-bottom-color: rgba(255,255,255,.08); }

/* Thin chevron */
.gt-node > summary::after {
  content: '';
  position: absolute;
  right: 1.1rem;
  top: 50%;
  width: 9px; height: 9px;
  border-right: 1px solid #94a3b8;
  border-bottom: 1px solid #94a3b8;
  transform: translateY(-70%) rotate(45deg);
  transition: transform .2s, border-color .2s;
}
.gt-node[open] > summary::after {
  transform: translateY(-30%) rotate(-135deg);
  border-color: #e2e8f0;
}

/* Branch icon — flat, no gradient background */
.gt-node__icon {
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  color: var(--accent);
  margin-bottom: .15rem;
}
.gt-node__icon svg { width: 24px; height: 24px; }

.gt-node h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  color: #f1f5f9;
  margin: 0;
  font-weight: 400;
  letter-spacing: .01em;
}

.gt-node__subtitle {
  margin: 0;
  font-size: .74rem;
  color: #94a3b8;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 500;
}

.gt-node__count {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin-top: .5rem;
  padding-top: .5rem;
  border-top: 1px solid rgba(255,255,255,.06);
  font-family: Georgia, serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #e2e8f0;
  line-height: 1;
}
.gt-node__count small {
  font-family: system-ui, sans-serif;
  font-size: .65rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 500;
}

/* ─────────────────────────────────────────────────────────────
   INNER / SUB-NODES
   ───────────────────────────────────────────────────────────── */
.gt-inner { padding: 1rem 1.25rem 1.25rem; }

.gt-sub {
  margin-top: .75rem;
  border-radius: 4px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.07);
  border-top: 1px solid var(--accent);
}
.gt-sub:hover { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.12); }
.gt-sub > summary { padding: .8rem 2.25rem .8rem 1rem; gap: .2rem; }
.gt-sub h3 {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 1.02rem;
  color: #e2e8f0;
  margin: 0;
  letter-spacing: .01em;
}

/* ─────────────────────────────────────────────────────────────
   LEGISLATOR CARD GRID
   ───────────────────────────────────────────────────────────── */
.gt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: .5rem;
  margin-top: .6rem;
}
.gt-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 3px;
  padding: .65rem;
  display: flex;
  gap: .65rem;
  text-decoration: none;
  color: inherit;
  transition: background .15s, border-color .15s;
}
.gt-card:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(var(--accent-rgb), .35);
}
.gt-card__img {
  flex: 0 0 42px;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: #1e293b;
  object-fit: cover;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
}
.gt-card__img--ph {
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; color: #475569;
}
.gt-card__body { flex: 1; min-width: 0; }
.gt-card__name {
  font-weight: 600;
  color: #e2e8f0;
  margin: 0 0 .18rem;
  font-size: .86rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gt-card__meta {
  font-size: .72rem;
  color: #94a3b8;
  margin: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.gt-party {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  margin-right: .3rem;
  vertical-align: middle;
}
.gt-party--d { background: #3b82f6; }
.gt-party--r { background: #ef4444; }
.gt-party--i { background: #a78bfa; }
.gt-party--u { background: #64748b; }

.gt-scrollable {
  max-height: 600px;
  overflow-y: auto;
  padding: .25rem .15rem .25rem 0;
  margin-top: .4rem;
}
.gt-scrollable::-webkit-scrollbar { width: 6px; }
.gt-scrollable::-webkit-scrollbar-track { background: transparent; }
.gt-scrollable::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 3px; }
.gt-scrollable::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.2); }

/* ─────────────────────────────────────────────────────────────
   EXEC / JUSTICE CARDS
   ───────────────────────────────────────────────────────────── */
.gt-exec-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: .55rem;
  margin-top: .5rem;
}
.gt-exec {
  position: relative;
  padding: .85rem 1rem;
  border-radius: 3px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-left: 2px solid var(--accent);
  transition: background .15s, border-color .15s;
}
.gt-exec:hover { background: rgba(255,255,255,.055); }
.gt-exec__title {
  font-size: .66rem;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: .14em;
  margin: 0 0 .25rem;
  font-weight: 600;
}
.gt-exec__name {
  font-family: Georgia, serif;
  font-size: 1rem;
  color: #f1f5f9;
  font-weight: 400;
  margin: 0 0 .2rem;
  letter-spacing: .005em;
}
.gt-exec__meta {
  font-size: .72rem;
  color: #94a3b8;
  margin: 0;
}
.gt-exec--stale { opacity: .72; }
.gt-exec--stale::after {
  content: 'last known';
  position: absolute;
  top: .55rem; right: .6rem;
  font-size: .55rem;
  color: #f87171;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-family: system-ui, sans-serif;
}

.gt-court-head {
  margin: 0 0 .75rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-family: Georgia, serif;
  font-size: 1rem;
  color: #cbd5e1;
}
.gt-court-head strong { color: #f1f5f9; font-weight: 400; }
.gt-court-head small {
  color: #94a3b8; font-weight: 400;
  font-family: system-ui, sans-serif;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-left: .5rem;
}

/* ─────────────────────────────────────────────────────────────
   STUBS & NOTES
   ───────────────────────────────────────────────────────────── */
.gt-stub {
  padding: 1rem 1.15rem;
  color: #94a3b8;
  font-size: .82rem;
  background: rgba(255,255,255,.02);
  border-radius: 3px;
  border: 1px solid rgba(255,255,255,.08);
  line-height: 1.5;
}
.gt-stub strong {
  color: #e2e8f0;
  display: block;
  margin-bottom: .4rem;
  font-family: Georgia, serif;
  font-size: .92rem;
  font-weight: 400;
}

.gt-freshness {
  margin: .85rem 0 0;
  padding: .55rem .75rem;
  background: rgba(248,113,113,.04);
  border-left: 2px solid rgba(248,113,113,.4);
  font-size: .75rem;
  color: #fca5a5;
  font-style: italic;
}

.gt-note {
  font-size: .72rem;
  color: #64748b;
  margin-top: 3rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,.06);
  text-align: center;
  font-family: Georgia, serif;
  font-style: italic;
}
.gt-note a { color: #93c5fd; font-style: normal; }

/* Federal: quick-link cards */
.gt-quickstats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem;
  margin-top: .5rem;
}
.gt-quickstat {
  padding: .9rem;
  border-radius: 3px;
  background: rgba(var(--accent-rgb), .06);
  border: 1px solid rgba(var(--accent-rgb), .2);
  text-align: center;
  text-decoration: none;
  transition: border-color .2s;
}
.gt-quickstat:hover { border-color: rgba(var(--accent-rgb), .5); }
.gt-quickstat .v {
  display: block;
  font-family: Georgia, serif;
  font-size: 1.05rem;
  font-weight: 400;
  color: #f1f5f9;
}
.gt-quickstat .l {
  display: block;
  font-size: .65rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-top: .3rem;
}

/* ─────────────────────────────────────────────────────────────
   LEGISLATOR PROFILE PAGE
   ───────────────────────────────────────────────────────────── */
.gt-profile-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: .75rem 1rem 3rem;
}

.gt-profile-header {
  --accent: #4a6fa5;
  --accent-rgb: 74,111,165;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.5rem;
  align-items: center;
  margin: 1rem 0 1.25rem;
  padding: 1.5rem;
  background: linear-gradient(180deg, rgba(30,41,59,.45), rgba(15,23,42,.7));
  border: 1px solid rgba(255,255,255,.1);
  border-top: 2px solid var(--accent);
  border-radius: 4px;
}

.gt-profile-avatar {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: #1e293b;
  border: 2px solid rgba(var(--accent-rgb), .35);
  object-fit: cover;
  overflow: hidden;
}
.gt-profile-avatar--ph {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: #475569;
}

.gt-profile-head { min-width: 0; }

.gt-profile-kicker {
  font-size: .7rem;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: .14em;
  margin: 0 0 .4rem;
  font-weight: 600;
}

.gt-profile-name {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  color: #f1f5f9;
  margin: 0 0 .85rem;
  font-weight: 400;
  letter-spacing: .005em;
  line-height: 1.15;
}

.gt-profile-chips {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
}

.gt-chip {
  padding: .22rem .6rem;
  border-radius: 3px;
  font-size: .72rem;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  color: #cbd5e1;
  letter-spacing: .02em;
  font-weight: 500;
}
.gt-chip--party-d { background: rgba(59,130,246,.1); border-color: rgba(59,130,246,.3); color: #93c5fd; }
.gt-chip--party-r { background: rgba(239,68,68,.1); border-color: rgba(239,68,68,.3); color: #fca5a5; }
.gt-chip--party-i { background: rgba(167,139,250,.1); border-color: rgba(167,139,250,.3); color: #c4b5fd; }
.gt-chip--party-u { background: rgba(100,116,139,.1); border-color: rgba(100,116,139,.3); color: #cbd5e1; }
.gt-chip--inactive { background: rgba(248,113,113,.08); border-color: rgba(248,113,113,.3); color: #fca5a5; }

.gt-profile-section {
  margin-bottom: 1rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 4px;
  padding: 1.1rem 1.25rem 1.15rem;
}
.gt-profile-section h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: 1.02rem;
  color: #e2e8f0;
  margin: 0 0 .85rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  letter-spacing: .01em;
}

.gt-kv {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: .55rem 1.25rem;
  font-size: .88rem;
  margin: 0;
}
.gt-kv dt {
  color: #94a3b8;
  font-weight: 500;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  padding-top: .15rem;
}
.gt-kv dd {
  margin: 0;
  color: #e2e8f0;
  word-break: break-word;
}
.gt-kv a { color: #93c5fd; text-decoration: none; }
.gt-kv a:hover { text-decoration: underline; }

.gt-back-link {
  display: inline-block;
  margin-top: 1.25rem;
  font-family: Georgia, serif;
  font-style: italic;
  color: #93c5fd;
  text-decoration: none;
  font-size: .85rem;
}
.gt-back-link:hover { text-decoration: underline; }

/* ─────────────────────────────────────────────────────────────
   MOBILE
   ───────────────────────────────────────────────────────────── */
@media (max-width: 880px) {
  .gt-wrap { padding: .5rem .75rem 2rem; }
  .gt-branches { grid-template-columns: 1fr; gap: .75rem; }
  .gt-connectors { height: 24px; }
  .gt-connectors svg .c-fan { display: none; }
  .gt-stats { grid-template-columns: 1fr; }
  .gt-people { padding: 1.5rem 1.25rem 1.25rem; }
  .gt-people h1 { font-size: 1.5rem; }
}
@media (max-width: 640px) {
  .gt-profile-header {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center;
    padding: 1.25rem;
  }
  .gt-profile-chips { justify-content: center; }
  .gt-kv { grid-template-columns: 1fr; gap: .15rem 0; }
  .gt-kv dt { padding-top: .6rem; }
  .gt-kv dt:first-child { padding-top: 0; }
}

/* ══════════════════════════════════════════════════════════════════
   FEDERAL DELEGATION PAGE (state_delegation.html — /state/<slug>)
   Formal treatment aligned with gov_tree system.
   ══════════════════════════════════════════════════════════════════ */
.sd-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: .75rem 1rem 2rem;
}

/* Hero */
.sd-hero {
  text-align: center;
  margin: 1rem auto 1.5rem;
  max-width: 920px;
  padding: 2rem 1.75rem 1.5rem;
  border-radius: 4px;
  background: linear-gradient(180deg, rgba(30,41,59,.45), rgba(15,23,42,.7));
  border: 1px solid rgba(255,255,255,.1);
  border-top: 2px solid #4a6fa5;
  box-shadow: none;
  backdrop-filter: none;
}
.sd-hero h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  color: #f1f5f9;
  margin: 0 0 .45rem;
  letter-spacing: .005em;
  line-height: 1.2;
}
.sd-hero__sub {
  font-size: .78rem;
  color: #94a3b8;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin: 0 0 1.25rem;
}

/* Party bar — thinner */
.sd-party-bar {
  display: flex;
  height: 6px;
  border-radius: 2px;
  overflow: hidden;
  max-width: 420px;
  margin: 0 auto .65rem;
  background: rgba(255,255,255,.05);
}
.sd-party-bar__d { background: #4a6fa5; }
.sd-party-bar__r { background: #b54846; }
.sd-party-bar__i { background: #7a2f3e; }
.sd-party-legend {
  display: flex; justify-content: center; gap: 1.25rem;
  font-size: .74rem; color: #94a3b8;
  margin-bottom: 1.25rem;
}
.sd-party-legend__swatch {
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: .3rem;
  vertical-align: middle;
  border-radius: 2px;
}

/* Stats — ledger grid */
.sd-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px;
  max-width: 760px;
  margin: 1rem auto 0;
  background: rgba(148,163,184,.15);
  border: 1px solid rgba(148,163,184,.15);
}
.sd-stat {
  padding: 1rem .6rem .85rem;
  background: rgba(15,23,42,.85);
  text-align: center;
}
.sd-stat__val {
  font-family: Georgia, serif;
  font-size: 1.5rem;
  font-weight: 400;
  color: #f1f5f9;
  line-height: 1.1;
  letter-spacing: .005em;
}
/* Muted color variants — strip out previous neon treatment */
.sd-stat__val--green,
.sd-stat__val--blue,
.sd-stat__val--purple { color: #f1f5f9; }
.sd-stat__val--amber { color: #d4a24a; }
.sd-stat__val--red { color: #f87171; }
.sd-stat__label {
  font-size: .66rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-top: .5rem;
  font-weight: 500;
}

/* Intro prose — quote-style with accent rail */
.sd-intro {
  margin: 1.25rem auto;
  max-width: 920px;
  padding: 1.1rem 1.25rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-left: 2px solid #4a6fa5;
  border-radius: 4px;
  font-family: Georgia, serif;
  font-size: .95rem;
  line-height: 1.7;
  color: #cbd5e1;
  box-shadow: none;
}
.sd-intro strong { color: #f1f5f9; font-weight: 600; }
.sd-intro::after { display: none; }

/* Census snapshot */
.sd-census {
  margin: 1.25rem auto;
  max-width: 1200px;
  padding: 1.1rem 1.25rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-top: 2px solid #a67c3a;
  border-radius: 4px;
  box-shadow: none;
}
.sd-census__title {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 1.02rem;
  color: #e2e8f0;
  margin: 0 0 .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  letter-spacing: .01em;
  text-transform: none;
}
.sd-census__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .5rem;
}
.sd-census__item {
  padding: .75rem .5rem;
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 3px;
  text-align: center;
}
.sd-census__val {
  font-family: Georgia, serif;
  font-size: 1.1rem;
  color: #f1f5f9;
  font-weight: 400;
  line-height: 1.1;
}
.sd-census__val--red { color: #f87171; }
.sd-census__label {
  font-size: .64rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-top: .4rem;
}
.sd-census__cta {
  display: inline-block;
  margin-top: .85rem;
  font-family: Georgia, serif;
  font-style: italic;
  color: #93c5fd;
  text-decoration: none;
  font-size: .82rem;
}
.sd-census__cta:hover { text-decoration: underline; }

/* Section title */
.sd-section-title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: 1.3rem;
  color: #f1f5f9;
  margin: 2rem 0 1rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
  letter-spacing: .01em;
  text-transform: none;
}

/* Senators */
.sd-senators {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: .6rem;
}
.sd-sen {
  display: flex; align-items: center; gap: .9rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-left: 2px solid #4a6fa5;
  border-radius: 3px;
  padding: .85rem 1rem;
  text-decoration: none;
  color: inherit;
  transition: background .15s, border-color .15s;
  box-shadow: none;
}
.sd-sen:hover {
  background: rgba(15,23,42,.85);
  border-color: rgba(255,255,255,.14);
  border-left-color: #4a6fa5;
  transform: none;
}
.sd-sen__avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: #1e293b;
  padding: 0;
  border: 1.5px solid rgba(255,255,255,.12);
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.sd-sen__avatar--D { border-color: rgba(74,111,165,.5); }
.sd-sen__avatar--R { border-color: rgba(181,72,70,.5); }
.sd-sen__avatar--I { border-color: rgba(122,47,62,.5); }
.sd-sen__avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 50%;
  border: 0;
}
.sd-sen__avatar-placeholder {
  width: 100%; height: 100%;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: Georgia, serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: #64748b;
  background: rgba(255,255,255,.03);
  border: 0;
}
.sd-sen__info { flex: 1; min-width: 0; }
.sd-sen__name {
  font-family: Georgia, serif;
  font-weight: 500;
  font-size: 1rem;
  color: #f1f5f9;
  letter-spacing: .005em;
}
.sd-sen__meta {
  display: flex; flex-wrap: wrap; gap: .4rem .7rem;
  font-size: .76rem; color: #94a3b8;
  margin-top: .3rem;
}
.sd-sen__party-badge {
  font-size: .66rem;
  padding: .1rem .45rem;
  border-radius: 2px;
  font-weight: 600;
  letter-spacing: .04em;
  border: 1px solid transparent;
  text-transform: uppercase;
}
.sd-sen__party-badge--D { background: rgba(74,111,165,.14); color: #93c5fd; border-color: rgba(74,111,165,.3); }
.sd-sen__party-badge--R { background: rgba(181,72,70,.14); color: #fca5a5; border-color: rgba(181,72,70,.3); }
.sd-sen__party-badge--I { background: rgba(122,47,62,.14); color: #c4b5fd; border-color: rgba(122,47,62,.3); }
.sd-sen__stat { font-size: .76rem; color: #cbd5e1; margin-top: .25rem; }
.sd-sen__badge {
  display: inline-block;
  font-size: .66rem;
  padding: .14rem .45rem;
  border-radius: 2px;
  border: 1px solid transparent;
  margin-top: .35rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.sd-sen__badge--up {
  background: rgba(212,162,74,.12);
  color: #d4a24a;
  border-color: rgba(212,162,74,.3);
}
.sd-sen__badge--safe {
  background: rgba(74,111,165,.1);
  color: #93c5fd;
  border-color: rgba(74,111,165,.25);
}

/* House grid — compact rows */
.sd-house-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: .4rem;
}
.sd-rep {
  display: flex; align-items: center; gap: .55rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 3px;
  padding: .5rem .7rem;
  text-decoration: none;
  color: inherit;
  transition: background .15s, border-color .15s;
  font-size: .85rem;
}
.sd-rep:hover {
  background: rgba(15,23,42,.85);
  border-color: rgba(74,111,165,.35);
  transform: none;
}
.sd-rep__dist {
  font-family: Georgia, serif;
  font-size: .75rem;
  color: #94a3b8;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 2px;
  padding: .2rem .4rem;
  min-width: 2.3rem;
  text-align: center;
  flex-shrink: 0;
}
.sd-rep__name {
  color: #e2e8f0;
  font-weight: 500;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sd-rep__party {
  font-size: .66rem;
  padding: .1rem .4rem;
  border-radius: 2px;
  border: 1px solid transparent;
  flex-shrink: 0;
  font-weight: 600;
  letter-spacing: .04em;
}
.sd-rep__party--D { background: rgba(74,111,165,.14); color: #93c5fd; border-color: rgba(74,111,165,.3); }
.sd-rep__party--R { background: rgba(181,72,70,.14); color: #fca5a5; border-color: rgba(181,72,70,.3); }
.sd-rep__party--I { background: rgba(122,47,62,.14); color: #c4b5fd; border-color: rgba(122,47,62,.3); }
.sd-rep__win {
  font-size: .72rem; color: #94a3b8;
  flex-shrink: 0; min-width: 2.8rem; text-align: right;
  font-variant-numeric: tabular-nums;
}
.sd-rep__mra {
  font-size: .7rem; color: #64748b;
  flex-shrink: 0; min-width: 3rem; text-align: right;
  font-variant-numeric: tabular-nums;
}

/* Cross-links grid */
.sd-cross-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: .55rem;
  margin-top: 2rem;
}
.sd-cross-link {
  display: flex; align-items: center; gap: .75rem;
  padding: .9rem 1rem;
  background: rgba(15,23,42,.55);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 3px;
  text-decoration: none;
  color: inherit;
  transition: background .15s, border-color .15s;
}
.sd-cross-link:hover {
  background: rgba(15,23,42,.85);
  border-color: rgba(74,111,165,.3);
}
.sd-cross-link__icon {
  font-size: 1.2rem;
  color: #94a3b8;
  flex-shrink: 0;
  filter: grayscale(.5);
  opacity: .85;
}
.sd-cross-link__text { flex: 1; min-width: 0; }
.sd-cross-link__text strong {
  display: block;
  font-family: Georgia, serif;
  font-weight: 500;
  color: #f1f5f9;
  font-size: .92rem;
  letter-spacing: .005em;
}
.sd-cross-link__text span {
  display: block;
  font-size: .72rem;
  color: #94a3b8;
  margin-top: .2rem;
}

/* Source citations */
.sd-source {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,.06);
  font-family: Georgia, serif;
  font-style: italic;
  font-size: .72rem;
  color: #64748b;
  text-align: center;
  line-height: 1.6;
}
.sd-source a { color: #93c5fd; font-style: normal; text-decoration: none; }
.sd-source a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════
   STATE BILLS INDEX PAGE — session timeline + bill list
   ══════════════════════════════════════════════════════════════════ */
.gt-session-panel {
  margin: 1rem auto 1.5rem;
  max-width: 1080px;
  padding: 1.25rem 1.35rem;
  background: linear-gradient(180deg, rgba(30,41,59,.45), rgba(15,23,42,.7));
  border: 1px solid rgba(255,255,255,.1);
  border-top: 2px solid #4a6fa5;
  border-radius: 4px;
}
.gt-session-panel__label {
  font-size: .66rem;
  color: #4a6fa5;
  text-transform: uppercase;
  letter-spacing: .14em;
  margin: 0 0 .3rem;
  font-weight: 600;
}
.gt-session-panel__cadence {
  margin: 0 0 .35rem;
  font-family: Georgia, serif;
  font-size: 1.05rem;
  color: #f1f5f9;
  font-weight: 500;
  letter-spacing: .005em;
}
.gt-session-panel__description {
  margin: 0 0 1rem;
  font-size: .88rem;
  color: #cbd5e1;
  line-height: 1.55;
  font-family: Georgia, serif;
}

/* Timeline rail */
.gt-timeline {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 1rem 0;
  padding: .5rem 0;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.gt-timeline__session {
  flex: 1;
  padding: .6rem .5rem .5rem;
  text-align: center;
  position: relative;
  border-right: 1px solid rgba(255,255,255,.06);
}
.gt-timeline__session:last-child { border-right: 0; }
.gt-timeline__dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #475569;
  border: 1.5px solid #64748b;
  margin-bottom: .4rem;
}
.gt-timeline__session--past .gt-timeline__dot {
  background: #334155;
  border-color: #475569;
}
.gt-timeline__session--current .gt-timeline__dot {
  background: #4a6fa5;
  border-color: #6185b8;
  box-shadow: 0 0 0 3px rgba(74,111,165,.2);
}
.gt-timeline__session--scheduled .gt-timeline__dot {
  background: transparent;
  border: 1.5px dashed #94a3b8;
}
.gt-timeline__name {
  display: block;
  font-family: Georgia, serif;
  font-size: .82rem;
  color: #e2e8f0;
  margin-bottom: .15rem;
  letter-spacing: .005em;
}
.gt-timeline__session--past .gt-timeline__name { color: #94a3b8; }
.gt-timeline__session--current .gt-timeline__name { color: #f1f5f9; font-weight: 500; }
.gt-timeline__session--scheduled .gt-timeline__name { color: #94a3b8; font-style: italic; }
.gt-timeline__dates {
  display: block;
  font-size: .66rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-variant-numeric: tabular-nums;
}

.gt-session-status {
  margin: 1rem 0 0;
  padding: .75rem 1rem;
  border-radius: 3px;
  font-family: Georgia, serif;
  font-size: .85rem;
  line-height: 1.5;
}
.gt-session-status--in_session {
  background: rgba(74,111,165,.08);
  border-left: 2px solid #4a6fa5;
  color: #93c5fd;
}
.gt-session-status--adjourned {
  background: rgba(166,124,58,.08);
  border-left: 2px solid #a67c3a;
  color: #d4a24a;
}
.gt-session-status--off_year {
  background: rgba(122,47,62,.08);
  border-left: 2px solid #7a2f3e;
  color: #fca5a5;
  font-style: italic;
}
.gt-session-status--prefile {
  background: rgba(100,116,139,.08);
  border-left: 2px solid #64748b;
  color: #cbd5e1;
}
.gt-session-status__label {
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin: 0 0 .2rem;
  font-weight: 600;
  font-family: system-ui, sans-serif;
  font-style: normal;
  opacity: .85;
}
.gt-session-status__msg { margin: 0; color: inherit; }

@media (max-width: 680px) {
  .gt-timeline { flex-direction: column; }
  .gt-timeline__session { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.06); text-align: left; padding-left: 1rem; }
  .gt-timeline__session:last-child { border-bottom: 0; }
}

/* Related nav at bottom */
.delegation-crosslinks {
  max-width: 1280px;
  margin: 1.5rem auto 2rem;
  padding: 0 1rem;
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  justify-content: center;
  font-size: .82rem;
  font-family: Georgia, serif;
}
.delegation-crosslinks a {
  color: #93c5fd;
  text-decoration: none;
  font-style: italic;
}
.delegation-crosslinks a:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════════════
   STATE BILLS LIST — recent-activity bill rows
   ══════════════════════════════════════════════════════════════════ */
.gt-bills {
  max-width: 1080px;
  margin: 1.25rem auto 1.5rem;
}
.gt-bills__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0 .25rem;
  margin-bottom: .6rem;
  font-family: Georgia, serif;
}
.gt-bills__title {
  margin: 0;
  font-size: 1.15rem;
  color: #f1f5f9;
  letter-spacing: .01em;
}
.gt-bills__count {
  font-size: .78rem;
  color: #94a3b8;
  font-family: system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
}
.gt-bills__list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(255,255,255,.06);
}
.gt-bill-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 1rem;
  row-gap: .25rem;
  align-items: baseline;
  padding: .85rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: linear-gradient(180deg, rgba(30,41,59,.25), rgba(15,23,42,.45));
  transition: background .15s ease;
}
.gt-bill-row:hover { background: linear-gradient(180deg, rgba(30,41,59,.55), rgba(15,23,42,.7)); }
.gt-bill-row__id {
  font-family: "SF Mono", "JetBrains Mono", Menlo, monospace;
  font-size: .82rem;
  color: #93c5fd;
  font-weight: 600;
  letter-spacing: .02em;
  white-space: nowrap;
}
.gt-bill-row__title {
  font-family: Georgia, serif;
  font-size: .95rem;
  color: #e2e8f0;
  line-height: 1.4;
  text-decoration: none;
}
.gt-bill-row__title:hover { color: #f1f5f9; text-decoration: underline; }
.gt-bill-row__date {
  font-size: .72rem;
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.gt-bill-row__meta {
  grid-column: 2 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1rem;
  font-size: .76rem;
  color: #94a3b8;
  font-family: system-ui, sans-serif;
}
.gt-bill-row__meta strong { color: #cbd5e1; font-weight: 500; }
.gt-bill-row__meta .pill-D { color: #60a5fa; }
.gt-bill-row__meta .pill-R { color: #fca5a5; }
.gt-bill-row__meta .pill-I { color: #cbd5e1; }
.gt-bill-row__sponsor { color: inherit; text-decoration: none; border-bottom: 1px dotted rgba(148,163,184,.45); }
.gt-bill-row__sponsor:hover strong { color: #f1f5f9; }
.gt-bill-row__sponsor:hover { border-bottom-color: rgba(241,245,249,.7); }
.gt-bills__footer {
  padding: 1rem .5rem;
  font-family: Georgia, serif;
  font-size: .8rem;
  color: #94a3b8;
  text-align: center;
  line-height: 1.55;
}
.gt-bills__footer a { color: #93c5fd; }
.gt-bills__stale {
  margin: .5rem auto 1rem;
  max-width: 1080px;
  padding: .75rem 1rem;
  background: rgba(166,124,58,.08);
  border-left: 2px solid #a67c3a;
  color: #d4a24a;
  font-family: Georgia, serif;
  font-size: .83rem;
  border-radius: 3px;
}
@media (max-width: 680px) {
  .gt-bill-row { grid-template-columns: 1fr; row-gap: .3rem; }
  .gt-bill-row__date { grid-column: 1; }
}
