/* 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}
