/* Shared site chrome: sticky nav, mobile menu, footer, heading fix rows, chart legends */
.site-nav{position:sticky;top:0;z-index:1000;background:var(--navy,#0b1020);display:flex;align-items:center;gap:12px;padding:8px 16px;flex-wrap:wrap}
.site-nav .brand{display:inline-flex;align-items:center;gap:8px;color:#fff;font-family:Inter,system-ui,sans-serif;font-weight:800;text-decoration:none;margin-right:4px;white-space:nowrap;min-height:44px}
.site-nav .brand img{display:block}
.nav-toggle{display:none;align-items:center;justify-content:center;margin-left:auto;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid #4a5788;border-radius:8px;background:transparent;color:#fff;cursor:pointer}
.nav-toggle:focus-visible{outline:3px solid var(--or,#ffb020);outline-offset:2px}
.nav-toggle-bars,.nav-toggle-bars::before,.nav-toggle-bars::after{display:block;width:18px;height:2px;background:#fff;border-radius:1px;position:relative;transition:transform .15s ease}
.nav-toggle-bars::before,.nav-toggle-bars::after{content:"";position:absolute;left:0}
.nav-toggle-bars::before{top:-6px}.nav-toggle-bars::after{top:6px}
.site-nav.is-open .nav-toggle-bars{background:transparent}
.site-nav.is-open .nav-toggle-bars::before{top:0;transform:rotate(45deg)}
.site-nav.is-open .nav-toggle-bars::after{top:0;transform:rotate(-45deg)}
.nav-menu{display:flex;align-items:center;gap:14px;flex:1 1 auto;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
.nav-menu a{color:#d5dcf0;text-decoration:none;font:500 14px Inter,system-ui,sans-serif;min-height:44px;display:inline-flex;align-items:center;padding:0 2px}
.nav-menu a:focus-visible{outline:3px solid var(--or,#ffb020);outline-offset:2px}
.nav-menu a.nav-cta{background:#ffb020;color:#0b1020;font-weight:700;border-radius:999px;padding:5px 12px;margin-left:4px}
@media(max-width:900px){
  .nav-toggle{display:inline-flex}
  .nav-menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow:visible;white-space:normal;background:var(--navy,#0b1020);border-top:1px solid #2c3a6a;padding:8px 12px 14px;gap:0;box-shadow:0 12px 24px rgba(0,0,0,.35)}
  .site-nav.is-open .nav-menu{display:flex}
  .nav-menu a{padding:10px 12px;min-height:44px;border-radius:8px}
  .nav-menu a.nav-cta{margin:8px 0 0;justify-content:center}
  .site-nav{position:sticky;overflow:visible}
}
.hrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin:18px 0 8px}
.hrow h2{margin:0;flex:1 1 auto}
.hrow .fix,a.fix{font:500 14px Inter,system-ui,sans-serif;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.chart-legend{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:10px 18px;font:500 14px/1.4 Inter,system-ui,sans-serif;color:var(--ink,#14171f)}
.chart-legend li{display:inline-flex;align-items:flex-start;gap:8px;max-width:100%}
.chart-legend .sw{flex:0 0 auto;width:14px;height:14px;margin-top:3px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.site-ft{background:var(--navy,#0b1020);color:#d5dcf0;padding:30px 0;font-size:14px}
.site-ft a{color:#ffd27a}
.site-ft .wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.site-ft .disc{border:0;border-top:1px solid #2c3a6a;border-radius:0;padding:10px 0 0;margin:12px 0 0}
.holdings-pending{font-style:italic;color:#c9d2ea}

/* Accessibility v4.1: visible focus on every interactive element, reduced motion */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,#choro path:focus-visible{outline:3px solid #ffb020!important;outline-offset:2px!important;box-shadow:0 0 0 5px #0b1020!important;border-radius:4px}
.site-nav a:focus-visible,.nav-toggle:focus-visible{outline:3px solid #ffb020!important;outline-offset:2px!important;box-shadow:0 0 0 5px #ffffff!important}
.leaflet-container a:focus-visible,.leaflet-marker-icon:focus-visible{outline:3px solid #0b1020!important;box-shadow:0 0 0 5px #ffb020!important}
.skip:focus{left:8px!important;z-index:5000}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* PARTY_COLORS_V1: elected-official party colors (D/R/I/N) */
/* Party colors for elected-official tiles, badges and map popups.
   D blue / R red / I purple / N gray (party not listed).
   Color is never the only cue: every badge carries a letter or "Party not listed".
   Jobs/status heatmaps are untouched. */
:root{
  --party-d:#1F5FBF;--party-r:#C0362C;--party-i:#6B3FA0;--party-n:#5A6172;
  --party-d-bg:#e4ebf7;--party-r-bg:#f7e6e5;--party-i-bg:#ede7f3;--party-n-bg:#ebecee;
}
/* Letter badges (both .pD from JS and .p-D from state HTML) */
.pD,.pR,.pI,.pN,.p-D,.p-R,.p-I,.p-N{
  display:inline-block;font:800 12px/1.2 Inter,system-ui,sans-serif;
  border:1.5px solid currentColor;border-radius:4px;padding:2px 6px;
  margin:0 2px;vertical-align:middle;letter-spacing:.02em;white-space:nowrap;
}
.pD,.p-D{color:var(--party-d);background:var(--party-d-bg)}
.pR,.p-R{color:var(--party-r);background:var(--party-r-bg)}
.pI,.p-I{color:var(--party-i);background:var(--party-i-bg)}
.pN,.p-N{color:var(--party-n);background:var(--party-n-bg);font-weight:700;font-size:11px}
/* Official tiles / cards / directory rows / near-you cards */
.off.party-D,.fyo-r.party-D,.cd.party-D,.orow.party-D,
.off:has(> .who .pD), .off:has(> h3 .pD), .off:has(.pD),
.fyo-r:has(.pD), .cd:has(.p-D), .cd:has(.pD), .orow:has(.pD),
.off.party-D, .cd:has(> h3 .p-D){
  border-left:4px solid var(--party-d);
  background:linear-gradient(90deg,var(--party-d-bg) 0, #fff 56px);
}
.off.party-R,.fyo-r.party-R,.cd.party-R,.orow.party-R,
.off:has(.pR), .fyo-r:has(.pR), .cd:has(.p-R), .cd:has(.pR), .orow:has(.pR){
  border-left:4px solid var(--party-r);
  background:linear-gradient(90deg,var(--party-r-bg) 0, #fff 56px);
}
.off.party-I,.fyo-r.party-I,.cd.party-I,.orow.party-I,
.off:has(.pI), .fyo-r:has(.pI), .cd:has(.p-I), .cd:has(.pI), .orow:has(.pI){
  border-left:4px solid var(--party-i);
  background:linear-gradient(90deg,var(--party-i-bg) 0, #fff 56px);
}
.off.party-N,.fyo-r.party-N,.cd.party-N,.orow.party-N,
.off:has(.pN), .fyo-r:has(.pN), .cd:has(.p-N), .cd:has(.pN), .orow:has(.pN){
  border-left:4px solid var(--party-n);
  background:linear-gradient(90deg,var(--party-n-bg) 0, #fff 56px);
}
/* Keep quote accent distinct from party stripe */
.off.party-D .quote,.off:has(.pD) .quote,
.cd.party-D .quote,.cd:has(.p-D) .quote{border-left-color:var(--or2,#e08a00)}
.off.party-R .quote,.off:has(.pR) .quote,
.cd.party-R .quote,.cd:has(.p-R) .quote{border-left-color:var(--or2,#e08a00)}
.off.party-I .quote,.off:has(.pI) .quote,
.cd.party-I .quote,.cd:has(.p-I) .quote{border-left-color:var(--or2,#e08a00)}
/* Party legend (uses shared .chart-legend chrome) */
.party-legend{margin:8px 0 14px}
.party-legend .sw.d{background:var(--party-d)}
.party-legend .sw.r{background:var(--party-r)}
.party-legend .sw.i{background:var(--party-i)}
.party-legend .sw.n{background:var(--party-n)}
/* Map / leaflet popups that list officials */
.leaflet-popup-content .pD,
.leaflet-popup-content .pR,
.leaflet-popup-content .pI,
.leaflet-popup-content .pN,
#sitecard .pD,#sitecard .pR,#sitecard .pI,#sitecard .pN{
  display:inline-block;font:800 12px/1.2 Inter,system-ui,sans-serif;
  border:1.5px solid currentColor;border-radius:4px;padding:1px 5px;margin-left:4px;
}
.leaflet-popup-content .pD,#sitecard .pD{color:var(--party-d);background:var(--party-d-bg)}
.leaflet-popup-content .pR,#sitecard .pR{color:var(--party-r);background:var(--party-r-bg)}
.leaflet-popup-content .pI,#sitecard .pI{color:var(--party-i);background:var(--party-i-bg)}
.leaflet-popup-content .pN,#sitecard .pN{color:var(--party-n);background:var(--party-n-bg)}

/* Specificity boost: beat embedded #oprev .off border shorthand and inline .pD/.pR colors */
#oprev .off.party-D, #askcards .off.party-D, #powcards .off.party-D,
.offs .off.party-D, .fyo-list .fyo-r.party-D, .grid .cd.party-D, #olist .orow.party-D,
.off.party-D, .fyo-r.party-D, .cd.party-D, .orow.party-D{
  border-left:4px solid var(--party-d)!important;
  background:linear-gradient(90deg,var(--party-d-bg) 0,#fff 56px)!important;
}
#oprev .off.party-R, #askcards .off.party-R, #powcards .off.party-R,
.offs .off.party-R, .fyo-list .fyo-r.party-R, .grid .cd.party-R, #olist .orow.party-R,
.off.party-R, .fyo-r.party-R, .cd.party-R, .orow.party-R{
  border-left:4px solid var(--party-r)!important;
  background:linear-gradient(90deg,var(--party-r-bg) 0,#fff 56px)!important;
}
#oprev .off.party-I, #askcards .off.party-I, #powcards .off.party-I,
.offs .off.party-I, .fyo-list .fyo-r.party-I, .grid .cd.party-I, #olist .orow.party-I,
.off.party-I, .fyo-r.party-I, .cd.party-I, .orow.party-I{
  border-left:4px solid var(--party-i)!important;
  background:linear-gradient(90deg,var(--party-i-bg) 0,#fff 56px)!important;
}
#oprev .off.party-N, #askcards .off.party-N, #powcards .off.party-N,
.offs .off.party-N, .fyo-list .fyo-r.party-N, .grid .cd.party-N, #olist .orow.party-N,
.off.party-N, .fyo-r.party-N, .cd.party-N, .orow.party-N{
  border-left:4px solid var(--party-n)!important;
  background:linear-gradient(90deg,var(--party-n-bg) 0,#fff 56px)!important;
}
span.pD, span.p-D, .pD, .p-D{color:var(--party-d)!important;background:var(--party-d-bg)!important;border-color:var(--party-d)!important}
span.pR, span.p-R, .pR, .p-R{color:var(--party-r)!important;background:var(--party-r-bg)!important;border-color:var(--party-r)!important}
span.pI, span.p-I, .pI, .p-I{color:var(--party-i)!important;background:var(--party-i-bg)!important;border-color:var(--party-i)!important}
span.pN, span.p-N, .pN, .p-N{color:var(--party-n)!important;background:var(--party-n-bg)!important;border-color:var(--party-n)!important}
/* CONF_V46 */.conf{display:inline-block;font:700 11px Inter,system-ui,sans-serif;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:1px 7px;margin-left:4px;vertical-align:middle;border:1px solid}.conf-verified{background:#e6f4ea;color:#1b5e20;border-color:#1b5e20}.conf-reported{background:#fff4dc;color:#5a3d00;border-color:#8a6100}.conf-planned{background:#eef1fb;color:#26357a;border-color:#26357a}.says{font-size:.9em;color:inherit;opacity:.85}
