:root{--bg:#071525;--panel:#0d2238;--line:#27415a;--text:#f5f8fb;--muted:#9fb1c3}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100%}body{overflow-x:hidden}.wallboard{min-height:100vh;display:flex;flex-direction:column;padding:clamp(16px,2vw,32px);gap:18px}.wb-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}.eyebrow,.kicker,.section-title{font-size:.78rem;letter-spacing:.12em;color:var(--muted);font-weight:700}.wb-head h1{margin:2px 0 0;font-size:clamp(1.6rem,2.6vw,3rem)}.head-right{display:flex;align-items:center;gap:12px}.clock{font-size:clamp(1.2rem,2vw,2rem);font-variant-numeric:tabular-nums}.op{padding:7px 12px;border-radius:999px;font-weight:800}.op.normal{background:#198754}.op.contingencia{background:#ffc107;color:#111}.op.aguardando{background:#6c757d}.wb-main{flex:1;display:flex;flex-direction:column;gap:14px}.hero{display:flex;justify-content:space-between;align-items:end}.hero h2{font-size:clamp(2rem,4.4vw,5rem);margin:.15em 0}.notice{color:var(--muted);font-size:clamp(.9rem,1.2vw,1.2rem)}.total{text-align:right}.total strong{display:block;font-size:clamp(3rem,6vw,7rem);line-height:.9}.total span{color:var(--muted)}.wb-progress{height:12px;background:#19324a}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.metrics>div,.candidates,.chart-box{background:var(--panel);border:1px solid var(--line);border-radius:16px}.metrics>div{padding:12px 14px}.metrics span{display:block;color:var(--muted);font-size:.78rem}.metrics strong{font-size:clamp(1.05rem,1.7vw,1.8rem)}.content{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:14px;min-height:360px}.candidates,.chart-box{padding:16px}.candidate-list{margin-top:8px;display:grid;gap:8px}.candidate{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding:10px 0}.candidate:first-child{border-top:0}.num{font-size:1.3rem;font-weight:800}.name{font-size:clamp(1rem,1.5vw,1.6rem);font-weight:800}.party,.empty{color:var(--muted)}.votes{text-align:right}.votes strong{font-size:clamp(1.1rem,1.7vw,1.8rem);display:block}.chart-box{min-height:340px}.chart-box canvas{max-height:300px}footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:.82rem}.foot-right{display:flex;gap:16px;white-space:nowrap}@media(max-width:900px){.wb-head{gap:10px;flex-wrap:wrap}.head-right{gap:6px;flex-wrap:wrap;justify-content:flex-end}.head-right .btn{display:inline-flex;font-size:.72rem;padding:.3rem .5rem}.metrics{grid-template-columns:repeat(3,1fr)}.content{grid-template-columns:1fr}.chart-box{display:none}.hero{align-items:center}.total strong{font-size:3rem}}@media(max-width:600px){.wallboard{padding:12px}.wb-head{align-items:flex-start}.clock{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.hero h2{font-size:2rem}.total strong{font-size:2.2rem}footer{display:block}.foot-right{margin-top:6px;flex-wrap:wrap}}

.developer-credit{font-size:.68rem;color:var(--muted);margin-top:2px;letter-spacing:.04em}.online-pill{padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:#dbe6ef;font-size:.82rem;font-weight:700;white-space:nowrap}.fav-wallboard .content{grid-template-columns:1fr}.fav-wallboard .candidates{min-height:360px}.fav-wallboard .favorite-focus{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:20px;padding:clamp(18px,2vw,30px);border-top:1px solid var(--line)}.fav-wallboard .favorite-focus:first-child{border-top:0}.fav-wallboard .favorite-focus .num{font-size:clamp(1.8rem,3vw,3.2rem)}.fav-wallboard .favorite-focus .name{font-size:clamp(1.4rem,2.5vw,2.8rem)}.fav-wallboard .favorite-focus .votes strong{font-size:clamp(1.6rem,3vw,3.4rem)}.fav-wallboard .favorite-focus .votes span{font-size:clamp(1rem,1.7vw,1.7rem);color:var(--muted)}@media(max-width:700px){.online-pill{display:none}.developer-credit{font-size:.62rem}.fav-wallboard .favorite-focus{grid-template-columns:60px 1fr}.fav-wallboard .favorite-focus .votes{grid-column:2;text-align:left}}

/* V1.7 R2 - Telão 100vh compacto */
html,body{height:100%}.wallboard{height:100vh;min-height:0;overflow:hidden;padding:clamp(8px,1.15vw,18px);gap:8px}.wb-head{padding-bottom:6px}.developer-credit{font-size:.54rem;line-height:1;margin-top:0;letter-spacing:.025em}.wb-head h1{margin:0;font-size:clamp(1.35rem,2vw,2.35rem);line-height:1}.head-right{gap:8px}.online-pill,.op{padding:5px 9px}.wb-main{gap:7px;min-height:0}.hero h2{font-size:clamp(1.7rem,3.4vw,4rem);margin:.05em 0;line-height:1}.notice{font-size:clamp(.78rem,1vw,1rem);line-height:1.1}.total strong{font-size:clamp(2.5rem,5vw,5.8rem)}.wb-progress{height:8px}.metrics{gap:6px}.metrics>div{padding:7px 9px}.metrics span{font-size:.66rem}.metrics strong{font-size:clamp(.95rem,1.35vw,1.45rem)}.content{gap:8px;min-height:0;flex:1;overflow:hidden}.candidates,.chart-box{padding:9px;border-radius:12px;min-height:0}.candidate-list{margin-top:3px;gap:2px}.candidate{padding:5px 0;gap:8px;grid-template-columns:54px 1fr auto}.num{font-size:1.05rem}.name{font-size:clamp(.9rem,1.2vw,1.25rem)}.votes strong{font-size:clamp(1rem,1.35vw,1.4rem)}.chart-box{min-height:0}.chart-box canvas{max-height:min(25vh,220px)}footer{padding-top:5px;font-size:.7rem;line-height:1.1}.fav-wallboard .candidates{min-height:0;overflow:hidden}.fav-wallboard .favorite-focus{grid-template-columns:70px minmax(0,1fr) auto;gap:10px;padding:clamp(7px,.8vw,12px)}.fav-wallboard .favorite-focus .num{font-size:clamp(1.25rem,2vw,2rem)}.fav-wallboard .favorite-focus .name{font-size:clamp(1.05rem,1.75vw,1.8rem)}.fav-wallboard .favorite-focus .votes strong{font-size:clamp(1.2rem,2vw,2.1rem)}.fav-wallboard .favorite-focus .votes span{font-size:clamp(.8rem,1.1vw,1.1rem)}
@media(max-height:800px) and (min-width:901px){.wallboard{padding:7px 12px;gap:5px}.eyebrow,.kicker,.section-title{font-size:.64rem}.wb-head h1{font-size:1.3rem}.clock{font-size:1.1rem}.hero h2{font-size:2rem}.total strong{font-size:2.8rem}.metrics>div{padding:5px 7px}.candidate{padding:3px 0}.chart-box canvas{max-height:150px}footer{font-size:.62rem}.fav-wallboard .favorite-focus{padding:5px 8px}}
@media(max-width:900px){.wallboard{height:auto;min-height:100vh;overflow:visible}}

/* V3.0 R2 — Telão Mapa PE: proporção 16:9 e painel equilibrado */
body.tv-body.map-tv-page{height:100dvh;min-height:100vh;overflow:hidden;display:grid;grid-template-rows:auto 1fr;background:#07111f}
.map-tv-page .tv-header{min-height:82px;padding:.65rem 1rem;gap:1rem}
.map-tv-page .tv-header h1{font-size:clamp(1.25rem,2.1vw,2rem);margin:.12rem 0 0;line-height:1.05}
.map-tv-page .tv-main{min-height:0;height:100%;padding:.5rem .75rem .75rem!important}
.map-tv-page .map-tv-grid{display:grid;grid-template-columns:minmax(0,3.15fr) minmax(250px,.85fr);gap:.6rem;height:100%;min-height:0}
.map-tv-page .map-tv-map-panel,.map-tv-page .map-tv-side-panel{min-width:0;min-height:0}
.map-tv-page .tv-panel{height:100%;min-height:0;padding:.7rem;overflow:hidden}
.map-tv-page .pe-map-wrap.pe-map-tv{height:100%;min-height:0;display:flex;align-items:center;justify-content:center;background:#f8fafc}
.map-tv-page .pe-map-tv .pe-map{width:100%;height:100%;min-height:0;max-height:100%;display:block}
.map-tv-page .map-tv-side-panel .tv-panel{display:flex;flex-direction:column}
.map-tv-page .map-tv-side-panel h2{font-size:clamp(1rem,1.4vw,1.35rem);margin:.2rem 0 .45rem}
.map-tv-page .map-tv-side-panel .status-row{padding:.42rem 0;font-size:clamp(.78rem,1vw,.95rem)}
.map-tv-page .map-tv-side-panel .map-legend{gap:.34rem;font-size:clamp(.64rem,.8vw,.78rem)}
.map-tv-page .map-tv-side-panel .map-legend i{width:12px;height:12px;flex:0 0 12px}
.map-tv-page .map-tv-note{margin-top:auto!important;padding-top:.55rem;border-top:1px solid rgba(255,255,255,.08);font-size:clamp(.62rem,.75vw,.72rem)!important;line-height:1.3}
@media (max-width:991.98px){body.tv-body.map-tv-page{overflow:auto;display:block}.map-tv-page .tv-main{height:auto}.map-tv-page .map-tv-grid{grid-template-columns:1fr;height:auto}.map-tv-page .pe-map-wrap.pe-map-tv{height:min(64vh,620px);min-height:360px}.map-tv-page .map-tv-side-panel .tv-panel{height:auto}.map-tv-page .map-legend-vertical{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:575.98px){.map-tv-page .tv-header{align-items:flex-start;flex-wrap:wrap}.map-tv-page .tv-header>div:last-child{width:100%;justify-content:flex-start;flex-wrap:wrap}.map-tv-page .pe-map-wrap.pe-map-tv{height:52vh;min-height:310px}.map-tv-page .map-legend-vertical{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V3.0 R3 — Telão Mapa PE para TV/Projetor: mapa protagonista em uma tela */
body.tv-body.map-tv-page{grid-template-rows:58px minmax(0,1fr)}
.map-tv-page .tv-header{min-height:58px;height:58px;padding:.32rem .7rem;border-bottom:1px solid rgba(255,255,255,.10);align-items:center}
.map-tv-page .tv-header .eyebrow{font-size:.56rem;line-height:1;letter-spacing:.10em}
.map-tv-page .tv-header .developer-credit-app{font-size:.45rem;margin:.06rem 0 0;line-height:1}
.map-tv-page .tv-header h1{font-size:clamp(.95rem,1.35vw,1.38rem);margin:.05rem 0 0;line-height:1;font-weight:750}
.map-tv-page .tv-header>div:last-child{gap:.35rem!important;flex-wrap:nowrap}
.map-tv-page .tv-header .badge,.map-tv-page .tv-header .btn{font-size:.66rem;min-height:29px;padding:.26rem .48rem;white-space:nowrap}
.map-tv-page .tv-main{padding:.32rem .42rem .42rem!important;overflow:hidden}
.map-tv-page .map-tv-grid{grid-template-columns:minmax(0,5.2fr) minmax(205px,1fr);gap:.38rem}
.map-tv-page .tv-panel{padding:.28rem;border-radius:10px}
.map-tv-page .map-tv-map-panel .tv-panel{padding:.18rem}
.map-tv-page .pe-map-wrap.pe-map-tv{border-radius:8px;border-width:1px}
.map-tv-page .pe-map-tv .pe-map{width:100%;height:100%;max-width:none;max-height:none}
.map-tv-page .map-tv-side-panel .tv-panel{padding:.5rem .55rem}
.map-tv-page .map-tv-side-panel .text-secondary.small{font-size:.54rem;letter-spacing:.08em;line-height:1}
.map-tv-page .map-tv-side-panel h2{font-size:clamp(.82rem,1vw,1rem);margin:.12rem 0 .25rem;line-height:1.05}
.map-tv-page .map-tv-side-panel .status-row{padding:.28rem 0;font-size:clamp(.66rem,.78vw,.78rem);line-height:1.05}
.map-tv-page .map-tv-side-panel .status-row strong{font-size:clamp(.72rem,.9vw,.9rem)}
.map-tv-page .map-tv-side-panel .map-legend-vertical{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.26rem .3rem;margin-top:.42rem!important;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.08)}
.map-tv-page .map-tv-side-panel .map-legend span{gap:.18rem;font-size:clamp(.53rem,.62vw,.64rem);line-height:1.05;white-space:nowrap}
.map-tv-page .map-tv-side-panel .map-legend i{width:10px;height:10px;flex-basis:10px;border-radius:2px}
.map-tv-page .map-tv-note{padding-top:.35rem;font-size:clamp(.48rem,.56vw,.58rem)!important;line-height:1.15}
@media (min-width:1200px) and (min-aspect-ratio:16/10){.map-tv-page .map-tv-grid{grid-template-columns:minmax(0,5.8fr) minmax(210px,.92fr)}}
@media (min-width:1600px){body.tv-body.map-tv-page{grid-template-rows:64px minmax(0,1fr)}.map-tv-page .tv-header{height:64px;min-height:64px}.map-tv-page .tv-header h1{font-size:1.42rem}.map-tv-page .map-tv-grid{grid-template-columns:minmax(0,6fr) minmax(225px,.9fr)}}
@media (max-width:991.98px){body.tv-body.map-tv-page{display:block;overflow:auto}.map-tv-page .tv-header{height:auto;min-height:58px}.map-tv-page .tv-main{overflow:visible}.map-tv-page .map-tv-grid{grid-template-columns:1fr;height:auto}.map-tv-page .pe-map-wrap.pe-map-tv{height:min(68vh,680px);min-height:390px}.map-tv-page .map-tv-side-panel .map-legend-vertical{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:575.98px){.map-tv-page .tv-header>div:last-child{flex-wrap:wrap}.map-tv-page .pe-map-wrap.pe-map-tv{height:54vh;min-height:320px}.map-tv-page .map-tv-side-panel .map-legend-vertical{grid-template-columns:repeat(2,minmax(0,1fr))}}
