/* Early & Absentee Voting Dashboard 2026 — styles.
 * Extracted from the V2 (Sep 2026) prototype and scoped under .eav26-root so the
 * dashboard renders identically without leaking into the theme.
 * Regenerate with gen/scope_css.py; do not hand-edit.
 */
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/f01aa660-60c8-4ecc-b59f-3f1a052ccd58.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/832749d3-048b-4818-b48d-2e094d76023e.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/af0af1ad-37d6-4544-9c7a-b301b46fa82e.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/51580393-8a6c-4215-9108-b7371294dc41.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/992267be-2834-4b31-b5ed-fc82fe21c3d4.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* math */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/6f8c42b4-c205-4c79-9b1f-6878e4c247b7.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/26c1f6b5-ccd7-435c-b727-ea4ab3c0e76d.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/f18b4892-c4c6-42d7-8e04-2c49f39413f5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/a754e480-db31-4ff6-b24a-227c5fe1d716.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/5e9bc346-dc1b-41ca-aff2-6acabfd0cf29.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/fce83ec6-2b09-4676-9c01-9efe5593b275.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/72d68b5c-9360-4778-9481-9caa40ad94c8.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/14611bd3-cad6-4866-980e-30107f8d8f06.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/339116b2-f58a-46f2-bf0b-f2a302217336.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c9133297-789a-4b60-90bf-acac31420b85.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* math */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/5ad64a55-8ff3-4b20-a89d-7077eb69d217.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/adba528b-cb83-4fd2-8652-6da5283c01ca.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/63124d83-1bef-4c2b-8575-25d1bd4ffe3f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/3785bd3c-17a6-4060-bc7b-6635e81b1c22.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c474948a-915b-4f62-accb-e717f8bfc4c3.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/fce83ec6-2b09-4676-9c01-9efe5593b275.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/72d68b5c-9360-4778-9481-9caa40ad94c8.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/14611bd3-cad6-4866-980e-30107f8d8f06.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/339116b2-f58a-46f2-bf0b-f2a302217336.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c9133297-789a-4b60-90bf-acac31420b85.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* math */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/5ad64a55-8ff3-4b20-a89d-7077eb69d217.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/adba528b-cb83-4fd2-8652-6da5283c01ca.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/63124d83-1bef-4c2b-8575-25d1bd4ffe3f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/3785bd3c-17a6-4060-bc7b-6635e81b1c22.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c474948a-915b-4f62-accb-e717f8bfc4c3.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/fce83ec6-2b09-4676-9c01-9efe5593b275.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/72d68b5c-9360-4778-9481-9caa40ad94c8.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/14611bd3-cad6-4866-980e-30107f8d8f06.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/339116b2-f58a-46f2-bf0b-f2a302217336.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c9133297-789a-4b60-90bf-acac31420b85.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* math */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/5ad64a55-8ff3-4b20-a89d-7077eb69d217.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/adba528b-cb83-4fd2-8652-6da5283c01ca.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/63124d83-1bef-4c2b-8575-25d1bd4ffe3f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/3785bd3c-17a6-4060-bc7b-6635e81b1c22.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c474948a-915b-4f62-accb-e717f8bfc4c3.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/fce83ec6-2b09-4676-9c01-9efe5593b275.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/72d68b5c-9360-4778-9481-9caa40ad94c8.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/14611bd3-cad6-4866-980e-30107f8d8f06.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/339116b2-f58a-46f2-bf0b-f2a302217336.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c9133297-789a-4b60-90bf-acac31420b85.woff2") format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* math */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/5ad64a55-8ff3-4b20-a89d-7077eb69d217.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/adba528b-cb83-4fd2-8652-6da5283c01ca.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/63124d83-1bef-4c2b-8575-25d1bd4ffe3f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/3785bd3c-17a6-4060-bc7b-6635e81b1c22.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("fonts/c474948a-915b-4f62-accb-e717f8bfc4c3.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.eav26-root {
    --c-header:    #324353;
    --c-slate:     #688a9f;
    --c-green:     #55b255;
    --c-green-dk:  #469646;
    --c-footer:    #595b5d;
    --c-navy:      #013564;
    --c-ink:       #2b3946;
    --c-paper:     #f5f7f8;
    --c-line:      #dfe5e8;
    --font-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-sans:  "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --maxw: 1180px;
  }
  .eav26-root { box-sizing: border-box; }
  .eav26-root, .eav26-root { margin: 0; padding: 0; }
  .eav26-root {
    font-family: var(--font-sans);
    color: var(--c-ink);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  .eav26-root a { text-decoration: none; color: inherit; }

  .eav26-root /* ---------- Header / nav (shared with Political Data page) ---------- */
  .site-header { background: var(--c-header); color: #fff; }
  .eav26-root .nav-inner {
    max-width: var(--maxw); margin: 0 auto; padding: 0 28px; height: 64px;
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
  }
  .eav26-root .brand { display: flex; flex-direction: column; line-height: 1; letter-spacing: 0.2em; flex-shrink: 0; }
  .eav26-root .brand .mark { font-family: var(--font-serif); font-size: 23px; font-weight: 400; padding-left: 0.2em; }
  .eav26-root .brand .tag { font-family: var(--font-serif); font-style: italic; font-size: 10px; letter-spacing: 0.18em; color: #b9c4cd; margin-top: 5px; padding-left: 0.18em; }
  .eav26-root .main-nav { display: flex; align-items: center; gap: 15px; }
  .eav26-root .main-nav a { font-size: 11.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #eef2f5; padding: 6px 0; transition: color .15s ease; white-space: nowrap; }
  .eav26-root .main-nav a:hover { color: var(--c-green); }
  .eav26-root .main-nav .divider { width: 1px; height: 18px; background: #4a5a6a; }
  .eav26-root .btn-contact { background: var(--c-green); color: #fff !important; border-radius: 999px; padding: 8px 16px !important; transition: background .15s ease; }
  .eav26-root .btn-contact:hover { background: var(--c-green-dk); color:#fff !important; }

  .eav26-root /* ---------- Page title ---------- */
  .page-head { background: var(--c-paper); }
  .eav26-root .page-head-inner { max-width: var(--maxw); margin: 0 auto; padding: 46px 28px 30px; text-align: center; }
  .eav26-root .page-head .eyebrow { display: block; font-family: var(--font-sans); font-weight: 700; font-size: 20px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-slate); margin: 0 0 10px; }
  .eav26-root .cd-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--c-line); border-radius: 999px; padding: 6px 16px 6px 6px; margin-top: 20px; }
  .eav26-root .cd-pill .dot { width: 8px; height: 8px; border-radius: 50%; background: #5e9bb5; margin-left: 8px; flex-shrink: 0; box-shadow: 0 0 0 3px rgba(94,155,181,.18); }
  .eav26-root .cd-pill .num { font-weight: 800; color: var(--c-navy); }
  .eav26-root .cd-pill .txt { font-size: 12.5px; color: #586571; }
  .eav26-root .cd-blocks { display: flex; justify-content: center; gap: 6px; margin-top: 18px; }
  .eav26-root .cd-blocks .b { background: #eef2f5; color: var(--c-navy); border-radius: 8px; padding: 6px 12px; min-width: 48px; text-align: center; }
  .eav26-root .cd-blocks .b .n { font-size: 16px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
  .eav26-root .cd-blocks .b .l { font-size: 8px; letter-spacing: .06em; text-transform: uppercase; margin-top: 2px; color: #8a98a3; font-weight: 700; }
  .eav26-root .page-head h1 {
    font-family: var(--font-sans); font-weight: 700; font-size: 48px; line-height: 1.12;
    margin: 0; color: var(--c-navy); letter-spacing: 0.005em; text-transform: none;
  }
  .eav26-root .page-head .sub {
    margin: 14px auto 0 !important; max-width: 820px; font-size: 15px; line-height: 1.65; color: #586571;
  }
  .eav26-root .sub-cta { color: var(--c-green-dk); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; transition: color .15s ease; }
  .eav26-root .sub-cta:hover { color: var(--c-green); }
  .eav26-root .head-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 14px; }
  .eav26-root .btn-cta {
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--c-green); color: #fff; font-weight: 700; font-size: 13px;
    letter-spacing: 0.05em; text-transform: uppercase; padding: 13px 28px; border-radius: 999px;
    transition: transform .12s ease, background .15s ease, box-shadow .15s ease;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
  }
  .eav26-root .btn-cta:hover { background: var(--c-green-dk); transform: translateY(-1px); color: #fff; }
  .eav26-root .btn-cta.alt { background: #fff; color: var(--c-navy); border: 1.5px solid var(--c-line); box-shadow: none; }
  .eav26-root .btn-cta.alt:hover { background: #fff; border-color: var(--c-slate); color: var(--c-navy); transform: translateY(-1px); }

  .eav26-root /* ---------- Dashboard ---------- */
  .dash { background: var(--c-paper); }
  .eav26-root .dash-inner { max-width: var(--maxw); margin: 0 auto; padding: 10px 28px 64px; }

  .eav26-root .card {
    background: #fff; border: 1px solid var(--c-line); border-radius: 10px;
    box-shadow: 0 1px 2px rgba(20,40,60,.04), 0 8px 22px rgba(20,40,60,.05);
    padding: 22px 24px; margin-bottom: 22px;
  }
  .eav26-root .card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
  .eav26-root .card-title { font-family: var(--font-serif); font-weight: 700; font-size: 18px; color: var(--c-navy); margin: 0; }
  .eav26-root .card-cap { font-size: 12px; color: #8a98a3; margin: 3px 0 0; font-style: italic; }
  .eav26-root /* subheadings pulled out above their cards */
  .block-head { margin: 8px 0 12px; }
  .eav26-root .block-head .card-cap { font-size: 13px; color: #46545f; line-height: 1.6; }

  .eav26-root .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
  .eav26-root .grid-2 .card { margin-bottom: 0; }

  .eav26-root /* filters */
  .filters { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
  .eav26-root .field label { display: block; font-size: 12px; color: #8a98a3; letter-spacing: .03em; margin-bottom: 8px; }
  .eav26-root .select {
    width: 100%; appearance: none; -webkit-appearance: none; font-family: var(--font-sans);
    font-size: 15px; color: var(--c-ink); background-color: #fff;
    border: 1px solid var(--c-line); border-radius: 8px; padding: 12px 40px 12px 14px; cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238a98a3' stroke-width='1.6' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat; background-position: right 14px center;
  }
  .eav26-root .select:focus { outline: none; border-color: var(--c-slate); box-shadow: 0 0 0 3px rgba(104,138,159,.18); }

  .eav26-root /* donuts */
  .donut-wrap { position: relative; height: 248px; }
  .eav26-root .donut-center { position: absolute; left: 0; right: 0; top: 44%; transform: translateY(-50%); text-align: center; font-family: var(--font-serif); font-size: 32px; font-weight: 700; color: var(--c-ink); pointer-events: none; }

  .eav26-root /* stats tiles */
  .last-updated { flex-shrink: 0; text-align: right; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #8a98a3; font-weight: 700; }
  .eav26-root .last-updated b { display: block; font-family: var(--font-serif); font-size: 14px; color: var(--c-ink); letter-spacing: 0; text-transform: none; margin-top: 4px; }
  .eav26-root .last-updated .lu-live { display: inline-flex; align-items: center; gap: 6px; margin-top: 7px; font-size: 9.5px; color: var(--c-green-dk); letter-spacing: .07em; }
  .eav26-root .last-updated .lu-live::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--c-green); box-shadow: 0 0 0 3px rgba(85,178,85,.18); }
  .eav26-root /* ---- one-line "last updated" placement comparison (temporary) ---- */
  .lu-oneline { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #8a98a3; font-weight: 700; white-space: nowrap; }
  .eav26-root .lu-oneline.lu-tag::before { content: attr(data-lu) "  \2014  "; color: var(--c-green-dk); margin-right: 4px; }
  .eav26-root .lu-center { text-align: center; margin: 12px auto 0; }
  .eav26-root .lu-cardbar { display: flex; justify-content: flex-end; margin-bottom: 10px; }
  .eav26-root .lu-mapstrip { position: absolute; top: 10px; left: 14px; z-index: 5; background: rgba(255,255,255,.9); padding: 4px 9px; border-radius: 6px; border: 1px solid var(--c-line); }
  .eav26-root .lu-underlegend { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--c-line); text-transform: none; letter-spacing: 0; }
  .eav26-root .lu-belowcard { text-align: left; text-transform: none; letter-spacing: 0; margin: -10px 2px 4px 25px; color: var(--c-navy); }
  .eav26-root .lu-inbox { text-align: left; text-transform: none; letter-spacing: 0; color: var(--c-navy); font-style: italic; margin-top: 14px; }

  .eav26-root /* intro bar: how-to + last updated */
  .intro-bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 28px; background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-green); border-radius: 10px; padding: 16px 22px; margin-bottom: 22px; box-shadow: 0 1px 2px rgba(20,40,60,.04); }
  .eav26-root .intro-note { min-width: 0; }
  .eav26-root .intro-note-h { display: block; font-weight: 700; font-size: 13px; letter-spacing: .05em; text-transform: uppercase; color: var(--c-navy); margin-bottom: 9px; }
  .eav26-root .intro-note-p { display: block; font-size: 14px; line-height: 1.6; color: #455160; }
  .eav26-root .card-updated { flex-shrink: 0; text-align: right; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #8a98a3; font-weight: 700; white-space: nowrap; }
  .eav26-root .card-updated b { display: block; font-family: var(--font-serif); font-size: 14px; color: var(--c-ink); letter-spacing: 0; text-transform: none; margin-top: 3px; }
  .eav26-root .intro-note-p b { color: var(--c-green-dk); font-weight: 700; }
  .eav26-root .intro-sep { height: 1px; background: var(--c-line); margin: 16px 0; }
  .eav26-root .intro-learn .intro-note-p { color: #455160; }
  .eav26-root .intro-learn a { color: var(--c-green-dk); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
  .eav26-root .intro-learn a:hover { color: var(--c-green); }
  .eav26-root .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .eav26-root .stat-tile { border: 1px solid var(--c-line); border-radius: 8px; padding: 15px 18px; }
  .eav26-root .stat-tile .big { font-size: 19px; font-weight: 700; color: var(--c-navy); line-height: 1.2; }
  .eav26-root .stat-tile .big .of { font-weight: 400; color: #9aa7b0; font-size: 13px; }
  .eav26-root .stat-tile .sub { font-size: 12px; color: #6a7782; margin: 5px 0 12px; }
  .eav26-root .stat-tile .lbl { font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase; color: #586571; font-weight: 700; }

  .eav26-root /* charts */
  .chart-box { position: relative; height: 300px; }
  .eav26-root .chart-box.tall { height: 320px; }
  .eav26-root .chart-box.short { height: 230px; }
  .eav26-root .chart-cap { text-align: center; font-size: 12px; color: #7a8aa0; margin-top: 12px; font-style: italic; }

  .eav26-root /* IP + more info row */
  .row-ip { display: grid; grid-template-columns: 1.9fr 1fr; gap: 22px; align-items: stretch; }
  .eav26-root .row-ip .card { margin-bottom: 0; }
  .eav26-root .more-info { border-left: 4px solid var(--c-navy); display: flex; flex-direction: column; justify-content: center; text-align: center; }
  .eav26-root .more-info .mi-title { font-family: var(--font-serif); font-weight: 700; color: var(--c-navy); font-size: 18px; margin: 0 0 14px; }
  .eav26-root .more-info p { font-size: 13.5px; color: #586571; line-height: 1.45; margin: 0; }
  .eav26-root .more-info .name { font-weight: 700; color: var(--c-ink); }
  .eav26-root .more-info a { color: var(--c-slate); font-weight: 700; }
  .eav26-root .more-info a:hover { color: var(--c-navy); }
  .eav26-root .mi-option { display: flex; flex-direction: column; align-items: center; gap: 10px; }
  .eav26-root .mi-btn { font-family: var(--font-sans); font-size: 13px; font-weight: 700; border-radius: 999px; padding: 9px 18px; cursor: pointer; border: 1.5px solid var(--c-navy); background: #fff; color: var(--c-navy); transition: background .15s ease, color .15s ease; }
  .eav26-root .mi-btn:hover { background: var(--c-navy); color: #fff; }
  .eav26-root .mi-btn.primary { background: var(--c-green); border-color: var(--c-green); color: #fff; }
  .eav26-root .mi-btn.primary:hover { background: var(--c-green-dk); border-color: var(--c-green-dk); }
  .eav26-root .mi-divider { display: flex; align-items: center; gap: 12px; margin: 14px 0; color: #99a4ad; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
  .eav26-root .mi-divider::before, .eav26-root .mi-divider::after { content: ""; flex: 1; height: 1px; background: var(--c-line); }

  .eav26-root /* ---------- TEMP: coworker map comparison (1a) ---------- */
  .cw-card { padding: 22px 26px 26px; }
  .eav26-root .cw-nav-wrap { padding: 20px 24px; margin: -22px -26px 20px; background: #e7ecef; border-bottom: 1px solid var(--c-line); border-radius: 10px 10px 0 0; }
  .eav26-root .cw-nav-sec { }
  .eav26-root .cw-nav-label { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-slate); margin-bottom: 12px; }
  .eav26-root .cw-rail-row { display: grid; grid-template-columns: repeat(5, 1fr) auto; gap: 10px; }
  .eav26-root .cw-tile { border: 1px solid var(--c-line); border-radius: 8px; padding: 12px 14px; background: #eef2f4; cursor: pointer; }
  .eav26-root .cw-tile.active { background: #fff; border: 1.5px solid var(--c-navy); box-shadow: 0 6px 14px rgba(1,53,100,.08); }
  .eav26-root .cw-tile-k { font-size: 11.5px; font-weight: 700; color: #586571; margin-bottom: 6px; }
  .eav26-root .cw-tile-k-eday { color: #a9683a; }
  .eav26-root .cw-tile-v { font-size: 17px; font-weight: 800; color: var(--c-navy); line-height: 1.1; }
  .eav26-root .cw-tile.active .cw-tile-v { color: var(--c-navy); }
  .eav26-root .cw-tile-s { font-size: 11px; color: #8a98a3; margin-top: 4px; }
  .eav26-root .cw-tile-eday { border-left: 2px solid var(--c-line); background: #fff; }
  .eav26-root .cw-ladder { display: flex; align-items: stretch; border: 1px solid var(--c-line); border-radius: 8px; overflow: hidden; }
  .eav26-root .cw-ladder-btn { flex: 1; font-family: var(--font-sans); font-size: 12.5px; font-weight: 600; color: #586571; background: #eef2f4; border: 0; border-left: 1px solid var(--c-line); padding: 10px 12px; cursor: pointer; text-align: center; }
  .eav26-root .cw-ladder-btn:first-child { border-left: 0; flex: 1.6; }
  .eav26-root .cw-ladder-btn:hover { background: #e4e9ec; }
  .eav26-root .cw-ladder-btn.active { background: var(--c-navy); color: #fff; font-weight: 700; }
  .eav26-root .cw-ladder-btn[disabled] { color: #c3ccd2; cursor: default; }
  .eav26-root .cw-ladder-btn[disabled]:hover { background: #eef2f4; }
  .eav26-root .cw-ladder-select { flex: 1.6; font-family: var(--font-sans); font-size: 12.5px; font-weight: 600; color: #586571; border: 0; border-left: 1px solid var(--c-line); background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path d="M1 1l4 4 4-4" stroke="%23586571" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat right 18px center; appearance: none; -webkit-appearance: none; padding: 10px 36px 10px 12px; cursor: pointer; text-align: center; text-align-last: center; }
  .eav26-root .cw-ladder-select.has-value { text-align: left; text-align-last: left; }
  .eav26-root .cw-ladder-select.active { color: var(--c-navy); font-weight: 700; }
  .eav26-root .cw-level-select { flex: 1; text-align: center; text-align-last: center; }
  .eav26-root .cw-ladder-select[disabled] { color: #c3ccd2; cursor: default; background-color: #eef2f4; }
  .eav26-root .cw-legend-wrap { padding-top: 12px; border-top: 1px solid var(--c-line); margin-top: 12px; }
  .eav26-root .cw-drillbar { min-height: 34px; margin-bottom: 12px; }
  .eav26-root .cw-drill-btn { display: inline-flex; align-items: center; gap: 6px; background: #eef2f4; border: 1px solid var(--c-line); border-radius: 999px; padding: 8px 16px; font-family: var(--font-sans); font-size: 12.5px; font-weight: 700; color: #013564; cursor: pointer; }
  .eav26-root .cw-drill-btn:hover { background: #e4e9ec; }
  .eav26-root .cw-hint { margin-top: 10px; font-size: 11.5px; color: #8a98a3; }
  .eav26-root .cw-titleblock { padding: 0 2px 4px; }
  .eav26-root .cw-titleblock h2 { font-family: var(--font-serif); font-size: 22px; font-weight: 700; color: var(--c-navy); margin: 0 0 6px; }
  .eav26-root .cw-titleblock p { font-size: 13.5px; color: #586571; margin: 0; }
  .eav26-root .cw-titleblock p span { color: #a9b6bf; }
  .eav26-root .cw-body { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 26px; padding-top: 18px; }
  .eav26-root .cw-map { min-height: 300px; position: relative; }
  .eav26-root .cw-map svg { width: 100%; height: auto; display: block; }
  .eav26-root .cw-map path { stroke: #fff; stroke-width: 1; }
  .eav26-root .cw-legend { display: flex; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid var(--c-line); margin-top: 12px; }
  .eav26-root .cw-legend-label { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8a98a3; }
  .eav26-root .cw-legend-bar { width: 130px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #e3ebf0, #013564); }
  .eav26-root .cw-legend-range { font-size: 11.5px; color: #586571; }
  .eav26-root .cw-panel { border-left: 1px solid var(--c-line); padding-left: 26px; }
  .eav26-root .cw-panel-eyebrow { font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); }
  .eav26-root .cw-panel-name { font-family: var(--font-serif); font-size: 26px; font-weight: 800; color: var(--c-navy); margin-top: 6px; }
  .eav26-root .cw-pill { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--c-navy); background: #f3f6f8; border-radius: 999px; padding: 6px 14px; margin-top: 12px; }
  .eav26-root .cw-pill i { width: 8px; height: 8px; border-radius: 50%; background: var(--c-navy); }
  .eav26-root .cw-metric-num { font-family: var(--font-serif); font-size: 34px; font-weight: 800; color: var(--c-navy); margin-top: 16px; }
  .eav26-root .cw-metric-sub { font-size: 12.5px; color: #8a98a3; margin-top: 2px; }
  .eav26-root .cw-metric-row { display: flex; gap: 34px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--c-line); }
  .eav26-root .cw-metric-mid { font-size: 19px; font-weight: 800; color: var(--c-ink); }
  .eav26-root .cw-metric-mid.cw-green { color: var(--c-green-dk); }
  .eav26-root .cw-metric-s { font-size: 11.5px; color: #8a98a3; margin-top: 2px; }
  .eav26-root .cw-ranked-h { font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--c-slate); margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--c-line); }
  .eav26-root .cw-ranked { display: flex; flex-direction: column; gap: 9px; margin-top: 10px; }
  .eav26-root .cw-rank-row { display: grid; grid-template-columns: 90px 1fr 40px; align-items: center; gap: 8px; font-size: 12.5px; }
  .eav26-root .cw-rank-name { color: var(--c-ink); }
  .eav26-root .cw-rank-bar-track { background: #eef1f4; border-radius: 3px; height: 6px; overflow: hidden; }
  .eav26-root .cw-rank-bar-fill { height: 100%; background: var(--c-navy); border-radius: 3px; }
  .eav26-root .cw-rank-pct { text-align: right; font-weight: 700; color: var(--c-ink); }
  .eav26-root .cw-updated { font-size: 11px; color: #a9b6bf; margin-top: 18px; }

  .eav26-root /* ---------- Top: type toggle + state map + detail panel ---------- */
  .map-toolbar { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-bottom: 14px; }
  .eav26-root .map-toolbar .tt-label { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: #8a98a3; font-weight: 700; }
  .eav26-root .type-toggle { display: inline-flex; background: #fff; border: 1px solid var(--c-line); border-radius: 999px; padding: 3px; }
  .eav26-root .type-toggle button { appearance: none; border: 0; background: transparent; cursor: pointer; font-family: var(--font-sans); font-size: 12.5px; font-weight: 600; color: #6a7782; padding: 7px 16px; border-radius: 999px; transition: background .15s, color .15s; }
  .eav26-root .type-toggle button.active { background: var(--c-navy); color: #fff; }
  .eav26-root .type-toggle button:not(.active):hover { color: var(--c-navy); }

  .eav26-root .map-layout { display: grid; grid-template-columns: 1.1fr minmax(300px, 1fr); gap: 26px; align-items: start; }
  .eav26-root .usmap-wrap, .eav26-root .state-panel { min-width: 0; }
  .eav26-root .usmap-wrap { position: relative; align-self: center; max-width: 900px; margin: 0 auto; width: 100%; }
  .eav26-root .usmap { width: 100%; height: auto; display: block; overflow: visible; }
  .eav26-root .usmap path.state { fill: #b7c7d1; stroke: #fff; stroke-width: 1; transition: fill .12s ease, filter .12s ease; cursor: pointer; outline: none; }
  .eav26-root /* status shading (replaces the status dots) */
  .usmap .state.ev-ongoing { fill: #7cc7a4; }
  .eav26-root .usmap .state.ev-complete { fill: #7fa8cc; }
  .eav26-root .usmap .state.ev-upcoming { fill: #ecd3a4; }
  .eav26-root .usmap .state.ev-none { fill: #d3dbe0; }
  .eav26-root /* hover / selected = full-strength status color for contrast against the muted tints */
  .usmap .state.ev-ongoing:hover, .eav26-root .usmap .state.ev-ongoing.active { fill: #00ab66; }
  .eav26-root .usmap .state.ev-complete:hover, .eav26-root .usmap .state.ev-complete.active { fill: #2a6fb0; }
  .eav26-root .usmap .state.ev-upcoming:hover, .eav26-root .usmap .state.ev-upcoming.active { fill: #f0b455; }
  .eav26-root .usmap .state.ev-none:hover, .eav26-root .usmap .state.ev-none.active { fill: #9aa7b0; }
  .eav26-root .usmap path.state.active, .eav26-root .usmap path.state.active:hover { stroke: #253746; stroke-width: 2; }
  .eav26-root .usmap path.state:focus-visible { stroke: var(--c-ink); stroke-width: 1.5; }
  .eav26-root /* DC is too small to hover — a clickable marker box in the Atlantic */
  .usmap rect.dc-box { fill: #b7c7d1; stroke: #fff; stroke-width: 1; transition: fill .12s ease, filter .12s ease; cursor: pointer; outline: none; }
  .eav26-root .usmap rect.dc-box.active, .eav26-root .usmap rect.dc-box.active:hover { stroke: #253746; stroke-width: 2; }
  .eav26-root .usmap rect.dc-box:focus-visible { stroke: var(--c-ink); stroke-width: 1.5; }
  .eav26-root .usmap line.dc-leader { stroke: #8a98a3; stroke-width: 1; pointer-events: none; }
  .eav26-root .usmap text.dc-label { font: 700 10px var(--font-sans); fill: #5a6b78; pointer-events: none; }
  .eav26-root .map-loading { text-align: center; color: #8a98a3; padding: 90px 0; font-size: 14px; }

  .eav26-root .state-panel { border: 1px solid var(--c-line); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; min-height: 360px; background: #fff; }
  .eav26-root .sp-head { background: var(--c-slate); color: #fff; padding: 12px 18px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; }
  .eav26-root .sp-head .sp-name { font-family: var(--font-serif); font-weight: 700; font-size: 19px; min-width: 0; }
  .eav26-root .sp-status { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; background: rgba(255,255,255,.18); color: #fff; padding: 4px 10px; border-radius: 999px; white-space: nowrap; flex-shrink: 0; }
  .eav26-root .sp-status .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: #fff; }
  .eav26-root .sp-status.ongoing  .dot { background: #79d479; }
  .eav26-root .sp-status.upcoming .dot { background: #f0b455; }
  .eav26-root .sp-status.none     .dot { background: #c4ced4; }
  .eav26-root .sp-empty { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; color: #8a98a3; font-size: 13.5px; padding: 30px; line-height: 1.6; }
  .eav26-root .sp-body { padding: 16px 18px 18px; }
  .eav26-root .sp-metrics { display: flex; gap: 16px; align-items: center; padding-bottom: 15px; border-bottom: 1px solid var(--c-line); }
  .eav26-root .ring { --p: 0; width: 78px; height: 78px; border-radius: 50%; flex-shrink: 0; background: conic-gradient(var(--c-green) calc(var(--p) * 1%), #e3eaed 0); display: flex; align-items: center; justify-content: center; position: relative; }
  .eav26-root .ring::before { content: ''; position: absolute; inset: 9px; background: #fff; border-radius: 50%; }
  .eav26-root .ring span { position: relative; font-family: var(--font-serif); font-weight: 700; font-size: 16px; color: var(--c-ink); }
  .eav26-root .sp-ballots .m-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #8a98a3; font-weight: 700; }
  .eav26-root .sp-ballots .m-big { font-family: var(--font-serif); font-size: 22px; font-weight: 700; color: var(--c-navy); margin: 3px 0; }
  .eav26-root .sp-ballots .m-sub { font-size: 12px; color: #6a7782; line-height: 1.4; }

  .eav26-root .party { padding: 14px 0; border-bottom: 1px solid var(--c-line); }
  .eav26-root .party .p-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #8a98a3; margin-bottom: 8px; font-weight: 700; }
  .eav26-root .party-bar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; }
  .eav26-root .party-bar i { display: block; height: 100%; }
  .eav26-root .party-legend { display: flex; gap: 16px; margin-top: 9px; font-size: 11.5px; color: #586571; }
  .eav26-root .party-legend b { color: var(--c-ink); }
  .eav26-root .party-legend .dot { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin-right: 5px; vertical-align: middle; }

  .eav26-root .sp-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin-top: 14px; }
  .eav26-root .sp-stat .v { font-size: 15px; font-weight: 700; color: var(--c-navy); }
  .eav26-root .sp-stat .v small { font-weight: 600; color: var(--c-green-dk); font-size: 11px; margin-left: 4px; }
  .eav26-root .sp-stat .k { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: #8a98a3; margin-top: 1px; }
  .eav26-root .sp-stat { cursor: pointer; border-radius: 7px; transition: background .12s ease; }
  .eav26-root .sp-stat:hover { background: #eef6ef; }
  .eav26-root .sp-stat:hover .v { color: var(--c-green-dk); }

  .eav26-root .section-label { font-family: var(--font-sans); font-weight: 700; font-size: 30px; color: var(--c-navy); margin: 36px 0 6px; }


  .eav26-root /* ---------- On the 2026 Ballot (election info) ---------- */
  .ei-card { padding: 0; overflow: hidden; }
  .eav26-root .ei-head { background: var(--c-navy); color: #fff; padding: 14px 22px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; }
  .eav26-root .ei-name { font-family: var(--font-serif); font-weight: 700; font-size: 19px; }
  .eav26-root .ei-status { display: inline-flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: rgba(255,255,255,.16); color: #fff; padding: 5px 12px; border-radius: 999px; }
  .eav26-root .ei-status .dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: #fff; }
  .eav26-root .ei-status.ongoing  .dot { background: #79d479; }
  .eav26-root .ei-status.upcoming .dot { background: #f0b455; }
  .eav26-root .ei-status.complete .dot { background: #6fb0e8; }
  .eav26-root .ei-status.none     .dot { background: #c4ced4; }
  .eav26-root .ei-status.overview .dot { background: #9fb4c8; }

  .eav26-root .ei-grid { display: grid; grid-template-columns: 1.25fr 1fr; }
  .eav26-root .ei-grid-3 { grid-template-columns: 1.25fr 1fr 1fr; }
  .eav26-root .ei-col { padding: 20px 24px 24px; min-width: 0; }
  .eav26-root .ei-col-dates { border-left: 1px solid var(--c-line); background: var(--c-paper); }
  .eav26-root .ei-col-el { border-left: 1px solid var(--c-line); background: var(--c-paper); display: flex; flex-direction: column; }
  .eav26-root .ei-col-title { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--c-slate); margin-bottom: 16px; }

  .eav26-root .ei-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .eav26-root .ei-grid-3 .ei-tiles { grid-template-columns: repeat(2, 1fr); }
  .eav26-root .ei-tile { border: 1px solid var(--c-line); border-radius: 9px; background: #fff; padding: 14px 12px; text-align: center; min-width: 0; }
  .eav26-root .ei-tile-v { font-family: var(--font-serif); font-weight: 700; font-size: 28px; line-height: 1; color: var(--c-navy); }
  .eav26-root .ei-tile-k { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #8a98a3; margin-top: 8px; }
  .eav26-root .ei-tile.muted .ei-tile-v { color: #b3bfc7; }
  .eav26-root .ei-tile.muted { background: var(--c-paper); }

  .eav26-root .ei-dates { display: flex; flex-direction: column; }
  .eav26-root .ei-date { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--c-line); }
  .eav26-root .ei-date:first-child { padding-top: 0; }
  .eav26-root .ei-date-k { font-size: 11.5px; color: #586571; letter-spacing: .02em; }
  .eav26-root .ei-date-v { font-weight: 700; font-size: 13.5px; color: var(--c-ink); text-align: right; white-space: nowrap; }
  .eav26-root .ei-date.accent .ei-date-v { color: var(--c-green-dk); }
  .eav26-root a.ei-poll-link { text-decoration: none; transition: color .12s ease; }
  .eav26-root a.ei-poll-link:hover { color: var(--c-green); text-decoration: underline; text-underline-offset: 2px; }

  .eav26-root /* ballots-returned ring under each election column */
  .ei-ring-wrap { margin-top: auto; padding-top: 18px; display: flex; align-items: center; gap: 13px; }
  .eav26-root .ei-ring-wrap .ring { width: 64px; height: 64px; }
  .eav26-root .ei-ring-wrap .ring::before { inset: 8px; }
  .eav26-root .ei-ring-wrap .ring span { font-size: 13.5px; }
  .eav26-root .ring-na { background: #e3eaed; }
  .eav26-root .ring-na span { color: #9aa7af; }
  .eav26-root .ei-ring-lbl { font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8a98a3; line-height: 1.4; }
  .eav26-root .ei-ring-lbl b { display: block; color: var(--c-navy); font-size: 12.5px; text-transform: none; letter-spacing: 0; margin-top: 2px; }

  .eav26-root .ei-foot { border-top: 1px solid var(--c-line); padding: 13px 24px; font-size: 11.5px; line-height: 1.5; color: #8a98a3; font-style: italic; background: var(--c-paper); }
  .eav26-root .ei-note { font-size: 11.5px; line-height: 1.5; color: #8a98a3; margin-top: 14px; font-style: italic; }
  .eav26-root .ei-prompt { font-size: 13px; line-height: 1.6; color: #8a98a3; margin-top: 14px; }
  .eav26-root .ei-prompt.sm { margin-top: 0; font-size: 12.5px; }

  .eav26-root /* nationwide polling-place link — fills the panel to match state view height */
  .ei-poll {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    margin-top: 16px; padding: 14px 16px;
    background: var(--c-paper); border: 1px solid var(--c-line);
    border-left: 3px solid var(--c-green); border-radius: 8px;
    text-decoration: none; transition: border-color .15s ease, background .15s ease, transform .12s ease;
  }
  .eav26-root .ei-poll:hover { border-color: var(--c-green); background: #fff; transform: translateY(-1px); }
  .eav26-root .ei-poll-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .eav26-root .ei-poll-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--c-green-dk); }
  .eav26-root .ei-poll-sub { font-size: 12px; color: #6a7782; }
  .eav26-root .ei-poll-arrow { flex-shrink: 0; color: var(--c-green-dk); font-weight: 700; font-size: 15px; transition: transform .15s ease; }
  .eav26-root .ei-poll:hover .ei-poll-arrow { transform: translateX(3px); }

  .eav26-root /* ---------- V2 overview panel (map aside) ---------- */
  .overview-panel { border: 1px solid var(--c-line); border-radius: 10px; background: #fff; overflow: hidden; display: flex; flex-direction: column; min-height: 0; }
  .eav26-root .ov-sec { padding: 16px 18px; border-bottom: 1px solid var(--c-line); }
  .eav26-root .ov-sec.ov-last { border-bottom: 0; }
  .eav26-root .overview-panel .ei-tiles { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .eav26-root .overview-panel .ei-tile { padding: 11px 8px; }
  .eav26-root .overview-panel .ei-tile-v { font-size: 23px; }
  .eav26-root .overview-panel .ei-tile-k { font-size: 11px; margin-top: 6px; }
  .eav26-root .overview-panel .ei-col-title { margin-bottom: 12px; font-size: 13px; }
  .eav26-root /* date tile (Early Voting Begins / General Election) — smaller so dates fit */
  .overview-panel .ei-tile.ei-tile-date .ei-tile-v { font-size: 14px; line-height: 1.25; }
  .eav26-root /* Version C: ballots section pushed to the top; pie ring + count + % of registered */
  .overview-panel .ov-scope-band { background: #e8f0f8; color: var(--c-navy); padding: 9px 20px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid var(--c-line); }
  .eav26-root .overview-panel .ov-scope-band.ov-band-orange { background: #fdf1e2; color: #cf7f2b; }
  .eav26-root .overview-panel .ov-scope-band.ov-band-grey { background: #eef1f3; color: #6a7782; }
  .eav26-root .overview-panel .ov-sec.ov-last { flex: 1; display: flex; flex-direction: column; justify-content: center; }
  .eav26-root .overview-panel .ov-pies { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .eav26-root .overview-panel .ov-pie { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
  .eav26-root .overview-panel .ov-pie .bc-status { white-space: nowrap; font-size: 12px; }
  .eav26-root .overview-panel .ov-pie + .ov-pie { border-left: 1px solid var(--c-line); }
  .eav26-root .overview-panel .ov-era { font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8a98a3; }
  .eav26-root .overview-panel .ov-donut { display: block; }
  .eav26-root .overview-panel .ov-pie-cap { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #a9b6bf; line-height: 1.4; }
  .eav26-root .overview-panel .ov-pie-count { font-family: var(--font-serif); font-weight: 700; font-size: 30px; color: var(--c-navy); line-height: 1.1; }
  .eav26-root .overview-panel .ov-ofreg { font-size: 17px; font-weight: 700; }
  .eav26-root .overview-panel .ovp-bar i { display: flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 700; color: #fff; min-width: 0; font-style: normal; }
  .eav26-root .overview-panel .ovp-legend { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 16px; font-size: 10.5px; color: #586571; }
  .eav26-root .overview-panel .ovp-legend span { display: inline-flex; align-items: center; }
  .eav26-root .overview-panel .ovp-legend .dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 5px; }

  .eav26-root /* map status-dot legend */
  .map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 16px; margin-top: 20px; }
  .eav26-root .map-legend .ml-title { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #253746; }
  .eav26-root .ml-item { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; color: #253746; }
  .eav26-root .ml-dot { width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px rgba(0,0,0,.06); }
  .eav26-root .usmap .evdot { transition: r .12s ease; }

  .eav26-root /* ---------- V2 analysis toolbar (combined how-to + selectors) ---------- */
  .analysis-bar { display: flex; flex-direction: column; gap: 16px; background: #fff; border: 1px solid var(--c-line); border-left: 4px solid var(--c-green); border-radius: 10px; padding: 16px 20px; margin-bottom: 22px; }
  .eav26-root .ab-header { display: flex; justify-content: flex-end; align-items: flex-start; gap: 28px; }
  .eav26-root .ab-howto { margin: 0; font-size: 14px; line-height: 1.6; color: #455160; max-width: 74ch; }
  .eav26-root .ab-fields { display: grid; grid-template-columns: repeat(4, 1fr); align-items: end; gap: 16px 24px; }
  .eav26-root .ab-updated { margin-left: auto; align-self: flex-end; }
  .eav26-root .ab-sep { border-right: 1px solid var(--c-line); padding-right: 24px; }
  .eav26-root .analysis-cap { flex-basis: 100%; margin: 0 0 4px; font-size: 12px; color: var(--c-slate); }
  .eav26-root .ab-field { display: flex; flex-direction: column; }
  .eav26-root .ab-field > label { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-green-dk); margin-bottom: 8px; }
  .eav26-root .ab-state .select { min-width: 230px; }
  .eav26-root .scope-controls { display: flex; gap: 10px; }
  .eav26-root .ab-field .scope-controls, .eav26-root .ab-field .scope-mini { width: 100%; }
  .eav26-root .scope-mini { min-width: 0; padding-top: 10px; padding-bottom: 10px; font-size: 14px; }
  .eav26-root .scope-mini[disabled] { opacity: .5; cursor: not-allowed; }
  .eav26-root .ab-ballots { display: flex; flex-direction: column; justify-content: center; padding: 6px 18px; border-left: 3px solid var(--c-green); background: var(--c-paper); border-radius: 0 8px 8px 0; }
  .eav26-root .abb-v { font-family: var(--font-serif); font-weight: 700; font-size: 26px; color: var(--c-navy); line-height: 1; }
  .eav26-root .abb-k { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8a98a3; margin-top: 5px; }
  .eav26-root .abb-k span { display: block; text-transform: none; letter-spacing: 0; font-weight: 600; color: #6a7782; margin-top: 2px; font-size: 10.5px; }

  .eav26-root /* ---------- V2 party-registration compare ---------- */
  .pc-row { display: grid; grid-template-columns: 86px 1fr; gap: 12px; align-items: center; margin-bottom: 12px; }
  .eav26-root .pc-tag { font-size: 9.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--c-slate); text-align: right; line-height: 1.2; }
  .eav26-root .pc-bar { display: flex; height: 30px; border-radius: 7px; overflow: hidden; }
  .eav26-root .pc-bar i { display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; color: #fff; min-width: 0; }
  .eav26-root .pc-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 12px 0 0 98px; font-size: 11px; color: #586571; }
  .eav26-root .pc-legend span { display: inline-flex; align-items: center; }
  .eav26-root .pc-legend .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 7px; }
  .eav26-root .pc-legend .pc-note { flex-basis: 100%; margin-top: 4px; font-size: 11px; font-style: italic; color: #9aa7b0; }

  .eav26-root /* ---------- V2 channel reach ---------- */
  .row-ip > .card:first-child { display: flex; flex-direction: column; }
  .eav26-root #channel-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px 12px; flex: 1; align-content: center; }
  .eav26-root #channel-list .sp-stat { padding: 4px 6px; margin: -4px -6px; }
  .eav26-root #channel-list .sp-stat .v { font-size: 20px; }
  .eav26-root #channel-list .sp-stat .v small { font-size: 13px; margin-left: 5px; }
  .eav26-root #channel-list .sp-stat .k { font-size: 12px; margin-top: 3px; }

  .eav26-root /* ---------- V2 ballots-returned + party row ---------- */
  /* ---------- V2 unified Ballots Returned (stats + party) ---------- */
  .ballots-card .ballots-grid { display: grid; grid-template-columns: minmax(150px, 0.65fr) 2fr; gap: 30px; align-items: center; }
  .eav26-root .party-block { border-left: 1px solid var(--c-line); padding-left: 30px; }
  .eav26-root .pc-head { font-family: var(--font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-navy); margin-bottom: 11px; }
  .eav26-root .bcard-body { display: flex; flex-direction: column; justify-content: center; gap: 16px; }
  .eav26-root .bc-stat { display: flex; flex-direction: column; align-items: flex-start; }
  .eav26-root .bc-status { display: inline-flex; align-items: center; gap: 6px; font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 3px 9px 3px 8px; border-radius: 999px; background: var(--c-paper); color: #586571; border: 1px solid var(--c-line); }
  .eav26-root .bc-status .dot { width: 7px; height: 7px; border-radius: 50%; background: #9aa7af; }
  .eav26-root .bc-status.ongoing .dot { background: #55b255; }
  .eav26-root .bc-status.complete .dot { background: #2a6fb0; }
  .eav26-root .bc-status.upcoming .dot { background: #f0b455; }
  .eav26-root .bc-status.none .dot { background: #c4ced4; }
  .eav26-root .bc-status.overview .dot { background: #9fb4c8; }
  .eav26-root .bc-v { font-family: var(--font-serif); font-weight: 700; font-size: 40px; line-height: 1; color: var(--c-navy); margin-top: 8px; }
  .eav26-root .bc-lbl { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #8a98a3; margin-top: 6px; }
  .eav26-root .bc-div { height: 1px; background: var(--c-line); margin: 2px 0; }

  .eav26-root /* ---------- V2 demographics — 3-bar stacked (reg / primary / general) ---------- */
  .demo-tables { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 44px; }
  .eav26-root .demo-grp { min-width: 0; padding: 2px 0; break-inside: avoid; }
  .eav26-root .dg-head { font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-navy); margin-bottom: 11px; }
  .eav26-root .dg-row { display: grid; grid-template-columns: 86px 1fr; gap: 12px; align-items: center; margin-bottom: 5px; }
  .eav26-root .dg-tag { font-size: 9.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--c-slate); text-align: right; line-height: 1.2; }
  .eav26-root .dg-bar { display: flex; height: 23px; border-radius: 5px; overflow: hidden; }
  .eav26-root .dg-bar i { display: flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 700; min-width: 0; white-space: nowrap; transition: filter .12s ease; }
  .eav26-root .dg-bar i.req { cursor: pointer; }
  .eav26-root .dg-bar i.req:hover { filter: brightness(1.08); box-shadow: inset 0 0 0 2px rgba(255,255,255,.55); }
  .eav26-root .dg-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 9px 0 0 98px; font-size: 11px; color: #586571; }
  .eav26-root .dg-legend span { display: inline-flex; align-items: center; }
  .eav26-root .dg-legend .sw { width: 9px; height: 9px; border-radius: 2px; margin-right: 6px; flex-shrink: 0; }
  .eav26-root .demo-context { font-size: 13px; color: #8a98a3; margin: 0 0 16px; }
  .eav26-root .demo-context b { color: var(--c-navy); font-weight: 700; }

  .eav26-root .demo-key { font-size: 12.5px; color: #6a7782; margin: 0 0 18px; line-height: 1.5; }
  .eav26-root .demo-key .pill-eg { display: inline-block; font-size: 10.5px; font-weight: 800; padding: 2px 6px; border-radius: 5px; vertical-align: middle; }
  .eav26-root .demo-key .pill-eg.up { color: #2f7d32; background: #e6f3e6; }
  .eav26-root .demo-key .pill-eg.down { color: #b23b2e; background: #f7e7e4; }

  .eav26-root .demo-card { padding: 6px 24px; }
  .eav26-root .demo-row { display: grid; grid-template-columns: 188px 1fr; gap: 28px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--c-line); }
  .eav26-root .demo-row:last-child { border-bottom: 0; }
  .eav26-root .demo-name .dn-title { font-weight: 700; font-size: 16px; color: var(--c-navy); line-height: 1.25; }
  .eav26-root .demo-name .dn-note { font-size: 11.5px; color: #8a98a3; margin-top: 6px; line-height: 1.4; }

  .eav26-root .demo-compare { min-width: 0; }
  .eav26-root .demo-chart { display: flex; align-items: flex-end; gap: 16px; height: 186px; }
  .eav26-root .demo-col { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; cursor: pointer; }
  .eav26-root .col-pill { font-size: 11px; font-weight: 800; line-height: 1; padding: 3px 7px; border-radius: 5px; margin-bottom: 6px; white-space: nowrap; }
  .eav26-root .col-pill.up { color: #2f7d32; background: #e6f3e6; }
  .eav26-root .col-pill.down { color: #b23b2e; background: #f7e7e4; }
  .eav26-root .col-pill.flat { color: #7c8a93; background: #eef2f4; }
  .eav26-root .col-pct { font-size: 13px; font-weight: 700; color: var(--c-navy); margin-bottom: 5px; line-height: 1; }
  .eav26-root .col-bar { width: 100%; max-width: 66px; min-height: 3px; background: var(--c-navy); border-radius: 5px 5px 0 0; transition: height .35s ease, background .15s ease; }
  .eav26-root .demo-col:hover .col-bar { background: #0a4f93; }
  .eav26-root .demo-xaxis { display: flex; gap: 16px; margin-top: 11px; }
  .eav26-root .demo-xlabel { flex: 1; min-width: 0; text-align: center; font-size: 11.5px; color: #586571; line-height: 1.25; }

  .eav26-root /* stacked-bar variant (bottom demographics) */
  .cmp-line { display: grid; grid-template-columns: 104px 1fr; gap: 12px; align-items: center; margin-bottom: 8px; }
  .eav26-root .cmp-tag { font-size: 10px; letter-spacing: .05em; text-transform: uppercase; font-weight: 700; color: var(--c-slate); text-align: right; }
  .eav26-root .cmp-tag.pop { color: #9aa7b0; }
  .eav26-root .demo-bar { display: flex; gap: 2px; height: 30px; border-radius: 5px; overflow: hidden; background: #fff; }
  .eav26-root .demo-bar i { display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; min-width: 0; white-space: nowrap; transition: width .35s ease, filter .12s ease; cursor: pointer; }
  .eav26-root .demo-bar i:hover { filter: brightness(1.1); box-shadow: inset 0 0 0 2px rgba(255,255,255,.5); }
  .eav26-root /* "all registered" comparison bar — differentiation experiment by group band:
     t-opacity (groups 1–3) lighten, .eav26-root t-hatch (4–6) diagonal stripes, .eav26-root t-dots (7–8) dots */
  .demo-bar.pop.t-opacity i { opacity: .5; }
  .eav26-root .demo-bar.pop.t-hatch i { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.55) 0 3px, rgba(255,255,255,0) 3px 7px); }
  .eav26-root .demo-bar.pop.t-dots i { background-image: radial-gradient(rgba(255,255,255,.72) 1.4px, rgba(255,255,255,0) 1.7px); background-size: 8px 8px; background-position: center; }
  .eav26-root .demo-legend { display: flex; flex-wrap: wrap; gap: 7px 16px; margin-top: 10px; margin-left: 116px; font-size: 11.5px; color: #586571; }
  .eav26-root .demo-legend span { display: inline-flex; align-items: center; }
  .eav26-root .demo-legend i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; margin-right: 6px; }

  .eav26-root /* single stacked bar with a pill above each segment (age + ethnicity) */
  .pillbar-pills { display: flex; gap: 2px; margin-bottom: 8px; align-items: flex-end; }
  .eav26-root .pb-slot { display: flex; justify-content: center; min-width: 0; }
  .eav26-root .pb-slot .col-pill { margin-bottom: 0; }
  .eav26-root .pillbar-bar { display: flex; gap: 2px; height: 34px; border-radius: 6px; overflow: hidden; }
  .eav26-root .pillbar-bar i { display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; min-width: 0; white-space: nowrap; cursor: pointer; transition: width .35s ease, filter .12s ease; }
  .eav26-root .pillbar-bar i:hover { filter: brightness(1.1); box-shadow: inset 0 0 0 2px rgba(255,255,255,.5); }

  .eav26-root .demo-tip { position: fixed; z-index: 60; min-width: 250px; max-width: 320px; background: #3d5568; color: #fff;
    border: 1px solid rgba(255,255,255,.16); border-radius: 10px; padding: 0; overflow: hidden;
    font-size: 13px; line-height: 1.5; pointer-events: none; opacity: 0; transform: translateY(4px);
    transition: opacity .12s ease, transform .12s ease; box-shadow: 0 8px 24px rgba(0,0,0,.28); }
  .eav26-root .demo-tip.show { opacity: 1; transform: translateY(0); }
  .eav26-root /* the header takes the hovered segment's own colour — no new palette, .eav26-root and it makes the
     separate swatch redundant; ink flips to dark on light segment colours */
  .demo-tip .tt-hd { padding: 9px 14px; color: #fff; }
  .eav26-root .demo-tip .tt-cat { font-weight: 800; font-size: 15px; letter-spacing: -.01em; }
  .eav26-root /* hierarchy comes from size and tracking, .eav26-root not opacity: alpha here would blend against a
     header colour that varies across the whole ramp and collapse contrast */
  .demo-tip .tt-grp { font-size: 10.5px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; margin-top: 2px; color: #fff; }
  .eav26-root .demo-tip .tt-bd { padding: 4px 14px 12px; }
  .eav26-root .demo-tip .tt-row { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 7px 0; }
  .eav26-root .demo-tip .tt-row + .tt-row { border-top: 1px solid rgba(255,255,255,.16); }
  .eav26-root .demo-tip .tt-row .k { color: #fff; font-weight: 600; }
  .eav26-root .demo-tip .tt-row .n { font-weight: 800; font-variant-numeric: tabular-nums; font-size: 14px; }
  .eav26-root .demo-tip .tt-row.ea .n { color: #b9ec9a; }
  .eav26-root .demo-tip .tt-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin-top: 8px; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.22); font-size: 12px; font-weight: 600; color: #fff; }
  .eav26-root .demo-tip .tt-pill { font-weight: 800; border-radius: 999px; padding: 2px 8px; font-size: 12px; }
  .eav26-root .demo-tip .tt-pill.up { color: #e8fbe8; background: rgba(63,150,63,.42); }
  .eav26-root .demo-tip .tt-pill.down { color: #ffd9d3; background: rgba(192,57,43,.34); }
  .eav26-root .demo-tip .tt-pill.zero { color: #fff; background: rgba(255,255,255,.16); }
  .eav26-root #demo-list .mb-row:hover { background: #f4f8fa; border-radius: 6px; }

  .eav26-root /* ===== V5: hero (1c) ===== */
  .page-head-inner { padding: 28px 28px 24px; }
  .eav26-root .ph-kicker { display: block; font-family: var(--font-sans); font-weight: 700; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-slate); margin: 0 0 6px; }
  .eav26-root h1.ph-title { font-family: var(--font-sans); font-size: 34px; line-height: 1.15; font-weight: 700; letter-spacing: 0.01em; text-transform: uppercase; color: var(--c-navy); margin: 0 auto 8px; white-space: nowrap; max-width: none; }
  .eav26-root .page-head h1.ph-num { font-family: var(--font-sans); font-size: clamp(52px, 8vw, 84px); font-weight: 700; line-height: .95; letter-spacing: -0.02em; text-transform: none; color: #253746; margin: 0; }
  .eav26-root .ph-sub { font-size: 22px; font-weight: 600; color: #253746; margin-top: 14px; }
  .eav26-root .ph-delta { font-size: 15px; font-weight: 800; color: #00ab66; margin-top: 12px; opacity: 0; transform: translateY(6px); transition: opacity .6s ease, transform .6s ease; }
  .eav26-root .ph-delta.show { opacity: 1; transform: translateY(0); }
  .eav26-root .ph-lede { margin: 0 auto 20px; max-width: 820px; font-size: 15px; line-height: 1.5; color: #586571; text-wrap: pretty; }
  .eav26-root .btn-cta.ph-cta { border-radius: 16px; text-transform: none; letter-spacing: .03em; font-size: 15px; padding: 14px 30px; cursor: pointer; box-shadow: 0 4px 14px rgba(85,178,85,.35); }
  .eav26-root .btn-cta.alt.ph-cta { border: 2px solid var(--c-navy); color: var(--c-navy); box-shadow: none; padding: 12px 30px; }
  .eav26-root .ph-note { font-size: 12px; color: #6a7782; margin-top: 14px; }
  .eav26-root .ph-cta .cta-arrow { margin-left: 7px; }

  .eav26-root /* ===== V5: integrated overview card (1d) ===== */
  .ov-card { padding: 0; overflow: hidden; }
  .eav26-root .ov-filters { background: #e7ecef; display: flex; flex-direction: column; gap: 18px; padding: 20px 24px; border-bottom: 1px solid var(--c-line); }
  .eav26-root .ov-filters .ov-row1 { display: flex; flex-direction: column; }
  .eav26-root .ov-filters .ov-row2 { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px 20px; }
  .eav26-root .ov-filters .ov-row2 .ab-field { flex: 1; }
  .eav26-root .ov-filters .ab-field > label, .eav26-root .ov-filters .cw-nav-label { color: var(--c-slate); font-size: 10.5px; font-weight: 800; letter-spacing: .12em; margin-bottom: 12px; }
  .eav26-root .ov-filters .scope-mini { border: 1px solid var(--c-line); border-radius: 8px; background-color: #fff; font-weight: 700; color: var(--c-navy); transition: border-color .12s, box-shadow .12s; }
  .eav26-root .ov-filters .scope-mini:hover { border-color: #aeb9c1; }
  .eav26-root .ov-filters .scope-mini:focus { border: 1.5px solid var(--c-navy); box-shadow: 0 6px 14px rgba(1,53,100,.08); outline: none; }
  .eav26-root .ov-strip { padding: 0; border-bottom: 1px solid var(--c-line); }
  .eav26-root .os-banner { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px 14px; background: #e8f0f8; padding: 8px 16px; }
  .eav26-root .os-bname { font-family: var(--font-serif); font-size: 17px; font-weight: 700; color: var(--c-navy); }
  .eav26-root .os-bpill { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-navy); background: #fff; border-radius: 999px; padding: 2px 10px; }
  .eav26-root .os-bstatus { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
  .eav26-root .os-bstatus .os-dot { width: 8px; height: 8px; }
  .eav26-root .os-groups { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 56px; padding: 18px 0 20px; max-width: 900px; margin: 0 auto; }
  .eav26-root .os-grp { flex: 1; text-align: center; }
  .eav26-root .os-glabel { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #586571; margin-bottom: 8px; }
  .eav26-root .os-glabel .os-dot { width: 9px; height: 9px; }
  .eav26-root .os-gnums { display: flex; align-items: flex-start; justify-content: center; gap: 28px; }
  .eav26-root .os-stat { display: flex; flex-direction: column; align-items: center; gap: 7px; }
  .eav26-root .os-count { font-family: var(--font-serif); font-size: 34px; font-weight: 700; color: var(--c-navy); font-variant-numeric: tabular-nums; line-height: 1; }
  .eav26-root .os-pct2 { font-size: 34px; font-weight: 800; color: #00ab66; line-height: 1; }
  .eav26-root .os-gsub { font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #586571; }
  .eav26-root .os-gdiv { width: 1px; align-self: stretch; background: var(--c-line); }
  .eav26-root .os-dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px rgba(0,0,0,.06); }
  @media (max-width: 720px) {
    .eav26-root .page-head-inner { padding: 28px 20px 26px; }
    .eav26-root .page-head h1.ph-num { font-size: clamp(40px, 11vw, 56px); }
    .eav26-root h1.ph-title { font-size: clamp(26px, 8vw, 34px); letter-spacing: .01em; }
    .eav26-root .ph-sub { font-size: 17px; margin-top: 10px; }
    .eav26-root .ph-lede { margin: 12px auto 18px; }
    .eav26-root .btn-cta.ph-cta { padding: 12px 22px; font-size: 14px; }
    .eav26-root .btn-cta.alt.ph-cta { padding: 10px 22px; }
    .eav26-root .os-groups { flex-direction: column; align-items: center; gap: 12px; }
    .eav26-root .os-gdiv { width: 130px; height: 1px; align-self: center; }
  }
  .eav26-root .ov-mapzone { padding: 14px 26px 20px; }
  .eav26-root .map-legend { justify-content: center; gap: 8px 26px; margin-top: 18px; }
  .eav26-root .map-legend .ml-title { font-size: 13px; }
  .eav26-root .ml-item { font-size: 14px; gap: 8px; }
  .eav26-root .ml-dot { width: 11px; height: 11px; }
  .eav26-root .lu-centered { text-align: center; margin-top: 10px; font-size: 12px; color: #6a7782; font-weight: 400; }
  .eav26-root .last-updated.lu-centered { text-align: center; }

  .eav26-root /* ===== V5: party affiliation, .eav26-root Political Data style (centered) ===== */
  .pc-head { text-align: center; font-size: 20px; letter-spacing: .04em; margin: 0 0 10px; }
  .eav26-root .pc-cline { margin-bottom: 16px; }
  .eav26-root .pc-clabel { text-align: center; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-slate); margin-bottom: 7px; }
  .eav26-root .pc-cline .pc-bar { max-width: 760px; margin: 0 auto; height: 24px; border-radius: 9px; }
  .eav26-root .pc-legend-c { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 34px; margin-top: 14px; font-size: 12.5px; color: #586571; }
  .eav26-root .pc-legend-c span { display: inline-flex; align-items: center; }
  .eav26-root /* ===== V6: 1d party affiliation (mascots + delta block) ===== */
  .pd-sub { text-align: center; font-size: 14px; color: #586571; margin: -8px 0 16px; }
  .eav26-root .pd-sub b { color: var(--c-navy); }
  .eav26-root .pd-flank { display: flex; align-items: center; gap: 14px; max-width: 860px; margin: 0 auto; }
  .eav26-root .pd-mascot { width: 66px; height: auto; flex: none; mix-blend-mode: multiply; }
  .eav26-root #party-bar-host { flex: 1; min-width: 0; }
  .eav26-root #party-bar-host .pc-bar { height: 34px; border-radius: 10px; }
  .eav26-root .pd-change { background: var(--c-paper); border-radius: 10px; padding: 16px 18px; margin: 20px auto 0; max-width: 760px; }
  .eav26-root .pd-ct { font-size: 15px; font-weight: 800; color: var(--c-navy); text-align: center; }
  .eav26-root .pd-grid { display: grid; grid-template-columns: 120px 1fr 64px; gap: 8px 12px; align-items: center; margin-top: 14px; }
  .eav26-root .pd-p { font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; text-align: right; }
  .eav26-root .pd-track { position: relative; height: 14px; }
  .eav26-root .pd-axis { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: #c6ccd2; }
  .eav26-root .pd-seg { position: absolute; top: 2px; bottom: 2px; }
  .eav26-root .pd-val { justify-self: start; font-size: 13px; font-weight: 800; white-space: nowrap; border-radius: 999px; padding: 3px 10px; font-variant-numeric: tabular-nums; }
  .eav26-root .pd-val.up { color: #1c6e38 !important; background: transparent; }
  .eav26-root .pd-val.down { color: #b23b2e !important; background: transparent; }
  .eav26-root .pd-val.zero { color: #8a98a3 !important; background: transparent; }
  .eav26-root .pd-note { text-align: center; font-size: 11.5px; color: #8a98a3; margin-top: 12px; font-style: italic; }
  @media (max-width: 720px) {
    .eav26-root .pd-mascot { width: 44px; }
    .eav26-root .pd-grid { grid-template-columns: 54px 1fr auto; gap: 8px 10px; }
    .eav26-root .pd-p { font-size: 11.5px; letter-spacing: .02em; }
    .eav26-root .pd-val { font-size: 12.5px; padding: 3px 8px; }
  }
  .eav26-root .pc-legend-c .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 7px; }

  .eav26-root /* ===== V5: demographic cards (1f/1h hybrid) ===== */
  .demo-tables { grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 22px; }
  .eav26-root .demo-cardi { background: #fff; border: 1px solid var(--c-line); border-radius: 10px; box-shadow: 0 1px 2px rgba(20,40,60,.04), 0 8px 22px rgba(20,40,60,.05); padding: 18px 20px; min-width: 0; }
  .eav26-root .dc-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; margin-bottom: 22px; }
  .eav26-root .dc-top { display: flex; align-items: center; gap: 8px; }
  .eav26-root .dc-top svg { flex-shrink: 0; }
  .eav26-root .dc-title { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-navy); }
  .eav26-root .dc-hl { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
  .eav26-root .dc-big { font-family: var(--font-serif); font-size: 23px; font-weight: 700; color: var(--c-navy); line-height: 1; }
  .eav26-root .dc-take { font-size: 12.5px; color: #586571; line-height: 1.35; }
  .eav26-root .mb-row { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
  .eav26-root .mb-k { width: 72px; flex-shrink: 0; text-align: right; font-size: 12.5px; color: #46545f; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .eav26-root .mb-track { flex: 1; height: 11px; background: #eef2f5; border-radius: 6px; overflow: hidden; }
  .eav26-root .mb-track i { display: block; height: 100%; border-radius: 6px; }
  .eav26-root .mb-v { width: 34px; flex-shrink: 0; font-size: 12.5px; font-weight: 700; color: var(--c-navy); text-align: right; font-variant-numeric: tabular-nums; }
  .eav26-root .mb-d { width: 38px; flex-shrink: 0; text-align: center; font-size: 11px; font-weight: 800; border-radius: 999px; padding: 1px 0; font-variant-numeric: tabular-nums; }
  .eav26-root .mb-d.up { color: #1c6e38; background: #e6f3e6; }
  .eav26-root .mb-d.down { color: #b23b2e; background: #f7e7e4; }
  .eav26-root .mb-d.zero { color: #8a98a3; background: transparent; }
  .eav26-root .cap-pill { display: inline-block; width: 24px; font-style: normal; text-align: center; line-height: 1.4; }
  @media (max-width: 1080px) { .eav26-root .demo-tables { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 700px) { .eav26-root .demo-tables { grid-template-columns: 1fr; } }

  .eav26-root /* ===== V5: centered section head + full-width reach card ===== */
  .block-head { text-align: center; }
  .eav26-root .reach-card { padding: 32px 28px 30px; text-align: center; }
  .eav26-root .reach-head .card-title { font-size: 20px; }
  .eav26-root .reach-head .card-cap { margin-top: 6px; }
  .eav26-root #channel-list.reach-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin: 26px 0 2px; }
  .eav26-root .reach-row .sp-stat { padding: 6px 10px; margin: 0; }
  .eav26-root .reach-row .sp-stat + .sp-stat { border-left: 1px solid #eef2f5; }
  .eav26-root .reach-cta { background: #eef2f5; border: 1px solid var(--c-line); border-radius: 8px; margin-top: 28px; padding: 26px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
  .eav26-root .reach-cta .mi-title { margin: 0; color: #013564; }
  .eav26-root .reach-cta p { font-size: 13.5px; color: #46545f; line-height: 1.5; max-width: 520px; margin: 0; }
  .eav26-root .reach-cta .mi-btn.primary { background: #fff; border: 2px solid var(--c-navy); color: var(--c-navy); }
  .eav26-root .reach-cta .mi-btn { margin-top: 4px; border-radius: 16px; font-size: 15px; letter-spacing: .03em; padding: 14px 30px; min-width: 220px; box-shadow: none; white-space: nowrap; }
  .eav26-root .reach-cta .mi-btn .cta-arrow { margin-left: 7px; }
  @media (max-width: 900px) { .eav26-root #channel-list.reach-row { grid-template-columns: repeat(3, 1fr); row-gap: 20px; } .eav26-root .reach-row .sp-stat:nth-child(4) { border-left: 0; } }

  .eav26-root /* ---------- State panel: geographic scope drill-down ---------- */
  .sp-scope { display: flex; align-items: center; gap: 10px; padding: 11px 18px; border-bottom: 1px solid var(--c-line); background: #fafcfd; }
  .eav26-root .sp-scope label { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: #8a98a3; font-weight: 700; white-space: nowrap; }
  .eav26-root .scope-select {
    flex: 1; appearance: none; -webkit-appearance: none; font-family: var(--font-sans);
    font-size: 12.5px; font-weight: 600; color: var(--c-ink); background-color: #fff;
    border: 1px solid var(--c-line); border-radius: 7px; padding: 7px 30px 7px 11px; cursor: pointer;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238a98a3' stroke-width='1.6' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat; background-position: right 11px center;
  }
  .eav26-root .scope-select:focus { outline: none; border-color: var(--c-slate); box-shadow: 0 0 0 3px rgba(104,138,159,.18); }

  .eav26-root .sp-districts { padding: 4px 18px 16px; }
  .eav26-root .sp-dist-head { display: grid; grid-template-columns: 1fr 56px; gap: 12px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: #8a98a3; font-weight: 700; padding: 11px 0 9px; border-bottom: 1px solid var(--c-line); }
  .eav26-root .sp-dist-head .h-r { text-align: right; }
  .eav26-root .sp-dist-scroll { max-height: 296px; overflow-y: auto; margin-right: -6px; padding-right: 6px; }
  .eav26-root .sp-dist-scroll::-webkit-scrollbar { width: 7px; }
  .eav26-root .sp-dist-scroll::-webkit-scrollbar-thumb { background: #cdd8dd; border-radius: 4px; }
  .eav26-root .dist-row { display: grid; grid-template-columns: 70px 1fr 50px; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid #eef2f4; }
  .eav26-root .dist-row:last-child { border-bottom: 0; }
  .eav26-root .dist-name { font-size: 12.5px; font-weight: 700; color: var(--c-navy); }
  .eav26-root .dist-bar { height: 8px; border-radius: 4px; background: #e3eaed; overflow: hidden; }
  .eav26-root .dist-bar i { display: block; height: 100%; background: var(--c-green); border-radius: 4px; }
  .eav26-root .dist-val { text-align: right; font-size: 12px; font-weight: 700; color: var(--c-ink); }
  .eav26-root .dist-note { font-size: 11px; color: #8a98a3; padding: 11px 0 0; font-style: italic; line-height: 1.5; }

  @media (max-width: 620px) {
    .eav26-root .demo-row { grid-template-columns: 1fr; gap: 14px; }
    .eav26-root .demo-chart { height: 150px; gap: 10px; }
    .eav26-root .cmp-line { grid-template-columns: 88px 1fr; }
    .eav26-root .demo-legend { margin-left: 0; }
  }

  .eav26-root /* ---------- Request segment modal ---------- */
  .req-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(20,33,46,.55); display: flex; align-items: center; justify-content: center; padding: 24px; }
  .eav26-root .req-overlay[hidden] { display: none; }
  .eav26-root .req-modal { position: relative; width: 100%; max-width: 540px; max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(10,25,40,.4); animation: reqIn .18s ease; }
  @keyframes reqIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
  .eav26-root .req-close { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; border: 0; background: rgba(255,255,255,.16); color: #fff; font-size: 22px; line-height: 1; border-radius: 50%; cursor: pointer; transition: background .12s; }
  .eav26-root .req-close:hover { background: rgba(255,255,255,.32); }
  .eav26-root .req-head { background: #5e9bb5; color: #fff; padding: 24px 28px; border-radius: 14px 14px 0 0; }
  .eav26-root .req-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8fb4d8; }
  .eav26-root .req-title { font-family: var(--font-serif); font-weight: 700; font-size: 21px; margin: 0 0 8px; }
  .eav26-root .req-sub { font-size: 13px; line-height: 1.55; color: #c5d4e2; margin: 0; }
  .eav26-root .req-body { padding: 22px 28px 26px; }
  .eav26-root .req-summary { border: 1px solid var(--c-line); border-radius: 10px; overflow: hidden; margin-bottom: 22px; }
  .eav26-root .rs-row { display: grid; grid-template-columns: 120px 1fr; gap: 14px; padding: 11px 16px; align-items: baseline; }
  .eav26-root .rs-row:nth-child(odd) { background: var(--c-paper); }
  .eav26-root .rs-k { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8a98a3; }
  .eav26-root .rs-v { font-size: 14px; font-weight: 700; color: var(--c-navy); }
  .eav26-root .req-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
  .eav26-root .rf { display: flex; flex-direction: column; }
  .eav26-root .rf label { font-size: 11.5px; font-weight: 700; color: #586571; margin-bottom: 6px; letter-spacing: .02em; }
  .eav26-root .rf input, .eav26-root .rf textarea, .eav26-root .rf select { font-family: var(--font-sans); font-size: 14px; color: var(--c-ink); border: 1px solid var(--c-line); border-radius: 8px; padding: 10px 12px; width: 100%; resize: vertical; }
  .eav26-root .rf select { background: #fff; cursor: pointer; }
  .eav26-root .rf input:focus, .eav26-root .rf textarea:focus, .eav26-root .rf select:focus { outline: none; border-color: var(--c-slate); box-shadow: 0 0 0 3px rgba(104,138,159,.18); }
  .eav26-root .req-actions { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 20px; }
  .eav26-root .req-submit { border: 0; cursor: pointer; }
  .eav26-root .req-email { font-size: 13px; font-weight: 700; color: var(--c-slate); }
  .eav26-root .req-email:hover { color: var(--c-navy); text-decoration: underline; }
  .eav26-root .req-fineprint { font-size: 11.5px; color: #8a98a3; margin: 14px 0 0; line-height: 1.5; text-align: center; }
  .eav26-root .req-success { text-align: center; padding: 18px 6px 8px; }
  .eav26-root .req-check { width: 56px; height: 56px; border-radius: 50%; background: #e6f3e6; color: var(--c-green-dk); font-size: 28px; display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
  .eav26-root .req-success h4 { font-family: var(--font-serif); font-size: 20px; color: var(--c-navy); margin: 0 0 10px; }
  .eav26-root .req-success p { font-size: 14px; line-height: 1.6; color: #586571; margin: 0 auto 22px !important; max-width: 380px; }

  .eav26-root /* ---------- Footer (shared) ---------- */
  .site-footer { background: var(--c-footer); color: #c8cacc; }
  .eav26-root .footer-also { border-bottom: 1px solid #6a6c6e; }
  .eav26-root .footer-also-inner { max-width: var(--maxw); margin: 0 auto; padding: 20px 28px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 22px; font-size: 11.5px; letter-spacing: 0.07em; text-transform: uppercase; }
  .eav26-root .footer-also .label { color: #8d8f91; font-weight: 700; }
  .eav26-root .footer-also a { color: #9aa7c9; font-weight: 600; }
  .eav26-root .footer-also a:hover { color: #fff; }
  .eav26-root .footer-cols { max-width: var(--maxw); margin: 0 auto; padding: 40px 28px 48px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
  .eav26-root .footer-cols h3 { font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: #ededed; font-weight: 700; margin: 0 0 16px; }
  .eav26-root .footer-cols ul { list-style: none; margin: 0; padding: 0; }
  .eav26-root .footer-cols li { margin-bottom: 9px; }
  .eav26-root .footer-cols a { font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #9aa7c9; }
  .eav26-root .footer-cols a:hover { color: #fff; }
  .eav26-root .footer-cols .plain { color:#b9bbbd; text-transform:none; letter-spacing:0; font-size:13px; }
  .eav26-root .footer-legal { border-top: 1px solid #6a6c6e; }
  .eav26-root .footer-legal-inner { max-width: var(--maxw); margin: 0 auto; padding: 22px 28px 36px; font-size: 11.5px; line-height: 1.6; color: #9a9c9e; }
  .eav26-root .footer-legal h4 { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: #c8cacc; margin: 0 0 8px; }
  .eav26-root .footer-legal p { margin: 0 0 8px; max-width: 900px; }

  @media (max-width: 900px) {
    .eav26-root .main-nav { display: none; }
    .eav26-root .footer-cols { grid-template-columns: repeat(2, 1fr); }
    .eav26-root .grid-2 { grid-template-columns: 1fr; }
    .eav26-root .filters { grid-template-columns: 1fr; }
    .eav26-root .stats-grid { grid-template-columns: 1fr 1fr; }
    .eav26-root .row-ip { grid-template-columns: 1fr; }
    .eav26-root .page-head h1 { font-size: 27px; }
    .eav26-root .map-layout { grid-template-columns: 1fr; }
    .eav26-root .ei-grid, .eav26-root .ei-grid-3 { grid-template-columns: 1fr; }
    .eav26-root .ei-col-dates, .eav26-root .ei-col-el { border-left: 0; border-top: 1px solid var(--c-line); }
    .eav26-root #channel-list { grid-template-columns: repeat(2, 1fr); }
    .eav26-root .ballots-card .ballots-grid { grid-template-columns: 1fr; }
    .eav26-root .party-block { border-left: 0; border-top: 1px solid var(--c-line); padding-left: 0; padding-top: 18px; }
    .eav26-root .demo-tables { grid-template-columns: 1fr; }
    .eav26-root .pc-row { grid-template-columns: 96px 1fr; }
    .eav26-root .ab-state .select, .eav26-root .scope-mini { min-width: 0; width: 100%; }
    .eav26-root .ab-field, .eav26-root .ab-state { flex: 1 1 100%; }
    .eav26-root .intro-bar { flex-direction: column; gap: 16px; }
    .eav26-root .last-updated { text-align: left; }
  }
  @media (max-width: 560px) {
    .eav26-root .stats-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 480px) {
    .eav26-root .req-grid { grid-template-columns: 1fr; }
    .eav26-root .req-head, .eav26-root .req-body { padding-left: 20px; padding-right: 20px; }
  }

  .eav26-root /* ---------- Mobile nav (the desktop nav collapses into a drawer) ---------- */
  #m-navbtn { display: none; font: inherit; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: var(--c-green); border: 0; border-radius: 999px; padding: 9px 16px; cursor: pointer; }
  .eav26-root #m-navbtn:hover { background: var(--c-green-dk); }
  .eav26-root #m-drawer { display: none; }
  @media (max-width: 900px) {
    .eav26-root #m-navbtn { display: inline-flex; }
    .eav26-root #m-drawer { display: flex; position: fixed; top: 64px; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--c-header); flex-direction: column; opacity: 0; pointer-events: none; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease; }
    .eav26-root.m-nav-open #m-drawer { opacity: 1; pointer-events: auto; transform: none; }
    .eav26-root.m-nav-open { overflow: hidden; }
    .eav26-root #m-drawer .mlist { flex: 1; overflow-y: auto; padding: 6px 0; }
    .eav26-root #m-drawer a { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #eef2f5; border-bottom: 1px solid rgba(255,255,255,.09); }
    .eav26-root #m-drawer a:hover { color: var(--c-green); }
    .eav26-root #m-drawer .mcta { padding: 14px 20px 22px; display: flex; flex-direction: column; gap: 10px; background: var(--c-header); }
    .eav26-root #m-drawer .mcta a { justify-content: center; border: 0; border-radius: 999px; }
    .eav26-root #m-drawer .mcta a.primary { background: var(--c-green); color: #fff; }
    .eav26-root #m-drawer .mcta a.ghost { border: 1.5px solid rgba(255,255,255,.55); color: #fff; }
  }

  .eav26-root /* ===== V7: overview map (year results) + data, .eav26-root two columns ===== */
  .ov-two { display: grid; grid-template-columns: minmax(0, 6.5fr) minmax(0, 3.5fr); grid-template-rows: auto 1fr;
    grid-template-areas: "map info" "map chart"; gap: 4px 26px; padding: 18px 26px 22px; align-items: stretch; }
  .eav26-root .ovx-mapcol { grid-area: map; justify-content: center; }
  .eav26-root .ovx-infocol { grid-area: info; align-self: start; }
  .eav26-root .ovx-chartcol { grid-area: chart; align-self: start; min-width: 0; display: flex; flex-direction: column; }
  .eav26-root .ovx-col { min-width: 0; display: flex; flex-direction: column; }
  .eav26-root .ovx-col > .last-updated { margin-top: 10px; }
  .eav26-root .ovx-head { display: flex; flex-wrap: wrap; gap: 8px 10px; justify-content: center; }
  .eav26-root /* Segmented pill: one track subdivided, .eav26-root not two loose buttons. Same language at every
     size — desktop hugs its labels, .eav26-root mobile stretches to the column. */
  .ovx-years { display: inline-grid; grid-auto-flow: column; grid-auto-columns: auto; gap: 0;
    background: #eef2f5; border-radius: 999px; padding: 3px; margin-bottom: 12px; }
  .eav26-root .ovx-years:not(:has(button:not([hidden]), .eav26-root span:not([hidden]))) { display: none; }
  .eav26-root .ovx-placeholder { color: #5e9bb5; cursor: default; pointer-events: none; }
  .eav26-root .ovx-back { font: inherit; font-size: 13px; font-weight: 700; white-space: nowrap;
    display: flex; align-items: center; justify-content: center; min-height: 38px;
    color: #586571; background: transparent; border: 0; border-radius: 999px;
    padding: 0 16px; margin: 0; box-shadow: none; cursor: pointer; position: relative;
    transition: color .12s ease, background .12s ease; }
  .eav26-root /* Dividers are drawn as a ::before hairline, .eav26-root never as box-shadow: box-shadow is
     reserved for the pressed lift, .eav26-root so the two can't fight over the same channel. */
  .ovx-years .ovx-seg + .ovx-seg::before { content: ''; position: absolute; left: 0; top: 9px;
    bottom: 9px; width: 1px; background: rgba(1,53,100,.11); }
  .eav26-root .ovx-back:hover { color: var(--c-navy); }
  .eav26-root .ovx-years .ovx-back[aria-pressed="true"] { background: #fff; color: var(--c-navy); box-shadow: 0 1px 5px rgba(1,53,100,.18); }
  .eav26-root .ovx-years .ovx-seg[aria-pressed="true"]::before, .eav26-root .ovx-years .ovx-seg[aria-pressed="true"] + .ovx-seg::before { background: transparent; }
  .eav26-root .ovx-back[hidden] { display: none; }
  .eav26-root /* One fixed 4:3 stage for every geography — Delaware and Nationwide get the same
     footprint, .eav26-root so the card never resizes when the selection changes. */
  .ovx-mapbox { position: relative; width: 100%; max-width: 900px; margin: 0 auto; aspect-ratio: 16 / 10;
    padding: 10px; display: flex; align-items: center; justify-content: center;
    border: 1px solid #e8edf0; border-radius: 14px; background: #fcfdfe; }
  .eav26-root .ovx-mapbox svg { display: block; width: 100%; height: 100%; }
  .eav26-root .ovx-mapbox .map-loading { padding: 60px 0; text-align: center; font-size: 13px; color: #8a98a3; }
  .eav26-root /* Boundaries carry the structure now that fills are neutral: a cool grey line at a
     constant screen width (non-scaling-stroke) so nation and single-state views read alike. */
  .ev-geo { stroke: #a7b6c1; stroke-width: 1.1; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .12s ease; }
  .eav26-root .ev-geo:hover:not(.active) { fill: #ccd8df; }
  .eav26-root .ev-geo.hot:not(.active) { fill: #ccd8df; }
  .eav26-root .ev-hit { fill: transparent; cursor: pointer; }
  .eav26-root /* a district in a dense metro can render a few px wide — ring it at a constant
     fraction of the stage so the selection is never invisible */
  .ev-ring { fill: none; stroke: #3f9b3f; stroke-width: 2.4; vector-effect: non-scaling-stroke; pointer-events: none; }
  .eav26-root .ev-ring-halo { fill: none; stroke: #fff; stroke-width: 5.5; vector-effect: non-scaling-stroke; pointer-events: none; }
  .eav26-root .ev-geo:focus { outline: none; }
  .eav26-root .ev-geo:focus-visible { outline: 2px solid #f0b455; outline-offset: 2px; }
  .eav26-root .ev-sel-outline { fill: none; stroke: #33772f; stroke-width: 2.4; vector-effect: non-scaling-stroke; stroke-linejoin: round; pointer-events: none; paint-order: stroke; }
  .eav26-root .ev-sel-halo { fill: none; stroke: #fff; stroke-width: 5.5; vector-effect: non-scaling-stroke; stroke-linejoin: round; pointer-events: none; }
  .eav26-root .ev-outline { fill: none; stroke: #101820; stroke-width: 2; pointer-events: none; }
  .eav26-root .ovx-status { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px 14px; margin-top: 4px; padding: 7px 11px; background: #f7f9fa; border: 1px solid var(--c-line); border-radius: 999px; }
  .eav26-root .ovx-status .st { font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #253746; }
  .eav26-root .ovx-status .si { display: flex; align-items: center; gap: 6px; font-size: 10.5px; color: #586571; }
  .eav26-root .ovx-status .sw { width: 16px; height: 11px; border-radius: 2px; border: 1px solid #a7b6c1; display: block; background-color: #e6ebee; overflow: hidden; }
  .eav26-root .ovx-status .sw-hatch { background-image: repeating-linear-gradient(45deg, rgba(16,24,32,.34) 0 2px, rgba(16,24,32,0) 2px 6px); }
  .eav26-root .ovx-status .sw-dots { background-image: radial-gradient(rgba(16,24,32,.36) 1.4px, rgba(16,24,32,0) 1.7px); background-size: 7px 7px; background-position: center; }
  .eav26-root .ovx-status .sw-scale { width: 64px; }
  .eav26-root .ovx-desc { font-size: 11.5px; color: #8a98a3; line-height: 1.5; margin: 14px 0; }
  .eav26-root .ovx-desc a { color: #8a98a3; font-weight: 600; text-decoration: underline; }
  .eav26-root .ovx-status[hidden] { display: none; }
  .eav26-root .ovx-legend { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-top: 14px; }
  .eav26-root .ovx-ramp { display: flex; gap: 3px; width: 100%; max-width: 420px; }
  .eav26-root .ovx-ramp i { flex: 1; height: 11px; border-radius: 2px; display: block; }
  .eav26-root .ovx-rlabel { font-size: 11.5px; color: #586571; }
  .eav26-root .ovx-note { font-size: 11.5px; color: #8a98a3; line-height: 1.5; margin-top: 10px; text-align: center; }
  .eav26-root .ovx-titlerow { display: flex; flex-direction: column; align-items: center; gap: 7px; min-width: 0; text-align: center; padding-bottom: 8px; }
  .eav26-root .ovx-titlerow h3 { font-family: var(--font-serif); font-size: 40px; line-height: 1.08; font-weight: 700; color: var(--c-navy); margin: 0; text-wrap: pretty; height: 44px; display: flex; align-items: center; }
  .eav26-root .ovx-chip { flex: none; display: inline-flex; align-items: center; white-space: nowrap; gap: 7px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: #3f5464; background: #f0f4f7; border-radius: 999px; padding: 6px 12px; }
  .eav26-root .ovx-chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--c-green); display: block; flex: none; }
  .eav26-root .ovx-scope { font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: #8a98a3; }
  .eav26-root .ovx-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; margin-top: 18px; padding: 16px 0; }
  .eav26-root .ovx-fig { min-width: 0; text-align: center; }
  .eav26-root .ovx-fig + .ovx-fig { border-left: 1px solid var(--c-line); padding-left: 18px; }
  .eav26-root .ovx-v { font-size: 46px; line-height: 1; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .eav26-root .ovx-v.pct { color: var(--c-green); }
  .eav26-root .ovx-v.num { color: var(--c-navy); }
  .eav26-root .ovx-fig .u { margin-top: 7px; font-size: 14px; color: #586571; }
  .eav26-root .ovx-turnout { margin-top: 20px; border-top: 1px solid var(--c-line); padding: 18px 0; display: grid; grid-template-columns: 1fr; gap: 0 18px; }
  .eav26-root .ovx-turnout > div { min-width: 0; }
  .eav26-root .ovx-turnout > div + div { border-left: 1px solid var(--c-line); padding-left: 18px; }
  .eav26-root .ovx-turnout .tv, .eav26-root .ovx-turnout .lv { display: block; font-size: 30px; line-height: 1; font-weight: 900; color: #101820; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
  .eav26-root .ovx-turnout .tl, .eav26-root .ovx-turnout .ll { display: block; margin-top: 7px; font-size: 14px; color: #586571; text-wrap: pretty; }
  .eav26-root .ovx-turnout .tv { font-size: 30px; font-weight: 900; color: #101820; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
  .eav26-root .ovx-turnout .tl { font-size: 14.5px; color: #586571; }
  .eav26-root .ovx-fig .u .rollup { display: block; margin-top: 5px; font-size: 11.5px; line-height: 1.4; color: #8a98a3; }
  .eav26-root .ovx-sel { margin-top: 4px; padding: 16px 0; display: flex; flex-direction: column; flex: 1; }
  .eav26-root .ovx-sel .sh { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #7b8894; margin-bottom: 8px; }
  .eav26-root .ovx-sel .sn { font-size: 19px; font-weight: 700; color: var(--c-navy); margin-bottom: 8px; }
  .eav26-root .ovx-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; font-size: 14px; color: #586571; padding: 6px 0; border-bottom: 1px solid #f2f5f7; }
  .eav26-root .ovx-row:last-child { border-bottom: 0; }
  .eav26-root .ovx-row b { color: var(--c-ink); font-variant-numeric: tabular-nums; }
  .eav26-root .ovx-hint { font-size: 12.5px; color: #8a98a3; line-height: 1.5; }
  .eav26-root .ovx-rref { display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
    padding: 9px 12px; margin-bottom: 14px; border-radius: 8px; background: #f5f8fa; border: 1px solid var(--c-line); }
  .eav26-root .ovx-rref .k { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #7b8894; }
  .eav26-root .ovx-rref b { font-size: 18px; font-weight: 900; color: #101820; font-variant-numeric: tabular-nums; }
  .eav26-root .ovx-ref-1 { text-align: center; padding: 18px 0; border-top: 1px solid #eef2f5; border-bottom: 1px solid #eef2f5; margin-bottom: 14px; font-size: 15px; color: #586571; }
  .eav26-root .ovx-ref-1 .arrow { color: var(--c-green); font-weight: 700; }
  .eav26-root .ovx-ref-1 b { color: var(--c-navy); }
  .eav26-root .ovx-ref-1 .refv { color: var(--c-green); font-weight: 700; }
  .eav26-root .ovx-rank { margin-top: 0; }
  .eav26-root .ovx-rank .rh { display: grid; grid-template-columns: minmax(0, 132px) minmax(0, 1fr) 62px; align-items: baseline; gap: 10px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #7b8894; margin-bottom: 10px; }
  .eav26-root .ovx-rank .rh span:last-child { grid-column: 2 / span 2; justify-self: end; text-align: right; white-space: nowrap; }
  .eav26-root .ovx-rrow { display: grid; grid-template-columns: minmax(0, 132px) minmax(0, 1fr) 62px; align-items: center; gap: 10px; padding: 6px 0; font-size: 13.5px; color: #586571; }
  .eav26-root .ovx-rrow + .ovx-rrow { border-top: 1px solid #f2f5f7; }
  .eav26-root .ovx-rrow .rn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .eav26-root .ovx-rrow .rb { height: 11px; background: #edf1f4; border-radius: 6px; overflow: hidden; }
  .eav26-root .ovx-rrow .rb i { display: block; height: 11px; border-radius: 6px; background: #5e9bb5; }
  .eav26-root .ovx-rrow.on .rb i { background: var(--c-green); }
  .eav26-root .ovx-rrow.on .rn { color: var(--c-navy); font-weight: 700; }
  .eav26-root .ovx-rrow .rv { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--c-navy); }
  .eav26-root .ovx-rrow .rs { text-align: right; font-size: 12px; color: #8a98a3; font-variant-numeric: tabular-nums; }
  /* Tablet keeps the desktop arrangement — the chart stays beside the map in the right
     column, and only the map/info ratio tightens to give the ranked rows more width.
     The chart doesn't go full width until the whole card stacks at 900px. */
  @media (max-width: 1100px) and (min-width: 901px) {
    .eav26-root .ov-two { grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: 4px 20px; }
    .eav26-root .ovx-rrow { grid-template-columns: minmax(0, 1fr) minmax(0, 92px) 56px; gap: 8px; font-size: 13px; }
    .eav26-root .ovx-rank .rh { font-size: 9.5px; letter-spacing: .05em; }
    .eav26-root .ovx-rref { padding: 8px 10px; margin-bottom: 12px; }
    .eav26-root .ovx-rref .k { font-size: 10px; letter-spacing: .05em; }
    .eav26-root .ovx-rref b { font-size: 16px; }
  }
  @media (max-width: 1100px) {
    .eav26-root .ovx-titlerow h3 { font-size: 27px; }
  }
  @media (max-width: 900px) {
    .eav26-root .ov-two { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto;
      grid-template-areas: "info" "chart" "map"; padding: 14px 16px 16px; gap: 14px; }
    .eav26-root .ovx-legend { margin-top: 10px; }
    .eav26-root .ovx-note { margin-top: 8px; }
    .eav26-root .ovx-sel { margin-top: 0; padding: 10px 0 0; }
    .eav26-root .ovx-pair { padding: 12px 0; }
    .eav26-root .ovx-titlerow { padding-bottom: 4px; }
    .eav26-root .ovx-col > .last-updated { margin-bottom: 4px; }
    .eav26-root .ovx-rank { margin-top: 18px; }
    .eav26-root .ovx-fig, .eav26-root .ovx-turnout > div { text-align: center; }
    .eav26-root .ovx-pair, .eav26-root .ovx-turnout { max-width: 620px; margin-left: auto; margin-right: auto; }
  }
  @media (max-width: 700px) {
    .eav26-root .page-head-inner { padding: 30px 18px 24px; }
    .eav26-root .head-cta { flex-direction: column; gap: 10px; }
    .eav26-root .head-cta .btn-cta { width: 100%; }

    .eav26-root .ov-filters { padding: 14px 16px 12px; gap: 12px; }
    .eav26-root .ovx-titlerow h3 { font-size: 26px; }
    .eav26-root .ovx-pair { gap: 0 14px; margin-top: 16px; }
    .eav26-root .ovx-fig + .ovx-fig { padding-left: 14px; }
  }
  /* the two figures only stack on the narrowest phones, and the divider turns horizontal.
     Authored after the 700px block so its padding-left reset wins the cascade. */
  @media (max-width: 430px) {
    .eav26-root .ovx-pair { grid-template-columns: minmax(0, 1fr); gap: 14px 0; }
    .eav26-root .ovx-fig + .ovx-fig { border-left: 0; padding-left: 0; border-top: 1px solid var(--c-line); padding-top: 14px; }
  }
  @media (max-width: 700px) {
    .eav26-root .ovx-turnout { margin-top: 18px; padding-top: 14px; }
    .eav26-root .ovx-turnout .tv { font-size: 26px; }
    .eav26-root .ovx-turnout .tl { font-size: 13.5px; }
    .eav26-root .ovx-rrow { grid-template-columns: minmax(0, 1fr) minmax(0, 88px) 58px; gap: 8px; font-size: 13px; }
    .eav26-root .ovx-status { gap: 4px 10px; padding: 6px 9px; }
    .eav26-root .dash-inner { padding-left: 16px; padding-right: 16px; }
    .eav26-root .section-label { font-size: 22px; }
  }
  /* Mobile: the two map controls share one segmented pill instead of stacking on two
     centred rows. grid-auto-columns means a hidden control leaves no empty track. */
  @media (max-width: 900px) {
    .eav26-root .ovx-head { display: block; }
    .eav26-root .ovx-years { display: grid; grid-auto-columns: 1fr; width: 100%; margin-bottom: 10px; }
    .eav26-root .ovx-years .ovx-back { min-height: 42px; padding: 0 12px; font-size: 12.5px; }
  }
  @media (max-width: 460px) {
    .eav26-root .ovx-rrow { grid-template-columns: minmax(0, 1fr) minmax(46px, 0.62fr) 54px; gap: 7px; font-size: 12.5px; }
    .eav26-root .ovx-rrow .rb, .eav26-root .ovx-rrow .rb i { height: 9px; }
    .eav26-root .ovx-rank .rh { font-size: 10px; letter-spacing: .06em; }
    .eav26-root .ovx-mapbox { padding: 10px 0 4px; }
  }

  .eav26-root /* ===== Map navigation 2a + baseline data column (merged) ===== */
  .ovn { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 16px; }
  .eav26-root .ovn-head { padding-top: 15px; border-top: 1px solid #eef1f4; }
  .eav26-root .ovn-grid { display: grid; grid-template-columns: minmax(0, 1fr) 404px; gap: 28px; align-items: stretch; }
  .eav26-root /* the map frame takes whatever height the row has (the data column is usually the taller
     of the two), .eav26-root so a wide view like Nationwide centres in that space instead of leaving a
     block of white under the legend. Geometry always scales to fit — never crops. */
  .ovn-mapcol { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto;
    gap: 14px; min-width: 0; padding-top: 20px; }
  .eav26-root .ovn-mapbox { position: relative; width: 100%; max-width: 900px; margin: 0 auto;
    min-width: 0; min-height: 340px; max-height: 580px; }
  .eav26-root .ovn-mapbox > svg { max-width: 100%; }
  .eav26-root .ovn-legend { padding-top: 12px; border-top: 1px solid #eef1f4; }
  .eav26-root .ovn-read { border-left: 1px solid #eef1f4; padding-left: 26px; min-width: 0; }
  .eav26-root .ovn-sync { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  @media (max-width: 1120px) {
    .eav26-root .ovn-grid { grid-template-columns: minmax(0, 1fr); }
    .eav26-root .ovn-mapbox { aspect-ratio: 16 / 10; max-height: none; }
    .eav26-root .ovn-read { border-left: 0; padding-left: 0; border-top: 1px solid #eef1f4; padding-top: 18px; }
  }
  @media (max-width: 720px) { .eav26-root .ovn { padding: 16px 14px 20px; } .eav26-root .ovn-mapbox { min-height: 260px; padding-bottom: 52px; } }

/* ==========================================================================
   WordPress theme integration.

   The prototype owned the whole document; here it lives inside the Aristotle
   theme, which loads Bootstrap. Two consequences are handled below.
   ========================================================================== */

/* 1. Clear the theme's fixed navbar (position:fixed, ~97px tall). The offset is
      applied as PADDING on the hero, which carries the paper background, so the
      cleared space is filled rather than showing a white band under the menu. */
.eav26-root {
  --eav26-header-offset: 130px;
}
.eav26-root .page-head {
  padding-top: var(--eav26-header-offset);
}
/* Between 768 and 1267px the theme's menu wraps under the logo and the header is
   150-180px tall; views/dashboard.php measures it and overrides this variable
   inline, these are the no-JS fallbacks. */
@media (max-width: 1267px) {
  .eav26-root { --eav26-header-offset: 212px; }
}
@media (max-width: 991px) {
  .eav26-root { --eav26-header-offset: 185px; }
}
@media (max-width: 767px) {
  .eav26-root { --eav26-header-offset: 90px; }
}

/* 2. Bootstrap defines generic .card / .card-title / .arrow rules that bleed
      into this markup. The prototype's .card never declared `display`, so
      Bootstrap's `display:flex; flex-direction:column` won and turned every
      card into a flex column -- which makes children using `margin: 0 auto`
      (e.g. .pd-flank) shrink to content instead of filling the card. Re-assert
      block layout so the prototype's own rules behave as designed. */
.eav26-root .card {
  position: static;
  display: block;
  min-width: 0;
  word-wrap: normal;
}
.eav26-root .card > hr { margin-right: inherit; margin-left: inherit; }
.eav26-root .arrow { all: unset; }

/* 3. Loading state. Every selection change is an API round trip, so the whole
      analysis zone reflects it. Rendered as an OVERLAY, never in normal flow:
      an in-flow bar reflows the page each time it appears and disappears.
      The scrim covers the dashboard only, so the theme's nav stays usable;
      the panel is fixed and centred in the viewport. */
.eav26-root { position: relative; }

.eav26-root .eav26-loading-overlay {
  position: absolute; inset: 0; z-index: 900;
  background: rgba(245, 247, 248, .55);
}
/* The desaturation sits on a pseudo-element rather than on the scrim itself: an
   ancestor carrying backdrop-filter becomes the containing block for its
   position:fixed descendants, which pinned the panel to the middle of the whole
   dashboard instead of the viewport -- so on a long page it scrolled out of
   sight. As a child of the scrim the effect is unchanged but the panel's
   `fixed` once again resolves against the viewport. */
.eav26-root .eav26-loading-overlay::before {
  content: ''; position: absolute; inset: 0;
  -webkit-backdrop-filter: saturate(.85); backdrop-filter: saturate(.85);
}
.eav26-root .eav26-loading-overlay[hidden] { display: none; }

.eav26-root .eav26-loading-panel {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  display: flex; align-items: center; gap: 11px;
  padding: 14px 22px; border-radius: 999px;
  background: #fff; border: 1px solid var(--c-line);
  box-shadow: 0 10px 30px rgba(20, 40, 60, .16);
  font-size: 14px; font-weight: 700; color: var(--c-navy);
  white-space: nowrap;
}
.eav26-root .eav26-spinner {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 2px solid rgba(104, 138, 159, .28); border-top-color: var(--c-green);
  animation: eav26-spin .7s linear infinite;
}
@keyframes eav26-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .eav26-root .eav26-spinner { animation-duration: 2s; }
}

/* 4. Cursors. The prototype set `cursor: pointer` on some controls but never on
      .btn-cta itself (only two of its variants), and the hero CTAs are <a>
      without href, so they fell back to the text cursor. <button> also defaults
      to an arrow. Cover every interactive control in one place. */
.eav26-root .btn-cta,
.eav26-root .ovx-back:not(.ovx-placeholder),
.eav26-root button:not(:disabled),
.eav26-root [role="button"]:not([aria-disabled="true"]),
.eav26-root select:not(:disabled),
.eav26-root label[for] {
  cursor: pointer;
}
.eav26-root button:disabled,
.eav26-root select:disabled,
.eav26-root [aria-disabled="true"] {
  cursor: not-allowed;
}

/* 5. Element-level reset.
      The prototype owned its document and was authored against plain browser
      defaults. Here the theme loads Bootstrap plus its own stylesheet, and 33
      of their ELEMENT-level rules reach inside this container -- most
      damagingly `h1-h6 {font-weight:500}` + per-heading font-size (Bootstrap),
      `h4,h5,h6 {text-transform}` and `p, div {font-size}` (theme). Those beat
      inheritance from .eav26-root, so headings and body copy rendered at the
      wrong size and weight.

      Restore the UA defaults the prototype assumed; its own class rules have
      higher specificity and still layer on top exactly as designed. */
/* The theme's body sets line-height:1.5, which every descendant inherits. The
   prototype inherited `normal`; its own rules that DO set a line-height still
   win on specificity, so this only restores the unstyled cases. */
.eav26-root { line-height: normal; }

.eav26-root h1, .eav26-root h2, .eav26-root h3,
.eav26-root h4, .eav26-root h5, .eav26-root h6 {
  font-family: inherit; font-weight: bold; line-height: normal; color: inherit;
  letter-spacing: normal; text-transform: none;
}
.eav26-root h1 { font-size: 2em;    margin: 0.67em 0; }
.eav26-root h2 { font-size: 1.5em;  margin: 0.83em 0; }
.eav26-root h3 { font-size: 1.17em; margin: 1em 0; }
.eav26-root h4 { font-size: 1em;    margin: 1.33em 0; }
.eav26-root h5 { font-size: 0.83em; margin: 1.67em 0; }
.eav26-root h6 { font-size: 0.67em; margin: 2.33em 0; }
.eav26-root p { font-size: inherit; margin: 1em 0; }
.eav26-root div, .eav26-root span { font-size: inherit; }
.eav26-root label { display: inline; margin-bottom: 0; }
.eav26-root b, .eav26-root strong { font-weight: bolder; }
.eav26-root img { max-width: none; vertical-align: baseline; }
.eav26-root button, .eav26-root select,
.eav26-root input, .eav26-root textarea {
  font: inherit; margin: 0; text-transform: none;
}

/* 6. Bootstrap's `a:not([href]):not([tabindex])` scores (0,2,1) and outranks
      `.eav26-root .btn-cta` (0,2,0), so its `color:inherit` was overriding the
      button text colour. The hero CTAs now carry tabindex (they are
      role="button" and should be focusable anyway), which stops that selector
      matching; these keep the colours safe regardless. */
.eav26-root a.btn-cta { color: #fff; }
.eav26-root a.btn-cta.alt { color: var(--c-navy); }
.eav26-root a.btn-cta:hover { color: #fff; }
.eav26-root a.btn-cta.alt:hover { color: var(--c-navy); }

/* 7. CTA buttons follow the site, not the prototype (client, Sep 2026).
      Every green button on aristotle.com uses one convention: solid #44aa44
      with white text at rest, and on hover a transparent fill with a #44aa44
      border and #44aa44 text (header "Contact Us", .submit-btn, Gravity Forms
      submits). The prototype's own green (#55b255 / darker on hover) stays
      everywhere else -- selection outlines, figures -- only buttons change.
      Secondary buttons are the same pair inverted so the two read as a set. */
.eav26-root .btn-cta,
.eav26-root .req-submit,
.eav26-root .mi-btn.primary,
.eav26-root .reach-cta .mi-btn.primary {
  background: #44aa44; border: 1px solid #44aa44; color: #fff;
  box-shadow: none; transform: none;
}
.eav26-root .btn-cta:hover, .eav26-root .btn-cta:focus-visible,
.eav26-root .req-submit:hover, .eav26-root .req-submit:focus-visible,
.eav26-root .mi-btn.primary:hover, .eav26-root .mi-btn.primary:focus-visible,
.eav26-root .reach-cta .mi-btn.primary:hover {
  background: transparent; border-color: #44aa44; color: #44aa44;
  box-shadow: none; transform: none;
}
.eav26-root .btn-cta.alt {
  background: transparent; border: 1px solid #44aa44; color: #44aa44; box-shadow: none;
}
.eav26-root .btn-cta.alt:hover, .eav26-root .btn-cta.alt:focus-visible {
  background: #44aa44; border-color: #44aa44; color: #fff; transform: none;
}
/* the anchors carry role=button; keep Bootstrap's a:not([href]) rule out */
.eav26-root a.btn-cta { color: #fff; }
.eav26-root a.btn-cta:hover { color: #44aa44; }
.eav26-root a.btn-cta.alt { color: #44aa44; }
.eav26-root a.btn-cta.alt:hover { color: #fff; }

/* 8. Form modals: the header takes the site's top-navigation colour
      (.aristotle-header-nav, #324353) instead of the prototype's light blue
      (client, 18 Sep). The close button and sub-copy already sit on a dark
      ground, so only the fill changes. */
.eav26-root .req-head { background: #324353; }
/* the sub-copy's #c5d4e2 read too faint on the darker ground (Kirtimaan, 18 Sep) */
.eav26-root .req-sub { color: #eef3f7; }
/* Both modals (segment request, contact) are centred in the whole viewport, but the
   site header is fixed and stacks above them, so a tall form's top row slid under it
   (Kirtimaan, 19 Sep). Reserve the header's measured height (the view's script sets
   --eav26-header-offset = header + 32px) above the modal and centre it in what is
   left; the form scrolls inside the modal when even that is too little. */
.eav26-root .req-overlay { padding-top: var(--eav26-header-offset, 24px); }
.eav26-root .req-modal { max-height: calc(100vh - var(--eav26-header-offset, 24px) - 24px); }
/* The whole form has to fit a 1400x800 window without scrolling (client, 23 Sep):
   less room under the header copy (the theme's `p { margin: .625rem 0 !important }`
   was adding 10px above and below it), and the "Sent to ..." line is gone. */
.eav26-root .req-head { padding-top: 20px; padding-bottom: 14px; }
.eav26-root .req-sub { margin: 0 !important; }
.eav26-root .req-body { padding-top: 18px; padding-bottom: 22px; }
/* the segment request also carries a five-row summary of the voter universe */
.eav26-root .rs-row { padding-top: 7px; padding-bottom: 7px; }
.eav26-root .req-summary { margin-bottom: 16px; }
.eav26-root .req-grid { gap: 12px; margin-bottom: 12px; }
.eav26-root .req-actions { margin-top: 16px; }

/* Required-field feedback (eav26-form-check.js, client 23 Sep): a red border and
   a one-line message under a field that is empty or wrong, and a grey submit
   button until the form is complete. The grey button still takes the click so
   it can point at what is missing. */
.eav26-root .rf.rf-bad input, .eav26-root .rf.rf-bad select, .eav26-root .rf.rf-bad textarea { border-color: #c0392b; }
.eav26-root .rf.rf-bad input:focus, .eav26-root .rf.rf-bad select:focus, .eav26-root .rf.rf-bad textarea:focus { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.16); }
.eav26-root .rf.rf-bad label { color: #b03a2e; }
.eav26-root .rf-err { font-size: 11.5px; line-height: 1.3; color: #b03a2e; margin-top: 4px; }
.eav26-root .req-submit.is-incomplete,
.eav26-root .req-submit.is-incomplete:hover,
.eav26-root .req-submit.is-incomplete:focus-visible { background: #c3ced6; border-color: #c3ced6; color: #fff; cursor: not-allowed; }

/* 9. Floating site widgets are hidden on the dashboard page only (client,
      17 Sep): the theme's back-to-top arrow and the tawk.to chat bubble.
      Nothing cookie-related (CookiePro banner or its floating button) is
      touched -- Kirtimaan, 18 Sep. These selectors are deliberately NOT
      scoped to .eav26-root because the widgets render outside it; the body
      class comes from EAV26_Shortcode::body_class() and the view's script. */
body.eav26-dashboard-page .back-to-top-btn,
body.eav26-dashboard-page .widget-visible,
body.eav26-dashboard-page #min-widget,
body.eav26-dashboard-page iframe[title="chat widget" i] {
  display: none !important;
}
/* tawk.to's phone layout is a bare iframe titled "Chat widget" inside #min-widget
   (no .widget-visible wrapper), hence the case-insensitive title match above. */

/* CookiePro's floating cookie button stays, at half size (Kirtimaan, 18 Sep).
   It is anchored bottom-left, so it shrinks toward that corner. */
body.eav26-dashboard-page #ot-sdk-btn-floating.ot-floating-button {
  transform: scale(0.5);
  transform-origin: left bottom;
}

/* 10. The map column takes its height from the data column, so the legend's
       bottom edge always lines up with the bottom of the ranked list whatever
       shape the state is (client status doc, 18 Sep). `height:0; min-height:100%`
       makes the column contribute nothing to the row and then stretch to the
       row's final (data-column) height; the inner grid hands the leftover to
       the map frame and keeps the legend as the last row. */
@media (min-width: 1121px) {
  .eav26-root .ovn-mapcol { height: 0; min-height: 100%; }
  .eav26-root .ovn-mapbox { min-height: 240px; max-height: none; }  /* floor only while the column loads */
}

/* Sections hidden by the analysis script when an area has no data. */
.eav26-root [hidden] { display: none !important; }

/* 11. Phones (client, 24 Sep).
       - The Get in Touch line was forced onto one line everywhere, so on a phone it ran
         off both sides of the card -- and that overflow is what let the page be pinched
         out past the screen width. It only stays on one line where it fits.
       - Party deltas: "Republican" was cut off in the 54px label column and the labels
         sat against the bars. The column now sizes to its longest label. */
.eav26-root .reach-cta p.reach-cta-copy { text-align: center; }
@media (min-width: 900px) {
  .eav26-root .reach-cta p.reach-cta-copy { white-space: nowrap; max-width: none; }
}
@media (max-width: 720px) {
  .eav26-root .pd-grid { grid-template-columns: max-content minmax(0, 1fr) max-content; column-gap: 14px; }
  .eav26-root .pd-p { font-size: 10.5px; letter-spacing: .02em; }
}
/* Nothing on this page may widen the viewport: sideways overflow is what lets a phone
   pinch the page out past the screen. Set on <html> (it propagates to the viewport),
   not on <body>, so the window keeps doing the vertical scrolling the menus follow. */
html.eav26-dashboard-page { overflow-x: hidden; }

/* 12. Client round, 2 Oct.
       - Reach by Channel / Get In Touch headings match "Party Affiliation" (20px caps),
         and their sub-lines match the party sub-line (14px, upright). The theme's
         `p { margin: .625rem 0 !important }` is why the margins carry !important.
       - Get In Touch spacing mirrors the Reach heading above it. */
.eav26-root .reach-head .card-title,
.eav26-root .reach-cta .mi-title {
  font-family: var(--font-sans); font-size: 20px; font-weight: 700; line-height: normal;
  letter-spacing: .04em; text-transform: uppercase; color: var(--c-navy); margin: 0;
}
.eav26-root .reach-head .card-cap,
.eav26-root .reach-cta p.reach-cta-copy {
  font-size: 14px; font-style: normal; line-height: normal; color: #586571;
  margin: 2px 0 0 !important;
}
.eav26-root .reach-cta { gap: 0; }
.eav26-root .reach-cta .mi-btn { margin-top: 22px; }

/*     - Phones: six 9-digit counts do not fit three across, so Reach by Channel goes
         two across (three rows); desktop keeps its single row. */
@media (max-width: 600px) {
  .eav26-root #channel-list.reach-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eav26-root .reach-row .sp-stat + .sp-stat { border-left: 0; }
  .eav26-root .reach-row .sp-stat:nth-child(even) { border-left: 1px solid #eef2f5; }
  .eav26-root .reach-card { padding-left: 18px; padding-right: 18px; }
}
/*     - Phones: less air between "Updated daily" and the series tiles. */
@media (max-width: 700px) {
  .eav26-root .page-head-inner { padding-bottom: 6px; }
  .eav26-root .page-head .lu-centered { margin-bottom: 0 !important; }
  .eav26-root .dash-inner { padding-top: 6px; }
}

/* 13. Gravity Forms bridge (includes/eav26-forms.php). The honeypot field is kept out
       of sight and out of the tab order; the form-level error sits under the button. */
.eav26-root .rf.rf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.eav26-root .rf-form-err { font-size: 12.5px; line-height: 1.4; color: #b03a2e; margin-top: 10px; text-align: center; }
.eav26-root .rf-form-err[hidden] { display: none; }
.eav26-root .req-submit:disabled { opacity: .7; cursor: progress; }
