:root{--blue:#1764d8;--navy:#102c57;--ink:#273e5d;--muted:#8798ae;--line:#e6edf6}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:13px;background:#f4f7fc}button,a,input,select{font-family:inherit}[hidden]{display:none!important}.pro-header{height:83px;background:linear-gradient(110deg,#143765,#0c254a);color:white;padding:15px 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:3px solid #3684ee}.brand{color:white;font-size:25px;font-weight:700;letter-spacing:-1px}.brand span{font-weight:400;color:#8abaff}.header-sub{font-size:11px;color:#a9bfdc;margin-top:5px}.source-head{text-align:center;font-size:10px;color:#a4bedf;line-height:1.8}.source-head strong{display:block;color:#ecf3ff;font-size:12px}.header-actions{display:flex;gap:8px;align-items:center}.header-actions a,.header-actions select{border:1px solid #ffffff32;border-radius:7px;background:#ffffff0b;color:#d9e7f9;padding:8px 11px;font-size:11px;text-decoration:none}.header-actions option{color:var(--ink);background:#fff}.explorer{height:calc(100dvh - 116px);display:grid;grid-template-columns:330px minmax(0,1fr) 390px;overflow:hidden}.left-pane{background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.filters{padding:17px 18px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.cargo-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}.cargo-tabs button{border:1px solid #dae4f2;background:white;border-radius:20px;padding:7px 11px;font-size:11px;font-weight:600;color:#657b99}.cargo-tabs button.active{color:white;background:var(--blue);border-color:var(--blue)}.cargo-tabs button:disabled{opacity:.4}.filters .form-control{height:39px;font-size:12px;border:1px solid #dfe7f2;border-radius:7px;margin-bottom:10px;box-shadow:none}.filters label{display:block;color:#8a9ab0;font-size:9px;font-weight:600;letter-spacing:.9px;margin-bottom:6px}.candidate-search{position:relative}.suggestions{position:absolute;top:67px;left:0;right:0;max-height:270px;overflow:auto;background:white;z-index:1200;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 25px #12386a25}.suggestions button{display:block;width:100%;text-align:left;padding:12px;border:0;border-bottom:1px solid var(--line);background:white;color:var(--ink);font-size:11px}.suggestions button:hover,.suggestions button:focus{background:#eef5ff}.suggestions small{display:block;color:var(--muted);margin-top:4px}.candidate-chip{display:flex;justify-content:space-between;gap:7px;background:#edf4ff;border-radius:6px;padding:9px 10px;margin:0 0 10px;color:#2364bd;font-size:11px}.candidate-chip button{border:0;background:none;color:#4e7ebd;padding:0 4px}.zone-section{display:grid;grid-template-columns:1fr 1fr;gap:9px}.filter-count{font-size:11px;color:#8395af;padding:0 18px 10px;flex-shrink:0;margin-top:11px}.location-list{flex:1;overflow:auto;min-height:0;scrollbar-width:thin}.location-item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #edf1f7;background:white;padding:14px 17px;color:var(--ink);border-left:3px solid transparent;cursor:pointer}.location-item strong{display:block;font-size:12px;line-height:1.6;font-weight:600}.location-item small{display:block;font-size:10px;color:#8599b5;margin-top:5px;line-height:1.6}.location-item:hover{background:#f6f9ff}.location-item.active{border-left-color:var(--blue);background:#edf4ff}.map-pane{position:relative;min-width:0;min-height:0;background:#eaf1f9}#electoralMap{height:100%;width:100%;background:#eef4fa}.map-switch{position:absolute;right:20px;top:18px;z-index:800;display:flex;background:white;border:1px solid var(--line);box-shadow:0 5px 18px #24446e17;border-radius:25px;padding:4px}.map-switch button{background:transparent;border:0;border-radius:20px;color:#78899f;padding:8px 14px;font-size:11px;font-weight:600}.map-switch button.active{background:var(--blue);color:white}.map-meta{position:absolute;left:16px;bottom:30px;z-index:800;background:#fffffff5;border:1px solid var(--line);border-radius:8px;padding:11px 14px;max-width:calc(100% - 32px);box-shadow:0 3px 12px #234a7910;font-size:10px;color:#7389a6}.map-meta strong{display:block;color:#3c5c84;font-size:11px;margin-bottom:5px}.map-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:7px;font-size:9px}.map-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.map-reset{position:absolute;left:14px;top:90px;z-index:800;border:1px solid #dce5f0;background:white;color:#5479a9;border-radius:5px;padding:7px 9px;font-size:10px}.detail-pane{background:white;border-left:1px solid var(--line);overflow:auto;min-height:0;padding:23px 23px 30px;scrollbar-width:thin}.detail-pane h1{font-size:18px;font-weight:700;line-height:1.6;margin:0 0 10px;color:#243d60}.detail-address{font-size:12px;color:#8a9db6;line-height:1.9;margin-bottom:20px}.detail-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin-bottom:20px}.detail-kpis div{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#8b9db4}.detail-kpis strong{color:#345477;font-weight:600}.small-title{font-size:11px;font-weight:700;letter-spacing:1px;color:#7e91ab;margin:22px 0 9px}.participation{font-size:12px;color:#8296b2;line-height:1.8;margin-bottom:13px}.local-candidate{padding:12px 0;border-bottom:1px solid #eff3f8}.local-candidate.selected{background:#f0f6ff;border-radius:5px;padding:12px 8px}.local-candidate>div{display:flex;justify-content:space-between;align-items:center;gap:9px}.local-candidate strong{font-size:12px;line-height:1.5;color:#344c6c}.local-candidate b{font-size:13px;color:#2a65b7;white-space:nowrap}.local-candidate small{font-size:11px;color:#8fa3be;line-height:1.8}.vote-track{height:3px;background:#edf2f9;border-radius:3px;margin-top:7px;overflow:hidden}.vote-track i{height:100%;display:block;background:#337cdf;border-radius:3px}.totals{margin-top:18px;display:grid;gap:9px;font-size:12px;color:#879bb5}.totals>div{display:flex;justify-content:space-between}.totals strong{color:#426388}.section-list{margin:12px 0}.section-list details{border:1px solid var(--line);border-radius:7px;margin-bottom:8px;overflow:hidden}.section-list summary{cursor:pointer;padding:12px 11px;background:#f9fbff;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:7px;list-style:none}.section-list summary:before{content:'+';color:#5887c5;margin-right:3px}.section-list details[open] summary:before{content:'âˆ’'}.section-list summary strong{color:#345984;flex:1}.section-list summary span{font-size:10px;color:#8097b6}.section-inner{padding:10px 12px}.section-stat{font-size:11px;color:#839bb8;line-height:1.8;margin-bottom:8px}.section-inner .local-candidate strong{font-size:11px}.section-inner .local-candidate b{font-size:12px}.detail-note{font-size:9px;color:#98a9bf;line-height:1.9;margin-top:18px}.notice{margin:12px 0;padding:11px 13px;background:#fff6e5;border:1px solid #f1dfbb;border-radius:7px;font-size:11px;color:#9c7b43;line-height:1.8}.empty-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:#96a8bf;padding:25px;line-height:1.9}.empty-panel .empty-symbol{font-size:32px;color:#4d8ad9;margin-bottom:14px}.empty-panel strong{font-size:14px;color:#708aa9}.empty-panel p{font-size:11px;margin:10px 0}.detail-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.detail-tools button{border:1px solid #dbe6f4;background:#fff;border-radius:5px;padding:8px 10px;color:#5680b5;font-size:10px}.pro-footer{height:33px;background:#fff;border-top:1px solid var(--line);padding:8px 20px;font-size:9px;color:#90a1b8;display:flex;justify-content:space-between;gap:10px}.pro-footer strong{color:#526e92;margin-right:9px}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:8px!important}.mobile-tabs{display:none}.leaflet-tooltip{font-size:11px}.loading{padding:30px;text-align:center;font-size:12px;color:#8da1ba}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #85b5fb;outline-offset:2px}
@media(min-width:1700px){.explorer{grid-template-columns:365px minmax(0,1fr) 430px}.detail-pane{padding:26px 27px}.detail-pane h1{font-size:20px}.detail-address,.participation,.detail-kpis div{font-size:13px}.local-candidate strong{font-size:13px}.local-candidate b{font-size:14px}.location-item strong{font-size:14px}.location-item small{font-size:11px}.filters{padding:20px}.location-item{padding:16px 20px}.cargo-tabs button{font-size:12px}}
@media(max-width:1199px){.explorer{grid-template-columns:285px minmax(0,1fr) 325px}.detail-pane{padding:18px}.filters{padding:14px}.cargo-tabs button{font-size:10px;padding:6px 9px}.map-switch{top:15px;right:12px}.map-switch button{font-size:10px;padding:8px 10px}.source-head{display:none}.header-sub{font-size:10px}}
@media(max-width:900px){.pro-header{height:76px;padding:12px 15px}.brand{font-size:23px}.header-actions a,.header-actions select{font-size:10px;padding:7px}.mobile-tabs{display:flex;height:40px;background:white;border-bottom:1px solid var(--line)}.mobile-tabs button{flex:1;border:0;background:white;color:#8b9db4;font-size:11px}.mobile-tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:600}.explorer{height:calc(100dvh - 151px);display:block}.left-pane,.map-pane,.detail-pane{height:100%;display:none}.explorer[data-mobile="list"] .left-pane{display:flex}.explorer[data-mobile="map"] .map-pane{display:block}.explorer[data-mobile="detail"] .detail-pane{display:block}.location-item strong{font-size:12px}.filters{padding:15px 18px}.cargo-tabs button{font-size:11px;padding:7px 10px}.pro-footer{height:35px;padding:7px 10px;font-size:8px}.pro-footer>span:last-child{max-width:48%;text-align:right}.header-sub{font-size:9px}.header-actions{gap:5px}.header-actions a{max-width:82px;text-align:center}.detail-pane h1{font-size:18px}.detail-pane{padding:23px}.map-meta{bottom:30px}}
@media print{.pro-header,.left-pane,.mobile-tabs,.map-switch,.map-reset,.detail-tools{display:none!important}.explorer{display:block;height:auto;overflow:visible}.map-pane{display:block;height:400px}.detail-pane{display:block;overflow:visible;break-before:page}.section-list details{break-inside:avoid}.pro-footer{height:auto}}
.candidate-city{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:15px 10px;background:white;border:0;border-bottom:1px solid var(--line);color:var(--ink)}.candidate-city:hover{background:#edf4ff}.candidate-city strong{font-size:12px;display:block;line-height:1.6}.candidate-city small{display:block;color:#8b9fb8;font-size:10px;margin-top:5px}.candidate-city b{color:var(--blue);font-size:15px;text-align:right;white-space:nowrap}.city-pagination{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:17px 0;font-size:10px;color:#8b9fb8}.city-pagination button{border:1px solid #dce6f3;border-radius:5px;background:white;color:#4e7db9;padding:6px 8px;font-size:10px;margin-left:4px}.city-pagination button:disabled{opacity:.4}.location-item small b{color:#2367bd;font-size:11px;font-weight:600}

/* Cartão e estados territoriais preservam a cor eleitoral do município. */
.leaflet-tooltip.city-tooltip{padding:0;border:1px solid #d6e3f4;border-radius:14px;background:#fff;box-shadow:0 12px 36px #102c5733;color:#17345b;white-space:normal;min-width:245px;max-width:290px;font-family:inherit;overflow:visible}.city-tooltip .map-card{padding:16px 18px}.map-card-top{display:flex;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:.8px;color:#7890ad}.map-card-top b{color:#1761cd;background:#e7f0ff;border-radius:12px;padding:2px 7px;letter-spacing:0}.map-card-city{display:block;font-size:17px;line-height:1.3;margin-top:6px}.map-card-race{font-size:10px;color:#7c91ac;margin:7px 0 12px}.map-card-candidate{font-size:12px;font-weight:700;border-top:1px solid #edf1f7;padding-top:11px}.map-card-candidate small{display:block;font-size:10px;color:#7890ad;font-weight:400;margin-top:3px}.map-card-metrics{display:flex;gap:22px;margin:12px 0}.map-card-metrics b{display:block;font-size:20px;color:#1761cd;line-height:1.2}.map-card-metrics span{font-size:9px;color:#7890ad}.map-card-foot{font-size:10px;border-top:1px solid #edf1f7;padding-top:10px;color:#6e85a4}.map-card-foot span{display:block;font-size:9px;margin-top:5px;color:#1761cd}.leaflet-interactive{cursor:pointer}
.install-app{border:1px solid #7395c1;border-radius:8px;background:#ffffff12;color:white;font-size:12px;padding:10px 14px;white-space:nowrap}.install-app:hover{background:#ffffff26}.install-app:focus-visible{outline:2px solid white;outline-offset:3px}[hidden]{display:none!important}.app-notice{position:fixed;z-index:1500;left:50%;bottom:48px;transform:translateX(-50%);max-width:calc(100% - 28px);width:max-content;padding:12px 17px;background:#102c57;color:#fff;border-radius:10px;box-shadow:0 8px 28px #102c5733;font-size:12px}.app-notice button,.install-help button{background:#1761cd;border:0;border-radius:6px;color:white;padding:8px 12px}.install-help{border:1px solid #dce6f3;border-radius:16px;padding:25px;max-width:420px;width:calc(100% - 32px);color:#17345b;box-shadow:0 15px 55px #102c5740}.install-help::backdrop{background:#102c5766}.install-help h2{font-size:20px}.install-help p{font-size:14px;line-height:1.7;margin:15px 0 22px}
@media(max-width:900px){.install-app{font-size:10px;padding:7px 9px}.header-actions{flex-wrap:wrap;justify-content:flex-end;max-width:160px}.app-notice{font-size:11px;bottom:42px}.city-tooltip .map-card{padding:12px 14px}.leaflet-tooltip.city-tooltip{min-width:220px;max-width:245px}}
@media(display-mode:standalone){.pro-header{padding-top:max(12px,env(safe-area-inset-top))}.pro-footer{padding-bottom:max(7px,env(safe-area-inset-bottom))}}
