/* Atlas Eleitoral — layout padrão de resultados (compartilhado pelas páginas) */
:root{
  --bg:#f2f2f2;--card:#fff;--ink:#222;--muted:#6f6f6f;--line:#e4e4e4;--soft:#f7f7f7;
  --accent:#f0b400;--accent-soft:#fff4cc;--accent-ink:#7a5b00;
  --office:#5d8a1e;--valid:#9cbc3a;--blank:#6a8aa8;--null:#e3cdf0;--abst:#dcdcdc;
  --red:#d7263d;--red-soft:#f9d9dd;--green:#1f9346;--green-soft:#d6efdd;--neutral:#5b7083;--neutral-soft:#e1e7ec;
  --cand-a:var(--red);--cand-a-soft:var(--red-soft);--cand-b:var(--green);--cand-b-soft:var(--green-soft);
  --alert:#c75b00;--alert-soft:#fdebd3;--alert-ink:#8a3f00;
  --shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Roboto,"Segoe UI",Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
.muted{color:#9a9a9a}
/* cabeçalho */
.site-header{background:#fff;position:sticky;top:0;z-index:20;box-shadow:0 1px 0 var(--line)}
.hdr-strip{height:5px;background:var(--accent)}
.hdr-main{display:flex;align-items:center;gap:26px;padding:0 24px;min-height:62px;max-width:1600px;margin:auto}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{width:30px;height:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;align-items:end}
.brand-mark i{display:block;border-radius:2px 2px 0 0}
.brand-mark i:nth-child(1){height:45%;background:var(--accent)}
.brand-mark i:nth-child(2){height:75%;background:var(--office)}
.brand-mark i:nth-child(3){height:100%;background:var(--ink)}
.brand strong{display:block;font-size:17px;font-weight:900;letter-spacing:-.02em;line-height:1}
.brand small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.election-select{display:flex;align-items:center;gap:6px;font-size:16px;color:#444;white-space:nowrap}
.election-select select{border:0;background:transparent;font-weight:700;font-size:16px;color:var(--ink);cursor:pointer;padding:4px 2px}
.unofficial{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.access-counter{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.access-counter b{color:var(--ink);margin-left:3px}
.main-nav{margin-left:auto;display:flex;gap:4px;align-self:stretch}
.main-nav a{display:flex;align-items:center;padding:0 18px;text-decoration:none;color:#333;font-size:14px;border-bottom:4px solid transparent;white-space:nowrap}
.main-nav a:hover{background:var(--soft)}
.main-nav a.active{font-weight:700;border-bottom-color:var(--accent)}
/* barra de local e turno */
.subbar{background:#fafafa;border-bottom:1px solid var(--line);box-shadow:0 2px 6px rgba(0,0,0,.05)}
.subbar-inner{max-width:1600px;margin:auto;padding:10px 24px;display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap}
.loc-select{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 10px;box-shadow:var(--shadow);min-width:0}
.loc-select svg{flex:none}
.loc-select select{border:0;background:transparent;font-weight:500;font-size:15px;padding:5px 2px;max-width:280px;cursor:pointer;min-width:0}
.loc-select .sep{width:1px;height:22px;background:var(--line)}
.turn-toggle{display:flex;flex-direction:column;align-items:center;gap:3px}
.turn-toggle>span{font-size:13px;font-weight:500}
.seg{display:flex;border:1px solid #cfcfcf;border-radius:4px;overflow:hidden;background:#fff}
.seg button{border:0;background:#fff;padding:5px 12px;font-weight:700;cursor:pointer;font-size:13px}
.seg button+button{border-left:1px solid #cfcfcf}
.seg button.active{background:var(--accent)}
.compare-pill{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;padding-bottom:6px}
.compare-pill b{background:var(--accent);padding:4px 10px;border-radius:4px;font-size:12px}
/* página */
.page{max-width:1600px;margin:auto;padding:16px 24px 40px}
.office-tag{display:inline-block;background:var(--office);color:#fff;font-weight:900;font-size:14px;padding:8px 12px;border-radius:3px;margin-bottom:14px;text-transform:uppercase;box-shadow:var(--shadow)}
.results-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;align-items:start}
.sidebar{display:grid;gap:12px}
.side-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 12px}
.side-card h2{font-size:19px;font-weight:700;margin:0 0 4px;color:#333}
.side-card .upd{font-size:10px;color:var(--muted);margin:0 0 10px}
.kv{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;font-size:13px}
.kv b{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.kv small{display:block;color:var(--muted);font-size:12px}
.bar{display:flex;height:14px;border-radius:2px;overflow:hidden;background:var(--abst)}
.bar.big{height:10px;margin:8px 0}
.bar i{display:block;height:100%}
.bar .valid,.bar .att{background:var(--valid)}.bar .blank{background:var(--blank)}.bar .null{background:var(--null)}.bar .abs{background:var(--abst)}
.bar-labels{display:flex;justify-content:space-between;font-size:11px;font-weight:700;margin-top:3px}
.swatch{width:14px;height:14px;display:inline-block;border-radius:2px;margin-right:8px;vertical-align:-2px;flex:none}
.swatch.valid{background:var(--valid)}.swatch.blank{background:var(--blank)}.swatch.null{background:var(--null)}
.leg-row{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:0;padding:7px 0;font-size:13px}
.leg-row b{font-variant-numeric:tabular-nums}
.leg-row small{display:block;color:var(--muted);font-size:12px}
.total-line{font-size:13px;color:#555;margin:0}
.total-line b{font-size:15px;color:var(--ink)}
.side-note{font-size:12px;color:var(--muted);line-height:1.5;margin:6px 0 0}
.cmp-head,.cmp-row{display:grid;grid-template-columns:1fr 74px 74px;gap:6px;align-items:baseline;padding:6px 0;font-size:13px}
.cmp-head{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);padding-top:0}
.cmp-head b,.cmp-row b{text-align:right;font-variant-numeric:tabular-nums}
.cmp-row small{display:block;color:var(--muted);font-size:11px;font-weight:400}
.turn-bar{margin:6px 0 10px}
.turn-bar small{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:3px}
/* coluna principal */
.results-main{min-width:0}
.main-head{display:flex;align-items:flex-end;gap:14px;margin:0 0 14px;flex-wrap:wrap}
.main-tab{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--accent-ink);padding:6px 12px 10px;border-bottom:2px solid var(--accent);text-transform:uppercase}
.main-head .scope{font-size:20px;font-weight:700;padding-bottom:6px}
.main-head .meta{margin-left:auto;font-size:11px;color:var(--muted);display:flex;gap:10px;align-items:center;padding-bottom:6px}
.src-btn{background:var(--accent);color:#222;text-decoration:none;font-weight:700;font-size:11px;padding:6px 10px;border-radius:4px}
.src-btn.secondary{background:#fff;border:1px solid var(--line)}
/* cartões de candidato */
.cand-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-bottom:14px}
.cand-card{--c:var(--neutral);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 22px;border:2px solid transparent;min-width:0}
.cand-card.winner{border-color:var(--accent)}
.cc-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.cc-id{min-width:0}
.cc-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:30px;color:#fff;background:var(--c);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--accent)}
.cand-card:not(.winner) .cc-avatar{box-shadow:0 0 0 3px #fff,0 0 0 5px #e3e3e3}
.cc-party{font-size:11px;font-weight:700;margin:14px 0 2px;color:#444}
.cc-name{font-size:21px;font-weight:900;margin:0 0 10px;text-transform:uppercase;letter-spacing:-.01em;line-height:1.15;overflow-wrap:anywhere}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 12px;border-radius:12px;background:#e9e9e9;color:#333}
.badge.win{background:var(--valid);color:#fff}
.badge.soft{background:var(--accent-soft);color:var(--accent-ink)}
.cc-result{text-align:right;flex:none}
.cc-pct{display:block;font-size:30px;font-weight:900;color:var(--c);line-height:1}
.cc-votes{display:block;font-size:13px;color:#555;margin-top:4px}
.cc-result small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.cand-card.small{padding:14px 16px}
.cand-card.small .cc-avatar{width:48px;height:48px;font-size:18px;box-shadow:0 0 0 2px #fff,0 0 0 4px #e3e3e3}
.cand-card.small .cc-party{margin-top:10px}
.cand-card.small .cc-name{font-size:14px;margin-bottom:0}
.cand-card.small .cc-pct{font-size:20px}
.rest-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 10px}
.cand-rest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.cc-compare{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.vote-line{display:grid;grid-template-columns:62px 1fr 104px 52px;gap:10px;align-items:center;margin:6px 0;font-size:12px;color:var(--muted)}
.vote-line b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;font-size:13px}
.vote-line em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums}
.vbar{height:12px;background:#efefef;border-radius:2px;overflow:hidden}
.vbar i{display:block;height:100%;background:var(--c);opacity:.45}
.vote-line.t2 .vbar i{opacity:1}
.cc-gain{margin:10px 0 0;font-size:13px;color:#555}
.cc-gain strong{font-size:18px;color:var(--c);margin-right:4px}
/* avisos, rodapé */
.official-notice{border-left:4px solid var(--accent);background:var(--accent-soft);padding:12px 16px;color:#5a4a1a;font-size:13px;line-height:1.55;border-radius:4px;margin:0 0 14px}
.no-data{color:var(--muted);padding:40px 0;text-align:center}
footer{max-width:1600px;margin:0 auto;padding:22px 24px 30px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}
#error-toast{position:fixed;right:24px;bottom:24px;background:#8a1f1f;color:#fff;padding:14px 18px;max-width:360px;box-shadow:0 6px 20px rgba(0,0,0,.2);z-index:40;border-radius:6px}
.integrity{margin-top:34px;border-top:1px solid var(--line);padding-top:24px;scroll-margin-top:24px}
.integrity-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}
.integrity-head h2{margin:8px 0 4px;font-size:24px}.integrity-head p,.import-card p{margin:0;color:var(--muted);font-size:13px}
.action-btn{border:0;border-radius:5px;background:var(--accent);color:#222;font-weight:800;padding:10px 14px;cursor:pointer}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px}
.check-card,.data-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:15px;border-left:4px solid #8b8b8b}.check-card.ok{border-left-color:#198754}.check-card.alerta{border-left-color:#b02a37}.check-card.informacao{border-left-color:#6c757d}
.check-card span,.status{display:inline-block;border-radius:999px;background:#ececec;padding:3px 8px;font-size:10px;font-weight:800;text-transform:uppercase}.status.ok{background:#d1e7dd;color:#0f5132}.status.alerta{background:#f8d7da;color:#842029}.status.informacao{background:#e2e3e5;color:#41464b}
.check-card h3,.data-card h3{margin:7px 0 4px;font-size:16px}.check-card p{margin:0;color:var(--muted);font-size:12px}
.integrity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.data-card{border-left:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-size:10px;text-transform:uppercase}
.import-card{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.import-card form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.upload-result{width:100%;font-weight:700}
.is-loading .results-layout,.is-loading #dash-body{opacity:.5;transition:opacity .2s}
@media(max-width:1100px){.cand-grid{grid-template-columns:1fr}}
@media(max-width:980px){.results-layout{grid-template-columns:1fr}.sidebar{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.unofficial{display:none}.integrity-grid{grid-template-columns:1fr}}
@media(max-width:720px){.hdr-main{flex-wrap:wrap;gap:8px 16px;padding:8px 16px}.main-nav{margin-left:0;width:100%;overflow-x:auto}.main-nav a{padding:10px 12px}.subbar-inner,.page{padding-left:16px;padding-right:16px}.loc-select{flex-wrap:wrap}.loc-select select{max-width:100%}.cc-top{flex-direction:column}.cc-result{text-align:left}.vote-line{grid-template-columns:52px 1fr 92px 46px;gap:6px}.main-head .meta{margin-left:0}}
