/* Tema Legendários (mesma linguagem do Geo Portal da Pista Superação): vidro escuro, Outfit fina, laranja LED */
:root{
  --lar:#e85e0c;--lar2:#ff7a2e;--pes:#f2a65a;--verm:#ff5a4f;--ok:#3ddc97;--amb:#ffc145;--az:#5ab8ff;
  --glass:rgba(24,27,36,.55);--vidro:rgba(22,24,32,.62);--borda-v:rgba(255,255,255,.10);--r:22px;
  --fc:"Outfit","Segoe UI",system-ui,-apple-system,sans-serif;
}
body{font-weight:300;letter-spacing:.005em}
b,strong{font-weight:500}
h1{font-weight:300;font-size:26px;letter-spacing:-.01em}
.sub{font-weight:300}

/* fundo de satélite atrás das telas de entrada */
#fundo{position:fixed;inset:0;z-index:0;filter:grayscale(.15) brightness(.62) contrast(1.05);pointer-events:none}
#fundo .leaflet-control-container{display:none}
.tela{z-index:1}
#cad,#esp,#bloq,#admLogin{background:linear-gradient(180deg,rgba(11,13,19,.10) 0%,rgba(11,13,19,.35) 45%,rgba(11,13,19,.85) 100%)}

/* marca */
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:46px;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.brand b{display:block;font-family:"Barlow Condensed","Outfit",sans-serif;font-weight:700;font-size:23px;letter-spacing:.03em;line-height:1}
.brand small{display:block;color:var(--mu);font-size:12.5px;margin-top:3px;font-weight:400}

/* cartão de entrada como folha de vidro */
.cx{display:flex;flex-direction:column;justify-content:flex-end;max-width:460px;padding:calc(env(safe-area-inset-top) + 18px) 14px calc(env(safe-area-inset-bottom) + 14px)}
.cx .brand{position:absolute;top:calc(env(safe-area-inset-top) + 16px);left:16px}
.cartao-in{background:rgba(22,24,32,.80);backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2);
  border:1px solid var(--borda-v);border-radius:28px;padding:18px 18px 20px}
.cartao-in h1{margin:2px 0 4px}
.cartao-in .sub{margin:0 0 16px;font-size:13.5px}
.grupo-in{border:1px solid var(--borda-v);border-radius:20px;background:rgba(255,255,255,.035);overflow:hidden}
.grupo-in .lin{display:flex;align-items:center;gap:10px;padding:4px 14px;border-top:1px solid var(--borda-v)}
.grupo-in .lin:first-child{border-top:0}
.grupo-in .lin span{flex:none;width:104px;font-size:13px;color:var(--mu);font-weight:400}
.grupo-in .lin .in{border:0;background:none;padding:13px 0;text-align:right;font-size:16px;font-weight:300;border-radius:0}
.grupo-in .lin .in::placeholder{color:var(--dim)}
.grupo-in .lin .in:focus{border:0}
label{text-transform:none;letter-spacing:.01em;font-size:13px;font-weight:400;color:var(--mu)}
.in{background:rgba(255,255,255,.04);border:1px solid var(--borda-v);border-radius:16px;font-weight:300}
.in:focus{border-color:rgba(232,94,12,.7)}

/* botão principal LED */
.btn{height:52px;padding:0 16px;border-radius:18px;font-weight:500;font-size:16px;margin-top:16px;
  background:rgba(232,94,12,.16);color:#fff;border:1px solid rgba(232,94,12,.75);
  box-shadow:0 0 0 1px rgba(232,94,12,.15),0 0 22px rgba(232,94,12,.28),inset 0 0 18px rgba(232,94,12,.10)}
.btn:active{background:rgba(232,94,12,.30)}
.btn.sec{background:rgba(255,255,255,.06);border:1px solid var(--borda-v);box-shadow:none;font-weight:400}
.msg{color:#ff8a7a}
.nota{color:var(--mu);font-weight:300}

/* topo do app do líder */
.topo{gap:8px}
.pill{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--borda-v);border-radius:18px;padding:8px 14px 8px 10px}
.brand-pill{gap:10px;flex:1;min-width:0}
.brand-pill img{width:30px;height:auto}
.brand-pill b{display:block;font-family:"Barlow Condensed","Outfit",sans-serif;font-weight:700;font-size:17px;letter-spacing:.03em;line-height:1}
.brand-pill small{display:flex;align-items:center;gap:6px;color:var(--mu);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}
.brand-pill small span:last-child{overflow:hidden;text-overflow:ellipsis}
.dot{width:8px;height:8px}

/* botões de vidro à direita */
.fabs{position:absolute;z-index:500;right:12px;top:calc(env(safe-area-inset-top) + 76px);display:flex;flex-direction:column;gap:10px}
.fabs .mini{position:static;width:46px;height:46px;border-radius:16px;background:var(--glass);border:1px solid var(--borda-v)}
.fabs .mini svg{width:21px;height:21px}

/* câmera: botão LED */
.cam{width:86px;height:86px;border:1.5px solid rgba(255,160,110,.95);background:rgba(232,94,12,.78);
  box-shadow:0 0 0 6px rgba(232,94,12,.18),0 0 34px rgba(232,94,12,.55),inset 0 0 16px rgba(255,255,255,.18)}
.cam:active{transform:translateX(-50%) scale(.96)}

/* folha da ocorrência */
.folha{background:rgba(22,24,32,.88);backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2);
  border:1px solid var(--borda-v);border-bottom:0;border-radius:28px 28px 0 0}
.alca{background:rgba(255,255,255,.18)}
.fotos img,.addf{border-radius:16px}
.chip{border-radius:14px;border:1px solid var(--borda-v);background:rgba(255,255,255,.04);font-weight:400;font-size:13.5px;display:inline-flex;align-items:center;gap:7px}
.chips .chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,#999);flex:none}
.chip.on{color:#fff;border-color:var(--c,var(--lar));background:color-mix(in srgb,var(--c,var(--lar)) 20%,transparent);
  box-shadow:0 0 14px color-mix(in srgb,var(--c,var(--lar)) 35%,transparent)}
.seg .chip{justify-content:center}

/* popups e marcadores */
.leaflet-popup-content-wrapper{background:rgba(22,24,32,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--borda-v);border-radius:18px}
.leaflet-popup-tip{background:rgba(22,24,32,.92)}
.pop h4{font-weight:500}
.leaflet-container a.leaflet-popup-close-button{color:var(--mu)}
.toast{background:rgba(22,24,32,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--borda-v);border-radius:16px}

/* painel da coordenação */
#adm .barra{align-items:flex-start}
.kpis{display:flex;gap:8px;flex-wrap:wrap}
.kpi{background:var(--glass);border:1px solid var(--borda-v);border-radius:18px;padding:8px 16px;position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:2px;border-radius:2px;background:var(--c,var(--lar))}
.kpi b{font-weight:200;font-size:26px;letter-spacing:-.01em}
.kpi span{font-weight:400}
.camadas button{border-radius:14px;background:var(--glass);border:1px solid var(--borda-v);font-weight:400}
.camadas button.on{color:#fff;border-color:rgba(232,94,12,.75);background:rgba(232,94,12,.18);box-shadow:0 0 16px rgba(232,94,12,.3)}
.abrir{border-radius:16px;background:rgba(232,94,12,.85);box-shadow:0 0 22px rgba(232,94,12,.4)}
.lado{background:rgba(16,18,25,.90);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);border-left:1px solid var(--borda-v)}
.abas{border-bottom:1px solid var(--borda-v);gap:3px;padding:12px 10px 10px}
.abas button{background:rgba(255,255,255,.04);border:1px solid transparent;border-radius:13px;font-weight:400;color:var(--mu)}
.abas button.on{background:rgba(232,94,12,.16);color:#fff;border-color:rgba(232,94,12,.6);box-shadow:0 0 14px rgba(232,94,12,.22)}
.it{background:rgba(255,255,255,.035);border:1px solid var(--borda-v);border-radius:18px}
.it b{font-weight:500}
.acoes button{border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--borda-v);font-weight:400}
.acoes .ap{background:rgba(61,220,151,.18);color:#bff5dd;border:1px solid rgba(61,220,151,.7);box-shadow:0 0 12px rgba(61,220,151,.25)}
.tag{border-radius:9px;font-weight:500}
#adm .brand-pill{flex:none}
@media (min-width:1000px){
  #adm .kpi b{font-size:30px}
}
/* painel no celular: métricas numa faixa só, rolável para o lado (antes empilhavam e cobriam meia tela) */
@media (max-width:600px){
  #adm .kpis{flex-wrap:nowrap;overflow-x:auto;flex:1 1 100%;min-width:0;max-width:100%;scrollbar-width:none;padding-bottom:2px}
  #adm .kpis::-webkit-scrollbar{display:none}
  #adm .kpi{flex:none;padding:4px 10px;border-radius:13px}
  #adm .kpi b{font-size:19px}
  #adm .kpi span{font-size:10.5px;white-space:nowrap}
}
/* ADM no celular: botão do painel no topo do app do squad e volta pelo subtítulo do painel */
.pn-adm{background:rgba(232,94,12,.92)!important;border:1px solid #ffb38a!important;color:#fff;font:700 13px Outfit,sans-serif;letter-spacing:.05em;
  cursor:pointer;padding:0 14px;min-height:40px;flex:none}
.pn-adm:disabled{opacity:.7}
#adm .brand-pill small a.volta-sq{color:#ffb38a;text-decoration:underline;text-underline-offset:2px}
/* TV ou projetor com escala do Windows (tela "pequena" para o navegador): métricas mais compactas quebram menos linhas */
@media (min-width:901px) and (max-width:1500px){
  #adm .kpis{gap:6px}
  #adm .kpi{padding:5px 11px;border-radius:14px}
  #adm .kpi b{font-size:22px}
  #adm .kpi span{font-size:11.5px}
}

.kpi:nth-child(1){--c:var(--az)}.kpi:nth-child(2){--c:var(--verm)}.kpi:nth-child(3){--c:var(--lar)}
.kpi:nth-child(4){--c:var(--verm)}.kpi:nth-child(5){--c:var(--amb)}.kpi:nth-child(6){--c:var(--ok)}
#cad,#esp,#bloq,#admLogin{background:linear-gradient(180deg,rgba(11,13,19,.75) 0%,rgba(11,13,19,.15) 22%,rgba(11,13,19,.35) 55%,rgba(11,13,19,.88) 100%)}
@media (min-width:1000px){#admLogin .cx{justify-content:center;padding-top:0}#admLogin .cartao-in{padding:26px}}

/* marcador do líder: alfinete com cor própria, iniciais e equipe */
.lid-mk{position:relative;width:44px;height:56px;display:flex;flex-direction:column;align-items:center}
.lid-pin{position:relative;width:38px;height:38px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--c);
  border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.6),0 0 0 2px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center}
.lid-pin b{transform:rotate(45deg);font:700 14px/1 "Barlow Condensed","Outfit",sans-serif;color:#0b0d13;letter-spacing:.02em}
.lid-pin em{position:absolute;right:-9px;top:-9px;transform:rotate(45deg);min-width:19px;height:19px;padding:0 4px;border-radius:10px;
  background:#0b0d13;color:#fff;border:2px solid #fff;font:600 11px/15px "Outfit",sans-serif;font-style:normal;text-align:center}
.lid-mk span{position:absolute;top:58px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:2px 8px;border-radius:8px;
  background:rgba(11,13,19,.9);border:1px solid var(--c);color:#fff;font:500 12px "Outfit",sans-serif}
.lid-mk.vivo::after{content:"";position:absolute;left:3px;top:3px;width:38px;height:38px;border-radius:50%;border:3px solid var(--c);
  animation:pulsoL 1.8s ease-out infinite;pointer-events:none}
@keyframes pulsoL{0%{transform:scale(.9);opacity:.9}100%{transform:scale(2);opacity:0}}
.abas{overflow-x:auto;scrollbar-width:thin;flex-wrap:nowrap}
.abas button{flex:none;padding:9px 11px}

/* abas em duas linhas: todas visíveis, sem rolagem escondida */
.abas{flex-wrap:wrap!important;overflow:visible!important;gap:5px}
.abas button{flex:1 1 auto!important;min-width:84px;padding:8px 10px!important;font-size:13px}

/* aviso de GPS no celular do líder */
#gpsAviso{position:absolute;z-index:800;left:12px;right:12px;top:calc(env(safe-area-inset-top) + 72px);display:flex;flex-direction:column;gap:6px;
  padding:14px 16px;border-radius:18px;background:rgba(120,20,15,.92);border:1.5px solid #ff6b5e;box-shadow:0 0 24px rgba(255,90,79,.45);color:#fff;font-size:13.5px;line-height:1.35}
#gpsAviso b{font-weight:600}
#gpsAviso>b:first-child{font-size:16px}
#gpsAviso button{margin-top:4px;height:46px;border-radius:14px;border:0;background:#fff;color:#a3170f;font:600 15px "Outfit",sans-serif}
#esp #gpsAviso{position:fixed;top:auto;bottom:calc(env(safe-area-inset-bottom) + 14px)}

#barraVersao{position:fixed;z-index:5000;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 120px);padding:12px 18px;border-radius:16px;
  border:1.5px solid #ffb38a;background:rgba(232,94,12,.95);color:#fff;font:600 14px "Outfit",sans-serif;box-shadow:0 0 24px rgba(232,94,12,.5);cursor:pointer}

/* botões do balão do ponto */
.bt-atendido{display:block;width:100%;margin-top:10px;height:46px;border-radius:14px;border:1.5px solid #6ff0b5;background:#1fbf75;color:#fff;
  font:700 16px "Outfit",sans-serif;letter-spacing:.02em;box-shadow:0 0 16px rgba(61,220,151,.45);cursor:pointer}
.bt-sec2{display:block;width:100%;margin-top:6px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);
  color:#ecebe8;font:500 13px "Outfit",sans-serif;cursor:pointer}

/* alfinete da equipe: laranja com o logo LGND */
.lid-pin{width:42px;height:42px;background:#e85e0c;border:3px solid #fff}
.lid-pin img{width:26px;height:auto;transform:rotate(45deg);filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.lid-mk{width:48px;height:60px}
.lid-mk span{top:62px;border-color:#e85e0c}
.lid-st{position:absolute;left:-8px;bottom:-8px;width:14px;height:14px;border-radius:50%;border:2px solid #fff;transform:rotate(45deg)}
.lid-st.on{background:#3ddc97}.lid-st.off{background:#8a8f9c}.lid-st.mudo{background:#ff2d2d}.lid-st.pend{background:#ffc145}
.lid-mk.mudo span{background:rgba(150,30,25,.92);border-color:#ff5a4f}
.lid-mk.vivo::after{left:5px;top:3px;width:42px;height:42px;border-color:#ff9a4d}
/* órgão público em monitoramento (só no painel da coordenação): mesmo alfinete, em azul institucional */
.lid-mk.org span{border-color:#4d8ff0}
.lid-mk.org.vivo::after{border-color:#6aa6ff}
.leaflet-container .leaflet-marker-pane .lid-pin img{width:26px!important;height:auto!important;max-width:26px!important}

/* painel de camadas do líder */
#camLid{position:absolute;z-index:850;right:12px;left:12px;top:calc(env(safe-area-inset-top) + 76px);max-width:360px;margin-left:auto;padding:14px 16px;border-radius:20px;
  background:rgba(22,24,32,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 30px rgba(0,0,0,.5)}
#camLid .l1{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.cam-l{display:flex;align-items:center;gap:10px;margin:0;padding:10px 2px;border-top:1px solid rgba(255,255,255,.07);font-size:15px;color:#ecebe8;text-transform:none;letter-spacing:0}
.cam-l input{width:22px;height:22px;accent-color:#e85e0c}
.dm-mk{width:26px;height:26px;margin:2px;transform:rotate(45deg);border-radius:6px;background:var(--c);border:2.5px solid #fff;
  box-shadow:0 0 0 4px rgba(195,76,255,.3),0 2px 8px rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center}
.dm-mk b{transform:rotate(-45deg);color:#fff;font:700 12px/1 Outfit,sans-serif}

.area-rot{background:rgba(15,80,50,.88);border:1.5px solid #3ddc97;color:#d9ffe9;font:700 13px "Outfit",sans-serif;padding:3px 9px;border-radius:9px;box-shadow:none}
.area-rot:before{display:none}

.area-rot.at{background:rgba(110,60,0,.9);border-color:#ffc145;color:#fff2d6}

.area-rot.n-urgente{background:rgba(120,10,5,.92);border-color:#ff6b61;color:#ffe3e0;font-size:14px}
.area-rot.n-atencao{background:rgba(110,60,0,.9);border-color:#ffc145;color:#fff1d6}
.area-rot.n-atendimento{background:rgba(10,45,110,.9);border-color:#7fb2ff;color:#e3eeff}

.area-rot.n-verificar{background:rgba(40,44,54,.9);border-color:#c3c7d0;color:#eceef2}

.niv-bts{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.niv-bt{border:2px solid var(--c);background:transparent;color:#fff;border-radius:10px;padding:10px 6px;font:700 12.5px "Outfit",sans-serif;cursor:pointer;letter-spacing:.02em}
.niv-bt:hover{background:color-mix(in srgb,var(--c) 30%,transparent)}
.niv-bt.sel{background:var(--c);color:#fff}
.niv-bt:first-child{grid-column:1 / -1}

.eixo-anim{animation:eixoMove 1.1s linear infinite}
@keyframes eixoMove{to{stroke-dashoffset:-30}}
.faixa-nucleo{animation:faixaPulso 2.4s ease-in-out infinite}
@keyframes faixaPulso{0%,100%{fill-opacity:.16}50%{fill-opacity:.3}}
.seta-rajada{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#ffe14d;font-size:24px;text-shadow:0 0 4px #000,0 0 8px #000}
.rot-rajada{white-space:nowrap;transform:translate(-50%,-160%);background:rgba(120,10,5,.9);border:1.5px solid #ff6b61;color:#fff;font:700 12.5px "Outfit",sans-serif;padding:4px 10px;border-radius:9px;letter-spacing:.03em;pointer-events:none}
.camadas .mais-cam{display:none;gap:6px;flex-wrap:wrap}
.camadas.aberta .mais-cam{display:flex}

.leg-arv{background:rgba(11,13,19,.88);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:8px 10px;color:#f1efe9;font:12px "Outfit",sans-serif;line-height:1.6;max-width:270px}
.leg-arv b{display:block;margin-bottom:2px}
.leg-arv i{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin:0 3px 0 6px}
.leg-arv i.pt{border-radius:50%;width:10px;height:10px}
.leg-arv i.p2{width:7px;height:7px}
.leg-arv small{color:#9b9da8;display:block;margin-top:2px}

.hist{margin-top:8px;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:6px 9px;background:rgba(255,255,255,.03)}
.hist>summary{cursor:pointer;font-size:12.5px;color:#ffb38a}
.hist-c{font-size:12.5px;line-height:1.5;margin-top:6px;display:grid;gap:5px}
.hist-rel{border-top:1px solid rgba(255,255,255,.1);padding-top:5px}
.hist-rel details summary{cursor:pointer;color:var(--dim);font-size:12px}

/* ===== v2: squads ===== */
#app .pill{font-size:12px;padding:7px 11px}
#app .brand-pill b{font-size:11px}
.sq-barra{position:absolute;z-index:700;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom) + 10px);display:flex;gap:8px}
.sq-bt{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 9px;border-radius:18px;border:2px solid rgba(255,255,255,.85);color:#fff;font:700 11.5px/1.15 "Outfit",sans-serif;letter-spacing:.02em;cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.45)}
.sq-bt i{font-style:normal;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;background:rgba(0,0,0,.22)}
.sq-bt.inf{background:#d93025}.sq-bt.ope{background:#c98a00}.sq-bt.fin{background:#13965a}
#app .fabs .mini,#app .mini{bottom:calc(env(safe-area-inset-bottom) + 104px)}
#app #bEu{bottom:calc(env(safe-area-inset-bottom) + 160px)}
.f-tit{margin:0 0 10px;font:700 18px "Outfit",sans-serif}
.f-tit.inf{color:#ff6b5e}.f-tit.ope{color:#ffc145}.f-tit.fin{color:#3ddc97}
.alvos{display:grid;gap:6px}
.alvo{text-align:left;padding:9px 11px;border-radius:12px;border:1px solid var(--ln2);background:var(--s2);font-size:13px;cursor:pointer}
.alvo.on{border-color:#e85e0c;background:rgba(232,94,12,.18)}
.alvo small{color:var(--mu)}
.inc-mk{position:relative;width:26px;height:26px;border-radius:50%;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.55)}
.inc-mk b{color:#fff;font:800 14px/1 "Outfit",sans-serif}
.inc-mk.inf{background:#e02a1f;border-radius:6px;transform:rotate(45deg)}.inc-mk.inf b{transform:rotate(-45deg)}
.inc-mk.ope{background:#d99400}
.inc-mk.fin{background:#15a862}
.inc-ass{position:absolute;top:28px;left:50%;transform:translateX(-50%);white-space:nowrap;font:600 10px "Outfit",sans-serif;color:#fff;background:rgba(11,13,19,.8);padding:0 5px;border-radius:6px;display:none}
.inc-mk.inf .inc-ass{transform:translateX(-50%) rotate(-45deg);top:30px;left:30px}
.inc-op{margin-top:6px;padding:6px 8px;border-radius:10px;background:rgba(255,193,69,.1);border:1px solid rgba(255,193,69,.35);font-size:12.5px;line-height:1.45}
.bt-exc{color:#ff6b5e!important;border-color:rgba(255,90,79,.5)!important}
/* texto do mapa conforme o zoom */
.leaflet-container[data-z="1"] .area-rot{font-size:8.5px;padding:1px 4px}
.leaflet-container[data-z="2"] .area-rot{font-size:10px;padding:2px 6px}
.leaflet-container[data-z="3"] .area-rot{font-size:11.5px}
.leaflet-container[data-z="4"] .area-rot{font-size:13px}
.leaflet-container[data-z="1"] .lid-mk span,.leaflet-container[data-z="2"] .lid-mk span{font-size:9.5px}
.leaflet-container[data-z="4"] .inc-ass{display:block}
.leaflet-container[data-z="1"] .inc-mk{transform:scale(.7)}.leaflet-container[data-z="1"] .inc-mk.inf{transform:rotate(45deg) scale(.7)}
#app .area-rot{font-size:10px}

/* ===== v2: painel em tela cheia, abas embaixo ===== */
body.painel2 #adm #mapaAdm{right:0!important}
body.painel2 #adm .camadas,body.painel2 #adm .abrir,body.painel2 #abas{display:none!important}
body.painel2 #adm .barra{right:110px!important}
body.painel2 #adm .lado{left:12px;right:auto;top:auto;bottom:calc(env(safe-area-inset-bottom) + 66px);width:min(470px,calc(100% - 24px));height:min(64vh,680px);border:1px solid var(--ln2);border-radius:18px;transform:translateY(calc(100% + 90px))!important;transition:transform .22s;box-shadow:0 18px 50px rgba(0,0,0,.55);padding-top:0}
body.painel2 #adm .lado.on{transform:none!important}
.pn-topo{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid var(--ln)}
.pn-topo b{font-size:15px;letter-spacing:.02em}
.pn-topo button{background:var(--s3);border:0;border-radius:10px;width:32px;height:30px;cursor:pointer;color:#fff}
.pn-tit{font-weight:700;margin:2px 2px 8px}.pn-tit small{color:var(--mu);font-weight:400}
#dock{position:absolute;z-index:660;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 10px);display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;pointer-events:none}
#dock .dk-g{display:flex;gap:4px;padding:5px;border-radius:16px;background:rgba(18,20,28,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ln2);pointer-events:auto;flex-wrap:wrap}
#dock button{position:relative;height:38px;padding:0 13px;border-radius:11px;border:1px solid transparent;background:transparent;color:#e9e7e2;font:600 13px "Outfit",sans-serif;cursor:pointer}
#dock .dk-g:first-child button{background:rgba(255,255,255,.06)}
#dock button.on{background:rgba(232,94,12,.9)!important;color:#fff;border-color:#ffb38a}
#dock .dk-cam button.on{background:rgba(232,94,12,.22)!important;color:#ffb38a;border-color:rgba(232,94,12,.7)}
#dock em{position:absolute;top:-6px;right:-4px;background:#ffc145;color:#000;border-radius:9px;font-style:normal;font-size:11px;padding:0 6px;font-weight:700}
#dock em:empty{display:none}
#dock .dk-extra{display:none;gap:4px;padding:5px;border-radius:16px;background:rgba(18,20,28,.86);border:1px solid var(--ln2);pointer-events:auto}
#dock.extra .dk-extra{display:flex}
#clBt{position:absolute;z-index:660;right:12px;top:calc(env(safe-area-inset-top) + 10px);height:46px;min-width:86px;padding:0 12px;border-radius:16px;border:1px solid var(--ln2);background:rgba(18,20,28,.86);backdrop-filter:blur(14px);color:#fff;display:flex;align-items:center;gap:8px;cursor:pointer;font:600 14px "Outfit",sans-serif}
#clBt span{font-size:20px;color:#ffd21f}#clBt b{font-size:19px}
#clCard{position:absolute;z-index:670;right:12px;top:calc(env(safe-area-inset-top) + 62px);width:min(360px,calc(100% - 24px));padding:12px 14px;border-radius:16px;border:1px solid var(--ln2);background:rgba(18,20,28,.96);display:none;box-shadow:0 18px 50px rgba(0,0,0,.55)}
#clCard.on{display:block}
.cl-agora{display:flex;gap:12px;align-items:center;margin:8px 0}.cl-agora>b{font-size:34px}.cl-agora div{font-size:12.5px;color:#c9c7c0;line-height:1.45}
.cl-horas{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;align-items:end;margin:8px 0}
.cl-horas div{display:flex;flex-direction:column;align-items:center;font-size:10px;color:#c9c7c0}
.cl-horas i{width:70%;border-radius:3px 3px 0 0}.cl-horas b{font-size:11px;color:#fff}.cl-horas span{color:#8a8d99}
.kpis-z{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}
.kpis-z div{background:var(--s2);border:1px solid var(--ln);border-radius:12px;padding:7px;text-align:center}
.kpis-z b{display:block;font-size:20px}.kpis-z span{font-size:11px;color:var(--mu)}
.tab-z{width:100%;border-collapse:collapse;font-size:12px}
.tab-z th{color:var(--mu);font-weight:500;text-align:center;padding:4px 2px;border-bottom:1px solid var(--ln)}
.tab-z th:first-child,.tab-z td:first-child{text-align:left}
.tab-z td{padding:5px 2px;border-bottom:1px solid rgba(255,255,255,.05);text-align:center}
.tab-z tr[data-z]{cursor:pointer}.tab-z tr[data-z]:hover{background:rgba(255,255,255,.04)}
.perms{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:12px;color:var(--mu)}
.acoes select{padding:6px 8px;border-radius:10px;border:1px solid var(--ln2);background:var(--s3);font-size:12.5px}
.area-rot.n-alerta{background:rgba(70,10,110,.92);border-color:#d59bff;color:#f3e6ff}
@media (max-width:900px){#dock .dk-cam{display:none}#dock.extra .dk-cam{display:flex}body.painel2 #adm .lado{height:58vh}.ft-barra{width:240px!important}}
/* mapa limpo (03/11/2026): nomes de zona e de área nova só a partir do zoom 15 (data-z 3); até o 16 só o nome,
   do 17 em diante (data-z 4) também o nível e os pontos abertos. Abaixo do zoom 15 a cor do contorno diz o nível. */
.leaflet-container[data-z="1"] .area-rot,.leaflet-container[data-z="2"] .area-rot{display:none}
.area-rot b{font-weight:700}.area-rot i{font-style:normal;font-weight:500;opacity:.9}
.leaflet-container[data-z="3"] .area-rot i{display:none}
.leaflet-container[data-z="1"] .lid-mk span{display:none}
.leaflet-popup-content{max-height:min(58vh,520px);overflow:auto}

/* ===== painel da coordenação no celular (classe pn-cel, posta pelo painel2.js até 700 px ou celular deitado) =====
   topo numa linha (marca, volta ao squad, clima), métricas roláveis, ferramentas compactas com lupa,
   barra de baixo numa linha rolável com Camadas, janela em folha de baixo para cima e alvos de toque maiores */
#pnSquad,#pnVoltar,#dock .dk-camadas,#ftLupa{display:none!important}
@media (max-width:900px){#dock .dk-camadas{display:inline-flex!important}}
body.pn-cel #adm .barra{left:10px;right:10px!important;top:calc(env(safe-area-inset-top) + 8px);gap:6px;align-items:center}
body.pn-cel #adm .brand-pill{flex:1 1 0;min-width:0;height:46px;padding:6px 10px 6px 8px;border-radius:15px}
body.pn-cel #adm .brand-pill>div{min-width:0}
body.pn-cel #adm .brand-pill img{width:26px}
body.pn-cel #adm .brand-pill b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.pn-cel #adm .brand-pill small{font-size:11px;margin-top:2px;white-space:nowrap}
body.pn-cel #adm .brand-pill small .volta-sq{display:none}
/* controles do Leaflet (atribuição) ficam abaixo da janela e da barra, não por cima */
body.pn-cel #mapaAdm{z-index:0}
body.pn-cel #pnSquad{display:flex!important;align-items:center;gap:5px;flex:none;height:46px;padding:0 13px 0 10px;border-radius:15px;background:rgba(232,94,12,.92);
  border:1px solid #ffb38a;color:#fff;font:600 14px "Outfit",sans-serif;text-decoration:none;pointer-events:auto}
body.pn-cel #pnSquad span{font-size:24px;line-height:1;margin-top:-3px}
body.pn-cel #clBt{position:static;flex:none;height:46px;min-width:0;padding:0 11px;border-radius:15px;gap:5px}
body.pn-cel #clBt span{font-size:17px}body.pn-cel #clBt b{font-size:16px}
body.pn-cel #clCard{top:calc(env(safe-area-inset-top) + 60px);left:10px;right:10px;width:auto}
body.pn-cel #adm .kpis{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;gap:6px;min-width:0;max-width:100%;padding:0 26px 2px 0;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent)}
body.pn-cel #adm .kpis::-webkit-scrollbar{display:none}
body.pn-cel #adm .kpi{flex:none;padding:4px 10px;border-radius:12px}
body.pn-cel #adm .kpi b{font-size:18px}
body.pn-cel #adm .kpi span{font-size:10.5px;white-space:nowrap}
/* ferramentas: uma linha; a busca abre pela lupa (fonte 16 px evita o zoom do iPhone ao digitar) */
body.pn-cel .ft-barra{left:10px;width:auto!important;max-width:calc(100% - 20px)}
body.pn-cel .ft-bts{padding:4px;gap:4px;border-radius:15px}
body.pn-cel .ft-bts button{height:40px;padding:0 11px;font-size:13.5px;white-space:nowrap}
body.pn-cel #ftLupa{display:inline-flex!important;align-items:center;justify-content:center;width:44px;padding:0}
body.pn-cel .ft-barra.ft-busca-on #ftLupa{background:rgba(232,94,12,.85);border-color:#ffb38a}
body.pn-cel .ft-busca{display:none;width:calc(100vw - 20px)}
body.pn-cel .ft-barra.ft-busca-on .ft-busca{display:flex}
body.pn-cel .ft-busca input,body.pn-cel .ft-busca button{height:44px;font-size:16px}
body.pn-cel .ft-res{width:calc(100vw - 20px)}
body.pn-cel .ft-r{padding:11px 12px;font-size:14px}
body.pn-cel .ft-dica{font-size:13px;max-width:calc(100vw - 20px)}
body.pn-cel.pn-aberto .ft-barra{display:none}
/* barra de baixo: uma linha encostada no fundo, rolável para o lado (o esmaecido à direita mostra que há mais) */
body.pn-cel #dock{left:0;right:0;bottom:0;padding:6px 0 calc(env(safe-area-inset-bottom) + 6px);gap:0;background:rgba(14,16,22,.95);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--ln2);pointer-events:auto}
body.pn-cel #dock .dk-g:first-child{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;width:100%;background:none;border:0;border-radius:0;
  padding:0 30px 0 8px;gap:6px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
body.pn-cel #dock .dk-g:first-child::-webkit-scrollbar{display:none}
body.pn-cel #dock button{flex:none;height:44px;padding:0 14px;font-size:14px;border-radius:13px;display:inline-flex;align-items:center;gap:6px}
body.pn-cel #dock .dk-g:first-child button{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}
body.pn-cel #dock .dk-camadas{background:rgba(90,184,255,.14)!important;border-color:rgba(90,184,255,.45)!important}
body.pn-cel #dock em{position:static;padding:1px 7px;font-size:11.5px}
body.pn-cel #dock .dk-cam,body.pn-cel #dock .dk-extra{display:none!important}
body.pn-cel #adm .leaflet-bottom{bottom:calc(var(--dock-alt,66px) - 8px)}
body.pn-cel #adm .leaflet-control-attribution{font-size:8px;max-width:70vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* janela: folha de baixo para cima, da linha da marca até a barra de baixo */
body.painel2.pn-cel #adm .lado{left:0;right:0;width:auto;top:calc(env(safe-area-inset-top) + 62px);bottom:calc(var(--dock-alt,66px) - 8px);height:auto;max-height:none;
  border-radius:20px 20px 0 0;border-width:1px 0 0;transform:translateY(110vh)!important;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
body.painel2.pn-cel #adm .lado.on{transform:none!important}
body.pn-cel .pn-topo{padding:12px 12px 10px 16px}
body.pn-cel .pn-topo b{font-size:17px}
body.pn-cel .pn-topo button{width:44px;height:40px;font-size:18px;border-radius:12px}
body.pn-cel #conteudo{padding:12px 12px 28px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body.pn-cel #conteudo .it{padding:12px}
body.pn-cel #conteudo .acoes{gap:8px}
body.pn-cel #conteudo .acoes button,body.pn-cel #conteudo .acoes select{min-height:42px;padding:8px 13px;font-size:14px}
body.pn-cel #conteudo .chip{min-height:40px}
body.pn-cel #conteudo summary{padding:8px 0;min-height:38px}
body.pn-cel #conteudo input[type=checkbox]{width:22px;height:22px;accent-color:#e85e0c}
body.pn-cel #conteudo .perms{gap:6px}
body.pn-cel #conteudo .perms label{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 11px;border:1px solid var(--ln2);border-radius:12px;font-size:13.5px;color:#ecebe8}
body.pn-cel #conteudo .in,body.pn-cel #conteudo textarea,body.pn-cel #conteudo input:not([type=checkbox]){font-size:16px}
body.pn-cel #conteudo .btn{height:50px}
body.pn-cel #conteudo .tab-z td{padding:9px 3px}
body.pn-cel #conteudo .eq button,body.pn-cel #conteudo .eq select,body.pn-cel #conteudo .eq input:not([type=checkbox]){min-height:42px;font-size:14px}
body.pn-cel #conteudo .eq-abas button{min-height:38px;padding:6px 12px}
/* camadas em lista com chave liga/desliga */
.pn-cam{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:12px 14px;margin:0 0 8px;border-radius:14px;
  border:1px solid var(--ln2);background:rgba(255,255,255,.04);color:#ecebe8;cursor:pointer;font:inherit}
.pn-cam b{display:block;font-size:15px;font-weight:500}
.pn-cam small{display:block;font-size:12px;color:var(--mu);margin-top:2px}
.pn-cam i{flex:none;width:46px;height:28px;border-radius:14px;background:#3a3e4c;position:relative;transition:background .15s}
.pn-cam i::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:left .15s}
.pn-cam.on{border-color:rgba(232,94,12,.6);background:rgba(232,94,12,.10)}
.pn-cam.on i{background:#e85e0c}
.pn-cam.on i::after{left:21px}
/* volta à lista depois de "Ver no mapa" */
body.pn-cel #pnVoltar{display:flex!important;position:absolute;z-index:665;left:50%;transform:translateX(-50%);bottom:calc(var(--dock-alt,66px) + 2px);height:44px;padding:0 18px;
  align-items:center;border-radius:22px;border:1.5px solid #ffb38a;background:rgba(232,94,12,.95);color:#fff;font:600 14.5px "Outfit",sans-serif;
  box-shadow:0 6px 22px rgba(0,0,0,.5);white-space:nowrap;cursor:pointer}
body.pn-cel #pnVoltar[hidden]{display:none!important}
/* balões do mapa no celular */
body.pn-cel #adm .leaflet-popup-content{margin:12px;max-height:min(52vh,460px);width:auto!important;max-width:calc(100vw - 50px)}
body.pn-cel .ft-form .ft-tipos .chip{padding:8px 10px;font-size:13px}
body.pn-cel .ft-form textarea{font-size:16px}
/* vias interditadas a verificar (03/11/2026): placa de via fechada no mapa, alerta no app do squad e destaque nas métricas */
.via-ic{display:inline-block;width:18px;height:18px;border-radius:50%;background:#d93025;border:2px solid #fff;position:relative;vertical-align:-3px;margin-right:6px;flex:none}
.via-ic::after{content:"";position:absolute;left:3px;right:3px;top:50%;height:3px;margin-top:-1.5px;background:#fff;border-radius:1px}
.via-mk{position:relative;width:30px;height:30px;border-radius:50%;background:#d93025;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 7px rgba(0,0,0,.6)}
.via-mk i{display:block;width:16px;height:4px;background:#fff;border-radius:1px}
.via-mk.ope{background:#d99400}
.via-mk .inc-ass{top:31px}
.aviso-vias{position:absolute;z-index:520;left:12px;right:12px;top:calc(env(safe-area-inset-top) + 74px);display:flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:14px;border:1.5px solid #ff8a80;background:rgba(150,24,18,.92);color:#fff;font:600 14px/1.25 "Outfit",sans-serif;
  text-align:left;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.45);animation:avisoVias 2.4s ease-in-out infinite}
.aviso-vias span{flex:1}.aviso-vias small{font-weight:500;opacity:.85;text-decoration:underline;white-space:nowrap}
@keyframes avisoVias{0%,100%{box-shadow:0 4px 16px rgba(0,0,0,.45)}50%{box-shadow:0 0 0 4px rgba(255,90,79,.35),0 4px 16px rgba(0,0,0,.45)}}
.kpi.kpi-alerta{cursor:pointer;border-color:#ff8a80!important;background:rgba(150,24,18,.85)!important;animation:avisoVias 2.4s ease-in-out infinite}
.kpi.kpi-alerta b{color:#fff;display:flex;align-items:center}.kpi.kpi-alerta span{color:#ffd9d6}
/* tempo severo (03/11/2026): destaque nas métricas, avisos do INMET e tabela dos modelos */
.tp-ic{display:inline-block;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:16px solid var(--tc,#f2c200);margin-right:7px;position:relative;vertical-align:-1px}
.tp-ic::after{content:"!";position:absolute;left:-3px;top:3px;font:800 10px/1 "Outfit",sans-serif;color:#111}
.kpi.kpi-tempo{cursor:pointer;border-color:var(--tc)!important;background:rgba(40,30,8,.88)!important}
.kpi.kpi-tempo b{display:flex;align-items:center;color:#fff}.kpi.kpi-tempo span{color:#ffe7b3}
.tp-av{border-left:4px solid var(--tc);background:rgba(255,255,255,.04);border-radius:8px;padding:7px 10px;margin-top:8px}
.tp-tab td,.tp-tab th{font-size:12px;vertical-align:top}.tp-tab td small{color:#9b9da8;font-size:10.5px}
/* 03/11/2026: canto direito com vias interditadas e clima lado a lado */
#pnDir{position:absolute;z-index:660;right:12px;top:calc(env(safe-area-inset-top) + 10px);display:flex;gap:8px;align-items:center}
#pnDir #clBt{position:static}
#viasBt{position:relative;height:46px;width:54px;border-radius:16px;border:1px solid var(--ln2);background:rgba(18,20,28,.86);backdrop-filter:blur(14px);
  display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
#viasBt em{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#d93025;border:2px solid #fff;
  color:#fff;font:700 11px/16px "Outfit",sans-serif;font-style:normal;text-align:center}
#viasCard{position:absolute;z-index:670;right:12px;top:calc(env(safe-area-inset-top) + 62px);width:min(360px,calc(100% - 24px));padding:12px 14px;border-radius:16px;
  border:1px solid var(--ln2);background:rgba(18,20,28,.96);display:none;box-shadow:0 18px 50px rgba(0,0,0,.55)}
#viasCard.on{display:block}
#viasCard .vc-tit{display:flex;align-items:center;gap:7px}
.vc-lin{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 4px;font-size:13px}
.vc-lista{max-height:min(42vh,340px);overflow:auto;margin:4px 0 6px;border-top:1px solid var(--ln)}
.vc-it{padding:7px 2px;border-bottom:1px solid var(--ln);cursor:pointer;font-size:12.5px}.vc-it small{color:var(--mu)}
body.pn-cel #pnDir{position:static;flex:none;gap:6px}
body.pn-cel #viasBt{height:46px;width:48px;border-radius:15px}
body.pn-cel #viasCard{top:calc(env(safe-area-inset-top) + 60px);left:10px;right:10px;width:auto}
/* ponto de alerta no botão do clima (aviso do INMET ou modelos concordando) */
#clBt{position:relative}
#pnDir #clBt,body.pn-cel #clBt{position:relative}
#clBt.cl-alerta::after{content:"!";position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--ac,#f2c200);border:2px solid #fff;
  color:#111;font:800 12px/16px "Outfit",sans-serif;text-align:center}
/* potencial de tempestade dentro do cartão do clima */
.tp-box{margin:8px 0 6px;padding-top:8px;border-top:1px solid var(--ln)}
.tp-box .tp-av{border-left:4px solid var(--tc);background:rgba(255,255,255,.05);border-radius:8px;padding:6px 9px;margin-bottom:6px}
.tp-box .tp-av b{display:block;font-size:12.5px}.tp-box .tp-av small{color:#c9c7c0;font-size:11.5px}
.tp-t{margin-top:6px;font-size:13px}.tp-t small{color:var(--mu);font-size:11px}
.tp-tend{font-size:12.5px;color:#ffe7b3;margin:3px 0 4px}
.tp-faixa{width:100%;display:block;background:#13161f;border-radius:8px}
.tp-leg{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--mu);margin:3px 0}.tp-leg i{display:inline-block;width:10px;height:10px;border-radius:2px}
.tp-jan{font-size:12px;margin:4px 0}.tp-jan span{display:inline-block;margin:3px 4px 0 0;padding:2px 7px;border-radius:8px;border:1.5px solid;background:rgba(255,255,255,.04)}
/* alfinete da coordenação (ADM): quadrado preto, borda dourada, logo LGND e selo de gestão */
.lid-pin.adm-pin{width:40px;height:40px;border-radius:11px;transform:none;background:#0b0d13;border:3px solid #ffd21f;overflow:visible}
.lid-pin.adm-pin::after{content:"";position:absolute;left:50%;bottom:-11px;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid #ffd21f}
.leaflet-container .leaflet-marker-pane .lid-pin.adm-pin img{width:24px!important;max-width:24px!important;transform:none!important}
.lid-pin.adm-pin em,.lid-pin.adm-pin .lid-st{transform:none}
.lid-pin.adm-pin b.adm-selo{position:absolute;left:-9px;top:-9px;width:19px;height:19px;border-radius:50%;background:#ffd21f;border:1.5px solid #fff;
  display:flex;align-items:center;justify-content:center;transform:none}
.lid-mk.adm span{border-color:#ffd21f}
.lid-mk.adm.vivo::after{border-color:#ffd21f;border-radius:13px}
#pnDir #clBt{top:auto;right:auto}
