@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.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}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_35dae9{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_35dae9{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_1bc20f{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_1bc20f{--font-ibm-plex-sans:"IBM Plex Sans","IBM Plex Sans Fallback"}:root{--ink:#14213d;--bg:#f3f5f4;--slate:#5b6b79;--hairline:#e8e6de;--accent:#0f7b6c;--accent-dark:#0a5a4f;--white:#fff}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ibm-plex-sans),-apple-system,sans-serif;background:var(--bg);color:var(--ink)}.page-wrapper{display:flex;flex-direction:column;min-height:100vh}main{flex:1 1}h1,h2,h3,h4,h5,h6{font-family:var(--font-fraunces),serif}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--hairline)}.header-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:baseline;gap:2px;text-decoration:none;color:var(--ink);flex-shrink:0}.logo-mark{font-family:var(--font-fraunces),serif;font-weight:700;font-size:24px;letter-spacing:-.02em;color:var(--ink)}.logo-mark .accent-dot{color:var(--accent)}.logo-tag{font-size:11px;font-weight:500;color:var(--slate);letter-spacing:.02em;margin-left:8px;padding-left:8px;border-left:1px solid var(--hairline);white-space:nowrap}.desktop-nav{display:flex;align-items:center;gap:4px}.nav-link{font-size:14.5px;font-weight:500;color:var(--ink);text-decoration:none;padding:10px 16px;border-radius:6px;position:relative;transition:color .15s ease}.nav-link:hover{color:var(--accent)}.nav-link.active{color:var(--accent-dark)}.nav-link.active:after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;background:var(--accent);border-radius:2px}.nav-divider{width:1px;height:24px;background:var(--hairline);margin:0 8px}.header-actions{gap:12px}.header-actions,.search-btn{display:flex;align-items:center}.search-btn{gap:8px;background:var(--bg);border:1px solid var(--hairline);border-radius:8px;padding:9px 14px;font-family:inherit;font-size:13.5px;color:var(--slate);cursor:pointer;transition:border-color .15s ease,background .15s ease;white-space:nowrap}.search-btn:hover{border-color:var(--accent);background:var(--white)}.search-btn svg{width:15px;height:15px;flex-shrink:0;stroke:var(--slate)}.search-kbd{font-size:11px;color:var(--slate);background:var(--white);border:1px solid var(--hairline);border-radius:4px;padding:1px 5px;font-family:inherit}.live-badge{display:flex;align-items:center;gap:6px;background:#e1f5ee;color:var(--accent-dark);border-radius:20px;padding:6px 12px 6px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}.live-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hamburger-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0}.hamburger-btn span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}.hamburger-btn.open span:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-btn.open span:nth-child(2){opacity:0}.hamburger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;max-height:0;overflow:hidden;background:var(--white);border-bottom:1px solid var(--hairline);transition:max-height .3s ease}.mobile-menu.open{max-height:480px}.mobile-menu-inner{padding:8px 24px 20px}.mobile-search{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--hairline);border-radius:8px;padding:12px 14px;margin-bottom:16px}.mobile-search svg{width:16px;height:16px;stroke:var(--slate);flex-shrink:0}.mobile-search input{border:none;background:none;outline:none;font-family:inherit;font-size:15px;color:var(--ink);width:100%}.mobile-search input::placeholder{color:var(--slate)}.mobile-nav-link{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;font-size:16px;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hairline)}.mobile-nav-link:last-of-type{border-bottom:none}.mobile-nav-link.active{color:var(--accent-dark)}.mobile-nav-link svg{width:16px;height:16px;stroke:var(--slate)}.mobile-live-badge{display:flex;align-items:center;gap:8px;background:#e1f5ee;color:var(--accent-dark);border-radius:8px;padding:12px 14px;font-size:13.5px;font-weight:600;margin-top:16px}.mobile-live-badge .live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;animation:pulse 2s ease-in-out infinite}@media (max-width:900px){.desktop-nav,.live-badge,.search-btn{display:none}.hamburger-btn{display:flex}.mobile-menu{display:block}.header-inner{height:64px;padding:0 16px}.logo-tag{display:none}}.site-footer{background:var(--ink);color:var(--white);margin-top:40px}.footer-inner{max-width:1200px;margin:0 auto;padding:56px 24px 0}.footer-top{display:grid;grid-template-columns:1.4fr repeat(4,1fr);grid-gap:32px;gap:32px;padding-bottom:40px}.footer-brand-col{padding-right:16px}.footer-logo{display:flex;align-items:baseline;gap:2px;text-decoration:none;margin-bottom:14px}.footer-logo-mark{font-family:var(--font-fraunces),serif;font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--white)}.footer-logo-mark .accent-dot{color:#5dcaa5}.footer-brand-desc{font-size:13.5px;line-height:1.65;color:hsla(0,0%,100%,.6);max-width:280px;margin-bottom:20px}.footer-social{display:flex;gap:10px}.footer-social a{width:34px;height:34px;border-radius:50%;border:1px solid hsla(0,0%,100%,.18);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:border-color .15s ease,background .15s ease}.footer-social a:hover{border-color:#5dcaa5;background:rgba(93,202,165,.1)}.footer-social svg{width:15px;height:15px;stroke:hsla(0,0%,100%,.75)}.footer-col-title{font-size:12.5px;font-weight:600;letter-spacing:.02em;color:hsla(0,0%,100%,.5);margin-bottom:16px}.footer-col ul{list-style:none}.footer-col li{margin-bottom:11px}.footer-col a{font-size:14px;color:hsla(0,0%,100%,.82);text-decoration:none;transition:color .15s ease}.footer-col a:hover{color:#5dcaa5}.footer-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:hsla(0,0%,100%,.55);background:hsla(0,0%,100%,.06);border-radius:4px;padding:2px 7px;margin-left:6px;vertical-align:middle}.footer-datastrip{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:20px 0;border-top:1px solid hsla(0,0%,100%,.1)}.datastrip-text{display:flex;align-items:center;gap:10px;font-size:13px;color:hsla(0,0%,100%,.55)}.datastrip-text svg{width:16px;height:16px;stroke:#5dcaa5;flex-shrink:0}.datastrip-text strong{color:hsla(0,0%,100%,.85);font-weight:500}.footer-newsletter{display:flex;gap:8px}.footer-newsletter input{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.18);border-radius:6px;padding:9px 12px;font-family:inherit;font-size:13px;color:var(--white);outline:none;width:220px}.footer-newsletter input::placeholder{color:hsla(0,0%,100%,.4)}.footer-newsletter button{background:#0f7b6c;border:none;border-radius:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--white);cursor:pointer;white-space:nowrap;transition:background .15s ease}.footer-newsletter button:hover{background:#0a5a4f}.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 0;border-top:1px solid hsla(0,0%,100%,.1);font-size:12.5px;color:hsla(0,0%,100%,.45)}.footer-legal-links{display:flex;gap:20px}.footer-legal-links a{color:hsla(0,0%,100%,.45);text-decoration:none}.footer-legal-links a:hover{color:hsla(0,0%,100%,.8)}@media (max-width:900px){.footer-top{grid-template-columns:repeat(2,1fr);row-gap:32px}.footer-brand-col{grid-column:1/-1;padding-right:0}.footer-datastrip{flex-direction:column;align-items:flex-start}.footer-newsletter{width:100%}.footer-newsletter input{flex:1 1;width:auto}}@media (max-width:520px){.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:flex-start}}.ward-page-container{max-width:1200px;margin:0 auto;padding:48px 24px 80px}.breadcrumb{font-size:13px;color:var(--slate);margin-bottom:24px}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .separator{margin:0 8px;opacity:.5}.ward-title{font-size:36px;font-weight:700;letter-spacing:-.02em;margin-bottom:16px}.ward-meta{display:flex;gap:16px;font-size:14px;color:var(--slate);margin-bottom:40px;flex-wrap:wrap}.meta-item{background:var(--white);border:1px solid var(--hairline);padding:6px 12px;border-radius:6px}.meta-item strong{color:var(--ink);font-weight:600}.section-title{font-size:20px;font-weight:600;border-bottom:2px solid var(--hairline);padding-bottom:12px;margin-bottom:24px}.top-candidates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:24px;gap:24px;margin-bottom:56px}.candidate-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;position:relative;overflow:hidden;display:flex;flex-direction:column}.winner-card{border-color:var(--accent);box-shadow:0 4px 12px rgba(15,123,108,.08)}.card-badge{background:var(--accent);color:var(--white);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:6px 16px;align-self:flex-start;border-bottom-right-radius:8px}.runner-badge{background:var(--slate)}.card-content{padding:20px 24px;flex:1 1;display:flex;flex-direction:column}.candidate-name{font-size:22px;font-weight:600;margin-bottom:12px;line-height:1.2}.party-tag{font-size:14px;color:var(--slate);border-left:3px solid var(--slate);padding-left:10px;margin-bottom:24px}.votes-box{margin-top:auto;border-top:1px solid var(--hairline);padding-top:16px}.vote-count{font-family:var(--font-fraunces),serif;font-size:32px;font-weight:600;color:var(--ink);line-height:1}.vote-label{font-size:13px;color:var(--slate);margin-top:4px}.margin-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:24px}.margin-title{font-size:14px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.margin-value{font-family:var(--font-fraunces),serif;font-size:36px;font-weight:700;color:var(--ink);margin-bottom:32px;line-height:1}.margin-value span{font-family:var(--font-ibm-plex-sans),sans-serif;font-size:16px;font-weight:500;color:var(--slate)}.vote-share-chart{display:flex;flex-direction:column;gap:16px}.chart-bar-row{display:flex;align-items:center;gap:12px}.chart-label{width:40px;font-size:12px;font-weight:600;color:var(--slate);text-align:right}.chart-track{flex:1 1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.chart-fill{height:100%;border-radius:4px}.chart-pct{width:48px;font-size:13px;font-weight:600;color:var(--ink)}.demographics-section{margin-bottom:56px}.demo-grid{display:flex;gap:24px;flex-wrap:wrap}.demo-box{background:var(--white);border:1px solid var(--hairline);border-radius:8px;padding:20px 24px;min-width:200px;flex:1 1}.demo-val{font-family:var(--font-fraunces),serif;font-size:28px;font-weight:600;color:var(--ink);margin-bottom:4px}.demo-lbl{font-size:13px;color:var(--slate)}.candidates-section{margin-bottom:56px}.table-responsive{overflow-x:auto;background:var(--white);border:1px solid var(--hairline);border-radius:12px}.candidates-table{width:100%;border-collapse:collapse;text-align:left}.candidates-table td,.candidates-table th{padding:16px 20px;border-bottom:1px solid var(--hairline)}.candidates-table th{font-size:13px;color:var(--slate);font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--bg)}.candidates-table tr:last-child td{border-bottom:none}.candidate-td-name{font-size:16px;font-weight:600;color:var(--ink);margin-bottom:6px}.candidate-address-details summary{font-size:13px;color:var(--accent);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.candidate-address-details p{font-size:13px;color:var(--slate);margin-top:8px;line-height:1.5}.table-party-badge{display:inline-block;padding-left:10px;border-left:3px solid;font-size:14px;color:var(--ink)}.text-right{text-align:right}.text-alert{color:#b23a2e}.font-bold{font-weight:600}@media (max-width:768px){.ward-title{font-size:28px}.top-candidates-grid{grid-template-columns:1fr}}