/* A página inicial é um aplicativo de mapa; regras limitadas a este body. */
.election-map-home{margin:0;background:#eef3f7;color:#172c41;--home-blue:#154c78;--home-border:#d9e2e9}
.election-map-home *{box-sizing:border-box}.election-map-home [hidden]{display:none!important}
.election-map-home .site-header{position:relative;z-index:20}.election-map-home .brandbar-inner{min-height:62px;padding-top:8px;padding-bottom:8px}.election-map-home .site-logo img{width:166px;height:auto}.election-map-home .wrap{max-width:none;width:100%;padding-left:24px;padding-right:24px}.election-map-home .main-nav{overflow-x:auto}
.election-map-home button,.election-map-home select,.election-map-home input{font:inherit}.election-map-home button{cursor:pointer}.election-map-home :focus-visible{outline:3px solid #e5a529;outline-offset:3px}
#map-home{height:calc(100dvh - var(--home-header,120px));min-height:520px;display:flex;flex-direction:column;overflow:hidden}
.home-map-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--home-border)}.home-eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:800;color:#5c7284}.home-map-top h1{font-size:22px;line-height:1.2;margin:3px 0 0;font-weight:750}.home-top-actions{display:flex;align-items:center;gap:8px}.home-top-actions button,.home-top-actions a{border:1px solid var(--home-border);border-radius:8px;background:white;padding:9px 12px;color:var(--home-blue);font-size:12px;font-weight:700;text-decoration:none}#home-filters-toggle{display:none}
#president-territorial-explorer,#president-territorial-map-pane{flex:1;min-height:0;display:flex;flex-direction:column}
.election-map-home #results-election-map-section{border:0;border-radius:0;padding:0;margin:0;box-shadow:none;display:grid;flex:1;min-height:0;grid-template-columns:245px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;position:relative;background:#eef3f7}
.election-map-home .results-map-head{display:none}.election-map-home .results-map-layout{grid-column:2;grid-row:2;display:grid!important;grid-template-columns:minmax(0,1fr) 340px!important;gap:0!important;min-height:0;overflow:hidden}
.election-map-home .results-map-canvas-wrap{position:relative;height:100%;min-height:0!important;border:0;border-radius:0;overflow:hidden}
.election-map-home #results-election-map{height:100%!important;min-height:0!important;background:#eef3f7;border-radius:0}.election-map-home .results-map-svg{width:100%;height:100%;min-height:0!important}
.election-map-home #home-results{padding:16px;background:#f8fafc;border-left:1px solid var(--home-border);overflow:auto;min-height:0}
.election-map-home #home-filters{display:flex!important;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:15px;grid-column:1;grid-row:1/4;overflow:auto;margin:0;padding:20px 18px;border:0;border-right:1px solid var(--home-border);border-radius:0;background:white;z-index:5}
.election-map-home .results-map-field{width:100%;min-width:0;display:flex;flex-direction:column;gap:6px}.election-map-home .results-map-field label,.home-city-search label{font-size:11px;font-weight:800;color:#536a7e;letter-spacing:.2px}.election-map-home .results-map-field select,.home-city-search input{width:100%;height:40px;border:1px solid #cbd8e2;border-radius:7px;background:#fff;color:#172c41;padding:0 10px;font-size:13px}.election-map-home .results-map-field-color,.election-map-home .results-map-field-intensity{display:none!important}
.election-map-home .results-map-toolbar-actions{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 0 0}.election-map-home .results-map-toolbar-actions button{min-height:40px;padding:8px;border:1px solid #cbd8e2;border-radius:7px;background:#f2f6fa;color:#244f71;font-size:12px}
.election-map-home #results-map-modebar{grid-column:2;grid-row:1;display:flex;gap:18px;align-items:center;margin:0;padding:12px 16px;background:#fff;border:0;border-bottom:1px solid var(--home-border);border-radius:0;overflow-x:auto;flex-wrap:nowrap}
.election-map-home .results-map-quick-control{flex-shrink:0;display:flex;flex-direction:column;gap:6px}.election-map-home .results-map-quick-control>strong{font-size:10px;text-transform:uppercase;letter-spacing:.65px;color:#64798a}.election-map-home .results-map-button-switch{display:flex;gap:3px;flex-wrap:nowrap}.election-map-home .results-map-button-switch button{border:1px solid transparent;border-radius:6px;padding:7px 9px;font-size:11px;white-space:nowrap;background:#f1f5f8;color:#425c70;min-height:32px}.election-map-home .results-map-button-switch button.is-active{background:#174e77;color:#fff}
.election-map-home #results-map-level-help{display:none}.election-map-home #results-map-boundaries{grid-column:2;grid-row:3;margin:0;padding:7px 14px;display:flex;gap:12px;align-items:center;border:0;border-top:1px solid var(--home-border);border-radius:0;background:#fff}.election-map-home .results-map-boundary-label span{display:none}.election-map-home .results-map-boundary-label strong{font-size:10px}.election-map-home .results-map-boundary-buttons{display:flex;gap:5px}.election-map-home .results-map-boundary-toggle{padding:4px 8px;font-size:10px;border:1px solid #dce4ea;border-radius:5px;background:#f6f9fb}.election-map-home #results-map-live-note{font-size:10px;margin-left:auto;color:#65798a}.election-map-home #results-map-intensity-guide{display:none}
.election-map-home #results-map-status{position:absolute;left:265px;bottom:44px;max-width:min(530px,calc(100% - 300px));z-index:6;background:#fffdf4;border:1px solid #d8cda3;border-radius:8px;padding:9px 12px;font-size:12px;box-shadow:0 3px 12px #17314915;pointer-events:none}.election-map-home #results-map-widget-progress{position:absolute;left:265px;top:88px;width:250px;z-index:7;background:white;border-radius:8px;padding:12px;font-size:11px}.election-map-home #results-map-widget-progress.is-error{display:none!important}.election-map-home .results-map-loading{background:#edf3f7cf;z-index:6}
.home-widget{border:1px solid var(--home-border);border-radius:12px;background:white;padding:15px;margin:0 0 14px;box-shadow:0 2px 5px #23374a05}.home-widget h2{font-size:15px;margin:0;line-height:1.4}.home-widget p{font-size:12px;color:#65798a}.home-widget-heading{display:flex;gap:6px;align-items:flex-start;justify-content:space-between}.home-widget-heading>span{font-size:10px;color:#536f82;white-space:nowrap;background:#edf3f7;border-radius:5px;padding:3px 5px}.home-counting{margin:8px 0!important;font-size:10px!important}.home-progress{height:4px;background:#ecf1f5;border-radius:4px;overflow:hidden;margin:0 0 10px}.home-progress i{display:block;height:100%;background:#3f8b8b}.home-candidate{display:flex;gap:9px;align-items:center;text-decoration:none;color:#1c3449;border-bottom:1px solid #edf1f5;padding:11px 0}.home-candidate:last-child{border-bottom:0}.home-avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--party);color:#fff;font-size:12px;font-weight:800}.home-candidate-name{min-width:0;flex:1}.home-candidate strong{display:block;font-size:12px;line-height:1.4}.home-candidate small{display:block;font-size:10px;color:#6e8190;margin-top:3px}.home-score{text-align:right;white-space:nowrap}.home-score strong{font-size:16px}.home-stamp{display:block;font-size:9px;color:#80909d;margin-top:10px}.home-legend{border:1px solid var(--home-border);border-radius:10px;background:white}.home-legend summary{font-size:12px;padding:12px;cursor:pointer;font-weight:700}.election-map-home #results-map-sidebar{border:0;padding:0 12px 12px;min-height:0;background:transparent;box-shadow:none}.election-map-home .results-map-side-head{padding:0 0 8px}.election-map-home .results-map-side-head h3{font-size:13px}.election-map-home .results-map-side-head>span{display:none}.election-map-home .results-map-side-head p{font-size:10px}.home-source{font-size:10px;line-height:1.8;color:#788b9b;margin:12px 3px}.home-city-search{position:relative;display:flex;flex-direction:column;gap:6px}#home-city-options:empty{display:none}#home-city-options{position:absolute;top:65px;left:0;right:0;z-index:30;max-height:280px;overflow:auto;border:1px solid var(--home-border);box-shadow:0 8px 20px #172c4120;background:white;border-radius:8px;padding:4px}#home-city-options button{display:block;width:100%;text-align:left;padding:10px;border:0;border-radius:5px;background:white;font-size:12px}#home-city-options button:hover{background:#eef4f8}
.election-map-home [data-home-drill]{border:0;background:#164e78;color:white;padding:9px 12px;border-radius:6px;margin:10px 0;font-size:12px}
@media(min-width:1800px){.election-map-home .results-map-layout{grid-template-columns:minmax(0,1fr) 420px!important}.home-widget{padding:20px}.home-widget h2{font-size:18px}.home-candidate strong{font-size:15px}.home-score strong{font-size:21px}.home-candidate small{font-size:12px}}
@media(max-width:1150px){.election-map-home #results-election-map-section{grid-template-columns:205px minmax(0,1fr)}.election-map-home .results-map-layout{grid-template-columns:minmax(0,1fr) 285px!important}.election-map-home #home-filters{padding:14px 12px}.election-map-home #results-map-status,.election-map-home #results-map-widget-progress{left:218px}.election-map-home #results-map-modebar{gap:10px}.home-top-actions a{display:none}}
@media(max-width:800px){#map-home{height:auto;min-height:calc(100dvh - var(--home-header,120px));overflow:visible}.home-map-top{padding:10px 14px}.home-map-top h1{font-size:18px}.home-eyebrow{font-size:9px}#home-filters-toggle{display:block}.home-top-actions button{font-size:11px;padding:9px}.election-map-home .wrap{padding-left:14px;padding-right:14px}.election-map-home #results-election-map-section{display:flex;flex-direction:column}.election-map-home #results-map-modebar{order:1;padding:10px 12px;min-height:72px}.election-map-home .results-map-layout{order:3;display:flex!important;flex-direction:column;overflow:visible}.election-map-home .results-map-canvas-wrap{height:55dvh;min-height:310px!important}.election-map-home #home-results{border-left:0;border-top:1px solid var(--home-border);padding:12px}.election-map-home #home-filters{display:none!important;order:2;max-height:60dvh;border-bottom:1px solid var(--home-border);overflow:auto;flex-direction:row;flex-wrap:wrap;gap:12px}.election-map-home.home-filters-open #home-filters{display:flex!important}.election-map-home #home-filters>div{flex:1 1 calc(50% - 12px);min-width:135px}.election-map-home #home-filters>.home-city-search{flex-basis:100%}.election-map-home #results-map-boundaries{order:4;flex-wrap:wrap}.election-map-home #results-map-status{position:relative;order:2;left:auto;bottom:auto;max-width:none;margin:0;padding:8px 12px;border-radius:0;font-size:11px;box-shadow:none}.election-map-home #results-map-widget-progress{left:15px;top:90px}.election-map-home .home-widget{margin-bottom:10px}.home-widget h2{font-size:16px}.home-candidate strong{font-size:14px}.home-score strong{font-size:19px}.home-candidate small{font-size:11px}.home-source{margin-bottom:env(safe-area-inset-bottom,8px)}}
@media(prefers-reduced-motion:reduce){.election-map-home *{scroll-behavior:auto!important;transition:none!important}}
.election-map-home #results-election-map .results-map-svg-fallback{min-height:0!important}
.election-map-home #results-election-map .results-map-svg-card [data-home-drill]{position:static;color:#fff;background:#164e78;font-size:12px;padding:9px 12px;display:block}
.home-svg-zoom{position:absolute;right:12px;bottom:65px;display:flex;flex-direction:column;gap:3px}.home-svg-zoom button{width:36px;height:36px;background:white;border:1px solid #cfdae3;border-radius:6px;font-size:20px;color:#274d6b}
.election-map-home #home-filters .results-map-field{flex:0 0 auto}
.election-map-home #results-map-modebar{flex-direction:row;justify-content:flex-start}
.election-map-home .results-map-level-switch button{min-width:0;flex:0 0 auto}
@media(max-width:800px){.election-map-home #home-filters .results-map-field{flex:1 1 calc(50% - 12px)}.election-map-home #results-map-modebar{align-items:flex-start;flex-shrink:0}.election-map-home .results-map-level-switch{width:auto}}
.election-map-home #results-election-map .results-map-svg-message{top:12px;bottom:auto;right:auto;max-width:calc(100% - 24px);font-size:10px;padding:6px 9px;pointer-events:none}
