/* Portal de Transparência — tela inicial (estados + municípios + mapa). Paleta herdada do site
   dos municípios (altamira/app/static/site.css): verde escuro, verde-menta, azul claro. */
:root{
  --navy:#0a403a;--navy-h:#006b3c;--menta:#00a859;--azul:#a9e3c6;
  --txt:#1e2a2a;--cinza:#5a6b66;--borda:#d6e3dd;--fundo:#f4f8f6;--branco:#fff;
  --cinza-mapa:#c4d1cb;--cinza-mapa-borda:#aab8b1;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);background:var(--fundo)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
a{color:var(--navy)}
.pular{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:8px 12px}.pular:focus{left:8px}

/* Cabeçalho / rodapé no padrão dos municípios */
.topo{background:var(--navy);color:#fff}
.topo .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding:14px 24px}
.marca{color:#fff;text-decoration:none;display:flex;align-items:center;gap:14px}
.marca .emblema{width:46px;height:46px;flex:none;border-radius:10px;background:linear-gradient(135deg,var(--menta),var(--navy-h));display:grid;place-items:center;font-weight:800;color:#fff;font-size:20px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.marca b{font-size:18px;font-weight:700;letter-spacing:.2px;display:block;line-height:1.1}
.marca span{font-size:13px;color:var(--azul);font-weight:600}
.topo nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.topo nav a{color:#fff;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.topo nav a:hover{color:var(--azul)}

main{padding:28px 0 48px}
.hero{text-align:center;margin:8px 0 22px}
.hero h1{font-size:30px;margin:0 0 8px;color:var(--navy)}
.hero p{color:var(--cinza);margin:0 auto;max-width:720px}

/* Palco do mapa: profundidade por sombra + relevo por estado no hover (sem tilt 3D, que
   quebrava o hit-test do ponteiro em alguns navegadores). */
.palco{position:relative;background:radial-gradient(120% 90% at 50% 8%,#ffffff 0%,#eef5f1 60%,#e4efe9 100%);
  border:1px solid var(--borda);border-radius:16px;padding:18px;margin:0 0 10px;
  min-height:560px;overflow:hidden}
.cena{position:relative;width:100%;height:560px}
.mapa-camada{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease,transform .5s ease}
.mapa-camada svg{width:100%;height:100%;max-height:540px;
  filter:drop-shadow(0 16px 20px rgba(10,64,58,.26))}
.mapa-camada[hidden]{display:none}
/* transição de saída/entrada */
.cena.indo .camada-brasil{opacity:0;transform:scale(.82) translateY(-10px)}
.camada-estado{opacity:0;transform:scale(1.05)}
.cena.no-estado .camada-estado{opacity:1;transform:scale(1)}

/* Estados no mapa do Brasil. Atendidos recebem a bandeira como fill (pattern, via JS); por isso o
   destaque de hover é por relevo (elevar + sombra + brilho), não por troca de cor. */
.camada-brasil path{fill:var(--menta);stroke:#fff;stroke-width:1.1;stroke-linejoin:round;
  transition:transform .18s ease,filter .18s ease;transform-box:fill-box;transform-origin:center}
.camada-brasil path.cinza{fill:var(--cinza-mapa);stroke:var(--cinza-mapa-borda)}
.camada-brasil path.cinza.lev{transform:translateY(-9px) scale(1.03);filter:drop-shadow(0 12px 12px rgba(10,64,58,.4)) brightness(1.04)}
.camada-brasil g.atendido{cursor:pointer;transition:transform .18s ease,filter .18s ease;
  transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 4px 5px rgba(10,64,58,.45))}
.camada-brasil g.atendido .uf-base{fill:var(--menta)}
.camada-brasil g.atendido .flag-fill{pointer-events:none}
.camada-brasil g.atendido.lev,.camada-brasil g.atendido:focus{
  transform:translateY(-12px) scale(1.05);
  filter:drop-shadow(0 16px 16px rgba(10,64,58,.55)) brightness(1.06);outline:none}

/* Municípios no mapa do estado (mesmo comportamento; atendidos recebem bandeira como fill). */
.camada-estado path{fill:#e3ece7;stroke:#fff;stroke-width:.7;stroke-linejoin:round;
  transition:transform .15s ease,filter .15s ease;transform-box:fill-box;transform-origin:center}
.camada-estado path.atendido{fill:var(--menta);cursor:pointer;filter:drop-shadow(0 3px 4px rgba(10,64,58,.4))}
.camada-estado path.atendido.lev,.camada-estado path.atendido:focus{
  transform:translateY(-8px) scale(1.07);
  filter:drop-shadow(0 12px 12px rgba(10,64,58,.5)) brightness(1.06);outline:none}

/* Barra de controle do palco */
.palco-barra{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:center;gap:12px;z-index:3}
.palco-barra[hidden]{display:none}
.voltar{display:inline-flex;align-items:center;gap:6px;background:var(--branco);color:var(--navy);
  border:1px solid var(--borda);border-radius:8px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.08)}
.voltar:hover{background:var(--navy);color:#fff}
.palco-titulo{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--navy);font-size:18px}
.palco-titulo img{height:26px;width:auto;border:1px solid var(--borda);border-radius:3px}
.dica{position:absolute;bottom:12px;left:0;right:0;text-align:center;color:var(--cinza);font-size:13px;z-index:2}
/* Tooltip simples que segue um alvo */
.mapa-tip{position:absolute;z-index:5;background:var(--navy);color:#fff;font-size:13px;font-weight:600;
  padding:5px 9px;border-radius:6px;pointer-events:none;opacity:0;transform:translate(-50%,-130%);
  transition:opacity .12s;white-space:nowrap}
.mapa-tip.on{opacity:1}

/* Listas: estados atendidos e municípios disponíveis */
.secao{margin:34px 0 0}
.secao h2{font-size:22px;color:var(--navy);margin:0 0 4px}
.secao .sub{color:var(--cinza);margin:0 0 14px}
.estados-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.estado-card{display:flex;align-items:center;gap:14px;background:var(--branco);border:1px solid var(--borda);
  border-top:3px solid var(--menta);border-radius:10px;padding:14px;text-align:left;cursor:pointer;font:inherit;color:var(--txt);width:100%}
.estado-card:hover{box-shadow:0 6px 18px rgba(10,64,58,.14);transform:translateY(-2px)}
.estado-card img{width:56px;height:38px;object-fit:cover;border:1px solid var(--borda);border-radius:4px;flex:none}
.estado-card .uf-emblema{width:56px;height:38px;flex:none;border-radius:4px;background:var(--menta);color:#fff;display:grid;place-items:center;font-weight:800}
.estado-card b{display:block;color:var(--navy);font-size:17px}
.estado-card small{color:var(--cinza)}

.munis-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.muni-card{display:flex;flex-direction:column;gap:6px;background:var(--branco);border:1px solid var(--borda);
  border-radius:10px;padding:16px;text-decoration:none;color:var(--txt)}
.muni-card:hover{box-shadow:0 6px 18px rgba(10,64,58,.14);transform:translateY(-2px);border-color:var(--menta)}
.muni-card .linha{display:flex;align-items:center;gap:10px}
.muni-card img{width:34px;height:24px;object-fit:cover;border:1px solid var(--borda);border-radius:3px;flex:none}
.muni-card b{color:var(--navy);font-size:18px}
.muni-card .uf{color:var(--cinza);font-size:13px}
.muni-card .ir{color:var(--navy-h);font-weight:600;font-size:14px}
.vazio{color:var(--cinza)}

.rodape{background:var(--navy);color:#dbe6f3;font-size:13px;padding:22px 0;margin-top:40px}
.rodape a{color:#fff}.rodape p{margin:4px 0}

@media (max-width:767px){
  .hero h1{font-size:24px}
  .cena,.palco{min-height:420px}.cena{height:420px}.mapa-camada svg{max-height:400px}
  .palco-titulo{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  .mapa-camada,.mapa-camada svg,.camada-brasil path,.camada-estado path,.estado-card,.muni-card{transition:none;transform:none}
}
