/* Flores365 Voter Tools — original privacy-first election resource interface */
#ballot-main{max-width:1600px;margin:auto;padding:24px clamp(14px,3vw,46px) 108px}
.ballot-hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(210px,.8fr);align-items:center;gap:25px;
 padding:clamp(23px,3.5vw,48px);border:1px solid #b59b69;border-radius:15px;
 background:radial-gradient(ellipse at 87% 19%,#39534a68,transparent 45%),linear-gradient(116deg,#1d3b5c,#142e43 60%,#193533);
 box-shadow:0 12px 38px #0005}
.ballot-hero h1{font:900 clamp(35px,5.3vw,72px)/1.06 "Manrope",system-ui,sans-serif;letter-spacing:-.065em;margin:12px 0}
.ballot-hero h1 em{color:#edd19b;font-style:normal}
.ballot-hero p{max-width:670px;margin:0;color:#bfd2df;font-size:clamp(12px,1.4vw,15px);line-height:1.65}
.ballot-hero-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:21px}
.ballot-hero-links a{background:#d6b988;color:#182a35;border:1px solid #ffdfab;border-radius:8px;padding:11px 14px;
 font:850 11px "Manrope",system-ui,sans-serif;text-decoration:none}
.ballot-hero-links a+ a{background:#283e48;color:#e6d0a9;border-color:#9e8459}
.ballot-dates{background:#122d35bf;border:1px solid #68817a;border-radius:11px;padding:18px}
.ballot-phase{display:flex;gap:8px;align-items:center;font:800 9px "Manrope",system-ui,sans-serif;letter-spacing:.08em;color:#f2daa9}
.ballot-live-pulse{height:8px;width:8px;border-radius:50%;background:#d6b881;box-shadow:0 0 0 3px #d6b88128}
.ballot-date-grid{display:grid;gap:13px;margin:17px 0}
.ballot-date-grid>div{border-top:1px solid #547077;padding-top:9px;display:grid;gap:2px}
.ballot-date-grid span{font:800 9px "Manrope",system-ui,sans-serif;letter-spacing:.09em;color:#afc5cb}
.ballot-date-grid b{font:900 24px "Manrope",system-ui,sans-serif;letter-spacing:-.04em;color:#f3d49b}
.ballot-date-grid small{font-size:10px;color:#a4bdc8}
#ballot-date-status{font-size:10px;color:#a9bfc4}
.ballot-safety-banner{display:flex;align-items:center;gap:13px;margin:16px 0;padding:13px 17px;border:1px solid #70654b;
 border-radius:9px;background:#2d312a;color:#dfd4b6}
.ballot-safety-banner>span{height:24px;width:24px;border:1px solid #c3a16a;border-radius:50%;display:grid;
 place-items:center;flex:none;font-weight:900;color:#f0d5a4}
.ballot-safety-banner p{font-size:11px;line-height:1.7;margin:0}
.ballot-finder,.ballot-places,.ballot-checklist,.ballot-why{margin:16px 0;scroll-margin-top:12px}
.ballot-find-grid{display:flex;align-items:end;flex-wrap:wrap;gap:13px;margin:15px 0}
.ballot-field{display:grid;gap:7px;flex:1 1 280px;min-width:0}
.ballot-field label,.ballot-place-actions label{font:800 11px "Manrope",system-ui,sans-serif;color:#d9decc}
.ballot-field select,.ballot-place-actions select{width:100%;background:#0c2233;color:#e7f0f2;border:1px solid #66808b;
 border-radius:8px;padding:12px;font:700 13px "Manrope",system-ui,sans-serif;min-height:45px}
.ballot-field small{font-size:10px;color:#9cb5c1;line-height:1.5}
.ballot-gps,.ballot-place-actions button{flex:none;border:1px solid #e5c992;border-radius:8px;background:#dbc18b;
 color:#112939;font:850 11px "Manrope",system-ui,sans-serif;padding:12px 17px;min-height:45px;cursor:pointer}
.ballot-gps:hover,.ballot-place-actions button:hover{background:#f3dbac}
.ballot-gps:disabled,.ballot-place-actions button:disabled{opacity:.45;cursor:default}
.ballot-gps span{font-size:17px;margin-right:5px}
.ballot-gps-status,.ballot-places-status{min-height:21px;font-size:11px;color:#b8cbd1;line-height:1.6;margin:7px 0}
.ballot-county-result[hidden],.ballot-default-results[hidden],.ballot-map-wrap[hidden]{display:none!important}
.ballot-default-results{display:grid;place-items:center;gap:6px;text-align:center;background:#162b39;border:1px dashed #597381;
 border-radius:10px;min-height:170px;padding:18px}
.ballot-default-results>span{font-size:27px;color:#d6b987}
.ballot-default-results strong{font:800 14px "Manrope",system-ui,sans-serif;color:#dcd9c6}
.ballot-default-results p{font-size:11px;color:#98b3c2;max-width:380px;margin:0}
.ballot-selected-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0}
.ballot-selected-head h3{font:850 clamp(22px,2.4vw,31px) "Manrope",system-ui,sans-serif;margin:4px 0 2px;color:#f0d5a1}
.ballot-selected-head p{font-size:11px;color:#9cb9c7;margin:0}
.ballot-selected-head button{border:1px solid #b09367;border-radius:8px;background:#2c484a;color:#f5dab4;
 padding:9px 11px;white-space:nowrap;font:800 10px "Manrope",system-ui,sans-serif}
.ballot-selected-head button[aria-pressed=true]{background:#495b40;border-color:#dec78c;color:#f9deb0}
.ballot-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ballot-resource{min-width:0;border:1px solid #456070;border-radius:9px;background:linear-gradient(140deg,#183448,#132a3b);
 padding:14px 12px;display:grid;align-content:start;gap:7px}
.ballot-resource>span{color:#efd1a3;font-size:23px}
.ballot-resource strong{color:#e4e8ed;font:850 13px/1.35 "Manrope",system-ui,sans-serif}
.ballot-resource p{font-size:10px;color:#9fb8c7;line-height:1.55;margin:0}
.ballot-resource a{font:850 10px "Manrope",system-ui,sans-serif;color:#f0d094;margin:4px 0 0}
.ballot-county-note{font-size:11px;color:#c3c6b4;padding:13px 2px 3px;line-height:1.6}
.ballot-section-note{font-size:11px;color:#b1c3cd;line-height:1.65}
.ballot-place-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:11px 0}
.ballot-place-actions label{white-space:nowrap}
.ballot-place-actions select{width:auto;min-width:200px}
.ballot-place-actions button{background:#294954;color:#e6ce9f;border-color:#a08b5b}
.ballot-place-actions a{font-size:10px;color:#e1c994}
.ballot-places-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.ballot-places-list{min-width:0;display:grid;gap:7px;align-content:start;max-height:500px;overflow:auto;padding-right:3px}
.ballot-empty{display:grid;gap:8px;place-items:start;background:#142d3c;border:1px dashed #526a78;border-radius:9px;padding:20px}
.ballot-empty>span{font-size:26px;color:#e8c995}.ballot-empty strong{font-size:13px;color:#e5d3af}
.ballot-empty p{font-size:11px;margin:0;color:#a7c0cb}
.ballot-location-card{display:flex;align-items:start;justify-content:space-between;gap:9px;
 padding:12px;border:1px solid #4b6573;background:#152e41;border-radius:9px}
.ballot-location-card>div:first-child{min-width:0;display:grid;gap:3px}
.ballot-location-card b{font:800 12px "Manrope",system-ui,sans-serif;color:#e5ddc6}
.ballot-location-card small{font-size:10px;color:#b1c2cc}
.ballot-location-card span{font-size:9px;color:#a4d1c6}
.ballot-location-actions{display:grid;justify-items:end;gap:5px;flex:none}
.ballot-location-actions strong{font:900 14px "Manrope",system-ui,sans-serif;color:#f0d1a0}
.ballot-location-actions a{font-size:10px;color:#eacb93;white-space:nowrap}
.ballot-map-wrap{border:1px solid #597587;border-radius:9px;overflow:hidden;background:#0b1d2b}
#ballot-map{height:390px;background:#0a1b2a}
.ballot-map-footnote{font-size:9px;color:#9ab5c7;padding:9px 12px;line-height:1.5}
.ballot-checklist-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.ballot-checklist-grid>div{background:#172f40;border:1px solid #3f5b6f;border-radius:9px;padding:14px;display:flex;flex-direction:column;gap:7px}
.ballot-checklist-grid span{color:#d8bb89;font:900 18px "Manrope",system-ui,sans-serif}
.ballot-checklist-grid h3{font:850 14px "Manrope",system-ui,sans-serif;color:#f4dcad;margin:0}
.ballot-checklist-grid p{font-size:10px;color:#acc2cc;line-height:1.65;margin:0;flex:1}
.ballot-checklist-grid a{font-size:10px;color:#ebd098;margin:6px 0 0}
.ballot-checklist-footer{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid #3e5b66;padding-top:12px}
.ballot-checklist-footer a{font-size:10px}
.ballot-why{background:linear-gradient(110deg,#152d3d,#192d36)!important}
.ballot-why h2{font:850 19px "Manrope",system-ui,sans-serif;margin:8px 0}
.ballot-why p{color:#a9bdc8;font-size:11px;line-height:1.8;max-width:880px}
.ballot-why div{display:flex;gap:15px;flex-wrap:wrap}
.ballot-why a{font-size:11px}
@media(max-width:1200px){
 .ballot-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ballot-checklist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
 .ballot-hero{grid-template-columns:1fr}.ballot-dates{max-width:none}
 .ballot-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ballot-places-layout{grid-template-columns:1fr}
 .ballot-places-list{max-height:none}
}
@media(max-width:700px){
 #ballot-main{padding:14px 10px 90px}
 .ballot-header .cc-headlinks a[href="/my-dashboard.html"]{display:none}
 .ballot-hero{padding:20px 15px;gap:15px}
 .ballot-hero h1{font-size:39px}
 .ballot-resource-grid{grid-template-columns:1fr}
 .ballot-selected-head{align-items:start;flex-wrap:wrap}
 .ballot-selected-head button{padding:8px}
 .ballot-checklist-grid{gap:8px}
 .ballot-checklist-grid>div{padding:10px}
 .ballot-find-grid{gap:8px}
 .ballot-gps{width:100%}
 .ballot-place-actions select{flex:1 1 150px;min-width:0}
 .ballot-place-actions button{flex:1 1 190px}
 #ballot-map{height:270px}
}
@media(max-width:360px){.ballot-checklist-grid{grid-template-columns:1fr}.ballot-hero h1{font-size:33px}}

/* 2026 Election Day: polling places first; full map plus progressive list */
.ballot-places{margin-top:3px;scroll-margin-top:92px}
.ballot-map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;color:#bad5dc;font-size:11px}
.ballot-map-toolbar button{background:#ddbd80;border:1px solid #f2d49f;border-radius:8px;color:#152b3b;cursor:pointer;font:800 11px "Manrope",system-ui,sans-serif;padding:9px 12px}
.ballot-map-toolbar button:hover{background:#f4d9a7}
.ballot-more-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:13px;border:1px solid #658295;border-radius:10px;background:#203c49}
.ballot-more-row p{font-size:11px;line-height:1.5;color:#d0e2e6;margin:0;flex:1 1 100%}
.ballot-more-row button{font:800 11px "Manrope",system-ui,sans-serif;border:1px solid #f2d49f;border-radius:8px;background:#d8b87d;color:#142e41;cursor:pointer;padding:11px 14px;min-height:42px}
.ballot-more-row .ballot-show-all-button{background:#244557;color:#edd6ae;border-color:#9c8766}
.ballot-more-row button:hover{filter:brightness(1.12)}
.ballot-all-shown,.ballot-location-source{display:block;color:#afd4cd;font-size:11px;padding:8px 3px;line-height:1.5}
.ballot-location-view{border:1px solid #708995;border-radius:6px;background:#294a58;color:#e7d4aa;cursor:pointer;font-size:10px;padding:5px 8px;white-space:nowrap}
.ballot-location-view:hover{background:#3a6671}
.ballot-location-card:focus-within{border-color:#e4c48d}
.ballot-marker-popup{display:grid;gap:5px;min-width:150px;color:#152938;font-size:12px}
.ballot-marker-popup strong{font-size:13px}
.ballot-marker-popup small{color:#476577}
.ballot-marker-popup a{color:#225977;font-weight:800}
@media(max-width:700px){
 .ballot-more-row button{flex:1 1 180px}
 .ballot-map-toolbar{align-items:stretch}
 .ballot-map-toolbar button{width:100%}
 #ballot-map{height:330px}
}

/* Touch-friendly GPS recenter button underneath the Leaflet +/- controls. */
.ballot-map-locate-control{margin-top:8px!important;overflow:hidden;border-radius:5px}
.ballot-map-locate-button{width:40px;height:40px;min-width:40px;min-height:40px;display:grid;place-items:center;cursor:pointer;background:#fff;color:#16334b;border:0;border-radius:4px;touch-action:manipulation}
.ballot-map-locate-button:hover,.ballot-map-locate-button:active{background:#f3dbac;color:#142e41}
.ballot-map-locate-button:focus-visible{outline:3px solid #d6a95d;outline-offset:-3px}
.ballot-map-locate-button svg{display:block;pointer-events:none}

/* Voting guide refresh: clear information hierarchy and representative finder. */
.ballot-places.cc-panel{margin-top:0}
.cc-panel-header .ballot-primary-heading{font:900 clamp(25px,3.4vw,36px)/1.17 "Manrope",system-ui,sans-serif;letter-spacing:-.045em;margin:4px 0 0;color:#ecf2f6}
.ballot-jump-nav{display:flex;flex-wrap:wrap;gap:8px;margin:3px 0 17px;padding-bottom:15px;border-bottom:1px solid #355568}
.ballot-jump-nav a{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border:1px solid #496779;border-radius:8px;background:#183448;color:#e8d6af;text-decoration:none;font:800 11px/1.2 "Manrope",system-ui,sans-serif;transition:background .12s,border-color .12s}
.ballot-jump-nav a:hover,.ballot-jump-nav a:focus-visible{background:#2b4f61;border-color:#dbbd87}
.ballot-jump-nav a[aria-current]{background:#d7b981;color:#152b3b;border-color:#e5cb97}
.ballot-representatives{margin:17px 0;scroll-margin-top:92px}
.ballot-rep-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(225px,.4fr);align-items:center;gap:20px;padding:20px;border:1px solid #5c7885;border-radius:12px;background:radial-gradient(circle at 95% 0%,#3c69534a,transparent 55%),linear-gradient(125deg,#193d51,#122a3a 65%,#1c3b40)}
.ballot-rep-content{min-width:0}
.ballot-rep-intro{display:flex;gap:15px;align-items:flex-start}
.ballot-rep-symbol{height:55px;width:55px;flex:none;display:grid;place-items:center;border-radius:14px;background:#cfad72;color:#0e3040;font-size:29px;border:1px solid #f5d49d}
.ballot-rep-intro strong{display:block;font:850 clamp(17px,2.2vw,25px)/1.2 "Manrope",system-ui,sans-serif;color:#f0dfbd;margin:2px 0 8px}
.ballot-rep-intro p{font-size:12px;line-height:1.7;color:#c1d2dc;margin:0}
.ballot-rep-highlights{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.ballot-rep-highlights span{font:750 10px "Manrope",system-ui,sans-serif;padding:8px 10px;border:1px solid #547582;background:#254657;border-radius:999px;color:#cfe9df}
.ballot-rep-cta{display:grid;gap:9px;text-align:center}
.ballot-rep-button{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:10px;padding:14px 17px;border:1px solid #f1d49f;background:linear-gradient(100deg,#d6b47a,#f2d09b);color:#102a3b;text-decoration:none;font:900 13px/1.25 "Manrope",system-ui,sans-serif;box-shadow:0 6px 20px #0002}
.ballot-rep-button:hover,.ballot-rep-button:focus-visible{filter:brightness(1.06)}
.ballot-rep-button span{font-size:23px}
.ballot-rep-cta small{font-size:10px;color:#a9c5ce}
.ballot-rep-disclaimer{font-size:11px;line-height:1.6;color:#a3beca;margin:12px 2px 1px}
.ballot-finder-intro{margin:4px 0 13px}
.ballot-dates-inline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 16px;padding:14px 17px;background:#173b44;border:1px solid #55776f;border-radius:10px}
.ballot-dates-inline .ballot-phase{min-width:150px;align-items:flex-start}
.ballot-dates-inline .ballot-date-grid{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}
.ballot-dates-inline .ballot-date-grid>div{border-top:0;border-left:1px solid #5b7c7d;padding:0 0 0 14px}
.ballot-dates-inline .ballot-date-grid b{font-size:20px}
.ballot-dates-inline #ballot-date-status{max-width:130px;line-height:1.5}
#ballot-finder,#ballot-checklist{scroll-margin-top:92px}
#ballot-main .cc-panel-header{align-items:start}
#ballot-main .cc-overline{line-height:1.5}
@media(max-width:900px){
 .ballot-rep-feature{grid-template-columns:1fr}
 .ballot-rep-cta{text-align:left}
 .ballot-dates-inline{flex-wrap:wrap}
 .ballot-dates-inline .ballot-phase{flex:1}
 .ballot-dates-inline #ballot-date-status{max-width:none}
}
@media(max-width:700px){
 .ballot-jump-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .ballot-jump-nav a{padding:10px 9px;font-size:10px;min-width:0}
 .ballot-rep-feature{padding:15px;gap:16px}
 .ballot-rep-intro{gap:11px}
 .ballot-rep-symbol{height:46px;width:46px;font-size:25px}
 .ballot-rep-intro strong{font-size:18px}
 .ballot-rep-intro p{font-size:11px}
 .ballot-rep-highlights span{font-size:9px}
 .ballot-dates-inline{gap:9px;padding:12px}
 .ballot-dates-inline .ballot-phase{flex:1 1 100%}
 .ballot-dates-inline .ballot-date-grid{flex:1 1 100%;gap:7px}
 .ballot-dates-inline .ballot-date-grid>div{padding-left:10px}
 .ballot-dates-inline #ballot-date-status{max-width:none}
 .cc-panel-header .ballot-primary-heading{font-size:29px}
 #ballot-main .cc-panel-header .cc-tag{font-size:8px;white-space:normal;text-align:center}
}
@media(max-width:380px){.ballot-rep-intro{display:grid}.ballot-rep-highlights{gap:5px}}
