/* Layout: header band with the Kids logo, then map stage (left) + data panel (right); stacks on phones. */
[hidden]{display:none!important}
:root{
  --bg:#F3F6FA; --surface:#FFFFFF; --ink:#1F2D3D; --muted:#5B6B7E; --line:#DCE3EC;
  --accent:#1067B0; --accent-ink:#FFFFFF; --sun:#F2C230; --berry:#D3303C;
  --map-sea:#E8F0F7; --halo:#FFFFFF; --dim:0.45;
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#111A26; --surface:#18232F; --ink:#E7EDF4; --muted:#9CABBC; --line:#2B3949;
  --accent:#5AA6E6; --accent-ink:#0B1520; --map-sea:#162130; --halo:#0F1823; --dim:0.4; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#111A26; --surface:#18232F; --ink:#E7EDF4; --muted:#9CABBC; --line:#2B3949;
  --accent:#5AA6E6; --accent-ink:#0B1520; --map-sea:#162130; --halo:#0F1823; --dim:0.4; color-scheme:dark}

html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 16px}
h1,h2,h3{font-family:var(--font-display);line-height:1.1;text-wrap:balance;margin:0}

.topo{padding-block:14px 10px}
.topo-in{display:flex;align-items:center;gap:14px;max-width:1400px;margin:0 auto}
.marca{background:#fff;border-radius:12px;padding:4px 6px;width:96px;height:auto;flex:none}
.topo-txt{min-width:0}
.topo h1{font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:800}
.topo p{margin:0;color:var(--muted);font-size:.95rem}
.credito{margin-left:auto;flex:none;display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:5px 14px 5px 6px;border:1px solid var(--line)}
.credito img{width:44px;height:auto;display:block}
.credito-txt{display:grid;line-height:1.25;font-size:.85rem;color:#4a5260}
.credito-txt b{font-family:var(--font-display);font-weight:800;color:#2b3138;font-size:1rem}
.fone{color:#1F2D3D;font-weight:700;text-decoration:none;user-select:all}
.fone:hover{text-decoration:underline}
@media (max-width:640px){.topo-in{flex-wrap:wrap}.marca{width:72px}.topo-txt{flex:1 1 180px}.credito{margin-left:0}}

.palco{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;max-width:1400px;margin:0 auto;align-items:start}
@media (max-width:900px){.palco{grid-template-columns:1fr}}

.mapa-box{position:relative;background:var(--map-sea);border-radius:var(--r);border:1px solid var(--line);overflow:hidden;min-width:0}
#mapa{display:block;width:100%;height:auto;aspect-ratio:577/484;max-height:78vh;touch-action:manipulation}
.ajuda{position:absolute;left:12px;bottom:8px;margin:0;font-size:.8rem;color:var(--muted);pointer-events:none}

/* map layers */
.mun{stroke:rgba(255,255,255,.75);stroke-width:.35;transition:opacity .28s ease,filter .28s ease}
.mun.sem-lista{opacity:.9}
.borda{fill:none;stroke:#2c3440;stroke-width:.9;pointer-events:none;transition:opacity .28s}
.alvo{fill:transparent;cursor:pointer;outline:none}
.alvo:focus-visible{stroke:var(--accent);stroke-width:2.2}
.num{font-family:var(--font-display);font-weight:800;fill:#1F2D3D;paint-order:stroke;stroke:#fff;stroke-width:2.2;stroke-opacity:.75;
  text-anchor:middle;dominant-baseline:central;pointer-events:none;transition:opacity .25s}
.rot{font-family:var(--font-body);font-weight:700;fill:#141c26;paint-order:stroke;stroke:#fff;stroke-width:.45;stroke-opacity:.9;
  text-anchor:middle;dominant-baseline:central;pointer-events:none;transition:opacity .25s}
.rot.inf{font-style:italic;font-weight:600;fill:#4b5563}
.realce{fill:none;stroke:#fff;stroke-width:1.4;filter:url(#brilho);pointer-events:none}
.pal-moldura{fill:none;stroke:var(--muted);stroke-width:.6;stroke-dasharray:3 2}
.pal-txt{font-family:var(--font-body);font-size:4px;fill:var(--muted);font-style:italic}

/* hover in overview: lit region vs dimmed rest */
#mapa.passando .mun{opacity:.3;filter:saturate(.45)}
#mapa.passando .mun.aceso{opacity:1;filter:saturate(1.15) brightness(1.06)}
#mapa.passando .num{opacity:.35}
/* region view */
#mapa.na-regiao .mun{opacity:0;pointer-events:none}
#mapa.na-regiao .mun.da-regiao{opacity:1}
#mapa.na-regiao .borda{opacity:0}
#mapa.na-regiao .num,#mapa.na-regiao .alvo{display:none}
#mapa.foco-campo .mun.da-regiao{opacity:var(--dim);filter:saturate(.4)}
#mapa.foco-campo .mun.da-regiao.aceso{opacity:1;filter:saturate(1.2) brightness(1.05)}
#mapa.foco-campo .rot{opacity:.55}
#mapa.foco-campo .rot.aceso{opacity:1}

.dica{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);font-weight:700;font-size:.85rem;
  padding:4px 10px;border-radius:8px;white-space:nowrap;transform:translate(-50%,calc(-100% - 12px))}

/* panel */
.painel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.voltar{align-self:flex-start;background:none;border:0;color:var(--accent);font:700 .9rem var(--font-body);cursor:pointer;padding:4px 0}
.voltar:hover{text-decoration:underline}
.cab{display:flex;gap:12px;align-items:center}
.pastilha{flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font:800 1.6rem var(--font-display);color:#1F2D3D;border:2px solid rgba(0,0,0,.12)}
.cab h2{font-size:1.55rem}
.cab small{display:block;color:var(--muted);font:600 .82rem var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.dados{display:grid;gap:10px;margin:0}
.dado{display:grid;gap:1px}
.dado dt{font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.dado dd{margin:0;font-size:1rem;overflow-wrap:anywhere}
.vazio{color:var(--muted);font-style:italic}
.evento{display:flex;gap:10px;align-items:center}
.cal{flex:none;width:46px;border-radius:9px;overflow:hidden;text-align:center;border:1.5px solid var(--line);background:var(--surface)}
.cal b{display:block;background:var(--berry);color:#fff;font-size:.66rem;letter-spacing:.06em;padding:1px 0}
.cal span{display:block;font:800 1.2rem/1.5 var(--font-display)}
.linha-admin{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.btn,.btn-sec{font:700 .9rem var(--font-body);border-radius:10px;padding:8px 16px;cursor:pointer;border:1.5px solid var(--accent)}
.btn{background:var(--accent);color:var(--accent-ink)}
.btn-sec{background:transparent;color:var(--accent)}
.btn:focus-visible,.btn-sec:focus-visible,.voltar:focus-visible,.item:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.logado{font-size:.8rem;color:var(--muted)}

.lista-tit{font-size:1.1rem;display:flex;justify-content:space-between;align-items:baseline}
.lista-tit span{font:600 .8rem var(--font-body);color:var(--muted)}
.lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media (max-width:420px){.lista{grid-template-columns:1fr}}
.item{width:100%;text-align:left;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:7px 10px;
  font:600 .9rem var(--font-body);color:var(--ink);cursor:pointer;display:flex;gap:8px;align-items:center}
.item:hover,.item.ativo{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.item i{flex:none;width:12px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.25)}
.item em{margin-left:auto;font-style:normal;font-size:.72rem;color:var(--muted)}
.lista-reg{grid-template-columns:1fr}
.intro{margin:0;color:var(--muted)}

/* edit form */
.form{display:grid;gap:10px}
.form label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.form input,.form textarea,.modal select,.modal input{font:1rem var(--font-body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;width:100%;box-sizing:border-box}
.form select{font:1rem var(--font-body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;width:100%}
.form textarea{min-height:76px;resize:vertical}
.par{display:grid;grid-template-columns:150px 1fr;gap:8px}
@media (max-width:420px){.par{grid-template-columns:1fr}}
.chk{display:flex;gap:8px;align-items:center;text-transform:none!important;letter-spacing:0!important;font-size:.95rem!important;color:var(--ink)!important}
.chk input{width:auto}
.toast{font-size:.85rem;font-weight:700;color:#1b7a3a}

.modal{position:fixed;inset:0;background:rgba(10,18,28,.55);display:grid;place-items:center;z-index:20;padding:16px}
.modal-caixa{background:var(--surface);border-radius:var(--r);padding:22px;width:min(380px,100%);display:grid;gap:8px;box-sizing:border-box}
.modal-caixa h2{font-size:1.5rem}
.modal-sub{margin:0 0 6px;color:var(--muted)}
.modal label{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.erro{color:var(--berry);font-weight:700;margin:0}
.nota-proto{font-size:.8rem;color:var(--muted);background:var(--bg);border-radius:8px;padding:8px;margin:4px 0}
.acoes{display:flex;gap:8px;justify-content:flex-end}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

.grupo-ex{display:grid;gap:8px}
.lista-ex{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.lista-ex li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:6px 6px 6px 10px}
.lista-ex em{font-style:normal;font-size:.75rem;color:var(--muted);margin-left:6px}
.btn-mini{padding:4px 10px;font-size:.8rem}
.dado dd a{color:var(--accent)}

/* banners: coordinators' mural (panel) and owner's ad row (below the stage) */
.bloco-mural{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.mural{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ban{position:relative;margin:0;border-radius:12px;overflow:hidden;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.ban img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;max-width:100%}
.ban-ver{display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%}
.ban figcaption{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 10px;font-weight:700;font-size:.88rem}
.ban figcaption span{min-width:0;overflow-wrap:anywhere}
.ban-btn{flex:none;background:var(--sun);color:#1F2D3D;font-weight:800;text-decoration:none;border-radius:99px;padding:5px 12px;font-size:.82rem}
.ban-btn:hover{filter:brightness(1.06)}
.ban-ed{position:absolute;top:6px;right:6px;background:rgba(15,24,35,.78);color:#fff;border:0;border-radius:8px;padding:4px 10px;font:700 .78rem var(--font-body);cursor:pointer}
.vago{aspect-ratio:4/5;border:2px dashed var(--line);background:transparent;color:var(--muted);cursor:pointer;align-items:center;justify-content:center;font:700 .85rem var(--font-body)}
.vago b{font:800 1.6rem/1 var(--font-display);color:var(--accent)}
.vago small{font-weight:600;font-size:.75rem}
.vago:hover{border-color:var(--accent);color:var(--accent)}
.anuncios{max-width:1400px;margin:16px auto 0}
.an-tit{font-size:1.3rem;margin:0 0 10px}
.grade-an{display:grid;grid-template-columns:repeat(var(--qtd,4),minmax(0,1fr));gap:12px}
@media (max-width:1000px){.grade-an{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.grade-an{grid-template-columns:1fr}}
.bn-prev{width:min(100%,240px);justify-self:center;aspect-ratio:4/5;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.dica-form{margin:0;font-size:.78rem;color:var(--muted)}
.modal-caixa{max-height:calc(100vh - 32px);overflow:auto}

.rodape{max-width:1400px;margin:20px auto 0;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
.rodape-admin{background:none;border:0;color:var(--muted);font:600 .8rem var(--font-body);cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.rodape-admin:hover{color:var(--accent)}

.an-vazio{min-height:150px;border-radius:12px;background:color-mix(in srgb,var(--muted) 18%,var(--bg));border:1px solid var(--line)}
.grade-an .vago{aspect-ratio:auto;min-height:150px}

.pos{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pos span{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.pos button{font:700 .82rem var(--font-body);border:1.5px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:5px 10px;cursor:pointer}
.pos button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}

.visor{position:fixed;inset:0;z-index:30;background:rgba(8,12,20,.88);display:grid;place-items:center;gap:12px;padding:16px;align-content:center}
.visor img{max-width:min(100%,520px);max-height:80vh;border-radius:12px}
.visor button{font:700 .9rem var(--font-body);background:#fff;color:#1F2D3D;border:0;border-radius:99px;padding:8px 18px;cursor:pointer}

.marca-conv{width:78px;padding:4px}
.bloco-ev{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.sanfona{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--accent);color:var(--accent-ink);border:0;border-radius:10px;padding:10px 14px;font:700 1.02rem var(--font-display);cursor:pointer}
.sanfona b{font-size:1.3rem;line-height:1}
.sanfona:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.lista-deps{grid-template-columns:1fr 1fr}
.dep-ic{background:var(--berry)!important;border-radius:50% 50% 50% 0!important;transform:rotate(-45deg)}
.limite{margin:0;padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--sun) 25%,var(--surface));font-size:.88rem;font-weight:600}

.tr-area{font:12px/1.4 ui-monospace,Consolas,monospace;height:160px;width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:9px;padding:8px;background:var(--bg);color:var(--ink)}
.linha-admin .btn,.linha-admin .btn-sec{white-space:nowrap}
