/* Componentes e telas: cascata unica consolidada (app, interface, identity, footer, ui). */
header,main{margin:auto;padding:24px 28px}
header{display:flex;justify-content:space-between;gap:24px}
h1{display:flex;align-items:center;gap:12px;font-weight:700;margin:5px 0 8px}
h2{font-size:20px;font-weight:650;letter-spacing:-.02em;margin:0}
p{margin:0;color:var(--muted)}
.eyebrow{font-weight:700;color:var(--blue)}
.edition,.badge{font-size:12px}
.edition{padding:6px 10px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);border-radius:var(--bs-border-radius)}
.head-actions{display:flex;gap:10px;flex-shrink:0}
.text-button{font-size:13px;padding:4px 6px;text-decoration:none;min-height:36px}
.text-button:hover{text-decoration:underline}
.hidden{display:none!important}
.muted{font-size:13px;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.territory-picker{display:grid;gap:20px;border-bottom:1px solid var(--line)}
.territory-picker label,.grouping-bar label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}
.form-select,.form-control{font-size:14px;min-height:44px}
.form-select{text-overflow:ellipsis;padding-right:36px}
.notice{padding:14px;background:var(--bs-warning-bg-subtle);border-radius:var(--bs-border-radius);margin-bottom:16px}
.filters-heading h2{margin-bottom:5px}
.filters-heading p{font-size:13px}
.filterbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.filterbar label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:7px;min-width:0}
.search-field,.field-local{grid-column:span 2}
.search{position:relative}
.search>span{position:absolute;top:10px;left:12px;color:var(--muted)}
.search input{padding-left:32px}
.grouping-bar{display:flex;margin:22px 0}
.grouping-bar>div{min-width:260px}
.layout{display:grid;align-items:start}
.maincol,aside{min-width:0}
aside{position:sticky}
.section-head,.aside-head{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:16px}
.section-head>div:first-child{min-width:0}
#resultTitle{font-size:23px;line-height:1.35;margin-top:6px}
.result-subtitle{font-size:13px;margin-top:8px}
.segmented{flex-shrink:0}
.segmented .btn{font-size:13px}
#groupActions{display:flex}
.group-turnout{display:block;margin-top:5px;color:var(--ink)}
.group-turnout>span{color:var(--muted)}
.num{font-weight:650;text-align:center;padding:10px 4px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);border-radius:6px}
.candidate b{font-size:14px;display:block;line-height:1.5}
.candidate span{font-size:12px;color:var(--muted)}
.bar{height:4px;margin-top:8px;background:var(--panel2);border-radius:5px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue)}
.vote{text-align:right;font-size:19px;font-weight:650;font-variant-numeric:tabular-nums}
.vote small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.extras{font-size:13px;color:var(--muted);padding:10px;background:var(--panel2);border-radius:6px}
.empty{text-align:center;padding:40px 16px;color:var(--muted)}
.empty strong{display:block;color:var(--ink);margin-bottom:8px}
.right{text-align:right}
.table{font-size:13px}
.table th{font-size:12px}
.group-table-title{--bs-table-bg:var(--bs-tertiary-bg)}
.territory-search{display:block;margin:18px 0 12px}
.section-list{margin-top:10px;overflow:auto;scrollbar-gutter:stable;padding-right:4px}
.section-chips{display:flex;flex-wrap:wrap;padding:0 0 20px 33px}
.section-chip{min-width:44px;min-height:44px}
.section-chip[aria-pressed=true]{background:var(--bs-primary);color:var(--bs-white)}
.selection-bar,.territory-selection{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;background:var(--bs-primary-bg-subtle);border-radius:8px;font-size:13px;margin-bottom:16px;color:var(--bs-primary-text-emphasis)}
.selection-bar{top:8px;z-index:5}
.territory-selection{flex-wrap:wrap}
.territory-source{color:var(--muted);max-width:95ch;margin-top:24px}
summary:focus-visible{outline:3px solid var(--bs-primary-border-subtle);outline-offset:3px}
@media(max-width:1100px){.section-head{flex-wrap:wrap}}
@media(max-width:900px){.layout aside{order:-1;width:100%}}
@media(max-width:900px){.maincol{width:100%}}
@media(max-width:900px){.filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.sync .muted{margin-top:5px}}
@media(max-width:600px){header{align-items:start}}
@media(max-width:600px){main{padding:0 16px 30px}}
@media(max-width:600px){.head-actions{flex-wrap:wrap;width:100%}}
@media(max-width:600px){.head-actions .btn{flex:1;font-size:13px}}
@media(max-width:600px){.filters-heading{gap:10px}}
@media(max-width:600px){.filters-heading .btn{white-space:nowrap}}
@media(max-width:600px){.search-field,.field-local,.field-secao{grid-column:1/-1}}
@media(max-width:600px){.cards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.grouping-bar{display:block}}
@media(max-width:600px){.grouping-bar p{margin-top:10px;font-size:12px}}
@media(max-width:600px){.candidate b{font-size:12px}}
@media(max-width:600px){.vote{font-size:17px}}
@media(max-width:600px){.selection-bar{flex-wrap:wrap}}
@media(max-width:600px){.section-chips{padding-left:0}}
.show-candidates{font-size:13px;padding:12px 0;text-decoration:none}
.vote-extras{display:flex;flex-wrap:wrap;color:var(--muted)}
.vote-extras b{color:var(--ink);margin-left:4px;font-variant-numeric:tabular-nums}
.filter-groups{grid-template-columns:2fr 1fr}
.filter-groups fieldset{min-width:0}
.filter-groups .filterbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.filter-groups .field-local,.filter-groups .search-field{grid-column:1/-1}
.filter-groups .filterbar label{gap:5px}
.section-chips{gap:6px;padding-bottom:16px}
.section-chip{background:var(--bs-body-bg);font-size:12px;border-color:var(--bs-border-color);color:var(--ink)}
.section-chip:hover{border-color:var(--bs-primary)}
.territory-selection{font-size:12px}
.section-list{scrollbar-width:thin}
@media(max-width:700px){.filter-groups{grid-template-columns:1fr;gap:20px}}
@media(max-width:700px){.filter-groups fieldset+fieldset{border-top:1px solid var(--line);padding-top:16px}}
.comparison-panel{margin-top:18px;border-radius:12px;overflow:hidden}
.comparison-panel>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;list-style:none;cursor:pointer}
.comparison-panel>summary::-webkit-details-marker{display:none}
.comparison-panel summary small{display:block;color:var(--muted);margin-top:5px}
.comparison-open{color:var(--blue);font-size:13px;white-space:nowrap}
.comparison-controls{display:grid;align-items:end;margin-top:18px}
.comparison-controls label{font-size:12px;font-weight:600;display:grid;gap:6px;min-width:0}
.comparison-actions{display:flex;align-items:center;gap:14px;margin:16px 0 24px}
.comparison-result-head{display:flex;justify-content:space-between;margin-bottom:16px}
.comparison-result-head h2{margin-bottom:6px}
.comparison-source{margin-top:14px;font-size:11px}
#compareMap{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;z-index:0}
#compareMapWrap .muted{font-size:12px}
.leaflet-container .leaflet-control-attribution{font-size:10px}
@media(max-width:900px){.comparison-controls .btn{align-self:end}}
@media(max-width:900px){.comparison-result-head{flex-wrap:wrap}}
@media(max-width:500px){.comparison-controls{grid-template-columns:1fr}}
@media(max-width:500px){.comparison-actions{align-items:start;flex-direction:column}}
@media(max-width:500px){.comparison-panel>summary{align-items:start}}
@media(max-width:500px){.comparison-open{font-size:12px}}
@media(max-width:500px){#compareMap{height:300px}}
.comparison-mode{display:grid;gap:6px;font-size:12px;font-weight:600;margin-top:16px}
.comparison-refine{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.comparison-refine label{display:grid;gap:6px;font-size:12px;font-weight:600}
.comparison-refine label:first-child{min-width:180px}
.comparison-refine>span{padding-bottom:10px;font-size:12px}
.comparison-progress{width:100%;height:7px;accent-color:var(--bs-primary);margin-bottom:20px}
.comparison-missing{padding:12px;background:var(--bs-warning-bg-subtle);border-radius:8px;margin:12px 0;font-size:12px}
.comparison-missing summary{cursor:pointer;font-weight:600}
.comparison-missing p{margin-top:8px;line-height:1.7}
.comparison-panel[open] .comparison-open{font-size:0}
.comparison-panel[open] .comparison-open:after{content:'Recolher ↑';font-size:13px}
.report-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}
.report-actions .btn{font-size:13px}
.report-dialog{border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink)}
.report-dialog::backdrop{background:rgba(20,35,55,.45)}
.report-controls{display:flex;justify-content:space-between;position:sticky;top:-24px;background:var(--bs-body-bg);padding:12px 16px}
.report-controls>div{display:flex;gap:8px;flex-wrap:wrap}
#reportContent h1{font-size:24px}
#reportContent dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
#reportContent dt{font-size:11px;color:var(--muted)}
#reportContent dd{font-size:13px;margin:0;overflow-wrap:anywhere}
#reportContent table{width:100%;border-collapse:collapse;font-size:11px}
#reportContent th,#reportContent td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;max-width:170px}
#reportContent th{background:var(--page-bg)}
#reportContent footer{margin-top:20px;font-size:11px}
.report-brand{font-size:11px;letter-spacing:.05em;color:var(--blue)}
@media(max-width:600px){#reportContent{overflow-x:auto}}
@page{size:A4 landscape;margin:12mm}
@media print{body{background:white}}
@media print{body>*:not(#reportDialog){display:none!important}}
@media print{#reportDialog[open]{position:static;display:block;width:100%;max-width:none;max-height:none;overflow:visible;border:0;padding:0;margin:0}}
@media print{#reportDialog::backdrop{display:none}}
@media print{.report-controls,.report-instruction{display:none!important}}
@media print{#reportContent table{font-size:9px}}
@media print{#reportContent th,#reportContent td{padding:5px;max-width:140px}}
@media print{#reportContent tr{break-inside:avoid}}
@media print{#reportContent thead{display:table-header-group}}
.coverage-panel{margin:18px 0;border-radius:12px}
.coverage-panel>summary,.analysis-tools>summary{padding:16px;cursor:pointer;font-weight:600;font-size:14px}
.feature-body{padding:0 16px 16px}
.feature-body h3{font-size:17px}
.feature-body>label{display:grid;gap:6px;margin:14px 0 8px;font-size:12px}
.feature-body>p{margin:10px 0}
.feature-body .table-responsive{max-height:420px;overflow:auto;margin:14px 0}
.coverage-item{font-size:13px}
.coverage-item small{color:var(--muted)}
.favorites-bar,.history-controls,.map-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0}
.favorites-bar label,.history-controls label,.map-controls label{display:grid;gap:6px;font-size:12px;flex:1;min-width:170px}
.candidate-profile{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line);padding:18px 0;margin:18px 0}
.candidate-profile span,.candidate-profile small{display:block;color:var(--muted);font-size:11px}
.candidate-profile strong{display:block;line-height:1.4;margin:6px 0}
.report-customization{padding:12px;background:var(--page-bg);border-radius:8px;margin-bottom:20px}
.report-customization>label{font-size:12px;margin:12px 0}
.report-columns{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;font-size:12px}
.report-chart{margin:24px 0;break-inside:avoid}
.report-chart h2{font-size:15px}
.report-chart>div{display:grid;grid-template-columns:180px 1fr 80px;gap:12px;align-items:center;font-size:11px;margin-top:8px}
.report-chart-track{height:10px;background:#edf3fc}
.report-chart-track i{display:block;height:100%;background:#2171b5;print-color-adjust:exact}
.map-controls{font-size:12px}
.map-controls>span{max-width:250px}
@media(max-width:700px){.candidate-profile{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.favorites-bar .btn{flex:1}}
@media(max-width:700px){.report-chart>div{grid-template-columns:110px 1fr 60px}}
@media print{.report-customization{display:none!important}}
@media print{.report-chart-track i{background:#2171b5!important;-webkit-print-color-adjust:exact}}
.local-data-banner{display:flex;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.local-data-banner span,.local-data-banner small{color:var(--muted)}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
header,main{max-width:1500px}
header{padding-top:26px;padding-bottom:22px}
header>div:first-child{min-width:0}
h1{font-size:28px;letter-spacing:-.03em}
.eyebrow{font-size:10px;letter-spacing:.05em}
.card{background:var(--surface);border-color:var(--line);border-radius:12px;box-shadow:0 2px 5px oklch(25% .02 250 / .025)}
.btn{border-radius:7px;min-height:42px;font-weight:550;font-size:13px}
.btn-outline-primary{--bs-btn-color:var(--blue);--bs-btn-border-color:oklch(78% .065 250);--bs-btn-hover-bg:var(--blue);--bs-btn-hover-border-color:var(--blue);--bs-btn-active-bg:var(--blue);--bs-btn-active-border-color:var(--blue)}
.btn-link{--bs-btn-color:var(--blue)}
.btn:disabled{cursor:not-allowed;opacity:.55}
.btn:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid oklch(65% .13 250);outline-offset:3px;box-shadow:none}
.form-control,.form-select{border-radius:7px;min-height:42px;color:var(--ink);background-color:var(--surface)}
.form-control:focus,.form-select:focus{border-color:var(--blue);box-shadow:0 0 0 3px oklch(60% .14 250 / .12)}
label{color:var(--ink)}
button,input,select{touch-action:manipulation}
button{overflow-wrap:anywhere}
.skip-link{position:fixed;left:16px;top:-100px;z-index:3000;background:var(--surface);padding:12px 20px;border:2px solid var(--blue);border-radius:8px}
.skip-link:focus{top:12px}
.workspace-nav{position:sticky;top:0;z-index:20;background:var(--surface);border-block:1px solid var(--line)}
.workspace-nav>div{max-width:1500px;margin:auto;padding:0 28px;display:flex;align-items:center;gap:8px}
.workspace-nav a{display:flex;align-items:center;padding:0 16px;color:var(--muted);font-weight:600;text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}
.workspace-nav a:hover{background:var(--page-bg);color:var(--ink)}
.workspace-nav a[aria-current]{color:var(--blue);border-bottom-color:var(--blue)}
.nav-context{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}
#apuracao,#comparisonPanel,#coveragePanel{scroll-margin-top:74px}
.local-data-banner{border-bottom:1px solid var(--line);font-size:11px}
.local-data-banner strong{font-size:12px}
.local-data-banner small{margin-left:auto}
.territory-picker{padding-bottom:18px}
.filter-groups legend{margin-bottom:14px}
.filter-groups .filterbar label{font-size:12px}
.filter-groups .form-select,.filter-groups .form-control{min-height:44px;font-size:14px}
.grouping-bar{gap:20px;margin-bottom:18px}
.maincol,aside{padding:22px}
aside{top:72px}
.section-list{max-height:calc(100dvh - 350px);min-height:180px}
.maincol .section-head{align-items:center}
.report-actions .muted{font-size:12px}
.section-chip{border-radius:7px}
.selection-bar{position:static}
.mobile-territory{display:none}
.loading-caption{font-size:12px;color:var(--blue);padding:10px 0;margin:0}
.maincol[aria-busy=true] #ranking{opacity:.6}
.comparison-panel{margin:30px 0 20px}
.comparison-panel>summary{padding:24px}
.comparison-panel summary strong{font-size:20px}
.comparison-panel summary small{font-size:13px}
.favorites-disclosure{border-block:1px solid var(--line);padding:12px 0}
.favorites-disclosure>summary{font-size:13px;font-weight:600;cursor:pointer}
.favorites-disclosure>summary span,.history-tools>summary span{font-weight:400;font-size:12px;color:var(--muted);margin-left:10px}
.favorites-bar{display:grid;grid-template-columns:1fr auto 1fr auto auto;gap:10px}
.favorites-bar label{min-width:0}
.comparison-mode{max-width:440px}
.comparison-controls{grid-template-columns:1fr 1.4fr 1.4fr auto;gap:14px}
.comparison-actions{padding:12px 0;border-bottom:1px solid var(--line)}
.comparison-refine{border-block:1px solid var(--line);padding:14px 0;margin:20px 0}
.comparison-refine label:first-child{flex:initial;width:min(100%,360px)}
.comparison-refine>span{margin-left:auto}
.candidate-profile{background:transparent;gap:24px}
.candidate-profile strong{font-size:17px}
.analysis-tools{background:transparent;border:1px solid var(--line);border-radius:8px;margin:12px 0}
.analysis-tools>summary{font-size:13px;min-height:48px;display:list-item}
.analysis-tools .feature-body{padding:8px 18px 20px}
.feature-body>label{max-width:680px}
.feature-body p{max-width:75ch}
.analysis-status:empty{display:none}
.analysis-status{padding:10px 0}
.history-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px}
.history-controls label{min-width:0}
.coverage-panel{margin-top:20px}
.coverage-panel>summary{padding:20px;font-size:15px}
.coverage-item p{margin:5px 0}
.table-responsive{overscroll-behavior-inline:contain;scrollbar-gutter:stable}
.table-responsive table{min-width:580px}
.table th{font-weight:600;color:var(--muted);background:var(--page-bg);white-space:nowrap}
.table td{padding-top:12px;padding-bottom:12px;font-variant-numeric:tabular-nums}
.feature-body .table-responsive thead{position:sticky;top:0;z-index:1}
.comparison-source{line-height:1.65;max-width:95ch}
.map-controls{align-items:center;background:var(--page-bg);border-radius:8px;padding:12px}
#compareMap{height:450px}
.map-controls label{min-width:140px}
.report-dialog{width:min(1200px,96vw);max-height:92dvh}
.report-controls{z-index:2;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px}
.report-customization summary{min-height:32px;cursor:pointer;font-weight:600;font-size:13px}
.report-columns label{padding:6px 8px;display:flex;gap:8px;align-items:center;min-height:40px}
.report-columns input{width:17px;height:17px}
.report-customization>label{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.report-customization input[type=checkbox]{width:18px;height:18px}
.report-customization .form-control,.report-customization .form-select{flex-basis:100%}
#reportContent table{min-width:700px}
#reportContent{overflow-x:auto}
.territory-source{padding-top:16px;border-top:1px solid var(--line);font-size:11px}
@media(min-width:1600px){header,main,.workspace-nav>div{max-width:1560px}}
@media(min-width:1600px){.layout{grid-template-columns:minmax(0,1fr) 360px}}
@media(max-width:1100px){.maincol,aside{padding:18px}}
@media(max-width:1100px){.favorites-bar{grid-template-columns:1fr auto}}
@media(max-width:1100px){.favorites-bar label:nth-of-type(2){grid-column:1}}
@media(max-width:1100px){.history-controls{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.history-controls>button{justify-self:start}}
@media(max-width:900px){.section-list{max-height:280px}}
@media(max-width:900px){.mobile-territory{display:block;float:right;margin-bottom:10px;font-size:12px;min-height:36px}}
@media(max-width:900px){.layout aside{position:static}}
@media(max-width:900px){.aside-head{clear:both}}
@media(max-width:900px){.comparison-controls{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.workspace-nav>div{padding:0 16px}}
@media(max-width:900px){.nav-context{display:none}}
@media(max-width:900px){.workspace-nav a{padding:0 12px}}
@media(max-width:900px){.comparison-panel>summary{padding:20px}}
@media(max-width:900px){.comparison-body{padding:0 20px 20px}}
@media(max-width:600px){h1{font-size:25px}}
@media(max-width:600px){.head-actions{gap:8px}}
@media(max-width:600px){header p{font-size:13px}}
@media(max-width:600px){.workspace-nav>div{overflow-x:auto}}
@media(max-width:600px){.workspace-nav a{flex-shrink:0}}
@media(max-width:600px){.local-data-banner{gap:6px;align-items:start;flex-direction:column}}
@media(max-width:600px){.local-data-banner small{margin-left:0}}
@media(max-width:600px){.local-data-banner span{line-height:1.6}}
@media(max-width:600px){.form-select,.form-control,.filter-groups .form-select,.filter-groups .form-control{font-size:16px;min-height:44px}}
@media(max-width:600px){.filter-groups{gap:18px}}
@media(max-width:600px){.filters-heading p{font-size:12px}}
@media(max-width:600px){.cards{row-gap:18px;padding:18px 0}}
@media(max-width:600px){.grouping-bar>div{min-width:0}}
@media(max-width:600px){.section-head{gap:12px}}
@media(max-width:600px){.section-head>div:first-child{width:100%}}
@media(max-width:600px){.maincol,aside{padding:16px}}
@media(max-width:600px){.btn-group .btn{min-height:42px}}
@media(max-width:600px){.report-actions{align-items:start}}
@media(max-width:600px){.report-actions .muted{width:100%}}
@media(max-width:600px){.section-list{min-height:0;max-height:300px}}
@media(max-width:600px){.comparison-panel{margin-top:24px}}
@media(max-width:600px){.comparison-panel>summary{padding:16px;gap:10px}}
@media(max-width:600px){.comparison-panel summary strong{font-size:18px}}
@media(max-width:600px){.comparison-open{font-size:11px;white-space:normal}}
@media(max-width:600px){.comparison-panel summary small{font-size:12px}}
@media(max-width:600px){.comparison-body{padding:0 16px 16px}}
@media(max-width:600px){.favorites-disclosure>summary span,.history-tools>summary span{display:block;margin:3px 0}}
@media(max-width:600px){.favorites-bar{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:600px){.favorites-bar label{grid-column:1/-1}}
@media(max-width:600px){.comparison-controls{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.comparison-controls .btn{width:100%}}
@media(max-width:600px){.comparison-actions{flex-direction:column;align-items:stretch;gap:10px}}
@media(max-width:600px){.comparison-actions .btn{width:100%}}
@media(max-width:600px){.comparison-result-head{align-items:start}}
@media(max-width:600px){.candidate-profile{gap:16px;grid-template-columns:1fr 1fr}}
@media(max-width:600px){.candidate-profile strong{font-size:15px;overflow-wrap:anywhere}}
@media(max-width:600px){.candidate-profile small{font-size:11px}}
@media(max-width:600px){.comparison-refine{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}}
@media(max-width:600px){.comparison-refine label:first-child{width:100%;min-width:0}}
@media(max-width:600px){.comparison-refine>span{margin-left:0;padding:0}}
@media(max-width:600px){.analysis-tools .feature-body{padding:8px 12px 16px}}
@media(max-width:600px){.history-controls{display:flex;flex-direction:column;align-items:stretch}}
@media(max-width:600px){.history-controls label{width:100%;min-width:0}}
@media(max-width:600px){.history-controls>button{width:100%}}
@media(max-width:600px){.map-controls{flex-direction:column;align-items:stretch}}
@media(max-width:600px){.map-controls label{min-width:0}}
@media(max-width:600px){.map-controls>span{max-width:none}}
@media(max-width:600px){#compareMap{height:340px}}
@media(max-width:600px){.report-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:16px;margin:0}}
@media(max-width:600px){.report-controls{top:-16px;position:sticky;flex-direction:column;align-items:stretch;background:var(--surface)}}
@media(max-width:600px){.report-controls>div{display:grid}}
@media(max-width:600px){.report-dialog h1{font-size:21px}}
@media(max-width:600px){#reportContent dl{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media(prefers-reduced-motion:no-preference){.btn,.form-control,.form-select{transition:background-color .16s ease-out,border-color .16s ease-out,box-shadow .16s ease-out}}
@media print{.workspace-nav,.skip-link{display:none!important}}
@media print{#reportContent{overflow:visible}}
@media print{#reportContent table{min-width:0}}
@media print{.report-dialog{height:auto;max-height:none}}
@media print{.report-controls{display:none!important}}
[hidden]{display:none!important}
header{padding-block:18px;align-items:center}
header h1{font-size:22px;letter-spacing:-.04em}
header p{font-size:12px;margin-top:3px}
header .eyebrow{font-size:10px}
.workspace-nav a{font-size:14px;min-height:58px;padding-inline:22px}
.workspace-nav a[aria-current]{background:oklch(96% .018 250);font-weight:700}
.workspace-nav a[aria-current]:hover{background:oklch(94% .025 250)}
.page-intro{justify-content:space-between}
.page-intro h2{line-height:1.2}
.page-intro p{font-size:14px;max-width:65ch;color:var(--muted);margin:0}
.page-intro>a{font-size:13px;max-width:220px;text-decoration:none;font-weight:600;line-height:1.6}
.page-intro>a:hover{text-decoration:underline}
#workspaceTitle:focus{outline:none}
.territory-picker{background:oklch(94.5% .009 250);border:0;border-radius:10px;grid-template-columns:190px minmax(220px,360px) 1fr;align-items:end}
.territory-picker p{font-size:12px;padding-bottom:4px;max-width:55ch}
.territory-picker label{font-size:12px}
.territory-picker .form-select{font-size:13px}
.filters-panel{margin-bottom:20px}
.filters-heading p{display:none}
.filter-groups{display:flex;flex-direction:column}
.filter-groups .territory-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.filter-groups .territory-fields .field-local{grid-column:auto}
.territory-disclosure{border-block:1px solid var(--line)}
.territory-disclosure>summary span{font-size:11px;font-weight:500;color:var(--muted);margin-left:12px;background:oklch(93% .012 250);padding:4px 8px;border-radius:5px}
.territory-disclosure fieldset{padding:4px 0 18px}
.territory-disclosure legend{display:none}
.grouping-bar{border-top:1px solid var(--line);padding-top:20px;margin-top:8px;align-items:center}
.grouping-bar label{font-size:11px}
.grouping-bar .form-select{font-size:13px;min-height:38px}
.grouping-bar p{max-width:65ch;font-size:11px}
.maincol{border:0;border-radius:12px;padding:24px}
.maincol .section-head{border-bottom:1px solid var(--line)}
.section-head #resultTitle{font-weight:700}
#territoryExplorer{background:transparent;box-shadow:none;border:0;border-radius:0;padding:12px 0 12px 8px}
#territoryExplorer h2{font-size:18px}
#territoryExplorer .muted{font-size:12px}
.layout{grid-template-columns:minmax(0,1fr) 300px;gap:28px}
.layout aside .section-list{max-height:650px}
#comparisonPanel,#coverageBox{margin:0;border:0;box-shadow:none;background:transparent}
#comparisonPanel>summary,#coverageBox>summary{display:none}
.comparison-body{padding:0}
.comparison-body>.muted{border-radius:7px}
.comparison-controls{background:var(--surface);padding:20px;border-radius:10px 10px 0 0;margin-bottom:0}
.comparison-actions{margin-top:10px;padding-bottom:22px}
.comparison-mode{margin-bottom:16px}
.favorites-disclosure{margin-bottom:24px;border-top:0;padding-top:0}
.favorites-disclosure>summary{color:var(--blue)}
.comparison-result-head{margin-top:28px}
.comparison-refine{background:transparent}
.data-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line);margin-bottom:20px}
.data-actions h2{font-size:20px}
.data-actions p{max-width:60ch;color:var(--muted)}
.local-data-banner{padding:18px;border-radius:8px;gap:10px}
.local-data-banner span{font-size:12px}
.coverage-panel .feature-body{padding:0}
.workspace-screen{min-width:0}
@media(max-width:1100px){.page-intro h2{font-size:27px}}
@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 270px;gap:20px}}
@media(max-width:1100px){.data-actions{align-items:start;flex-direction:column}}
@media(max-width:900px){.layout{display:flex;flex-direction:column}}
@media(max-width:900px){.layout #territoryExplorer{order:0;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px}}
@media(max-width:900px){.territory-picker{grid-template-columns:1fr 2fr}}
@media(max-width:900px){.territory-picker p{grid-column:1/-1;margin:0}}
@media(max-width:900px){.page-intro{align-items:start}}
@media(max-width:900px){.page-intro>a{max-width:170px}}
@media(max-width:900px){.filter-groups .territory-fields{grid-template-columns:1fr 1fr}}
@media(max-width:600px){header{flex-direction:row;gap:10px}}
@media(max-width:600px){header h1{font-size:20px}}
@media(max-width:600px){.page-intro>a{display:block;max-width:none;margin-top:14px}}
@media(max-width:600px){.territory-picker{padding:14px;gap:10px}}
@media(max-width:600px){.territory-picker .form-select{padding-left:9px}}
@media(max-width:600px){.territory-picker p{font-size:11px}}
@media(max-width:600px){.filters-heading h2{font-size:16px}}
@media(max-width:600px){.filter-groups .contest-fields{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.contest-fields .field-partido{order:1}}
@media(max-width:600px){.filter-groups .territory-fields{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.filter-groups .territory-fields .field-zona{grid-row:2;grid-column:1}}
@media(max-width:600px){.filter-groups .territory-fields .field-secao{grid-row:2;grid-column:2}}
@media(max-width:600px){.filter-groups .territory-fields .field-local{grid-column:1/-1;grid-row:3}}
@media(max-width:600px){.territory-disclosure>summary{font-size:12px}}
@media(max-width:600px){.territory-disclosure>summary span{display:block;width:fit-content;margin:6px 0 0 15px}}
@media(max-width:600px){.cards{gap:18px 0;margin:20px 0}}
@media(max-width:600px){.grouping-bar{padding-top:16px}}
@media(max-width:600px){.grouping-bar p{margin-bottom:0}}
@media(max-width:600px){.maincol{padding:16px}}
@media(max-width:600px){.maincol .section-head{align-items:start}}
@media(max-width:600px){.report-actions .muted{display:none}}
@media(max-width:600px){.maincol .comparison-controls{padding:16px;gap:16px}}
@media(max-width:600px){.comparison-mode{max-width:100%}}
@media(max-width:600px){.local-data-banner{padding:14px}}
@media(max-width:600px){.data-actions{padding-top:24px}}
@media(max-width:600px){.data-actions .head-actions{flex-direction:column}}
@media(max-width:600px){.page-intro .eyebrow{font-size:9px}}
body:not([data-workspace=coveragePanel]) #syncPanel[data-status=finished]{display:none}
.comparison-body>.muted{background:transparent;padding:0;margin-bottom:18px;font-size:12px}
.comparison-body>.favorites-disclosure{margin:18px 0;padding:12px 0;border-block:1px solid var(--line)}
@media(max-width:600px){.page-intro{padding:12px 0 18px}}
@media(max-width:600px){.page-intro h2{margin-block:6px 8px}}
@media(max-width:600px){.page-intro p{line-height:1.5}}
@media(max-width:600px){.territory-picker p{display:none}}
@media(max-width:600px){.territory-picker{margin-bottom:18px}}
@media(max-width:600px){.comparison-controls{padding:14px}}
@media(max-width:600px){.comparison-body>.muted{margin-bottom:12px}}
@media(max-width:600px){.workspace-nav>div{display:grid;padding:0;gap:0;overflow:visible}}
@media(max-width:600px){.workspace-nav a{justify-content:center;text-align:center;white-space:normal}}
@media(max-width:600px){.workspace-nav .nav-context{display:none}}
#compareTitle{scroll-margin-top:80px}
#editComparison{margin-top:8px;font-size:12px;min-height:36px}
.comparison-result-head{scroll-margin-top:90px}
.workspace-nav svg{width:20px;height:20px;flex-shrink:0}
.workspace-nav a{gap:9px}
body[data-workspace=inicio] .page-intro{padding-bottom:20px}
.quick-layout{grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:40px;align-items:start}
.quick-search-panel{background:var(--surface);padding:30px;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 20px oklch(25% .02 250 / .035)}
.quick-search-panel h3{font-size:25px;letter-spacing:-.025em;font-weight:700;margin:12px 0}
.quick-search-panel>p{font-size:15px;color:var(--muted);max-width:56ch}
.quick-search-panel label{font-weight:650;margin-bottom:8px;display:block}
.quick-search-field{display:flex;gap:10px}
.quick-search-field .form-control{font-size:17px;min-height:54px;min-width:0}
.quick-search-field .btn{font-size:16px;min-width:100px}
#quickSearchHint{display:block;color:var(--muted);font-size:12px;margin-top:10px}
#quickStatus{line-height:1.6}
.quick-candidate{display:flex;align-items:center;gap:14px;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-align:left;padding:17px 4px;min-height:84px;color:var(--ink)}
.quick-candidate:hover{background:oklch(97% .016 250)}
.quick-identity{flex:1;min-width:0}
.quick-identity strong{display:block;font-size:16px;line-height:1.4}
.quick-identity>span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.quick-candidate-action{font-size:13px;font-weight:650;color:var(--blue);white-space:nowrap}
#quickMore{margin-top:18px;min-height:48px}
#quickResult{margin-top:26px;padding-top:24px;border-top:1px solid var(--line);scroll-margin-block-start:90px}
#quickResult:focus{outline:0}
.quick-result-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
#quickResult h3{font-size:24px;margin:20px 0 6px}
#quickResult>p{font-size:14px;color:var(--muted)}
.quick-loading{padding:24px 0;font-size:16px;color:var(--blue)}
.quick-unavailable{padding:18px;background:oklch(96% .035 80);border-radius:8px;line-height:1.7}
.home-guidance{box-shadow:none;background:transparent}
.home-guidance h3,.home-more h3{font-size:17px;font-weight:700;margin-bottom:20px}
.home-guidance ol{padding:0}
.home-guidance li{position:relative}
.home-guidance li:before{content:counter(guide);position:absolute;left:0;top:0;border:1px solid var(--line);border-radius:50%;width:26px;height:26px;place-items:center;font-size:12px;font-weight:650;background:var(--surface)}
.home-guidance li strong{font-size:14px;display:block;margin-bottom:6px}
.home-guidance li span{font-size:13px;color:var(--muted);line-height:1.7;display:block}
.home-guidance details{border-top:1px solid var(--line);padding-top:16px;font-size:13px}
.home-guidance summary{font-weight:600;cursor:pointer;min-height:44px}
.home-guidance details p{color:var(--muted);line-height:1.7}
@media(max-width:900px){.quick-layout{grid-template-columns:minmax(0,1fr);gap:22px}}
@media(max-width:900px){.home-guidance{display:none}}
@media(max-width:900px){.quick-search-panel{padding:24px}}
@media(max-width:900px){.workspace-nav a{padding-inline:14px}}
@media(max-width:900px){.workspace-nav svg{width:18px;height:18px}}
@media(max-width:600px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}
@media(max-width:600px){.workspace-nav{position:fixed;top:auto;bottom:0;left:0;right:0;border-top:1px solid var(--line);border-bottom:0;box-shadow:0 -3px 15px oklch(25% .02 250 / .04);padding-bottom:env(safe-area-inset-bottom);z-index:50}}
@media(max-width:600px){.workspace-nav>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.workspace-nav a{flex-direction:column;gap:5px;min-height:68px;font-size:11px;line-height:1.2;border:0;padding:10px 3px}}
@media(max-width:600px){.workspace-nav svg{width:22px;height:22px}}
@media(max-width:600px){.workspace-nav a[aria-current]{background:oklch(95% .025 250)}}
@media(max-width:600px){header{padding:16px 16px 10px;border-bottom:1px solid var(--line)}}
@media(max-width:600px){header p{display:none}}
@media(max-width:600px){.page-intro h2{max-width:22ch}}
@media(max-width:600px){.page-intro p{font-size:14px}}
@media(max-width:600px){.page-intro{padding-top:18px}}
@media(max-width:600px){.quick-search-panel{padding:20px 16px;border-radius:12px}}
@media(max-width:600px){.quick-search-panel h3{font-size:23px;line-height:1.3}}
@media(max-width:600px){.quick-search-panel>p{font-size:14px;line-height:1.6}}
@media(max-width:600px){.quick-search-field{gap:8px}}
@media(max-width:600px){.quick-search-field .btn{min-width:76px;font-size:15px}}
@media(max-width:600px){.quick-search-field .form-control{font-size:16px;padding-inline:10px}}
@media(max-width:600px){.quick-search-panel form{margin-top:22px}}
@media(max-width:600px){.quick-candidate{gap:10px;flex-wrap:wrap;padding-block:16px}}
@media(max-width:600px){.quick-identity strong{font-size:15px}}
@media(max-width:600px){.quick-identity>span{font-size:12px;line-height:1.5}}
@media(max-width:600px){#quickResult{scroll-margin-top:16px}}
@media(max-width:600px){.btn,.form-select,.form-control{min-height:46px}}
@media(max-width:600px){.territory-picker{grid-template-columns:1fr}}
@media(max-width:600px){.territory-picker .form-select{font-size:16px}}
@media(max-width:600px){.report-dialog{z-index:100}}
@media print{body{padding-bottom:0}}
@media(max-width:600px){.home-guidance{display:block;padding:0}}
@media(max-width:600px){.home-guidance h3,.home-guidance ol{display:none}}
@media(max-width:600px){.home-guidance details{border:0;padding-top:0}}
@media(max-width:600px){.home-guidance summary{font-size:14px;padding:12px 0}}
@media(max-width:600px){.quick-layout{gap:10px}}
.compare-step{margin:24px 0;padding:22px 0;border-bottom:1px solid var(--line)}
.compare-step-heading{display:flex;gap:12px}
.compare-step-heading>span{display:grid;place-items:center;border-radius:50%;flex-shrink:0;font-weight:700}
.compare-step h3{font-weight:700}
.compare-step-heading p{font-size:14px;color:var(--muted);margin:0}
.compare-step .comparison-controls{grid-template-columns:minmax(160px,1fr) minmax(0,2fr);padding:0;background:transparent;gap:20px}
.compare-step .comparison-mode{margin:0 0 20px;max-width:600px}
.compare-step label{font-weight:600}
.compare-step .form-control,.compare-step .form-select{min-height:48px;font-size:16px}
#compareCitySearchArea>label{display:grid;gap:8px;max-width:600px}
.assist-status{font-size:13px;color:var(--muted);line-height:1.6;margin:12px 0}
.selected-cities-heading{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.selected-cities-heading strong{font-size:14px}
.selected-cities-heading span{font-size:12px;color:var(--muted)}
.city-select-alternative{margin:18px 0;font-size:13px}
.city-select-alternative summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--blue)}
.city-select-controls{display:flex;align-items:end;gap:12px;margin:10px 0}
.city-select-controls label{display:grid;gap:8px;flex:1;min-width:0}
.city-select-controls .btn{min-height:48px}
#compareCityStep,#compareMapWrap{scroll-margin-top:80px}
#backQuickResult{margin-bottom:4px}
.comparison-actions .btn-primary{min-height:50px;min-width:180px;font-size:15px}
@media(max-width:600px){.compare-step{margin:14px 0;padding:16px 0}}
@media(max-width:600px){.compare-step h3{font-size:20px}}
@media(max-width:600px){.compare-step-heading p{font-size:13px}}
@media(max-width:600px){.compare-step .comparison-controls{grid-template-columns:1fr}}
@media(max-width:600px){.city-assist-option{align-items:start}}
@media(max-width:600px){.city-assist-option span{white-space:nowrap}}
@media(max-width:600px){#compareCityStep,#compareMapWrap{scroll-margin-top:16px}}
@media(max-width:600px){.comparison-actions{padding-top:6px}}
@media(max-width:600px){.comparison-actions .btn-primary{min-height:52px}}
@media(max-width:600px){.comparison-body>.muted{font-size:12px}}
header.brand-header{max-width:none;color:var(--surface);padding:20px max(28px,calc((100vw - 1444px)/2));border:0;display:flex;justify-content:space-between;align-items:center}
.brand-lockup{display:flex;align-items:center}
.brand-symbol{color:var(--brand-yellow);flex-shrink:0}
header.brand-header h1{display:flex;align-items:center;gap:7px;color:inherit;line-height:1.15;margin:0}
header.brand-header h1>span:first-child{font-weight:400}
.brand-edition{background:var(--brand-yellow);color:#26334f;letter-spacing:0;font-size:10px;margin-left:5px;border-radius:4px}
.brand-place{color:#dce6ff;font-weight:500}
.brand-status{color:var(--surface);border:1px solid #7897e1;font-size:11px;font-weight:500;padding:8px 12px}
.workspace-nav .nav{padding-block:7px;gap:6px}
.workspace-nav a.nav-link{border:0;border-radius:7px;min-height:44px;padding:10px 16px;font-size:13px}
.workspace-nav a.nav-link.active,.workspace-nav a.nav-link[aria-current]{color:var(--surface);background:var(--brand-primary)}
.workspace-nav a.nav-link:hover{background:var(--bs-primary-bg-subtle);color:var(--brand-primary)}
.workspace-nav a.nav-link.active:hover{background:#193e9b;color:var(--surface)}
.page-intro{padding:0 0 16px!important;align-items:center;gap:12px;flex-wrap:wrap}
.page-intro>div{margin-right:auto}
.page-intro h2{margin:0!important;max-width:none}
.page-intro .page-help{position:relative;margin-left:auto}
.page-help>summary{min-height:36px;display:block;list-style:none;cursor:pointer}
.page-help>summary::-webkit-details-marker{display:none}
.page-help[open]{flex-basis:100%;order:3}
.page-help p{margin-top:8px;font-size:13px;max-width:none;padding:12px 16px}
.page-intro #workspaceShortcut{margin:0;max-width:none;font-size:12px;min-height:36px}
.page-intro p:empty{display:none}
main{padding-top:22px}
.btn-primary{--bs-btn-hover-bg:#193e9b;--bs-btn-hover-border-color:#193e9b}
.btn-outline-success{--bs-btn-color:#166b48;--bs-btn-border-color:#61a98b;--bs-btn-hover-bg:#166b48;--bs-btn-hover-border-color:#166b48}
.badge.text-bg-success{background:#18764e!important}
.alert-info{--bs-alert-color:#174f69;--bs-alert-bg:#e8f4f8;--bs-alert-border-color:#b9dfe9}
.quick-layout{display:block;max-width:1000px;margin:auto}
.quick-search-panel.card{padding:0;overflow:visible;border-color:var(--bs-border-color)}
.quick-search-panel .card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0}
.quick-search-panel .card-header h3{line-height:1.3;color:inherit;margin:0}
.quick-search-panel .card-header .badge{font-size:10px}
.quick-search-panel form{margin:0}
.quick-search-panel label{font-size:14px}
.quick-search-field.input-group{gap:0;flex-wrap:nowrap}
.quick-search-field.input-group>.form-control{border-radius:7px 0 0 7px;min-height:50px;flex:1 1 auto;width:1%;font-size:16px}
.quick-search-field.input-group>.btn{border-radius:0 7px 7px 0;min-height:50px;min-width:90px;font-size:15px}
#quickStatus{font-size:12px;margin:14px 0 0}
#quickStatus:empty{display:none}
.quick-candidate.list-group-item{background:transparent;border-color:var(--line);border-radius:0;padding:15px 0}
.quick-candidate.list-group-item:hover{background:var(--bs-primary-bg-subtle)}
.quick-candidate-action{background:var(--bs-primary-bg-subtle);padding:6px 10px;border-radius:5px}
.quick-result-heading .badge{font-size:11px;letter-spacing:0;padding:7px 10px}
.quick-result-heading .btn{font-size:12px;min-height:38px}
.home-guidance{display:block;max-width:1000px;margin:4px auto 0;padding:0;border:0;position:static}
.home-guidance>summary{display:list-item;font-size:12px;min-height:40px;padding:10px 0;cursor:pointer;text-decoration:none;text-align:left}
.home-guidance .alert{padding:16px;font-size:13px;margin-bottom:0}
.home-guidance ol{display:block;list-style:decimal;padding-left:20px;counter-reset:none}
.home-guidance li{padding:0;margin:4px 0;font-size:13px;counter-increment:none}
.home-guidance li:before{display:none}
.home-guidance p{font-size:12px;line-height:1.6}
.territory-picker{padding:12px 16px;margin-bottom:18px}
.territory-picker:has(#territoryHint.visually-hidden){grid-template-columns:minmax(130px,1fr) minmax(220px,2fr)}
.filters-heading{margin-bottom:10px}
.compare-step.card{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:14px 0}
.compare-step-heading{align-items:center;margin-bottom:14px}
.compare-step h3{font-size:17px;margin:0}
.compare-step-heading>span{width:27px;height:27px;font-size:12px;background:var(--brand-primary);color:var(--surface)}
.compare-step .comparison-mode{margin-bottom:14px}
.compare-step label{font-size:13px}
.selected-cities-heading{margin-top:14px}
.group-help{font-size:12px;color:var(--muted)}
.group-help summary{cursor:pointer;min-height:36px;padding:8px 0}
.group-help p{margin:6px 0;font-size:12px}
.data-actions p{font-size:13px}
.data-actions{padding-block:18px}
@media(max-width:600px){header.brand-header h1{gap:5px}}
@media(max-width:600px){.brand-edition{font-size:9px;margin-left:3px}}
@media(max-width:600px){.brand-place{letter-spacing:.05em;max-width:260px}}
@media(max-width:600px){.brand-status{display:none}}
@media(max-width:600px){main{padding-top:18px}}
@media(max-width:600px){.page-intro>div{width:auto}}
@media(max-width:600px){.page-intro .page-help{margin-left:0}}
@media(max-width:600px){.page-intro #workspaceShortcut{width:auto}}
@media(max-width:600px){.quick-search-field.input-group>.btn{min-width:76px}}
@media(max-width:600px){.quick-candidate-action{flex-basis:auto;font-size:12px}}
@media(max-width:600px){.quick-result-heading{flex-direction:row;align-items:center}}
@media(max-width:600px){.quick-result-heading .btn{font-size:11px;max-width:140px;min-height:44px}}
@media(max-width:600px){#quickResult h3{font-size:22px;margin-top:16px}}
@media(max-width:600px){.workspace-nav .nav{padding:4px;gap:3px}}
@media(max-width:600px){.workspace-nav a.nav-link{border-radius:7px;padding:8px 2px;font-size:10px;min-height:60px}}
@media(max-width:600px){.workspace-nav a.nav-link.active svg{stroke-width:2.2}}
@media(max-width:600px){.territory-picker:has(#territoryHint.visually-hidden){grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.compare-step.card{padding:16px}}
@media(max-width:600px){.compare-step .form-control,.compare-step .form-select{font-size:16px}}
@media(max-width:600px){.compare-step-heading{margin-bottom:14px}}
@media(max-width:600px){.compare-step .comparison-controls{gap:12px}}
@media(max-width:600px){.assist-status{font-size:12px;margin:8px 0}}
@media(max-width:600px){.page-help .alert{font-size:12px}}
.page-intro{display:flex}
.page-intro .page-help{flex:0 0 auto}
.page-help[open]{flex:1 0 100%}
.page-help>summary{width:fit-content}
.home-guidance summary{color:var(--brand-primary)}
@media(max-width:600px){.page-intro{display:flex;flex-direction:row;align-items:center}}
@media(max-width:600px){.page-intro>div{flex:1;min-width:0}}
@media(max-width:600px){.page-intro .page-help:not([open]){margin-left:auto}}
@media(max-width:600px){.page-intro .page-help>summary{font-size:12px;min-height:34px;padding:6px 12px}}
@media(max-width:600px){.page-intro #workspaceShortcut{flex-basis:100%;text-align:left;padding-left:0;border:0}}
.local-summary{border-block:1px solid var(--line);margin:16px 0 20px}
.local-summary>summary,.result-options>summary{font-size:13px;font-weight:600;cursor:pointer;min-height:44px;padding:12px 0}
.local-summary .badge{margin-left:8px;font-size:10px;font-weight:500}
.local-summary .cards{margin:8px 0 20px}
.result-options{border-bottom:1px solid var(--line)}
.result-options .grouping-bar{border:0;margin:0;padding:8px 0 16px}
.result-options .grouping-bar>div{min-width:220px}
.maincol:focus{outline:none}
.maincol{scroll-margin-top:80px}
.maincol .section-head{padding-bottom:14px}
.maincol .section-head .eyebrow{display:none}
.section-head #resultTitle{font-size:21px}
.maincol .report-actions{gap:8px;flex-wrap:wrap;margin:0;padding:4px 0 16px}
.maincol .report-actions .muted{display:none}
.vote-extras{padding:12px 0;margin-top:4px;border-top:1px solid var(--line);gap:6px 12px;font-size:11px}
#territoryExplorer{scroll-margin-top:80px}
#returnToResults{min-height:40px;font-size:12px;padding:6px 0;margin-bottom:12px}
.comparison-result-head{border:1px solid var(--bs-primary-border-subtle)}
.comparison-result-head h2{font-size:22px}
.comparison-result-head p{font-size:13px;margin-bottom:10px}
@media(max-width:600px){.maincol,#territoryExplorer{scroll-margin-top:14px}}
@media(max-width:600px){.section-head #resultTitle{font-size:19px}}
@media(max-width:600px){.maincol .section-head .segmented{width:100%}}
@media(max-width:600px){.maincol .section-head .segmented .btn{flex:1}}
@media(max-width:600px){.maincol .report-actions{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:600px){.maincol .report-actions .btn{width:100%}}
@media(max-width:600px){.result-options .grouping-bar>div{min-width:0}}
@media(max-width:600px){.local-summary{margin-block:14px}}
@media(max-width:600px){.comparison-result-head .btn-group{width:100%}}
@media(max-width:600px){.comparison-result-head .btn-group .btn{flex:1}}
@media(max-width:600px){.result-subtitle{font-size:11px}}
.rival-picker{margin:16px 0}
.rival-picker>label{display:grid;gap:8px;font-size:13px;font-weight:600}
.rival-picker .form-control{min-height:46px}
.rival-selected{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:14px 0}
.rival-selected .btn{font-size:12px;min-height:44px}
.rival-primary{padding:10px 12px;white-space:normal;line-height:1.5;font-size:12px}
.rival-manual{margin:12px 0}
.rival-manual summary{font-size:12px;color:var(--blue);padding:10px 0;cursor:pointer}
.rival-manual label{display:grid;gap:8px;font-size:12px;margin:8px 0}
.rival-result-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 10px}
.rival-result-toolbar h3{font-size:18px;margin:0;scroll-margin-top:90px}
.rival-place{margin:16px 0;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.rival-place h4{padding:12px 16px;margin:0;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);font-size:14px;font-weight:650}
.rival-place .list-group-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;font-size:13px}
.rival-place .list-group-item>span:first-child{min-width:0}
.rival-place small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.rival-votes{text-align:right;flex-shrink:0}
.rival-votes strong{color:var(--brand-primary);font-size:16px}
.rival-result-toolbar .btn{min-height:40px;font-size:12px}
#rivalMore{margin:10px 0;min-height:44px}
#rivalReport{margin-top:16px}
@media(max-width:600px){.rival-result-toolbar h3{scroll-margin-top:16px}}
@media(max-width:600px){.rival-place .list-group-item{padding:12px;gap:10px;font-size:12px}}
@media(max-width:600px){.rival-votes strong{font-size:15px}}
@media(max-width:600px){.rival-place h4{padding:12px}}
@media(max-width:600px){.rival-selected .btn{white-space:normal;text-align:left}}
@media(max-width:600px){.rival-picker .form-control{font-size:16px}}
@media(max-width:600px){#rivalPanel .feature-body>p{font-size:12px}}
@media(max-width:600px){#compareRivals{width:100%;min-height:48px}}
.report-controls{align-items:center}
.report-controls h2{font-size:20px;color:var(--brand-primary)}
.report-preview-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}
.report-preview-toolbar .badge{font-size:11px;font-weight:500;padding:8px 10px;margin:0}
.report-preview-toolbar .btn{min-height:38px;font-size:12px}
.report-download-help{font-size:12px;margin:10px 0}
.report-download-help summary{cursor:pointer;color:var(--blue);min-height:36px;padding:8px 0}
.report-download-help p{line-height:1.8;color:var(--muted);padding:8px 0}
.report-feedback{font-size:13px;color:var(--bs-primary-text-emphasis);background:var(--bs-primary-bg-subtle);border-radius:6px;padding:12px;margin:12px 0}
.report-feedback:empty{display:none}
.report-option-actions{display:flex;gap:10px;flex-wrap:wrap}
.report-customization .report-option-actions .btn{min-height:44px;font-size:12px}
.reader-report-heading h3{font-size:22px;color:var(--ink);margin-bottom:6px}
.reader-report-heading p{font-size:13px;color:var(--muted)}
.reader-row-count{font-size:12px;color:var(--muted);margin:16px 0}
.reader-record{margin:14px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.reader-record h4{font-size:12px;font-weight:650;padding:10px 14px;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);margin:0}
.reader-record dl,.reader-report-context dl{margin:0}
.reader-record dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;padding:10px 14px;border-top:1px solid var(--line);font-size:13px}
.reader-record dt{font-size:12px;font-weight:500;color:var(--muted);overflow-wrap:anywhere}
.reader-record dd{font-weight:600;margin:0;overflow-wrap:anywhere}
.reader-report-context{margin:12px 0}
.reader-report-context summary{padding:10px 0;font-size:12px;color:var(--blue);cursor:pointer}
.reader-report-context p,.reader-report-context dl{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.reader-report-context dt{font-weight:600}
.reader-report-context dd{margin-bottom:10px}
.report-dialog[data-preview=reader] #reportContent{display:none}
.report-dialog[data-preview=document] #reportReader{display:none}
#reportMoreRows{min-height:44px;margin-bottom:18px}
@media(max-width:600px){.report-controls{padding-block:8px 12px}}
@media(max-width:600px){.report-controls h2{font-size:18px;margin:0}}
@media(max-width:600px){.report-controls>div{grid-template-columns:1fr 1fr auto}}
@media(max-width:600px){.report-controls #reportClose{grid-column:auto}}
@media(max-width:600px){.report-controls .btn{padding-inline:9px}}
@media(max-width:600px){.report-preview-toolbar{margin:14px 0}}
@media(max-width:600px){.report-preview-toolbar .btn{font-size:11px;min-height:40px}}
@media(max-width:600px){.report-preview-toolbar .badge{font-size:10px;padding:7px}}
@media(max-width:600px){.reader-report-heading h3{font-size:20px}}
@media(max-width:600px){.reader-record dl>div{gap:10px;padding:10px 12px}}
@media(max-width:600px){.report-option-actions .btn{flex:1}}
@media(max-width:600px){.report-dialog #reportContent h1{font-size:22px}}
@media print{.report-preview-toolbar,.report-download-help,.report-feedback,#reportReader,#reportMoreRows{display:none!important}}
@media print{#reportContent{display:block!important}}
@media print{.report-dialog[data-preview=reader] #reportContent{display:block!important}}
#localWorkspace[data-result-state="loading"] :is(#ranking,#tableView,#selectionBar,#resultsContext), #localWorkspace[data-result-state="error"] :is(#ranking,#tableView,#selectionBar,#resultsContext){display:none!important}
#localWorkspace:not([data-result-state="ready"]) .section-list{visibility:hidden}
#dashboardLoading{padding:28px 16px;border-radius:8px;font-size:14px}
#dashboardError{margin-top:16px}
#dashboardError p{margin:8px 0 16px}
.home-discover{max-width:1000px;margin:26px auto 0}
.home-discover h3{font-size:17px;font-weight:700;margin:0 0 12px}
.home-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:20px}
.home-feature{display:flex;align-items:center;gap:18px;text-align:left;padding:24px;border:1px solid var(--bs-primary-border-subtle);border-radius:10px;min-width:0}
.home-feature svg{width:38px;height:38px;flex-shrink:0;fill:none;stroke:var(--brand-primary);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.home-feature strong{display:block;line-height:1.3}
.home-feature small{display:block;margin-top:8px;font-size:13px;line-height:1.5}
.home-feature>span:last-child,.home-tool-list>*>span:last-child{margin-left:auto;color:var(--brand-primary);font-size:22px}
.home-feature:focus-visible{outline:3px solid var(--brand-primary);outline-offset:3px}
.home-tool-list{border-radius:10px}
.home-tool-list>*{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:var(--surface);text-align:left}
.home-tool-list strong{display:block;font-size:14px}
.home-tool-list small{display:block;font-size:12px;margin-top:3px;color:var(--muted)}
.quick-intent{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;font-size:13px;margin-bottom:18px}
.quick-intent[hidden]{display:none}
.quick-intent .btn{flex-shrink:0}
@media(max-width:600px){.home-discover{margin-top:20px}}
@media(max-width:600px){.home-tools{grid-template-columns:minmax(0,1fr);gap:12px}}
@media(max-width:600px){.home-feature{padding:18px;gap:14px}}
@media(max-width:600px){.home-feature small{font-size:12px;margin-top:4px}}
@media(max-width:600px){.home-feature svg{width:30px;height:30px}}
@media(max-width:600px){.home-tool-list>*{padding:13px 16px}}
@media(max-width:600px){.home-discover h3{font-size:16px}}
@media(max-width:600px){.quick-intent{align-items:flex-start}}
#quickMatches[hidden],#compareCandidateEditor[hidden],#selectedCompareCandidate[hidden]{display:none!important}
.quick-back-matches{margin-top:18px;font-size:13px;min-height:44px}
.selected-compare-candidate{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:4px 0}
.selected-compare-candidate>div{min-width:0}
.selected-compare-candidate strong{display:block;font-size:19px;line-height:1.35;margin:10px 0 4px;overflow-wrap:anywhere}
.selected-compare-candidate small{display:block;color:var(--muted);font-size:13px}
.selected-compare-candidate .btn{flex-shrink:0;min-height:44px}
@media(max-width:600px){.selected-compare-candidate{align-items:flex-start}}
@media(max-width:600px){.selected-compare-candidate .btn{width:100%}}
@media(max-width:600px){.selected-compare-candidate strong{font-size:18px}}
.comparison-mode[hidden]{display:none!important}
.comparison-coverage{min-width:0;margin-bottom:18px}
.comparison-coverage legend{font-size:14px;font-weight:650;margin-bottom:10px}
.coverage-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.coverage-choices label{display:flex;align-items:flex-start;gap:10px;margin:0;padding:14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--surface)}
.coverage-choices label:has(:checked){border-color:var(--brand-primary);background:var(--bs-primary-bg-subtle)}
.coverage-choices label:has(:focus-visible){outline:3px solid var(--brand-primary);outline-offset:2px}
.coverage-choices input{flex-shrink:0;width:18px;height:18px;margin:2px 0 0}
.coverage-choices strong{display:block;font-size:14px}
.coverage-choices small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:4px;line-height:1.45}
.comparison-scope-label{font-size:12px;color:var(--brand-primary);font-weight:600;margin:0 0 12px}
.comparison-scope-label:empty{display:none}
@media(max-width:600px){.coverage-choices{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.coverage-choices label{padding:14px}}
.municipality-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 24px}
.municipality-pagination[hidden]{display:none}
.municipality-pagination>span{font-size:12px;color:var(--muted);max-width:58ch}
.municipality-pagination .btn{flex-shrink:0;min-height:44px}
@media(max-width:600px){.municipality-pagination{flex-direction:column;align-items:stretch}}
@media(max-width:600px){.municipality-pagination .btn{width:100%}}
.comparison-insights,.map-options{border-block:1px solid var(--line);margin:12px 0 18px}
.comparison-insights>summary,.map-options>summary{font-size:13px;font-weight:600;min-height:44px;padding:12px 0;cursor:pointer;color:var(--brand-primary)}
.comparison-insights .candidate-profile{border:0;margin:0;padding:8px 0 18px}
.map-options .map-controls{padding-bottom:14px}
.comparison-filter-summary{padding:12px 14px;background:var(--bs-primary-bg-subtle);border-radius:8px;color:var(--bs-primary-text-emphasis);font-size:13px;line-height:1.6;margin:0 0 16px}
.comparison-filter-summary[hidden]{display:none}
.candidate-portrait{position:relative;display:inline-grid;place-items:center;isolation:isolate;overflow:hidden;flex-shrink:0;width:52px;height:64px;border-radius:9px;background:oklch(93% .025 265);color:var(--brand-primary);border:1px solid var(--bs-primary-border-subtle);font-size:18px;font-weight:750}
.candidate-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.candidate-portrait-large{width:94px;height:116px;border-radius:12px;border:2px solid var(--brand-primary);box-shadow:4px 4px 0 var(--brand-yellow,#f3cb54)}
.quick-person{display:flex;align-items:center}
.quick-person>div{min-width:0}
.quick-person h3{margin:8px 0!important}
.quick-person p{font-size:13px;color:var(--muted);margin:0}
.candidate-ballot{font-weight:750;padding:4px 9px}
.quick-candidate .candidate-portrait{margin-right:2px}
.quick-candidate-action{margin-left:auto}
.selected-compare-candidate{flex-wrap:wrap}
.selected-candidate-copy{flex:1;min-width:150px}
.selected-compare-candidate .candidate-portrait-large{width:68px;height:84px}
.comparison-result-head{align-items:center;flex-wrap:wrap;gap:20px;background:var(--surface)}
.comparison-result-identity{flex:1;min-width:180px}
.comparison-result-head>.btn-group{flex-shrink:0}
#compareCandidateMatches .candidate-portrait{grid-row:1/3}
#compareCandidateMatches strong{grid-column:2}
.recent-candidates{max-width:1000px;margin:24px auto}
.recent-candidates[hidden]{display:none}
.recent-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.recent-heading h3{font-size:16px;margin:0}
.recent-heading .btn{font-size:12px;min-height:44px}
#recentCandidateList{display:flex;gap:10px;overflow-x:auto;padding:6px 3px 10px;scroll-snap-type:x proximity}
.recent-candidate{display:flex;gap:12px;align-items:center;text-align:left;flex:0 0 240px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;scroll-snap-align:start}
.recent-candidate:hover{border-color:var(--brand-primary)}
.recent-candidate:focus-visible{outline:2px solid var(--brand-primary);outline-offset:1px}
.recent-candidate strong{display:block;font-size:13px}
.recent-candidate small{display:block;margin-top:6px;font-size:12px;color:var(--muted)}
@media(max-width:600px){.quick-person{align-items:flex-start}}
@media(max-width:600px){.candidate-portrait-large{width:76px;height:96px}}
@media(max-width:600px){.quick-person p{font-size:12px}}
@media(max-width:600px){.selected-compare-candidate{flex-direction:row;gap:16px}}
@media(max-width:600px){.selected-compare-candidate .btn{flex-basis:100%}}
@media(max-width:600px){.comparison-result-head{flex-direction:row;gap:16px}}
@media(max-width:600px){.comparison-result-identity{min-width:140px}}
@media(max-width:600px){.comparison-result-head>.btn-group{width:100%}}
@media(max-width:600px){.quick-candidate-action{margin-left:66px}}
@media(max-width:600px){.recent-candidate{flex-basis:230px}}
.rival-person{display:flex;align-items:center;gap:12px;min-width:0}
.rival-person>span:last-child{min-width:0;overflow-wrap:anywhere}
.rival-person .candidate-portrait{width:40px;height:50px;font-size:13px}
.home-favorites{max-width:1000px;margin:26px auto}
.home-favorites[hidden]{display:none}
.home-favorites h3{font-size:17px;font-weight:700;margin:0 0 6px}
.home-favorites>p{font-size:12px;margin-bottom:12px}
.favorite-shortcut{justify-content:space-between;background:var(--surface)}
.favorite-shortcut>span:first-child{min-width:0}
.favorite-shortcut strong{display:block;font-size:14px;overflow-wrap:anywhere}
.favorite-shortcut small{display:block;font-size:12px;color:var(--muted);margin-top:5px}
.favorite-shortcut>span:last-child{color:var(--brand-primary);white-space:nowrap;font-size:13px;font-weight:600}
.favorite-shortcut:disabled{opacity:.6}
.map-reading-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px}
.map-reading-bar>span{font-size:13px;color:var(--muted)}
.map-reading-bar .btn{min-height:44px;font-size:13px}
#mapUnavailable[hidden],#mapMissingDetails[hidden],#usePointMap[hidden]{display:none}
#mapUnavailable{font-size:13px}
#mapMissingDetails{margin-top:10px}
#mapMissingDetails summary{cursor:pointer;min-height:40px;padding:8px 0}
#mapMissingNames{margin:0;max-height:160px;overflow:auto}
#usePointMap{margin-top:12px}
#compareList{scroll-margin-top:80px}
@media(max-width:600px){.map-reading-bar{align-items:stretch;flex-direction:column}}
@media(max-width:600px){#compareList{scroll-margin-top:16px}}
.report-answer{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;margin:18px 0;border:1px solid var(--bs-primary-border-subtle);border-radius:8px;background:var(--bs-primary-bg-subtle)}
.report-answer>span{font-size:12px;color:var(--muted)}
.report-answer>strong{font-size:26px;line-height:1.2;color:var(--brand-primary);font-variant-numeric:tabular-nums}
.report-answer>small{font-size:12px;color:var(--muted)}
@media print{.report-answer{break-inside:avoid;background:transparent;border-color:#99a6ba}}
@media print{.report-answer>strong{font-size:20px}}
#comparisonSetup[hidden]{display:none}
.comparison-edit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 18px}
.comparison-edit-heading>span{font-size:13px;font-weight:650;color:var(--muted)}
.comparison-edit-heading .btn{min-height:44px;font-size:12px}
.comparison-edit-actions{display:flex;gap:8px;flex-wrap:wrap}
.comparison-edit-actions .btn{min-height:44px;font-size:12px}
#compareCityStep{scroll-margin-top:80px}
@media(max-width:600px){.comparison-edit-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.comparison-edit-actions .btn{flex:1 1 auto}}
@media(max-width:600px){#compareCityStep{scroll-margin-top:16px}}
body{background:var(--page-bg);color:var(--ink)}
main{padding-bottom:56px}
.page-intro{border-bottom:1px solid var(--line);margin-bottom:18px}
.page-intro #workspaceShortcut,.page-help>summary{border-color:var(--bs-primary-border-subtle);background:var(--surface-raised)}
.page-intro #workspaceShortcut:hover,.page-help>summary:hover{background:var(--bs-primary-bg-subtle)}
.quick-search-field .form-control:focus{z-index:3}
.quick-search-field .btn{font-weight:700}
.quick-candidate{transition:background-color .16s ease-out,border-color .16s ease-out}
.quick-candidate:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
#quickStatus:not(:empty){padding:10px 12px;border-radius:7px;background:var(--surface-soft);color:var(--bs-primary-text-emphasis)}
#quickMatches:not(:empty){margin-top:10px;border-top:1px solid var(--line)}
.home-discover{padding-top:22px;border-top:1px solid var(--line)}
.home-tool-list{box-shadow:0 2px 8px oklch(26% .035 265 / .03)}
.home-tool-list>*:focus-visible,.home-feature:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.filters-panel{padding-bottom:18px}
.territory-disclosure>summary:hover,.result-options>summary:hover,.local-summary>summary:hover{color:var(--brand-primary)}
.maincol{box-shadow:0 6px 22px oklch(26% .035 265 / .055)}
#dashboardLoading{border:1px solid var(--bs-primary-border-subtle);background:var(--surface-soft);color:var(--bs-primary-text-emphasis)}
#dashboardLoading:before{content:' ';display:inline-block;width:8px;height:8px;margin-right:9px;border-radius:50%;background:var(--brand-primary);vertical-align:1px}
#dashboardError{border-color:oklch(82% .08 80);background:oklch(97% .025 80)}
.territory-selection,.selection-bar{border:1px solid var(--bs-primary-border-subtle)}
.comparison-panel{border-top:1px solid var(--line);padding-top:2px}
.comparison-panel>summary{border-radius:10px}
.comparison-panel[open]>summary{background:var(--surface-soft);border-bottom:1px solid var(--line)}
.compare-step.card{box-shadow:0 2px 8px oklch(26% .035 265 / .035)}
.coverage-choices label:hover{border-color:var(--bs-primary-border-subtle);background:var(--surface-soft)}
.data-actions{background:var(--surface-raised);border:1px solid var(--line);border-radius:10px;padding:20px 22px}
.local-data-banner{border:1px solid oklch(86% .035 155);background:oklch(97% .016 155)}
.report-actions .btn,.comparison-actions .btn{font-weight:650}
@media(max-width:600px){main{padding-bottom:28px}}
@media(max-width:600px){.page-intro{margin-bottom:14px}}
@media(max-width:600px){.home-discover{padding-top:18px}}
@media(max-width:600px){.filters-panel{padding-bottom:14px}}
@media(max-width:600px){.data-actions{padding:16px}}
@media(prefers-reduced-motion:reduce){.quick-candidate{transition:none}}
.favorite-shortcut{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px}
.favorite-copy{min-width:0}
.favorite-portrait{width:44px;height:56px;border-radius:7px;font-size:14px}
.favorite-portrait img{border-radius:5px}
.favorite-shortcut:hover{background:var(--bs-primary-bg-subtle)}
@media(max-width:600px){.favorite-shortcut{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:10px 12px}}
@media(max-width:600px){.favorite-portrait{width:40px;height:52px}}
.territory-disclosure{border:0!important;padding:0!important;margin-top:8px}
.territory-disclosure>summary{list-style:none}
.territory-disclosure>summary::-webkit-details-marker{display:none}
.territory-disclosure>summary:after{content:'+';display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:1px solid var(--bs-primary-border-subtle);border-radius:50%;color:var(--brand-primary);font-size:17px;line-height:1}
.territory-disclosure[open]>summary{border-color:var(--brand-primary);background:var(--surface-raised)}
.territory-disclosure[open]>summary:after{content:'−';background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}
.territory-disclosure>summary>#territoryFilterCount{display:inline-flex!important;align-items:center;min-height:30px;margin:0 0 0 auto!important;padding:5px 9px!important;border:1px solid var(--bs-primary-border-subtle)!important;border-radius:999px!important;background:var(--surface-raised)!important;color:var(--brand-primary)!important;font-weight:650;white-space:nowrap}
.territory-disclosure[open]>summary>#territoryFilterCount{background:var(--bs-primary-bg-subtle)!important}
.territory-disclosure>fieldset{padding-top:14px!important}
@media(max-width:600px){.territory-disclosure>summary{align-items:flex-start;min-height:64px}}
@media(max-width:600px){.territory-disclosure>summary>#territoryFilterCount{max-width:46%;white-space:normal;text-align:right;line-height:1.25}}
@media(max-width:600px){.territory-disclosure>summary:after{align-self:center;flex-basis:22px;width:22px;height:22px}}
.territory-disclosure>summary:before{content:'Filtrar por local\A Distrito, escola, zona ou seção';display:block;white-space:pre;color:var(--ink);font-size:14px;font-weight:700;line-height:1.35}
.territory-disclosure>summary>#territoryFilterCount{font-size:11px!important}
.municipality-empty{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:18px 20px;border-color:var(--bs-primary-border-subtle);background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.municipality-empty[hidden]{display:none!important}
.municipality-empty strong{display:block;font-size:15px}
.municipality-empty p{margin:5px 0 0;color:var(--muted);font-size:13px}
.municipality-empty-actions{display:flex;gap:8px;flex-shrink:0}
.municipality-empty-actions .btn{white-space:nowrap}
.local-data-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:12px 16px}
.local-data-notice[hidden]{display:none!important}
.local-data-notice strong{display:block;font-size:13px}
.local-data-notice p{margin:2px 0 0;color:var(--muted);font-size:12px}
.local-data-notice .btn{flex-shrink:0;min-height:38px;font-size:12px}
body:not([data-workspace="inicio"]) .local-data-notice{display:none!important}
@media(max-width:700px){.municipality-empty{align-items:stretch;flex-direction:column;gap:14px;padding:16px}}
@media(max-width:700px){.municipality-empty-actions{flex-direction:column}}
@media(max-width:700px){.municipality-empty-actions .btn{width:100%}}
@media(max-width:600px){.local-data-notice{align-items:stretch;flex-direction:column;gap:10px;padding:12px}}
@media(max-width:600px){.local-data-notice .btn{width:100%}}
.filters-panel{background:var(--surface-raised);border:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px oklch(27% .04 250/.05);padding:0;margin:0 0 22px}
.filters-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:18px 20px 0;border:0}
.filters-heading h2{margin:0;font-size:16px;font-weight:700;letter-spacing:.01em;line-height:1.2}
.filters-heading .text-button{font-size:13px;color:var(--muted);text-decoration:none;min-height:0;padding:6px 8px}
.filters-heading .text-button:hover{color:var(--bs-primary)}
.filter-groups{padding:16px 20px 18px;gap:0}
.filter-groups legend{float:none;width:auto;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.2;margin:0 0 10px;padding:0}
.contest-fields .field-partido{order:0}
.filter-groups .contest-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.contest-fields .search-field{order:2;grid-column:1/-1}
.filter-groups .contest-fields .search span{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--muted);pointer-events:none}
.filter-groups .contest-fields .search .form-control{padding-left:34px;min-height:46px;font-size:14px}
.filter-groups fieldset + details.territory-disclosure{border-top:1px solid var(--line)!important;border-right:0!important;border-bottom:0!important;border-left:0!important;margin-top:16px;padding-top:18px!important}
.territory-disclosure>summary{display:flex;align-items:center;gap:10px;justify-content:flex-start;min-height:0;margin:0;padding:0!important;border:0!important;background:transparent!important;border-radius:0;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.2;color:var(--muted);cursor:pointer}
.territory-disclosure>summary::before{content:none}
.territory-disclosure>summary:hover{color:var(--bs-primary)}
.territory-disclosure #territoryFilterCount{margin-left:auto;min-height:26px;padding:3px 10px;font-size:11px;line-height:1.5}
.territory-disclosure>summary::after{content:'';flex:0 0 8px;width:8px;height:8px;margin-left:8px;background:transparent;border:solid currentColor;border-width:0 1.5px 1.5px 0;padding:0;transform:rotate(45deg);transition:transform .16s ease-out}
.territory-disclosure[open]>summary::after{transform:rotate(135deg);background:transparent;border-color:currentColor}
#activeFilters{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:600px){.filters-panel{padding:0;border-radius:12px}}
@media(max-width:600px){.filters-heading{padding:14px 16px 0}}
@media(max-width:600px){.filter-groups{padding:14px 16px 14px}}
@media(max-width:600px){.filter-groups .contest-fields{gap:12px}}
@media(max-width:600px){.contest-fields .search-field{grid-column:1/-1;order:2}}
@media(max-width:600px){.filter-groups .contest-fields .search .form-control{min-height:46px;font-size:16px}}
@media(max-width:600px){.filter-groups .territory-fields{gap:12px}}
@media(max-width:600px){.territory-disclosure>summary{padding:0!important}}
@media(max-width:600px){.filter-groups fieldset + details.territory-disclosure{margin-top:14px;padding-top:16px!important}}
.page-intro #shareApp{white-space:nowrap}
@media(max-width:600px){.page-intro #shareApp{display:block;width:max-content;max-width:none;margin-top:14px}}
.filters-panel [hidden]{display:none!important}
.contest-fields .field-partido{grid-column:1/-1}
.group-mode-wrap{min-width:0!important;flex:1}
.cargo-bar{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.group-votes{display:inline-block;margin:0 4px;padding:2px 8px;border-radius:6px;background:oklch(96% .02 250);color:var(--blue);border:1px solid var(--bs-primary-border-subtle);font-size:11px;font-weight:700;vertical-align:middle}
#ranking{scroll-margin-top:84px}
.filter-groups .contest-fields .search{position:relative}
.filter-groups .contest-fields .search .candidate-assist{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px oklch(25% .04 250/.18);max-height:300px;overflow:auto;padding:4px}
.filter-groups .contest-fields .search .candidate-assist[hidden]{display:none}
.candidate-assist-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);padding:9px 10px;border-radius:7px}
.candidate-assist-item:hover{background:oklch(95% .018 250)}
.candidate-assist-item strong{display:block;font-size:13px;font-weight:650;line-height:1.35}
.candidate-assist-item small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.candidate-assist-item b{color:var(--blue);font-variant-numeric:tabular-nums;flex-shrink:0}
.candidate-assist-item:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}
@media(max-width:600px){.cargo-bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}}
@media(max-width:600px){.cargo-bar::-webkit-scrollbar{display:none}}
header.brand-header{position:relative;isolation:isolate;overflow:hidden;min-height:108px;box-shadow:0 4px 0 var(--brand-yellow);background:var(--brand-primary)}
header.brand-header:after{content:'';position:absolute;z-index:-1;right:15%;top:-80px;width:250px;height:250px;border:40px solid oklch(70% .10 265 / .14);border-radius:48px;transform:rotate(30deg);pointer-events:none}
.brand-symbol{width:54px;height:54px}
.brand-lockup{gap:18px}
header.brand-header h1{font-size:30px;letter-spacing:-.045em}
.brand-place{font-size:11px;letter-spacing:.05em;margin-top:9px}
.brand-status{background:transparent;border-color:oklch(78% .05 265 / .6)}
.workspace-nav a.nav-link.active{background:var(--brand-primary)!important;color:var(--surface)!important}
.workspace-nav a.nav-link.active svg{color:var(--brand-yellow)}
.page-intro{padding-top:4px!important;padding-bottom:22px!important}
.page-intro h2{font-size:26px;font-weight:750;letter-spacing:-.035em}
.quick-search-panel.card{border-radius:16px;box-shadow:0 6px 20px oklch(26% .035 265 / .05)!important}
.quick-search-panel .card-header{background:var(--brand-primary)!important;padding:20px 24px;border-radius:15px 15px 0 0}
.quick-search-panel .card-header h3{font-size:22px;font-weight:750;letter-spacing:-.035em}
.quick-search-panel .card-header .badge{background:var(--brand-yellow)!important;color:var(--ink)!important;font-weight:700}
.quick-search-panel .card-body{padding:24px}
.quick-person{gap:24px;margin:26px 0}
.quick-person .candidate-portrait-large{width:108px;height:132px}
#quickResult .quick-person h3{font-size:28px;letter-spacing:-.035em;line-height:1.12}
.candidate-ballot{background:var(--brand-yellow);color:var(--ink);border-radius:4px;font-size:15px;letter-spacing:.05em}
.quick-result-heading .badge{border-radius:5px}
.home-feature{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}
.home-feature strong{font-size:22px;letter-spacing:-.025em}
.home-feature small{color:oklch(92% .03 265)}
.home-feature svg,.home-feature>span:last-child{color:var(--brand-yellow);stroke:var(--brand-yellow)}
.home-feature:hover{background:oklch(37% .16 265);color:var(--surface)}
.comparison-result-head{border-radius:14px;border-color:var(--bs-primary-border-subtle);padding:24px}
.comparison-result-head h2{font-weight:750;letter-spacing:-.035em}
.comparison-result-head #compareTotal{font-size:15px;line-height:1.55;color:var(--ink)}
.comparison-result-head .btn-group .btn.active{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--surface)}
.btn-primary{--bs-btn-bg:var(--brand-primary);--bs-btn-border-color:var(--brand-primary)}
@media(max-width:600px){header.brand-header{min-height:92px;padding:16px;box-shadow:0 3px 0 var(--brand-yellow)}}
@media(max-width:600px){header.brand-header:after{right:-45px;top:-110px;width:230px;height:230px}}
@media(max-width:600px){.brand-symbol{width:43px;height:43px}}
@media(max-width:600px){.brand-lockup{gap:12px}}
@media(max-width:600px){header.brand-header h1{font-size:25px}}
@media(max-width:600px){.brand-place{font-size:9px;margin-top:6px}}
@media(max-width:600px){.page-intro h2{font-size:23px}}
@media(max-width:600px){.page-intro{padding-bottom:18px!important}}
@media(max-width:600px){.quick-search-panel .card-header{padding:17px 18px}}
@media(max-width:600px){.quick-search-panel .card-header h3{font-size:20px}}
@media(max-width:600px){.quick-search-panel .card-body{padding:18px}}
@media(max-width:600px){.quick-person{gap:16px}}
@media(max-width:600px){.quick-person .candidate-portrait-large{width:82px;height:104px}}
@media(max-width:600px){#quickResult .quick-person h3{font-size:23px}}
@media(max-width:600px){.candidate-ballot{font-size:13px}}
@media(max-width:600px){.home-feature strong{font-size:20px}}
@media(max-width:600px){.comparison-result-head{padding:18px}}
@media(max-width:600px){.comparison-result-head h2{font-size:20px}}
@media(max-width:600px){.comparison-result-head #compareTotal{font-size:13px}}
@media(max-width:600px){.workspace-nav a.nav-link.active{background:var(--brand-primary)!important;color:var(--surface)!important}}
html{-webkit-text-size-adjust:100%}
body{font-size:15px;line-height:1.5;-webkit-tap-highlight-color:transparent}
body main{padding-left:var(--ui-pad);padding-right:var(--ui-pad);padding-bottom:calc(96px + env(safe-area-inset-bottom))}
@media(min-width:601px){body main{padding-left:28px;padding-right:28px;padding-bottom:40px}}
body .card{border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
body :is(section,details,div)[tabindex="-1"]:focus,body h2[tabindex="-1"]:focus,body h3[tabindex="-1"]:focus{outline:0}
body .btn{min-height:44px;border-radius:var(--ui-radius-sm);font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}
body .btn-sm{min-height:44px;font-size:13px;padding:6px 14px}
body .btn-link{min-height:44px}
body .form-control,body .form-select{min-height:48px;font-size:16px;border-radius:var(--ui-radius-sm)}
body .form-label,body label{font-weight:600}
body .badge{font-weight:650}
@media(max-width:600px){body header.brand-header{min-height:64px;padding:12px var(--ui-pad)}}
@media(max-width:600px){body header.brand-header h1{font-size:21px}}
@media(max-width:600px){body header.brand-header .brand-symbol{width:36px;height:36px}}
@media(max-width:600px){body header.brand-header .brand-place{font-size:10px;margin-top:2px}}
@media(max-width:600px){body header.brand-header .brand-status{display:none}}
body .page-intro{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 var(--ui-gap);padding:16px 0 14px!important;border-bottom:1px solid var(--line)}
body .page-intro>div:first-child{flex:1 1 calc(100% - 112px);min-width:0;margin:0}
body .page-intro h2{font-size:24px;line-height:1.2;font-weight:750;letter-spacing:-.03em;margin:0!important;max-width:none}
body .page-intro .page-help{flex:0 0 auto;margin:0}
body .page-intro .page-help>summary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;font-size:13px;border:1px solid var(--bs-primary-border-subtle);color:var(--brand-primary);background:var(--bs-body-bg);border-radius:var(--ui-radius-sm);list-style:none;cursor:pointer}
body .page-intro .page-help>summary::-webkit-details-marker{display:none}
body .page-intro .page-help[open]{flex:1 0 100%;order:5}
body .page-intro .page-help[open]>summary{background:var(--bs-primary-bg-subtle)}
body .page-intro .page-help .alert{font-size:14px;line-height:1.55;border-radius:var(--ui-radius-sm)}
body .page-intro>.btn,body .page-intro>#workspaceShortcut{flex:1 1 calc(50% - 6px);max-width:none;width:auto;margin:0;padding:0 14px;font-size:14px;text-align:center;white-space:nowrap;border:1px solid var(--bs-primary-border-subtle);background:var(--bs-body-bg);color:var(--brand-primary)}
body .page-intro>.btn:hover,body .page-intro>#workspaceShortcut:hover,body .page-intro>.btn:active{background:var(--bs-primary-bg-subtle)}
body .page-intro>#workspaceShortcut{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:var(--ui-radius-sm);font-weight:600;text-decoration:none}
body .page-intro #shareApp{display:inline-flex;width:auto;max-width:none;margin:0}
@media(min-width:601px){body .page-intro{flex-wrap:nowrap;padding-top:22px!important}}
@media(min-width:601px){body .page-intro>div:first-child{flex:1 1 0}}
@media(min-width:601px){body .page-intro h2{font-size:28px}}
@media(min-width:601px){body .page-intro>.btn,body .page-intro>#workspaceShortcut{flex:0 0 auto}}
@media(min-width:601px){body .page-intro .page-help[open]{flex:0 0 auto;order:0}}
@media(min-width:601px){body .page-intro .page-help[open] .alert{position:absolute;right:28px;z-index:30;max-width:420px;box-shadow:var(--ui-shadow)}}
body .territory-picker{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:12px;padding:var(--ui-pad);margin:0 0 var(--ui-gap);background:var(--bs-body-bg);border:1px solid var(--line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
body .territory-picker label{font-size:13px;margin:0 0 6px;color:var(--muted)}
body .territory-picker .form-select,body .territory-picker .form-control{font-size:16px}
@media(max-width:359px){body .territory-picker{grid-template-columns:1fr}}
body .quick-search-panel{overflow:hidden;border:1px solid var(--line)}
body .quick-search-panel .card-header{display:flex;align-items:center;justify-content:space-between;padding:16px var(--ui-pad)}
body .quick-search-panel .card-header h3{font-size:20px;margin:0;line-height:1.2}
body .quick-search-panel .card-body{padding:var(--ui-pad)}
body .quick-search-field .form-control,body .quick-search-field .btn{min-height:54px;font-size:16px}
body .quick-search-field .btn{padding:0 20px}
body .home-guidance>summary{min-height:44px;display:flex;align-items:center;font-size:14px}
body .home-discover h3{font-size:18px;margin:8px 0 12px}
body .home-feature{min-height:88px;padding:16px;border-radius:var(--ui-radius)}
body .home-tool-list .list-group-item{min-height:64px;padding:14px var(--ui-pad)}
body .home-tool-list .list-group-item strong{font-size:15px}
body .home-tool-list .list-group-item small{font-size:13px;color:var(--muted)}
body .filters-panel,body .maincol,body #territoryExplorer,body .comparison-panel,body .coverage-panel,body .compare-step{border-radius:var(--ui-radius)}
body .maincol,body #territoryExplorer{padding:var(--ui-pad)}
@media(max-width:600px){body .section-head{flex-direction:column;align-items:stretch;gap:12px}}
@media(max-width:600px){body .section-head .segmented{width:100%}}
@media(max-width:600px){body .section-head .segmented .btn{flex:1;min-height:44px}}
@media(max-width:600px){body .report-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}}
@media(max-width:600px){body .report-actions .muted{grid-column:1/-1}}
@media(max-width:600px){body .report-actions .btn{width:100%;padding:0 8px}}
@media(max-width:600px){body .comparison-actions{display:grid;grid-template-columns:1fr;gap:10px}}
@media(max-width:600px){body .comparison-actions .btn{width:100%;min-height:52px}}
@media(max-width:600px){body .comparison-controls{grid-template-columns:1fr}}
@media(max-width:600px){body .comparison-result-head{flex-direction:column;align-items:stretch}}
@media(max-width:600px){body .comparison-result-head .btn-group{width:100%}}
@media(max-width:600px){body .comparison-result-head .btn-group .btn{flex:1}}
@media(max-width:600px){body .comparison-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}}
@media(max-width:600px){body .comparison-body{padding:0 var(--ui-pad) var(--ui-pad)}}
@media(max-width:600px){body .comparison-panel>summary{padding:var(--ui-pad)}}
@media(max-width:600px){body .favorites-bar{grid-template-columns:1fr}}
@media(max-width:600px){body .favorites-bar .btn{width:100%}}
@media(max-width:600px){body .history-controls{grid-template-columns:1fr}}
@media(max-width:600px){body .history-controls>button{width:100%}}
body details>summary{min-height:44px}
body .local-data-banner{display:flex;flex-direction:column;gap:4px;padding:var(--ui-pad)!important;margin-bottom:var(--ui-gap);background:var(--bs-body-bg);border:1px solid var(--line)!important;border-radius:var(--ui-radius);font-size:13px}
body .local-data-banner strong{font-size:14px}
body .local-data-banner small{margin:0;color:var(--muted);font-size:12px}
body .data-actions{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:var(--ui-pad);margin-bottom:var(--ui-gap);background:var(--bs-body-bg);border:1px solid var(--line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
body .data-actions h2{font-size:19px}
body .data-actions .head-actions{display:flex;flex-direction:column-reverse;gap:10px;width:100%}
body .data-actions .head-actions .btn{width:100%;min-height:52px}
@media(min-width:601px){body .data-actions{flex-direction:row;align-items:center;justify-content:space-between}}
@media(min-width:601px){body .data-actions .head-actions{flex-direction:row-reverse;width:auto}}
@media(min-width:601px){body .data-actions .head-actions .btn{width:auto}}
body .coverage-panel>summary{padding:var(--ui-pad);font-weight:650}
body .territory-source{padding:16px 0;font-size:12px;line-height:1.6}
@media(max-width:600px){body .workspace-nav{border-top:1px solid var(--line);background:var(--bs-body-bg);box-shadow:0 -4px 18px oklch(25% .02 250/.08)}}
@media(max-width:600px){body .workspace-nav>div.nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:4px 6px 2px;overflow:visible}}
@media(max-width:600px){body .workspace-nav a.nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:60px;padding:6px 2px;border-radius:var(--ui-radius-sm);font-size:11px;font-weight:600;line-height:1.15;text-align:center;white-space:normal;position:relative;color:var(--muted)}}
@media(max-width:600px){body .workspace-nav a.nav-link svg{width:24px;height:24px}}
@media(max-width:600px){body .workspace-nav a.nav-link.active,body .workspace-nav a.nav-link[aria-current]{background:var(--bs-primary-bg-subtle)!important;color:var(--brand-primary)!important;font-weight:700}}
@media(max-width:600px){body .workspace-nav a.nav-link.active:before,body .workspace-nav a.nav-link[aria-current]:before{content:"";position:absolute;top:0;left:28%;right:28%;height:3px;border-radius:0 0 3px 3px;background:var(--ui-yellow)}}
@media(max-width:359px){body .report-actions{grid-template-columns:1fr}}
@media(max-width:359px){body .page-intro>.btn,body .page-intro>#workspaceShortcut{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(hover:none){body .btn-outline-primary:hover:not(:active):not(.active){color:var(--brand-primary);background:transparent}}
@media(hover:none){body .btn-outline-success:hover:not(:active){color:var(--bs-success-text-emphasis);background:transparent}}
@media(hover:none){body .btn-outline-secondary:hover:not(:active){color:var(--bs-secondary-color);background:transparent}}
body .quick-candidate{flex-wrap:nowrap;gap:12px;padding:12px 0;min-height:84px}
body .quick-candidate .quick-candidate-action{margin-left:auto;flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
body .quick-candidate strong{overflow-wrap:normal;word-break:normal}
@media(max-width:900px){#toggleTerritory{display:none}}
@media(max-width:900px){#tableView .table td:nth-child(3),#tableView .table th:nth-child(3){position:sticky;left:0;background:var(--bs-body-bg);z-index:1;box-shadow:1px 0 0 var(--line)}}
.city-shortcuts{margin:0 0 12px}
.city-shortcuts .btn{width:100%}
.map-fs-btn{margin-bottom:10px}
#compareMapWrap.map-full{position:fixed;inset:0;z-index:1100;background:var(--bs-body-bg);padding:12px;overflow:auto;display:flex;flex-direction:column}
#compareMapWrap.map-full #compareMap{height:auto;flex:1;min-height:55dvh}
body.map-fullscreen{overflow:hidden}
.coverage-tools{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.coverage-item[hidden]{display:none}
.coverage-item{padding:12px 0;border-bottom:1px solid var(--line)}
@media(min-width:601px){.coverage-tools{flex-direction:row;align-items:center}}
@media(min-width:601px){.coverage-tools .form-control{max-width:320px}}
@media(max-width:600px){body .report-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:0 var(--ui-pad) calc(var(--ui-pad) + env(safe-area-inset-bottom))}}
@media(max-width:600px){body .report-controls{position:sticky;top:0;background:var(--bs-body-bg);padding-top:calc(12px + env(safe-area-inset-top));flex-direction:column;align-items:stretch}}
@media(max-width:600px){body .report-controls>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}}
@media(max-width:600px){body .report-controls>div .btn:last-child{grid-column:1/-1}}
@media(max-width:600px){body #recentCandidateList{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px;scrollbar-width:none}}
@media(max-width:600px){body #recentCandidateList::-webkit-scrollbar{display:none}}
@media(max-width:600px){body #recentCandidateList>*{flex:0 0 78%;scroll-snap-align:start}}
.workspace-nav a.has-activity{position:relative}
.workspace-nav a.has-activity:after{content:"";position:absolute;top:8px;right:calc(50% - 20px);width:10px;height:10px;border-radius:50%;background:var(--ui-yellow);box-shadow:0 0 0 2px var(--bs-body-bg);animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.35);opacity:.7}}
body :is(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid oklch(65% .15 250);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.workspace-nav a.has-activity:after,[class*=placeholder-glow] .placeholder{animation:none}}
/* Cabeçalho compacto, pull-to-refresh, favoritos, última consulta */
body{overscroll-behavior-y:contain}
#lastQuery{border-radius:var(--ui-radius);margin-bottom:var(--ui-gap)}
#lastQuery[hidden]{display:none}
/* Alvos de toque mínimos */
@media(max-width:600px){
}
@media(max-width:600px){
  body .result-options>summary{display:flex}
}
body details>summary{min-height:44px;display:flex;align-items:center;gap:8px}
body .group-help>summary{min-height:44px}

/* Estado inicial por área, antes do JavaScript (evita deslocamento de layout) */
html[data-boot=inicio] #homeWorkspace[hidden]{display:block}
html[data-boot=inicio] #localWorkspace{display:none}
html[data-boot=apuracao] #workspaceShortcut[hidden]{display:inline-flex}
html[data-boot=comparisonPanel] #localWorkspace{display:none}
html[data-boot=comparisonPanel] #comparisonWorkspace[hidden]{display:block}
html[data-boot=coveragePanel] #localWorkspace{display:none}
html[data-boot=coveragePanel] #dataWorkspace[hidden]{display:block}
html[data-boot=inicio] #locationFields{display:none}
html[data-boot=inicio] #localDataNotice,html[data-boot=inicio] #municipalityEmptyState{display:none}
body main{min-height:100dvh}
/* Na entrada o resultado vem do TSE; avisos da base local não pertencem a essa área */
body[data-workspace=inicio] #localDataNotice,body[data-workspace=inicio] #municipalityEmptyState,body[data-workspace=comparisonPanel] #localDataNotice,body[data-workspace=comparisonPanel] #municipalityEmptyState{display:none}

/* Colocação e mais votados */

/* Onde mais votou */

/* Legenda do mapa por faixas */
#mapLegend{display:flex;flex-direction:column;gap:6px;margin:8px 0}
#mapLegend .legend-title{font-weight:650;font-size:13px;color:var(--ink)}
#mapLegend .legend-steps{display:flex;flex-wrap:wrap;gap:6px 12px}
#mapLegend .legend-step{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}
#mapLegend .legend-step i{display:inline-block;width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}

/* Bootstrap: folhas (offcanvas), barra de filtros e abas */
body[data-workspace=inicio] #locationFields{display:none}
.city-sheet .offcanvas-body,#apuracao .offcanvas-body{max-height:80dvh}
.filters-bar{top:0;z-index:1020;margin-bottom:var(--ui-gap);padding:10px 0;background:var(--page-bg)}
@media(max-width:767.98px){
  .filters-bar{margin-inline:calc(var(--ui-pad)*-1);padding-inline:var(--ui-pad);border-bottom:1px solid var(--bs-border-color)}
  #apuracao.offcanvas-md{border-radius:var(--bs-border-radius-xl) var(--bs-border-radius-xl) 0 0;border:0}
}
body.mini-visible .filters-bar{top:56px}
@media(max-width:900px){
  body[data-local-tab=votos] #territoryExplorer,body[data-local-tab=locais] .maincol{display:none}
  body[data-local-tab=locais] #territoryExplorer{position:static}
  body[data-local-tab=locais] #sectionList{max-height:none}
}

.city-sheet .form-control{min-height:48px;font-size:16px}
@media(min-width:901px){.local-tabs{display:none!important}}
.local-tabs .nav-link{min-height:46px}
.cargo-bar .btn{flex:0 0 auto;min-height:44px;white-space:nowrap}
.pwa-toast-host{bottom:calc(76px + env(safe-area-inset-bottom));z-index:1090}
@media(min-width:601px){.pwa-toast-host{left:auto!important;right:0;bottom:0;max-width:440px}}
.ptr-indicator{position:fixed;top:8px;left:50%;transform:translate(-50%,0);z-index:1300;opacity:0;pointer-events:none;transition:opacity .15s}
.ptr-indicator.is-visible{opacity:1}
.compare-stepper .nav-link{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:13px;font-weight:650;border-radius:999px}
.filters-heading{padding-top:0}
#territoryFilterCount{white-space:nowrap}

.accordion{--bs-accordion-btn-padding-y:.85rem;--bs-accordion-btn-padding-x:.25rem;--bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--brand-primary);--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(33,79,194,.2)}
.accordion-button{font-size:15px;font-weight:650;min-height:52px;gap:8px}
.accordion-button:not(.collapsed){box-shadow:none}
.place-rank-name{overflow-wrap:anywhere}

/* Cores da marca nos componentes Bootstrap */
.nav-pills{--bs-nav-pills-link-active-bg:var(--brand-primary);--bs-nav-pills-border-radius:var(--bs-border-radius-pill)}
.list-group{--bs-list-group-active-bg:var(--brand-primary);--bs-list-group-active-border-color:var(--brand-primary)}
.badge.text-bg-primary{background-color:var(--brand-primary)!important}
.location-picker{border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
.location-picker .form-select{font-size:16px;min-height:48px}
.local-tabs.nav-pills{background:var(--bs-secondary-bg);padding:4px;border-radius:999px}
.local-tabs .nav-link{color:var(--bs-secondary-color)}
.local-tabs .nav-link.active{color:#fff}

.compare-stepper .nav-link{white-space:nowrap;font-size:12px}
#coverageContent .coverage-item{background:transparent}
.progress{--bs-progress-bar-bg:var(--brand-primary);--bs-progress-bg:var(--bs-secondary-bg)}
.sync[data-status=finished]{--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-border-color:var(--bs-success-border-subtle)}
.sync[data-status=finished] .progress,.sync[data-status=finished] #syncPct{display:none}
.sync[data-status=finished] #syncTitle:before{content:'✓ '}
.sync[data-status=failed],.sync[data-status=interrupted]{--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-border-color:var(--bs-warning-border-subtle)}
.cards .card{box-shadow:none}
.form-check-input:checked{background-color:var(--brand-primary);border-color:var(--brand-primary)}
.form-check-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 .25rem rgba(33,79,194,.25)}
.form-switch .form-check-input:focus:not(:checked){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}

.municipality-cards{max-height:none;margin:16px 0}
.municipality-card:focus{outline:2px solid var(--brand-primary);outline-offset:3px}

/* Ações da área em ícones */
.btn-icon{width:44px;height:44px;padding:0!important;flex:0 0 44px!important;display:inline-flex;align-items:center;justify-content:center}
body .page-intro>#shareApp,body .page-intro .page-help>summary.btn-icon{width:44px;max-width:44px;min-height:44px}
body .page-intro{flex-wrap:wrap}
body .page-intro>#workspaceShortcut:not([hidden]){flex:1 0 100%;order:9}
@media(min-width:601px){body .page-intro>#workspaceShortcut:not([hidden]){flex:0 0 auto;order:0}}

/* details nativos com a aparência do accordion Bootstrap */
details.accordion{border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);border-radius:var(--bs-accordion-border-radius);background:var(--bs-accordion-bg);overflow:hidden}
details.accordion>summary.accordion-button{list-style:none;border-radius:0;min-height:52px;font-size:15px;font-weight:650;cursor:pointer;display:flex}
details.accordion>summary.accordion-button::-webkit-details-marker{display:none}
details.accordion>summary.accordion-button::after{flex-shrink:0;margin-left:auto}
details.accordion[open]>summary.accordion-button{color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}
details.accordion[open]>summary.accordion-button::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}
details.accordion>*:not(summary){padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}
details.accordion>summary.accordion-button>span{font-weight:400;font-size:13px;color:var(--bs-secondary-color);margin-left:8px}
.group-mode{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}
@media(min-width:768px){.group-mode{grid-template-columns:repeat(4,minmax(0,1fr))}}
.results-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;padding:12px 0;border-block:1px solid var(--bs-border-color)}
.results-toolbar>span{grid-column:1/-1;font-size:12px;color:var(--bs-secondary-color)}
.results-toolbar #groupActions{grid-column:1/-1;display:flex;gap:8px}
.candidate-limit-label .form-select,.group-sort-label .form-select{min-height:44px;font-size:15px;width:100%}
.group-sort-label,.candidate-limit-label{display:block;width:100%}
details.accordion{--bs-accordion-btn-padding-x:1rem;--bs-accordion-body-padding-x:1rem}
.home-guidance{margin-top:12px}
.group-help{margin-top:10px}
.group-mode .btn[hidden]{display:none}

details.accordion>summary.accordion-button{padding:.85rem 1rem}
@media(min-width:576px){.w-sm-auto{width:auto!important}}
.report-controls .btn-group .btn{font-size:13px;padding-inline:8px}
@media(max-width:600px){body .report-controls>div{display:flex!important}}
@media(min-width:768px){.contest-fields{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.contest-fields .field-partido,.contest-fields .search-field{grid-column:auto}}
/* Resultados por candidato e locais: componentes Bootstrap + ajustes mínimos */
.contest-grid{display:grid;gap:20px}
@media(min-width:1200px){.contest-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}}
.cargo-block{padding:4px 0 8px}
.candidate-tile{display:flex;align-items:center;gap:12px;text-align:left;min-height:76px;background:transparent}
.candidate-tile .min-w-0{min-width:0}
.candidate-position{flex:0 0 auto}
.candidate-avatar{position:relative;flex:0 0 48px;width:48px;height:60px;border-radius:8px;overflow:hidden;background:var(--bs-primary-bg-subtle);display:grid;place-items:center;font-weight:700;color:var(--brand-primary)}
.candidate-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;background:var(--bs-primary-bg-subtle)}
.candidate-overflow{display:none!important}
.show-all .candidate-overflow{display:flex!important}
.vote-extras{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;font-size:13px;color:var(--bs-secondary-color)}
.result-group>summary.accordion-button{align-items:flex-start;gap:12px}
.result-group .group-count{display:none}
.result-group>summary strong{font-size:16px}
.result-group>summary small{display:block;font-size:12px;font-weight:400;color:var(--bs-secondary-color);margin-top:4px}
.result-group>.group-body{padding:0}
.polling-place.place-selected{border-color:var(--brand-primary)}
.polling-place>.btn{margin:12px 1rem 0;width:calc(100% - 2rem)}
.polling-place>.section-caption{margin:12px 1rem 6px;font-size:13px;color:var(--bs-secondary-color)}
.polling-place>.section-chips{padding:0 1rem 1rem;gap:8px}
.polling-place>summary.accordion-button{align-items:flex-start}

.result-group>.group-body{padding:0 1rem 1rem}
.polling-place>summary span,.result-group>summary span{margin-left:0}
.polling-place>summary.accordion-button>span{text-align:left}
.result-group>summary .group-turnout>span{display:inline}
/* Chips de filtro e opções de busca (list-group) */
.active-filters{display:flex;flex-wrap:wrap;gap:8px}
.active-filters:empty{display:none}
.filter-chip{max-width:100%;text-align:left;min-height:40px;font-size:13px;overflow-wrap:anywhere}
.filters-bar .active-filters{margin:0}
@media(max-width:767.98px){.filters-bar .active-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filters-bar .active-filters::-webkit-scrollbar{display:none}.filters-bar .filter-chip{flex:0 0 auto;white-space:nowrap}}
@media(min-width:768px){.filters-bar{padding:0;background:none}.filters-bar .active-filters{margin-bottom:12px}}
.assist-options{max-width:800px;margin-top:8px}
.assist-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;text-align:left}
.assist-option strong{font-size:14px;font-weight:650}
.assist-option>span:not(.candidate-portrait){font-size:13px;color:var(--bs-secondary-color)}
.city-assist-option>span{color:var(--brand-primary)!important;font-weight:600;flex-shrink:0}
#compareCandidateMatches .assist-option{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:14px;align-items:center}
#compareCandidateMatches .assist-option>.candidate-portrait{grid-row:1/3}
#compareCandidateMatches .assist-option>strong,#compareCandidateMatches .assist-option>span:not(.candidate-portrait){grid-column:2}
#rivalMatches .assist-option{display:grid;grid-template-columns:52px minmax(0,1fr) auto;column-gap:12px;align-items:center}
#rivalMatches .assist-option>.candidate-portrait{grid-row:1/3}
#rivalMatches .assist-option>strong,#rivalMatches .assist-option>span:not(.candidate-portrait){grid-column:2}
#rivalMatches .assist-option>small{grid-column:3;grid-row:1/3;color:var(--brand-primary)}
.assist-option:disabled{color:var(--bs-secondary-color)}
.city-shortcuts .btn{gap:.25rem}
@media(min-width:768px){.city-shortcuts .btn{width:auto}}

/* Por local: busca na barra, agrupamento em uma linha, menu de opções */
.filters-bar .search{position:relative}
.filters-bar .search input{min-height:48px;padding-left:34px;font-size:16px}
.filters-bar .search>span{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--bs-secondary-color);z-index:2}
.filters-bar .candidate-assist{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:1030;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);box-shadow:var(--bs-box-shadow);max-height:320px;overflow:auto;padding:4px}
.filters-bar .candidate-assist[hidden]{display:none}
.filters-bar #openFilters{min-height:48px;display:inline-flex;align-items:center;gap:6px}
.group-scroll{overflow-x:auto;scrollbar-width:none;min-width:0}
.group-scroll::-webkit-scrollbar{display:none}
.group-mode{flex-wrap:nowrap;width:max-content;min-width:100%}
.group-mode .btn{white-space:nowrap;min-height:44px;font-size:14px;flex:1 0 auto}
.local-options-menu{min-width:280px}
@media(max-width:400px){.local-options-menu{min-width:min(280px,calc(100vw - 32px))}}
#territorySelection{margin-bottom:8px}
/* Celular: seletor de município compacto e atalho redundante oculto (a navegação inferior já leva a Comparar) */
@media(max-width:767.98px){
  body:not([data-workspace=inicio]) .location-picker{padding:.5rem .75rem!important;margin-bottom:.75rem!important}
  body:not([data-workspace=inicio]) .location-picker label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  body:not([data-workspace=inicio]) .location-picker .form-select{min-height:44px}
  body .page-intro>#workspaceShortcut{display:none!important}
  body .page-intro{padding:10px 0 12px!important;margin-bottom:.75rem}
}

.result-group>summary.accordion-button>span:first-child,.polling-place>summary.accordion-button>span:first-child{margin-left:0;font-size:inherit;color:inherit;font-weight:inherit}
.group-mode .btn{padding-inline:12px;font-size:13px}
@media(max-width:900px){#returnToResults,#territoryExplorer .eyebrow,#territoryExplorer>p.muted:first-of-type{display:none}#territoryExplorer .aside-head{margin-bottom:8px}}

.filters-bar .filter-chip{max-width:78vw;overflow:hidden;text-overflow:ellipsis}
.min-w-0{min-width:0}
#placeCard h3{overflow-wrap:anywhere}
.filters-bar .filter-chip{display:inline-block;white-space:nowrap;text-overflow:ellipsis}

/* Estados de passar o mouse/selecionado: seleção ativa preenchida; hover só suave */
.btn-outline-primary:hover:not(.active):not(:active):not(:disabled){background-color:var(--bs-primary-bg-subtle);color:var(--brand-primary);border-color:var(--bs-primary-border-subtle)}
.nav-pills .nav-link:hover:not(.active){background-color:var(--bs-primary-bg-subtle)}
.group-total small{font-size:12px;font-weight:400;color:var(--bs-secondary-color)}
.result-group>summary.accordion-button{align-items:center}
.result-group .group-turnout{font-size:12px;margin-top:2px}
.local-top-box .top-body{padding:0 1rem 1rem}
.local-top-box{border-color:var(--bs-primary-border-subtle);background:var(--bs-primary-bg-subtle)}
.local-top-box>summary.accordion-button{background:transparent}
.local-top-box .place-rank .list-group-item,.local-top-box .list-group-item{background:transparent}

.place-compare-bar{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:1035}
.place-compare-bar[hidden]{display:none}
@media(min-width:768px){.place-compare-bar{left:auto;right:24px;bottom:24px;width:380px}}
.compare-check{margin:12px 1rem 0}
/* Fotos dos candidatos nas telas de Por local, duelo e comparação */
.candidate-hero{border-color:var(--bs-primary-border-subtle);background:var(--bs-body-bg)}
.candidate-hero .candidate-portrait-large{width:64px;height:80px;box-shadow:3px 3px 0 var(--brand-yellow)}
.candidate-assist-item .candidate-portrait{width:40px;height:50px;font-size:13px;border-radius:8px;margin-right:10px}
.candidate-assist-item .candidate-portrait-large{border-width:1px;box-shadow:none}
#duelOptions .candidate-portrait{width:44px;height:56px;font-size:14px;border-radius:8px}
#duelPA .candidate-portrait-large,#duelPB .candidate-portrait-large{width:76px;height:96px}
#duelPB .candidate-portrait-large{border-color:#c9a000;box-shadow:4px 4px 0 var(--brand-primary)}
#comparePortrait .candidate-portrait{width:48px;height:60px;font-size:15px;border-radius:8px}
.duel-filters .nav-link{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(min-width:992px){.top-candidates{max-width:1000px;margin-inline:auto}}
.quick-search-panel .card-header .btn-light{min-height:40px}
.top-candidates .nav-link{white-space:nowrap;flex:0 0 auto;min-height:40px;font-size:14px}
.top-candidates .list-group-item{display:flex;align-items:center;gap:12px;min-height:72px}
.top-candidates .candidate-portrait{width:44px;height:56px;font-size:14px;border-radius:8px}
.zero-votes-card{border-style:dashed}
body .quick-search-panel .card-header{display:block;padding:14px var(--ui-pad)}
body .quick-search-panel .card-header h3{font-size:20px}
body .quick-search-panel .card-header #quickCityName{font-size:16px}
.top-candidates{margin-top:1rem}
.top-candidates .list-group-item strong{color:var(--bs-body-color)}

/* Com um resultado aberto, a frase de status vira só para leitores de tela e a divisória diminui */
.quick-search-panel.has-result #quickStatus{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.quick-search-panel.has-result #quickResult{margin-top:12px;padding-top:12px}

/* Rodapé: componentes Bootstrap + ajustes mínimos */
.site-footer{background:var(--bs-body-bg);margin-top:32px}
.site-footer-inner{max-width:1500px;margin:0 auto;padding:28px var(--ui-pad) 24px}
@media(min-width:601px){.site-footer-inner{padding-inline:28px}}
.site-footer .btn-sm{min-height:44px}
.site-footer a:not(.btn){text-underline-offset:3px}
.footer-sources li+li{margin-top:8px}
.site-footer #backToTop{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:600px){body .site-footer{padding-bottom:calc(92px + env(safe-area-inset-bottom))}}

/* Consultas salvas: título e Gerenciar na mesma linha */
#homeFavorites{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:8px}
#homeFavorites>*{grid-column:1/-1}
#homeFavorites>h3{grid-column:1;margin:0}
#homeFavorites>h3+button{grid-column:2;margin:0!important}
.quick-next-actions .btn{font-size:13px}
.quick-next-actions .btn-group .btn{min-height:46px}

#participationBox .part-link{min-height:44px;display:inline-flex;align-items:flex-start;padding-top:10px!important}

/* Leitura ampliada */
html.text-large{font-size:118%}
html.text-large .btn,html.text-large .form-control,html.text-large .form-select{min-height:3.25rem}
kbd{font-size:.8em}

.min-w-0{min-width:0}
#partyList .candidate-portrait{width:40px;height:48px;font-size:14px}

/* Tela inicial e Comparar: ações sempre à mão no celular */
.compare-summary{font-size:.8125rem;font-weight:650;color:var(--bs-secondary-color)}
@media(max-width:600px){
 #comparisonPanel .comparison-actions{position:sticky;bottom:calc(76px + env(safe-area-inset-bottom));z-index:5;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:14px;padding:10px 12px;margin-top:12px;box-shadow:0 -4px 16px oklch(25% .02 250 / .08)}
 #comparisonPanel .comparison-actions .compare-summary{text-align:center}
 #comparisonPanel .comparison-actions #compareStatus{text-align:center}
}
#topCandidatesTabs{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);scrollbar-width:none}
#topCandidatesTabs::-webkit-scrollbar{display:none}
@media(max-width:600px){#comparisonPanel.comparison-panel{overflow:clip}}

/* Ícones Bootstrap Icons */
.btn-group>.btn{white-space:nowrap;padding-left:.5rem;padding-right:.5rem}
.btn .bi,.nav-link .bi{vertical-align:-.125em}
.accordion-button .bi{color:var(--bs-primary)}

.election-badge{font-weight:600;vertical-align:middle}

/* Bancadas: cores sequenciais neutras (sem associação a partido) */
.seat-1{background:oklch(38% .14 265)}.seat-2{background:oklch(50% .14 250)}.seat-3{background:oklch(60% .12 235)}.seat-4{background:oklch(70% .09 220)}.seat-5{background:oklch(79% .06 215)}.seat-other{background:oklch(78% .01 250)}
.seat-dot{display:inline-block;width:.75rem;height:.75rem;border-radius:3px}
.seat-count{display:inline-grid;place-items:center;flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis);font-weight:800;font-size:1.15rem}
#bancadaMembers .candidate-portrait{width:44px;height:54px;font-size:15px}
.bancadas .list-group-item-action:active{background:var(--bs-primary-bg-subtle)}

.recent-item{position:relative;flex:0 0 240px;scroll-snap-align:start}
.recent-item .recent-candidate{width:100%;flex:1 1 auto;padding-right:32px}
.recent-remove{position:absolute;top:6px;right:6px;width:.6rem;height:.6rem;padding:.5rem}

/* Auditoria de usabilidade: alvos de toque de pelo menos 44 px e contraste */
@media (max-width:768px){
 .nav-pills .nav-link,.nav-tabs .nav-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .offcanvas-header .btn-close,.modal-header .btn-close{box-sizing:content-box;padding:.95rem;margin:-.5rem -.5rem -.5rem auto}
 .recent-remove{top:2px;right:2px;width:.8rem;height:.8rem;padding:.9rem;box-sizing:content-box}
 .recent-item .recent-candidate{padding-right:44px}
 .form-switch{min-height:44px;display:flex;align-items:center}
 .form-switch .form-check-label{padding-block:.6rem;flex:1}
 .comparison-edit-actions .btn,#editComparison,#editComparisonCities,#clearBtn,#changeQuickCity{min-height:44px!important}
}
.mobile-territory{color:var(--bs-body-color)}
@media (max-width:900px){.territory-disclosure>summary{min-height:44px;display:flex;align-items:center}}

/* Refinamento visual: identidade cobalto + amarelo, seções consistentes */
#topFreshness{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem}
#topCandidatesList.list-group,#bancadasBox .list-group{border-radius:var(--bs-border-radius-xl);overflow:hidden;box-shadow:0 1px 2px oklch(25% .02 250 / .06),0 6px 18px oklch(25% .02 250 / .05)}
#topCandidatesList .list-group-item:first-child{background:color-mix(in oklch,var(--bs-warning) 14%,var(--surface))}
#topCandidatesList .list-group-item strong,#bancadasBox .list-group-item strong{color:var(--bs-body-color)}
#bancadasBox .row .card{border:0;border-radius:var(--bs-border-radius-lg);box-shadow:0 1px 2px oklch(25% .02 250 / .06),0 6px 18px oklch(25% .02 250 / .05)}
#bancadasBox .row .card .fs-4{color:var(--bs-primary)}
#bancadasBox .card.mb-3{border:0;border-radius:var(--bs-border-radius-lg);box-shadow:0 1px 2px oklch(25% .02 250 / .06),0 6px 18px oklch(25% .02 250 / .05)}
#bancadasBox .seat-count{background:var(--bs-primary);color:#fff;border-radius:.7rem}
#bancadasBox .list-group-item:first-child .seat-count{background:var(--bs-warning);color:#2b2100}

/* Mapa dos locais */
.places-map{height:60vh;min-height:320px}
.places-popup .btn{min-height:40px}
.places-popup strong{display:block;white-space:normal}

.quick-candidate.no-votes .candidate-portrait{filter:grayscale(1)}
.quick-candidate.no-votes .quick-candidate-action{background:var(--bs-secondary-bg);color:var(--bs-body-color)}

/* Tela inicial no desktop: consulta à esquerda, atalhos e bancadas à direita (mesma largura e ritmo) */
@media(min-width:992px){
 #homeWorkspace:not([hidden]){display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0 32px;align-items:start;align-content:start}
 #homeWorkspace>.quick-layout{grid-column:1;grid-row:1/span 4;max-width:none;margin:0}
 #homeWorkspace>:not(.quick-layout){grid-column:2;max-width:none;margin:0 0 24px}
 #homeWorkspace>.home-favorites{order:1}
 #homeWorkspace>.home-discover{order:2}
 #homeWorkspace>.bancadas{order:3}
 #homeWorkspace .recent-candidates,#homeWorkspace .top-candidates{max-width:none;margin-inline:0}
 .home-tools{grid-template-columns:minmax(0,1fr);gap:12px}
 .home-feature{padding:16px 18px}
 .home-feature svg{width:30px;height:30px}
}
@media(min-width:1400px){#homeWorkspace:not([hidden]){grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}

/* Refino: cartões de participação compactos no celular e filtros em uma só linha no desktop largo */
@media(max-width:600px){
 .cards,.local-summary .cards{gap:8px 0!important;padding:0!important;margin:8px 0 14px!important}
}
@media(min-width:1200px){
 .filter-groups .territory-fields{grid-template-columns:repeat(5,minmax(0,1fr))}
 .filters-panel .filter-groups{padding-block:14px}
}

/* Desktop: espaço bem usado — seletores compactos, filtros numa faixa, passos de Comparar lado a lado */
@media(min-width:992px){
 #locationFields.location-picker{max-width:600px;padding:8px 14px!important;margin-bottom:12px!important}
 #locationFields .form-select{min-height:38px;padding-block:.3rem}
 #locationFields .form-label{margin-bottom:2px!important}
 .filters-panel{margin-bottom:12px}
 .filters-panel .form-select{min-height:38px;padding-block:.3rem}
 .filters-panel .filters-heading{position:absolute;top:8px;right:16px;margin:0;padding:0;z-index:2}
 .filters-panel .filters-heading h2{display:none!important}
 .filters-panel .offcanvas-body{position:relative}
 .filter-groups{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,4fr);gap:0 20px;align-items:start;padding:10px 16px 14px}
 .filter-groups>fieldset legend,.filter-groups>details>summary{min-height:34px;display:flex;align-items:center}
 .filter-groups fieldset+details.territory-disclosure{border:0;margin:0!important;padding:0!important}
 .filter-groups .contest-fields{display:block}
 .filter-groups .territory-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 .cards .card-body{padding:10px 12px}
 .compare-step.card{padding:14px 16px}
 #comparisonSetup{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:14px 18px;align-items:start}
 #comparisonSetup>.comparison-edit-heading,#comparisonSetup>.comparison-actions{grid-column:1/-1}
 #comparisonSetup>.comparison-edit-heading:empty{display:none}
}
@media(min-width:1200px){.filter-groups .territory-fields{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:992px){
 .filter-groups>fieldset legend,.filter-groups>details>summary{min-height:40px;margin-bottom:0;padding-block:0}
 .filter-groups>details>summary{padding-right:120px}
 .filter-groups>fieldset{margin:0;padding:0}
 #compareRoundNote{margin-bottom:6px!important}
 .comparison-body{gap:0}
 #comparisonSetup{margin-top:0}
 #comparisonSetup .compare-step-heading{margin-bottom:8px}
}
@media(min-width:992px){
 #territoryFilterCount{margin-right:116px}
 #comparisonSetup>.comparison-edit-heading:has(#returnToComparison[hidden]){display:none}
}
@media(min-width:992px){
 .filters-panel .filters-heading{top:auto;right:auto;left:10px;bottom:10px}
 #territoryFilterCount{margin-right:0}
 .filter-groups>details>summary{padding-right:0}
}

/* Desktop: um padrão só para os painéis (respiro de 16px, títulos 16px, apoio 13px) */
@media(min-width:992px){
 /* Comparar: candidato e ação à esquerda, cidades à direita */
 #comparisonSetup{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px 20px}
 #comparisonSetup>.compare-step.card{margin:0;padding:16px 18px}
 #comparisonSetup>.compare-step.card:not(#compareCityStep){grid-column:1;grid-row:2}
 #comparisonSetup>#compareCityStep{grid-column:2;grid-row:2/span 2}
 #comparisonSetup>.comparison-actions{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:0;margin:0}
 #comparisonSetup>.comparison-actions .compare-summary{flex:1 0 100%;font-size:13px;color:var(--muted)}
 .compare-step h3{font-size:16px}
 .compare-step-heading{margin-bottom:12px}
 .compare-step .form-control,.compare-step .form-select{min-height:42px;font-size:14px}
 .compare-step .comparison-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px}
 .comparison-coverage{margin-bottom:14px}
 .comparison-coverage legend{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
 .coverage-choices label{padding:10px 12px}
 .assist-status{font-size:13px;margin:6px 0 0}
 .assist-status:empty{display:none}
 #compareCityStep{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 20px;align-content:start}
 #compareCityStep>.compare-step-heading,#compareCityStep>.comparison-coverage{grid-column:1/-1}
 .city-col{display:flex;flex-direction:column;gap:10px;min-width:0}
 .city-col .selected-cities-heading{margin:0}
 .city-col-add .city-shortcuts{margin:0}
 .city-col-add .city-select-alternative{margin:0}
 .city-col-picked:not(:has(*:not([hidden]))){display:none}

 /* Por local: lista de locais limpa, barra de agrupamento numa linha */
 #returnToResults,#toggleTerritory{display:none!important}
 #territoryExplorer{padding:16px}
 #territoryExplorer .aside-head{margin-bottom:6px}
 #territoryExplorer>.muted,#territoryExplorer #territoryCount{font-size:13px;margin:0 0 10px}
 .local-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:12px}
 .local-controls>div:first-child{margin:0!important;flex:0 0 auto}
 .local-controls>div:nth-child(2){flex:0 1 auto}
 .local-controls .group-scroll{flex-grow:0!important}
 .local-controls #groupHelpBox{flex:1 0 100%;order:5}
 .local-controls #resultsContext{margin:0 0 0 auto!important;order:3}
 .maincol .report-actions{padding:0 0 14px}
}
@media(min-width:992px){
 .btn-group[aria-label="Análises do recorte"]{width:auto!important;margin-bottom:14px!important}
 .local-summary>div:first-child h3,.local-summary h3.h6{font-weight:700;font-size:15px}
}

/* Barra de contexto no cabeçalho: cidade e turno em qualquer tela */
.brand-place{display:none!important}
.brand-controls{display:flex;align-items:center;gap:12px;margin-left:24px;flex-wrap:wrap}
.header-city{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:10px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:14px;max-width:340px}
.header-city:hover{background:rgba(255,255,255,.2)}
.header-city .bi{color:var(--brand-yellow)}
.header-city #headerCityName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-city-caret{opacity:.7}
.header-turno{display:inline-flex;background:rgba(255,255,255,.14);border-radius:10px;padding:3px}
.header-turno button{border:0;background:transparent;color:#fff;min-height:38px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:700}
.header-turno button.active{background:var(--brand-yellow);color:#1b2433}
.header-turno button:disabled{opacity:.55;cursor:not-allowed}
.header-city:focus-visible,.header-turno button:focus-visible{outline:3px solid #fff;outline-offset:2px}
header.brand-header{justify-content:flex-start;flex-wrap:wrap;gap:8px 0}
header.brand-header .brand-status{margin-left:auto}
@media(max-width:700px){
 .brand-controls{margin-left:0;width:100%;order:3}
 .header-city{flex:1;min-width:0}
 header.brand-header .brand-status{display:none}
}

/* Início com a busca em primeiro lugar (candidato, partido e local) */
.quick-head h3{font-size:26px;font-weight:800;letter-spacing:-.03em;margin:0 0 4px;color:var(--bs-body-color)}
.quick-sub{font-size:14px;color:var(--bs-secondary-color);margin:0 0 14px}
.quick-sub strong{color:var(--bs-body-color)}
.quick-search-panel .card-body{padding:22px 24px}
#quickSearch{min-height:54px;font-size:16px}
.quick-tabs[hidden]{display:none!important}
.quick-tabs{margin-top:12px}
.quick-tabs .nav-link{padding:6px 14px;font-size:13px;font-weight:600;border-radius:999px;min-height:36px}
.quick-tabs .nav-link.active{background:var(--bs-primary-bg-subtle);color:var(--bs-primary);font-weight:800}
.quick-group-head{font-size:11px;letter-spacing:.05em;font-weight:800;color:var(--brand-primary);text-transform:uppercase;padding:12px 4px 6px}
.quick-group-head[hidden]{display:none}
.quick-party{display:flex;align-items:center;gap:14px;padding:10px 4px;text-align:left}
.quick-party-num{width:44px;height:44px;border-radius:10px;background:var(--brand-yellow);color:#1b2433;display:grid;place-items:center;font-weight:800;flex:none}
.quick-party-pin{background:var(--bs-primary-bg-subtle);color:var(--brand-primary)}
.quick-search-panel[data-qtab=cand] #quickExtra,
.quick-search-panel[data-qtab=part] :is(#quickCandidatesHead,#quickMatches,#quickMore),
.quick-search-panel[data-qtab=loc] :is(#quickCandidatesHead,#quickMatches,#quickMore){display:none!important}
.quick-search-panel[data-qtab=part] .quick-extra-group[data-group=loc],
.quick-search-panel[data-qtab=loc] .quick-extra-group[data-group=part]{display:none}
@media(min-width:992px){
 #homeWorkspace:not([hidden]){display:flex;flex-direction:column;gap:28px;max-width:1120px;margin:0 auto}
 #homeWorkspace>:not(.quick-layout){margin:0!important;max-width:none}
 #homeWorkspace>.quick-layout{display:contents}
 #homeWorkspace .quick-search-panel{order:1}
 #homeWorkspace .home-discover{order:2}
 #homeWorkspace #recentCandidates{order:3}
 #homeWorkspace #topCandidates{order:4;margin:0}
 #homeWorkspace #lastQuery{order:5}
 #homeWorkspace #homeFavorites{order:6}
 #homeWorkspace #bancadasBox{order:7}
 .home-discover>h3{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
 .home-discover{margin:0}
 .home-tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .home-tool-list{display:contents}
 .home-feature,.home-tools .home-tool-list>.list-group-item{background:var(--surface);color:var(--bs-body-color);border:1px solid var(--line)!important;border-radius:12px!important;padding:14px 16px;gap:12px;align-items:center}
 .home-feature svg{width:26px;height:26px}
 .home-tools .home-tool-list>.list-group-item{margin:0}
 .home-feature small,.home-tool-list small{display:block;font-size:12px;margin-top:2px;color:var(--bs-secondary-color)}
 .home-feature>span:last-child,.home-tool-list>*>span:last-child{display:none}
 .home-tool-list .bi{font-size:1.5rem!important}
 .home-feature:hover,.home-tools .list-group-item-action:hover{border-color:var(--brand-primary)!important;background:var(--bs-primary-bg-subtle)}
 #topCandidatesList.list-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;box-shadow:none;border-radius:0;overflow:visible}
 #topCandidatesList .list-group-item{border:1px solid var(--line)!important;border-radius:14px!important;min-height:92px;background:var(--surface);box-shadow:0 4px 18px oklch(26% .035 265 / .05)}
 #topCandidatesList .list-group-item:first-child{border-color:var(--brand-yellow)!important;border-width:2px!important}
 #bancadasBox{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:0 4px 18px oklch(26% .035 265 / .05);margin:0}
 #bancadasBox .list-group{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;box-shadow:none;border-radius:0;overflow:visible}
 #bancadasBox .list-group-item{border-width:0 0 1px;border-radius:0!important}
}
@media(min-width:992px){
 #homeWorkspace .quick-search-panel{width:100%;max-width:none;margin:0!important}
 #homeWorkspace #bancadasBox,#homeWorkspace .home-discover{width:100%;box-sizing:border-box}
 .home-discover{border:0;padding:0}
 .home-feature strong{font-size:14px}
 .home-feature svg{stroke:var(--brand-primary)}
 body[data-workspace=inicio] .page-intro{max-width:1120px;margin-inline:auto}
}
.quick-tabs{flex-wrap:nowrap;overflow-x:auto}
.quick-tabs .nav-link{white-space:nowrap;flex:0 0 auto}
.quick-party .quick-candidate-action{white-space:nowrap;flex:none}
@media(max-width:600px){.quick-party .quick-candidate-action{display:none}.quick-head h3{font-size:23px}}

/* Início: ritmo único (28px entre blocos), recentes dentro da busca, atalhos de uma linha */
@media(min-width:992px){
 #homeWorkspace>*{min-width:0}
 #homeWorkspace #homeFavorites{width:100%}
 .home-feature small,.home-tool-list small{display:none}
 .home-feature,.home-tools .home-tool-list>.list-group-item{min-height:64px}
 .home-feature>span,.home-tool-list>*>span.flex-grow-1{font-weight:700;font-size:14px}
 #homeWorkspace #topCandidates{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px}
 #topCandidates>:first-child{order:1;flex:1 0 100%;margin-bottom:12px!important}
 #topCandidates #topCandidatesTabs{order:2;flex:1 1 auto;margin-bottom:16px!important}
 #topCandidates #topFreshness{order:3;margin:0 0 16px!important;white-space:nowrap}
 #topCandidates #topCandidatesList{order:4;flex:1 0 100%}
}
.quick-search-panel #recentCandidates{margin:18px 0 0;max-width:none}
.quick-search-panel #recentCandidates .recent-heading h3{font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:800;color:var(--brand-primary);border:0!important;padding:0!important}
.quick-search-panel #recentCandidates .recent-heading .btn{min-height:36px}
.quick-search-panel #recentCandidateList{padding-top:6px}
.quick-search-panel[data-searching] #recentCandidates,.quick-search-panel.has-result #recentCandidates{display:none}
.quick-search-panel.has-result :is(#quickTabs,#quickCandidatesHead,#quickExtra){display:none!important}

/* Cartões menores: recentes e consultas salvas; abas das bancadas à esquerda */
.quick-search-panel #recentCandidateList{gap:8px;padding:4px 2px 8px}
.quick-search-panel .recent-item{flex:0 0 210px}
.recent-candidate{gap:8px;padding:6px 30px 6px 6px;border-radius:10px;min-height:0}
.recent-candidate .candidate-portrait,.favorite-shortcut .candidate-portrait{width:34px;height:42px;border-radius:7px;font-size:12px}
.recent-candidate strong{font-size:12px;line-height:1.2}
.recent-candidate small{margin-top:2px!important;font-size:11px}
.recent-candidate .election-badge,.favorite-shortcut .election-badge{font-size:10px;padding:2px 6px;margin-top:2px}
.recent-remove{top:4px;right:4px}
.favorite-shortcut{padding:8px 12px;gap:10px;min-height:0}
.favorite-shortcut strong{font-size:13px}
.favorite-shortcut small{font-size:11px}
@media(min-width:992px){
 #homeFavoriteList.list-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-radius:0;box-shadow:none;overflow:visible}
 #homeFavoriteList .favorite-shortcut{border:1px solid var(--line)!important;border-radius:12px!important;background:var(--surface)}
 #bancadasBox .nav-fill{justify-content:flex-start}
 #bancadasBox .nav-fill>.nav-link{flex:0 0 auto;padding:7px 20px}
}
@media(min-width:992px){#bancadasBox .nav-fill>.nav-link{padding:7px 20px!important}}
#homeFavorites>.btn,#homeFavorites .btn-outline-secondary{min-height:34px!important;font-size:12px;padding:0 12px}

/* Ajuda e compartilhar no cabeçalho (saíram da linha do título) */
header.brand-header{overflow-x:clip;overflow-y:visible}
.brand-tools{display:flex;align-items:center;gap:10px;margin-left:12px}
header.brand-header .brand-status{margin-left:auto}
.header-icon{width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;padding:0;list-style:none;cursor:pointer}
.header-icon:hover{background:rgba(255,255,255,.2)}
.header-icon:focus-visible{outline:3px solid #fff;outline-offset:2px}
.header-icon svg{width:22px;height:22px}
.header-help{position:relative}
.header-help>summary::-webkit-details-marker{display:none}
.header-help>p{position:absolute;top:calc(100% + 12px);right:0;width:min(340px,86vw);z-index:60;margin:0!important;font-size:13px;box-shadow:0 12px 32px rgba(15,25,60,.25)}
.header-help>p:empty{display:none}
@media(max-width:700px){.brand-tools{margin-left:auto}header.brand-header .brand-status{display:none}}
.page-intro{padding-bottom:14px!important}
header.brand-header{z-index:30}
/* Na tela inicial o título é redundante (aba ativa e "Quantos votos teve?"): fica só para leitores de tela e foco */
body[data-workspace=inicio] .page-intro{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);padding:0!important;margin:0;border:0!important}
@media(min-width:992px){body[data-workspace=inicio] #homeWorkspace{padding-top:8px}}

/* Botão de apoio (Pix) no cabeçalho */
.header-support{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--brand-yellow);background:transparent;color:var(--brand-yellow);font-weight:700;font-size:14px}
.header-support[hidden]{display:none}
.header-support:hover{background:var(--brand-yellow);color:#1b2433}
.header-support:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media(max-width:700px){.header-support span{display:none}.header-support{width:44px;padding:0;justify-content:center}}
.pix-qr{max-width:200px;height:auto;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}

/* Desktop: seletor de estado/município como barra fina; títulos de seção no padrão (barra amarela); Comparar sem vão */
@media(min-width:992px){
 #locationFields.location-picker{max-width:none;background:transparent;border:0;box-shadow:none;padding:0!important;margin-bottom:14px!important}
 #locationFields .row{display:flex;flex-wrap:nowrap;gap:12px;align-items:center;margin:0}
 #locationFields .row>[class*=col]{width:auto;flex:0 0 auto;padding:0;display:flex;align-items:center;gap:8px}
 #locationFields .form-label{margin:0!important;white-space:nowrap}
 #locationFields .form-select{min-width:200px}
 .local-summary h3.h6,.local-summary>div:first-child h3{font-weight:700;font-size:16px;line-height:1.2}
 .cards .card .fs-5,.cards .card .fw-bold,.cards .card .h4{color:var(--brand-primary)}
 #comparisonSetup{grid-template-rows:auto auto 1fr}
 #comparisonSetup>.comparison-actions{align-self:start}
}
.sec-title{font-weight:700!important;font-size:16px;line-height:1.2}

/* Estado e cidade agora são escolhidos na barra do topo: os seletores antigos ficam só como estado interno */
#locationFields{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);margin:0!important;padding:0!important;border:0!important}
body[data-workspace=coveragePanel] #syncPanel[data-status=finished]{display:none!important}

/* Por local (desktop): indicadores e atalhos de análise na mesma faixa */
@media(min-width:992px){
 #localWorkspace:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:14px;align-content:start}
 #localWorkspace>*{grid-column:1/-1;min-width:0}
 #localWorkspace>.cards{grid-column:1;margin:0!important}
 #localWorkspace>.btn-group[aria-label="Análises do recorte"]{grid-column:2;flex-direction:column;align-self:stretch;width:100%!important;margin:0!important;gap:8px}
 #localWorkspace>.btn-group[aria-label="Análises do recorte"]>.btn{flex:1;border-radius:10px!important;margin:0!important}
 #localWorkspace>.layout{margin-top:22px}
}
@media(min-width:992px){
 #territoryExplorer{background:var(--surface);border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:0 4px 18px oklch(26% .035 265 / .05)!important;padding:20px!important;margin-top:0!important;align-self:start}
}
/* Um aviso só: com o aviso de carga automática visível, o painel genérico de sincronização fica oculto */
main:has(#autoSyncBanner:not([hidden])) #syncPanel{display:none!important}

/* Comparar: consultas favoritas ficam depois do resultado; rótulo do escopo discreto */
.comparison-body{display:flex;flex-direction:column}
.comparison-body>.favorites-disclosure{order:20;margin-top:16px}
.comparison-body>#comparisonOutput{order:10}
.comparison-scope-label{font-size:13px!important;font-weight:600;color:var(--bs-secondary-color)!important;margin:0 0 10px!important;text-decoration:none}
.comparison-body>#compareRoundNote{align-self:flex-start}

/* Celular: cabeçalho fixo em tamanho; ao rolar, uma barra fina por cima (sem mudar o layout, sem piscar) */
.mini-bar{display:none}
@media(max-width:700px){
 body header.brand-header{position:relative;transition:none}
 .mini-bar{display:flex;position:fixed;top:0;left:0;right:0;z-index:50;align-items:center;gap:10px;padding:8px var(--ui-pad,16px);background:var(--brand-primary);box-shadow:0 3px 0 var(--brand-yellow);transform:translateY(-110%);transition:transform .18s ease;visibility:hidden}
 .mini-bar.show{transform:none;visibility:visible}
 .mini-bar .header-city{flex:1;min-width:0;max-width:none;min-height:40px}
 .mini-bar .header-icon,.mini-bar .header-support{width:40px;height:40px;min-height:40px;padding:0;justify-content:center}
 .mini-bar .header-support[hidden]{display:none}
}
@media(prefers-reduced-motion:reduce){.mini-bar{transition:none}}

/* Gráficos (pizza e barras) */
.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.chart-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.chart-head h3{font-size:16px;font-weight:700;margin:0;}
.chart-pie{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px}
.chart-pie-svg{flex:0 0 auto;line-height:0}
.chart-legend{list-style:none;margin:0;padding:0;flex:1 1 240px;display:flex;flex-direction:column;gap:8px;min-width:0}
.chart-legend li{display:flex;align-items:center;gap:10px;font-size:14px}
.chart-swatch{width:14px;height:14px;border-radius:4px;flex:none}
.chart-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chart-val{font-weight:700;white-space:nowrap}
.chart-val small{font-weight:500;color:var(--bs-secondary-color)}
.chart-pie.compact{gap:10px 16px}
.chart-pie.compact .chart-legend{flex-basis:160px}
.chart-pie.compact .chart-legend li{font-size:12px}
.chart-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.chart-bars li{display:grid;grid-template-columns:minmax(90px,200px) 1fr minmax(72px,auto);align-items:center;gap:12px;font-size:14px}
.chart-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.chart-bar-track{height:12px;border-radius:6px;background:#e8edf6;overflow:hidden;display:block}
.chart-bar-fill{display:block;height:100%;border-radius:6px}
.chart-bar-val{text-align:right;font-weight:700;white-space:nowrap}
.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.chart-grid .chart-card h4{font-size:14px;font-weight:700;margin:0 0 8px}
@media(max-width:600px){.chart-bars li{grid-template-columns:1fr auto;grid-template-areas:'l v' 't t'}.chart-bar-label{grid-area:l}.chart-bar-val{grid-area:v}.chart-bar-track{grid-area:t}}
.chart-legend{max-width:460px}
.eleito-rank{min-width:34px;height:26px;padding:0 8px;border-radius:13px;background:var(--bs-primary-bg-subtle);color:var(--brand-primary);font-weight:800;font-size:12px;display:inline-grid;place-items:center;flex:none}
.eleitos-all li:first-child .eleito-rank{background:var(--brand-yellow);color:#1b2433}
.eleito-votes strong{color:var(--brand-primary);font-size:15px}
.eleito-votes small{font-size:11px}
.eleitos-all small.text-body-secondary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.eleito-rank{min-width:30px;padding:0 6px}.eleitos-all li{gap:.6rem!important}.eleito-votes strong{font-size:14px}}
.chart-slice{transition:opacity .15s,transform .15s;transform-origin:110px 110px;cursor:default}
.chart-slice.on{transform:scale(1.04)}
.chart-slice.dim{opacity:.35}
.chart-legend li{padding:4px 8px;border-radius:8px;transition:background .15s,opacity .15s;outline:none}
.chart-legend li.on{background:var(--bs-primary-bg-subtle)}
.chart-legend li.dim{opacity:.5}
.chart-legend li:focus-visible{outline:2px solid var(--brand-primary)}
.chart-pie-svg svg{max-width:100%;height:auto}
.eleito-row{border:0;background:transparent;color:inherit}
.eleito-row:hover,.eleito-row:focus-visible{background:var(--bs-primary-bg-subtle)}
.eleito-row:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-2px}
#bancadaMembers .eleito-row{padding-block:.5rem}
@media(min-width:992px){
 #topCandidates .top-chart-toggle{order:5;margin-top:12px;flex:0 0 auto}
 #topCandidates .top-chart-box{order:6;flex:1 0 100%;margin-top:12px}
}
.top-chart-toggle{margin-top:12px}
.top-chart-box{margin-top:12px}
.top-chart-box[hidden]{display:none}
/* Comparar: troca de visão (Cartões, Lista, Gráfico, Mapa) logo acima dos resultados */
.compare-views{display:flex;width:100%;margin:14px 0}
.compare-views>.btn{flex:1 1 0;min-height:44px}
@media(min-width:992px){.compare-views{width:auto;max-width:520px}}
.comparison-body>#backQuickResult{align-self:flex-start}
.quick-state-votes{border-top:1px solid rgba(255,255,255,.3);font-size:15px}
.city-panorama[hidden]{display:none}
.panorama-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.panorama-cell{border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.panorama-cell h4{font-size:14px;font-weight:700;margin:0 0 10px}
@media(max-width:700px){.panorama-grid{grid-template-columns:1fr}}
@media(min-width:992px){#homeWorkspace #cityPanorama{order:5}}

/* Meus candidatos */
.following[hidden]{display:none}
.following-list{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity}
.following-item{position:relative;flex:0 0 250px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.following-open{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;padding:10px 34px 10px 10px;border-radius:12px;color:inherit}
.following-open:hover,.following-open:focus-visible{background:var(--bs-primary-bg-subtle)}
.following-open .candidate-portrait{width:40px;height:50px;border-radius:8px;font-size:13px}
.following-open strong{font-size:14px}
.following-open small{font-size:12px}
.following-votes{display:block;font-weight:800;color:var(--brand-primary);font-size:14px;margin-top:2px}
.following-remove{position:absolute;top:8px;right:8px;padding:.45rem}
@media(min-width:992px){#homeWorkspace #following{order:3}}
/* Celular: rolagens programadas (âncoras, scrollIntoView) deixam espaço para a barra fina fixa do topo */
@media(max-width:700px){html{scroll-padding-top:64px}}
/* Abas do resultado: quatro abas curtas cabem em linha no celular */
#quickDetails>.nav-tabs .nav-link{white-space:nowrap;font-size:14px;padding-inline:.4rem!important}
/* Eleitos: três botões cabem em linha no celular (o texto quebra em vez de alargar a página) */
.btn-group[aria-label="Como ver os eleitos"]>.btn{flex:1 1 0;min-width:0;white-space:normal;line-height:1.2;padding-inline:.4rem}
@media(max-width:600px){.btn-group[aria-label="Como ver os eleitos"]>.btn{font-size:13px;min-height:48px}}
#eleitosCsv,#comparisonCsv{color:#2f3a4a;border-color:#7b8699}
#eleitosCsv:hover,#comparisonCsv:hover{background:#2f3a4a;color:#fff}

/* Destaques do estado */
.state-highlights[hidden]{display:none}
.highlight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.highlight-card{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;color:inherit}
.highlight-card:hover,.highlight-card:focus-visible{background:var(--bs-primary-bg-subtle);border-color:var(--brand-primary)}
.highlight-card .candidate-portrait{width:44px;height:56px;border-radius:8px;font-size:14px}
.highlight-votes{display:block;font-weight:800;color:var(--brand-primary);font-size:14px;margin-top:2px}
.highlight-facts{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
@media(min-width:992px){#homeWorkspace #stateHighlights{order:5}}

/* Distribuição das vagas e cidades do partido */
.seat-math[hidden]{display:none}
.seat-math>summary{cursor:pointer;font-weight:700;color:var(--brand-primary);min-height:44px;display:flex;align-items:center}
.seat-table td,.seat-table th{white-space:nowrap}
.seat-table td:first-child{white-space:normal;min-width:150px}
.seat-bar{display:block;height:5px;border-radius:3px;background:#e8edf6;margin-top:4px;overflow:hidden}
.seat-bar span{display:block;height:100%;background:var(--brand-primary)}
.chart-map-wrap{max-width:560px;margin:0 auto}
.chart-map{width:100%;height:auto;display:block}
.chart-map path:hover{stroke:#f3cb54;stroke-width:1.4}
.chart-map-legend{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--bs-secondary-color);margin-top:8px}
.chart-map-scale{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,rgb(214,226,250),rgb(20,48,127))}
.quick-links{margin-top:10px}
.quick-links .btn{min-height:44px;display:inline-flex;align-items:center;font-weight:600}
.quick-search-panel[data-searching] .quick-links,.quick-search-panel.has-result .quick-links{display:none}
.quick-links{margin-top:10px}
.quick-links .btn{min-height:44px;display:inline-flex;align-items:center;font-weight:600}
.quick-search-panel[data-searching] .quick-links,.quick-search-panel.has-result .quick-links{display:none}

/* Eleitos e "Ficaram de fora" no celular: duas linhas por candidato (nome em cima, votos embaixo), sem espremer o nome */
@media(max-width:600px){
 .eleitos-all .eleito-row{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"rank photo info chev" "rank photo votes chev";column-gap:.75rem!important;row-gap:2px;align-items:center;padding:.65rem .75rem!important}
 .eleitos-all .eleito-row>.eleito-rank{grid-area:rank}
 .eleitos-all .eleito-row>.eleito-portrait{grid-area:photo}
 .eleitos-all .eleito-row>.flex-grow-1{grid-area:info;min-width:0}
 .eleitos-all .eleito-row>.eleito-votes{grid-area:votes;text-align:left!important;white-space:normal!important}
 .eleitos-all .eleito-row>i{grid-area:chev}
 .eleitos-all .eleito-votes strong{display:inline!important;margin-right:.4rem;font-size:15px}
 .eleitos-all .eleito-votes small.text-body-secondary,.eleitos-all .eleito-votes small.text-success{display:inline!important;white-space:normal!important;font-size:12px;line-height:1.3}
 .eleitos-all .eleito-row strong.d-block{white-space:normal;overflow-wrap:anywhere}
}

/* Dados: situação em linguagem simples */
.data-workspace{display:flex;flex-direction:column;gap:20px}
.data-workspace[hidden]{display:none}
.data-card{border-radius:14px;box-shadow:0 4px 18px oklch(26% .035 265 / .05)}
.data-states{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.data-state{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.data-state-uf{width:44px;height:44px;border-radius:10px;background:var(--brand-primary);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.data-state-turns{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.data-advanced>summary{padding:14px 18px;font-weight:700;color:var(--brand-primary);cursor:pointer;min-height:48px;display:flex;align-items:center}
.data-advanced .feature-body{padding:0 18px 18px}
.data-advanced .coverage-panel{margin-top:12px}
@media(max-width:600px){.data-states{grid-template-columns:1fr}.data-state{flex-wrap:wrap}.data-state-turns{margin-left:56px;justify-content:flex-start}}
/* Troca de cidade no desktop: folha centralizada */
@media(min-width:992px){#citySheet.offcanvas-bottom{max-width:640px;left:50%;right:auto;width:100%;transform:translate(-50%,100%);border-radius:16px 16px 0 0}#citySheet.offcanvas-bottom.show{transform:translate(-50%,0)}}

/* Celular: seções secundárias viram carrossel (menos rolagem) e os botões de ação ficam alinhados */
@media(max-width:700px){
 .highlight-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:2px 2px 8px;margin-inline:-2px;scrollbar-width:none}
 .highlight-grid::-webkit-scrollbar{display:none}
 .highlight-card{flex:0 0 76%;scroll-snap-align:start}
 .panorama-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:8px;scrollbar-width:none}
 .panorama-grid::-webkit-scrollbar{display:none}
 .panorama-cell{flex:0 0 90%;scroll-snap-align:start}
 .maincol .report-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .maincol .report-actions .btn{width:100%;padding-inline:6px;font-size:13px;min-height:44px}
 .maincol .report-actions .muted{display:none}
}
.data-state>div{flex:1 1 0;min-width:0}
@media(max-width:600px){.data-state-turns{flex:0 0 calc(100% - 56px);margin-left:56px}}

/* Tela inicial: hierarquia clara (busca, mais votados, eleitos e depois os dados de apoio) */
.home-jump{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.home-jump::-webkit-scrollbar{display:none}
.home-jump[hidden]{display:none}
.home-jump-chip{flex:0 0 auto;border:1px solid var(--bs-primary-border-subtle);background:var(--surface);color:var(--brand-primary);border-radius:999px;min-height:40px;padding:0 16px;font-size:14px;font-weight:700}
.home-jump-chip:hover,.home-jump-chip:focus-visible{background:var(--bs-primary-bg-subtle)}
.top-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.top-actions .btn[hidden]{display:none}
.top-actions .top-chart-toggle{margin-top:0}
@media(min-width:992px){
 #homeWorkspace .home-discover{order:2}
 #homeWorkspace #homeJump{order:3}
 #homeWorkspace #following{order:4}
 #homeWorkspace #topCandidates{order:5}
 #homeWorkspace #bancadasBox{order:6}
 #homeWorkspace #stateHighlights{order:7}
 #homeWorkspace #cityPanorama{order:8}
 #homeWorkspace #homeFavorites{order:9}
 #homeWorkspace #lastQuery{order:10}
 #topCandidates .top-actions{order:5;flex:1 0 100%}
 #topCandidates .top-chart-box{order:6}
}
.top-actions .btn{min-height:44px;display:inline-flex;align-items:center;margin:0!important;align-self:center}

/* ===== Sistema de ações (auditoria UX) =====
   Primária: .btn-primary (uma por bloco). Secundária: .btn-outline-primary.
   Ferramenta: .btn-outline-secondary e relatório/CSV, sempre neutros e na mesma barra.
   Ação em texto: .btn-link, sempre azul, sublinhada e com seta quando navega. */
.btn-link:not(.btn-close):not(.place-link):not(.part-link):not(.show-candidates){--bs-btn-color:var(--brand-primary,#214fc2);--bs-btn-hover-color:#17399a;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;text-decoration-color:oklch(65% .09 262)}
.btn-link:not(.btn-close):hover{text-decoration-color:currentColor}
.btn-link.text-button,.filters-heading .text-button{font-size:13px;color:var(--brand-primary,#214fc2)!important;text-decoration:underline!important;text-underline-offset:4px;font-weight:600}
.quick-links .btn-link::after,#returnToResults::after,#backSections::after{content:none}
.quick-links .btn-link::after{content:" ›";text-decoration:none;display:inline-block}
.btn-outline-secondary,.report-actions .btn-outline-success,main .btn-outline-success:not(.btn-sm){--bs-btn-color:var(--ink,#1b2433);--bs-btn-border-color:oklch(80% .015 260);--bs-btn-bg:var(--bs-body-bg);--bs-btn-hover-color:var(--brand-primary,#214fc2);--bs-btn-hover-bg:var(--bs-primary-bg-subtle);--bs-btn-hover-border-color:var(--brand-primary,#214fc2);--bs-btn-active-color:var(--brand-primary,#214fc2);--bs-btn-active-bg:var(--bs-primary-bg-subtle);--bs-btn-active-border-color:var(--brand-primary,#214fc2)}
.report-actions,.comparison-actions{align-items:center}
.report-actions{padding-top:12px}
.btn-group.segmented .btn,.btn-group.group-mode .btn,.analysis-inline .btn{min-height:40px}
.analysis-inline{gap:0}
.analysis-inline .btn{font-size:13px;font-weight:650;padding:0 16px;white-space:nowrap}
/* Filtro por local: o cabeçalho inteiro é um botão que abre e fecha */
.territory-disclosure>summary{cursor:pointer;border-radius:8px;transition:background-color .15s ease-out}
.territory-disclosure>summary:hover{background:var(--bs-primary-bg-subtle)!important}
.territory-disclosure>summary::after{color:var(--brand-primary,#214fc2);opacity:1}
@media(min-width:992px){
 #localWorkspace>.cards{grid-column:1/-1}
 #localWorkspace>.btn-group[aria-label="Análises do recorte"]{display:none!important}
 #comparisonSetup>.comparison-actions{border:0;border-bottom:0}
}
@media(max-width:600px){
 .report-actions{padding-top:0}
}
@media(min-width:901px){#territoryExplorer{position:sticky;top:72px;max-height:calc(100vh - 88px);overflow:auto}}
/* Comparar (desktop): resumo e ação principal numa barra única sob as duas etapas */
@media(min-width:992px){
 #comparisonSetup>.comparison-actions{grid-column:1/-1;grid-row:3;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px}
 #comparisonSetup>.comparison-actions .compare-summary{flex:1 1 auto;font-size:14px;color:var(--ink)}
 #comparisonSetup>.comparison-actions .btn-primary{flex:0 0 auto;min-width:200px}
 #comparisonSetup{grid-template-rows:auto auto auto}
 #comparisonSetup>#compareCityStep{grid-row:2}
}

/* ===== Crítica UX: contêiner único, abas e atalhos distintos, Dados ===== */
@media(min-width:992px){
 #comparisonWorkspace,#dataWorkspace{max-width:1200px;margin-inline:auto}
}
/* Abas de cargo: mesmo componente na home e em Por local */
#topCandidatesTabs .nav-link{border:1px solid var(--bs-primary-border-subtle);border-radius:999px;background:var(--surface);color:var(--brand-primary);font-weight:700;font-size:14px;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;white-space:nowrap}
#topCandidatesTabs .nav-link:hover{background:var(--bs-primary-bg-subtle)}
#topCandidatesTabs .nav-link.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}
/* Atalhos de seção: retângulo suave com seta, para não parecerem filtros */
.home-jump-chip{border:0;border-radius:8px;background:var(--bs-primary-bg-subtle);min-height:36px;padding:0 14px 0 12px;font-size:13px}
.home-jump-chip::before{content:"\2193";margin-right:6px;font-weight:700}
/* Etiqueta de contexto alinhada ao conteúdo */
#compareRoundNote{display:inline-flex;align-items:center;min-height:28px;margin:0 0 12px!important;padding:0 12px;background:var(--bs-primary-bg-subtle)!important;color:var(--brand-primary)!important;font-weight:650;font-size:12px;border-radius:999px;text-transform:none;letter-spacing:0}
/* Cidades escolhidas: mesma caixa e peso dos botões de ferramenta */
#selectedCities .btn,#selectedCities .badge,#selectedCities button{text-transform:none;letter-spacing:0;font-weight:650;font-size:13px}
/* Dados: estados em linhas largas, avançado com seta */
.data-states{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}
.data-advanced>summary{list-style:none;justify-content:flex-start}
.data-advanced>summary::-webkit-details-marker{display:none}
.data-advanced>summary::after{content:"";margin-left:auto;width:8px;height:8px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .16s ease-out}
.data-advanced[open]>summary::after{transform:rotate(225deg)}
.data-advanced>summary:hover{background:var(--bs-primary-bg-subtle);border-radius:12px}
/* Ações soltas da lista dos mais votados agrupadas */
.top-actions{padding-top:12px;margin-top:4px;border-top:1px solid var(--line)}
@media(min-width:992px){
 body[data-workspace=comparisonPanel] .page-intro,body[data-workspace=coveragePanel] .page-intro{max-width:1200px;margin-inline:auto}
}
.data-states{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr))}
@media(max-width:600px){#topCandidatesTabs .nav-link,.home-jump-chip{min-height:44px}}

/* ===== Detector (impeccable): legibilidade e sinais de decoração ===== */
.brand-edition,.eyebrow,header .eyebrow,.page-intro .eyebrow,.quick-search-panel .card-header .badge,.report-brand,.workspace-nav a.nav-link{font-size:max(11px,1em)}
.brand-edition,.eyebrow,header .eyebrow,.quick-search-panel .card-header .badge,.report-brand{font-size:11px!important}
@media(max-width:600px){.brand-edition,.page-intro .eyebrow,.workspace-nav a.nav-link{font-size:11px!important}}
.eyebrow,.report-brand,.filter-groups legend,.comparison-coverage legend,.quick-group-head,.quick-search-panel #recentCandidates .recent-heading h3{letter-spacing:.05em}
.territory-disclosure>summary,.filter-groups legend{text-transform:none!important;font-size:12px!important;letter-spacing:0!important;font-weight:700}
.territory-disclosure>summary>#territoryFilterCount{text-transform:none!important;letter-spacing:0!important;font-size:12px!important}
.filterbar label,.leaflet-container .leaflet-control-attribution{font-size:max(11px,1em)}
/* Sem pulso decorativo: ponto estático com rótulo */
.workspace-nav a.has-activity:after{animation:none}
/* Barras com folga interna junto à borda */
.report-actions{padding:12px 0 4px}
.report-controls{padding:12px 16px}
@media(max-width:600px){.report-actions{padding:0}.report-controls{padding:8px 12px 12px}}

/* ===== Início no celular: ritmo, menos ruído, cartão de busca enxuto ===== */
@media(max-width:600px){
 #homeWorkspace:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr);row-gap:24px;align-content:start}
 #homeWorkspace>.quick-layout{display:contents}
 #homeWorkspace>*,#homeWorkspace .quick-search-panel{margin-top:0!important;margin-bottom:0!important}
 .home-jump{display:none!important}
 .quick-search-panel .quick-head h3{font-size:22px;line-height:1.2;margin-bottom:4px}
 .quick-sub{display:flex;align-items:center;gap:6px;margin:0 0 14px;font-size:14px;color:var(--muted)}
 .quick-sub .quick-sub-text{display:none}
 .quick-sub::before{content:"Em";font-weight:500}
 .quick-sub #quickCityName{font-weight:700;color:var(--ink);font-size:14px}
 .quick-links{margin-top:6px}
 .quick-search-panel #recentCandidates{margin:14px 0 0!important;padding-top:14px;border-top:1px solid var(--line)}
 .quick-search-panel #recentCandidates .recent-heading{margin-bottom:6px}
 .quick-search-panel #recentCandidates .recent-heading h3{text-transform:none;letter-spacing:0;font-size:13px;font-weight:700;color:var(--ink)}
 .quick-search-panel #recentCandidates .recent-heading .btn{min-height:36px;font-size:13px}
 .quick-search-panel #recentCandidateList{padding:2px 0 4px}
 .recent-candidate{padding:10px 40px 10px 10px;gap:10px}
 #topFreshness{margin:0 0 12px!important}
 #topCandidates .d-flex{margin-bottom:4px!important}
 #topCandidatesTabs{margin-bottom:12px!important}
}

/* Mais votados: título, estado da apuração e abas em hierarquia clara */
.top-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;margin-bottom:12px}
.top-head h3{grid-column:1;grid-row:1;font-size:18px;font-weight:700;line-height:1.2}
#topFreshness:not([hidden]){display:contents}
#topFreshness .badge{grid-column:2;grid-row:1/span 2;justify-self:end;align-self:center;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:650;background:oklch(94% .045 155)!important;color:oklch(35% .09 155)!important}
#topFreshness .badge.text-bg-warning{background:oklch(95% .07 85)!important;color:oklch(38% .08 70)!important}
#topFreshness .badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
#topFreshness>span:not(.badge){grid-column:1;grid-row:2;font-size:12px;color:var(--muted);margin-top:2px}
#topCandidatesTabs .nav-link{font-weight:600;padding:0 14px}
@media(max-width:600px){
 .top-head{margin-bottom:10px}
 #topCandidatesTabs{margin-bottom:12px!important;gap:8px!important}
}

/* Ações discretas do resultado e impressão do resultado do candidato */
.quick-more-actions{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:6px}
#printSheet{display:none}
@media print{
 body.print-result>*:not(#printSheet){display:none!important}
 body.print-result>#printSheet{display:block!important;padding:0;color:#000;background:#fff}
 #printSheet button:not(.state-row),#printSheet .quick-next-actions,#printSheet .btn,#printSheet .nav,#printSheet .quick-more-actions,#printSheet [role=tablist]{display:none!important}
 #printSheet .tab-pane,#printSheet .accordion-collapse{display:block!important;opacity:1!important}
 #printSheet .print-brand{font-size:12px;font-weight:700;letter-spacing:.04em;margin:0 0 12px;color:#214fc2}
 #printSheet .print-foot{margin-top:16px;font-size:11px;color:#444}
}
.shortcut-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.shortcut-list>div:last-child{border-bottom:0}
.shortcut-list dt{margin:0;font-weight:400}
.shortcut-list dd{margin:0;color:var(--muted);text-align:right}
.shortcut-list kbd{background:var(--ink,#1b2433);color:#fff;border-radius:5px;padding:2px 7px;font-size:13px}
@media(max-width:600px){.maincol .report-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* ===== Estado inteiro ===== */
.uf-badge{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;background:linear-gradient(135deg,var(--uf-a) 74%,var(--uf-b) 74%);color:#fff;font-weight:800;font-size:15px;letter-spacing:.02em;text-shadow:0 1px 1px oklch(20% .03 260 / .35)}
.uf-badge-lg{width:56px;height:56px;font-size:19px;border-radius:14px}
.data-state-uf{background:none!important}
.state-workspace{display:grid;grid-template-columns:minmax(0,1fr);row-gap:24px;max-width:1120px;margin-inline:auto}
.state-workspace[hidden]{display:none}
.state-head{flex-direction:row;display:flex;align-items:center;gap:14px;padding:16px 18px;flex-wrap:wrap}
.state-head>div{flex:1 1 180px}
.state-row{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left}
.state-rank{min-width:34px;text-align:center;font-weight:700;color:var(--brand-primary)}
.state-portrait .candidate-portrait{width:44px;height:44px}
.state-detail-head{display:flex;gap:14px;align-items:center}
.state-whole{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 16px;padding:12px 14px;background:var(--surface);border:1px solid var(--bs-primary-border-subtle);border-radius:12px;text-align:left;min-height:64px}
.state-whole:hover{background:var(--bs-primary-bg-subtle)}
body[data-scope=state][data-workspace=inicio] #homeWorkspace{display:none!important}
@media(min-width:992px){.state-workspace:not(.state-searching) #stateList .list-group-item{border-radius:10px;border:1px solid var(--line)}}
#stateTabs .nav-link{border:1px solid var(--bs-primary-border-subtle);border-radius:999px;background:var(--surface);color:var(--brand-primary);font-weight:600;font-size:14px;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;white-space:nowrap}
#stateTabs .nav-link.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}
#stateTabs{gap:8px}
.state-workspace .top-candidates{max-width:none;margin:0}

.state-sheet{height:88vh!important;max-height:88vh}
.state-map-skeleton{height:min(52vh,420px);border-radius:12px;overflow:hidden}
.state-map-skeleton .placeholder{display:block;opacity:.15}

.state-jump{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.state-jump::-webkit-scrollbar{display:none}
.state-chip{display:inline-flex;align-items:center;min-height:28px;margin:2px 6px 2px 0;padding:0 10px;border-radius:999px;background:var(--bs-primary-bg-subtle);color:var(--brand-primary);font-size:12px;font-weight:650}
.state-searching #stateTabs,.state-searching .top-actions,.state-searching #stateChartBox{display:none!important}
.state-group{margin-bottom:18px}
.state-group .list-group{gap:0}
.state-cities-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,180px);gap:8px;margin-bottom:8px}
.state-city{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left}
.state-city-leader{flex:0 1 42%;min-width:0}
@media(max-width:600px){.state-cities-tools{grid-template-columns:1fr}.state-city-leader{flex-basis:46%}}
@media(min-width:992px){
 .state-workspace:not(.state-searching) #stateList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .state-searching #stateList .state-group .list-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .state-searching #stateList .list-group-item{border-radius:10px;border:1px solid var(--line)}
 #stateCitiesList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 #stateCitiesList .list-group-item{border-radius:10px;border:1px solid var(--line)}
}

.state-options .state-option{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left}
.state-option-action{flex:none;font-weight:700;color:var(--brand-primary);font-size:14px;text-align:right;max-width:34%}
@media(min-width:992px){.state-searching #stateList .state-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.state-searching #stateList .state-options .list-group-item{border-radius:10px;border:1px solid var(--line)}}
.state-searching #stateBancadas,.state-searching #stateCitiesSec,.state-searching .state-jump{display:none!important}

.chart-map-key{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.chart-map-key li{display:inline-flex;align-items:center;gap:6px}
.chart-map-key i{width:12px;height:12px;border-radius:3px;display:inline-block}
.map-city{cursor:pointer}
.map-city:hover{stroke:#f3cb54;stroke-width:1.5}

/* Escolher cidade: busca primeiro, folha alta no celular e alvos de toque maiores */
.quick-city-finder{display:flex;flex-direction:column}
.quick-city-finder>label[for=quickCitySearch]{order:1}
.quick-city-finder>#quickCitySearch{order:2}
.quick-city-finder>#quickCityStatus{order:3}
.quick-city-finder>#quickCityMatches{order:4;margin-bottom:12px}
.quick-city-finder>#quickBigCities{order:5;margin-bottom:16px}
.quick-city-finder>#quickGps{order:6}
.quick-city-finder>label[for=quickStateSelect]{order:7}
.quick-city-finder>#quickStateSelect{order:8}
.quick-city-finder>#quickStateWhole{order:9;margin-bottom:0}
.quick-city-finder .quick-city-option{min-height:54px;font-size:16px;display:flex;align-items:center}
.quick-big-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.quick-big-grid .btn{min-height:48px;text-align:left;white-space:normal;line-height:1.2}
#quickBigCities[hidden]{display:none}
@media(max-width:600px){
 #citySheet.city-sheet{height:92dvh!important}
 #citySheet .offcanvas-body{max-height:none;overflow-y:auto;overscroll-behavior:contain}
}

.state-duel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.state-duel-card{border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}
.party-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:baseline;box-shadow:0 0 0 1px oklch(26% .02 260 / .25)}

.state-empty #stateMapSec,.state-empty #statePartiesSec,.state-empty #statePanoramaSec,.state-empty #stateCitiesSec,.state-empty .state-jump,.state-empty #stateTabs,.state-empty .top-actions{display:none!important}
.state-missing{border:1px solid var(--bs-primary-border-subtle);background:var(--surface)}

.state-switch{flex:0 0 180px;min-width:150px}
@media(max-width:600px){.state-switch{flex:1 0 100%}}
.state-party-filter{margin-bottom:10px}
.state-party-filter .form-select{min-height:44px}
.state-party-tabs .nav-link{border:1px solid var(--bs-primary-border-subtle);border-radius:999px;color:var(--brand-primary);font-weight:600;white-space:nowrap;min-height:40px;display:inline-flex;align-items:center}
.state-party-tabs .nav-link.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}
.state-skeleton{height:min(46vh,340px)}.state-skeleton-sm{height:120px}.state-skeleton .placeholder{display:block;height:100%;opacity:.12}

/* Popup dos mapas */
.chart-map-wrap{position:relative}
.map-tip{position:absolute;z-index:6;pointer-events:none;background:#1b2433;color:#fff;border-radius:8px;padding:6px 10px;font-size:13px;line-height:1.3;max-width:240px;box-shadow:0 6px 18px oklch(20% .03 260 / .3)}
.map-tip strong,.map-tip span{display:block}
.map-card{position:absolute;z-index:7;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;padding:12px 36px 12px 14px;box-shadow:0 10px 28px oklch(20% .03 260 / .25);max-width:250px;font-size:14px}
.map-card[hidden],.map-tip[hidden]{display:none}
.map-card-close{position:absolute;top:8px;right:8px;width:24px;height:24px}
.chart-map path[data-code]{cursor:pointer}
.chart-map path.map-sel{stroke:#f3cb54;stroke-width:2.2}
.chart-map path[data-code]:hover{stroke:#f3cb54;stroke-width:1.5}
@media(max-width:700px){.panorama-cell:nth-child(2){order:-1}}

/* Manchete e duelo */
.duel-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:16px 18px;margin-bottom:14px}
.duel-headline{font-size:20px;font-weight:700;line-height:1.25;margin:0 0 12px;color:var(--ink)}
.duel-sides{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.duel-side{display:flex;flex-direction:column;min-width:0}
.duel-side.duel-right{text-align:right;align-items:flex-end}
.duel-name{font-weight:700;display:flex;align-items:center;gap:6px;min-width:0}
.duel-right .duel-name{flex-direction:row-reverse}
.duel-dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 1px oklch(26% .02 260 / .25)}
.duel-side strong{font-size:28px;line-height:1.1;margin-top:2px}
.duel-side small{color:var(--muted)}
.duel-bar{display:flex;gap:2px;height:12px;border-radius:999px;overflow:hidden;margin:12px 0 8px;background:#d9dde6}
.duel-bar i{display:block;min-width:2px}
.duel-diff{margin:0;color:var(--muted);font-size:14px}
@media(max-width:600px){.duel-headline{font-size:18px}.duel-side strong{font-size:24px}}
.map-modes{display:flex;flex-wrap:wrap;gap:6px}.map-modes .btn{min-height:40px}

.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:14px;margin:0 0 12px;color:var(--muted)}
.crumb-link{background:none;border:0;padding:6px 2px;color:var(--brand-primary);font-weight:600;text-decoration:underline;text-underline-offset:3px;min-height:36px}
.crumb-current{font-weight:700;color:var(--ink)}
.crumb-sep{color:var(--muted)}
.crumbs[hidden]{display:none}
