/* ferramentas do mapa */
.maptools{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--linha);flex-wrap:wrap}
.mapTipo{display:inline-flex;border:1.5px solid var(--linha);border-radius:8px;overflow:hidden}
.mapTipo button{font-size:12.5px;font-weight:700;padding:6px 13px;color:var(--suave);background:#fff}
.mapTipo button.on{background:var(--azul-esc);color:#fff}
.medbtn{font-size:12.5px;font-weight:700;padding:6px 13px;border-radius:8px;border:1.5px solid var(--linha);color:var(--azul-esc);background:#fff;display:inline-flex;align-items:center;gap:6px}
.medbtn:hover{border-color:var(--azul)}
.medbtn.on{background:var(--coral);border-color:var(--coral);color:#fff}
.medbtn#btnClientesCto.on{background:var(--azul-esc);border-color:var(--azul-esc);color:#fff}
.legend-cli{align-items:center;gap:10px;flex-wrap:wrap} .legend-cli b{font-size:11px;color:var(--suave);font-weight:700}
.legend-cli i{box-sizing:border-box}
.pv-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.pv-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:var(--azul-esc);color:#fff;font-size:12px;font-weight:800;vertical-align:middle}
.pv-cli-lista{margin-top:12px;border:1px solid var(--linha);border-radius:10px;padding:8px 6px;max-height:260px;overflow-y:auto}
.pv-cli-lista .pv-lbl{display:block;padding:0 6px 6px}
.pv-cli-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 6px 8px}
.pv-cli-head .pv-lbl{flex:1;padding:0;display:inline}
.pv-cli-mini{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--linha);background:#fff;color:var(--texto);font:inherit;font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;cursor:pointer}
.pv-cli-mini:hover{border-color:var(--azul)} .pv-cli-mini.sair{color:var(--vermelho)}
.pv-cli-row{display:flex;align-items:center;gap:2px;width:100%;border-radius:8px}
.pv-cli-row:hover{background:var(--papel)}
.pv-cli-row.on{background:#E6F1FB;outline:1.5px solid var(--azul-esc)}
.pv-cli-row.oculto .pv-cli-sel{opacity:.5}
.pv-cli-sel{flex:1;display:flex;align-items:center;gap:8px;min-width:0;border:none;background:none;text-align:left;padding:6px 6px;cursor:pointer;font:inherit;color:var(--tinta);font-size:12.5px}
.pv-cli-olho{flex:none;border:none;background:none;color:var(--suave);padding:6px;cursor:pointer;border-radius:6px;display:inline-flex}
.pv-cli-olho:hover{color:var(--azul-esc);background:#fff}
.pv-cli-row .n{min-width:20px;height:20px;border-radius:10px;background:var(--azul-esc);color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none}
.pv-cli-row .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}
.pv-cli-row .d{color:var(--suave);font-size:11.5px;flex:none}
/* rótulo de nome da CTO: oculto por padrão, aparece só com zoom (classe no body) */
.cto-lbl{
  transform:translateY(-20px);           /* sobe o texto pra cima da bolinha */
  padding:1px 5px;border-radius:5px;
  background:rgba(15,30,50,.66);          /* fundo escuro semitransparente p/ ler sobre satélite */
  text-shadow:0 1px 2px rgba(0,0,0,.6);
  white-space:nowrap;letter-spacing:.2px;
  opacity:0;transition:opacity .18s ease; /* some suave quando o zoom baixa */
  pointer-events:none;
}
body.mostrar-cto-lbl .cto-lbl{opacity:1}
/* pulso radiante do veículo (camada atrás dos marcadores; não captura clique) */
.veic-pulso{position:absolute;width:16px;height:16px;margin-left:-8px;margin-top:-8px;
  border-radius:50%;pointer-events:none;box-sizing:border-box;
  background:var(--pulso-cor,#1FA971);
  opacity:.7;animation:veicPulso 2.2s ease-out infinite}
@keyframes veicPulso{
  0%{transform:scale(.5);opacity:.75}
  70%{opacity:.15}
  100%{transform:scale(3.4);opacity:0}
}
.trans-porta{padding:10px 13px;border:1.5px solid var(--linha);border-radius:9px;cursor:pointer;font-size:13px;color:var(--tinta);margin-bottom:7px;display:flex;align-items:center;gap:10px;transition:.15s}
/* busca de destino na transferência */
.trans-busca-wrap{position:relative}
.trans-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;border:1.5px solid var(--linha);border-radius:10px;box-shadow:0 8px 24px rgba(20,40,70,.14);max-height:240px;overflow-y:auto}
.trans-sug-item{padding:9px 13px;font-size:13px;color:var(--tinta);cursor:pointer;border-bottom:1px solid #F0F4F8;display:flex;justify-content:space-between;align-items:center;gap:8px}
.trans-sug-item:last-child{border-bottom:none}
.trans-sug-item:hover,.trans-sug-item.hl{background:#EFF6FD}
.trans-sug-item .tipo{font-size:11px;color:var(--suave);font-weight:600}
.trans-sug-vazio{padding:11px 13px;font-size:12.5px;color:var(--suave)}
.trans-escolhido{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;background:#EEF6EE;border:1.5px solid #CDE7CD;border-radius:9px;font-size:13.5px;font-weight:600;color:#1B6B3A}
.trans-escolhido button{background:none;border:none;color:var(--azul-esc);font-size:12.5px;cursor:pointer;text-decoration:underline}
.trans-porta:hover{border-color:var(--azul);background:#F5FBFF}
.trans-porta.on{border-color:var(--azul-esc);background:#EAF3FC}
.trans-porta .pn{font-weight:800;min-width:28px;color:var(--azul-esc)}
.trans-porta .info{font-size:12px;color:var(--suave);margin-top:1px}
.trans-sem{font-size:13px;color:var(--vermelho);padding:14px;text-align:center;background:#FBE7E9;border-radius:10px}
.medresult{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--suave);background:var(--vermelho-bg);padding:6px 12px;border-radius:8px;font-weight:600}
.medresult b{color:var(--coral);font-size:14px}
.medresult button{color:var(--coral);font-size:17px;line-height:1;width:18px;height:18px;display:grid;place-items:center}
/* busca de CTO mais próxima por rua (abaixo do mapa) */
.buscaend{border-top:1px solid var(--linha);padding:14px 18px;background:#fff}
.buscaend .be-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.buscaend .be-inwrap{flex:1;min-width:220px;position:relative;display:flex;align-items:center}
.buscaend .be-inwrap svg{position:absolute;left:12px;color:var(--azul-esc);pointer-events:none}
.buscaend .be-inwrap input{width:100%;padding:10px 12px 10px 38px;border:1.5px solid var(--linha);border-radius:10px;font-size:14px;color:var(--tinta);background:#fff;transition:.15s}
.buscaend .be-inwrap input:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(0,175,233,.13)}
.buscaend .be-hint{font-size:11.5px;color:var(--suave);margin-top:8px}
.buscaend .be-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--suave);margin-top:12px}
.buscaend .be-head b{color:var(--tinta)}
.buscaend .be-grp{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--suave);margin:12px 0 6px}
.buscaend .be-grp.vaga{color:var(--verde)} .buscaend .be-grp.lotada{color:var(--vermelho)}
.buscaend .be-list{display:flex;flex-direction:column;gap:6px}
.be-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1.5px solid var(--linha);border-radius:10px;cursor:pointer;transition:.13s;background:#fff}
.be-item:hover{border-color:#BFE6FA;background:#F6FBFF}
.be-item.sel{border-color:var(--azul);background:#EEF8FD;box-shadow:0 0 0 3px rgba(0,175,233,.10)}
.be-item .be-rank{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:800;color:#fff;background:var(--azul-esc);flex:none}
.be-item.lotada .be-rank{background:#8A99A8}
.be-item .be-main{flex:1;min-width:0}
.be-item .be-nm{font-size:13.5px;font-weight:800;color:var(--tinta);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.be-item .be-sub{font-size:11.5px;color:var(--suave);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.be-item .be-dist{font-size:14px;font-weight:800;color:var(--azul-esc);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.be-item .be-dist small{display:block;font-size:10px;color:var(--suave);font-weight:600}
.buscaend .be-empty{font-size:12.5px;color:var(--suave);padding:10px 0}
.buscaend .be-erro{font-size:12.5px;color:var(--vermelho);background:var(--vermelho-bg);padding:8px 12px;border-radius:8px;margin-top:10px}

/* tooltip hover do pin */
/* compactar o balão de info do Google Maps (hover) */
.gm-style .gm-style-iw-c{padding:0!important;border-radius:10px!important;box-shadow:0 6px 22px rgba(11,32,52,.22)!important;max-width:none!important}
.gm-style .gm-style-iw-d{overflow:hidden!important;padding:0!important;max-width:none!important}
.gm-style .gm-style-iw-tc{display:none!important}
.gm-style .gm-style-iw-chr{display:none!important}
.gm-style .gm-style-iw button.gm-ui-hover-effect{display:none!important}
.pin-tip{padding:8px 11px;display:flex;flex-direction:column;gap:1px;white-space:nowrap}
.pin-tip b{color:var(--tinta);font-size:13px;line-height:1.2}
.pin-tip .tip-st{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.3}
.pin-tip .tip-row{font-size:11.5px;color:var(--suave);line-height:1.3}
.pin-tip .tip-ref{color:var(--suave);font-style:italic}
.pop-btns{display:flex;gap:6px;margin-top:8px}
.pop-btns button{flex:1;background:var(--azul-esc);color:#fff;padding:6px 10px;border-radius:7px;font-size:11.5px;font-weight:700}
.pop-btns button.sv{background:#fff;color:var(--azul-esc);border:1.5px solid var(--linha)}
/* rótulo de distância na linha */
.med-label span{background:var(--coral);color:#fff;font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.2);position:relative;left:-50%;top:-9px;display:inline-block}

/* ===== mapa de calor ===== */
.calorbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 18px;background:#F5F8FC;border-bottom:1px solid var(--linha);font-size:12.5px;color:var(--texto)}
.calorbar label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--suave)}
.calorbar select{padding:5px 8px;border:1px solid var(--linha);border-radius:7px;font-size:12.5px;background:#fff;color:var(--tinta);font-weight:700}
.calorbar input[type=range]{width:110px;accent-color:var(--azul-esc)}
.calor-leg{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--suave)}
.calor-leg i{width:18px;height:10px;border-radius:3px;display:inline-block}
.medbtn#btnCalor.on{background:var(--azul-esc);color:#fff;border-color:var(--azul-esc)}
.calor-tip{position:absolute;z-index:5;pointer-events:none;background:rgba(11,32,52,.92);color:#fff;padding:8px 10px;border-radius:9px;font-size:12px;max-width:260px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.calor-tip b{display:block;font-size:12.5px} .calor-tip small{display:block;color:#CFE6F6;margin-top:3px;line-height:1.35}

body.calor-on .cto-lbl{display:none!important}
