/* Mapa de delimitação — vender.php (Google ou Leaflet) */
.veja-vender-map-wrap {
  border: 1px solid #dee2e6;
  border-radius: 10px;
  padding: 8px;
  background: #f3f4f6;
  margin-bottom: 0.5rem;
  /* não usar overflow:hidden — cortava os tiles do mapa */
  overflow: visible;
}

/*
 * requestFullscreen no .veja-vender-map-wrap
 * height:100% no topo do fullscreen falha em vários browsers — usar 100vh/100dvh.
 * padding do wrap e mb-1/mt-1 dos toolbars comiam área útil do mapa.
 */
.veja-vender-map-wrap:fullscreen,
.veja-vender-map-wrap:-webkit-full-screen,
.veja-vender-map-wrap:-moz-full-screen,
.veja-vender-map-wrap:-ms-fullscreen {
  /* 100vw em portrait costuma criar overflow horizontal; % + JS (visualViewport) preenche bem em vertical */
  width: 100% !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  height: 100lvh !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  min-height: 100lvh !important;
  min-height: -webkit-fill-available !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  border: none;
  overflow: hidden;
}

.veja-vender-map-wrap:fullscreen .veja-map-action-bar,
.veja-vender-map-wrap:-webkit-full-screen .veja-map-action-bar,
.veja-vender-map-wrap:-moz-full-screen .veja-map-action-bar,
.veja-vender-map-wrap:-ms-fullscreen .veja-map-action-bar {
  flex-shrink: 0;
  margin-bottom: 0 !important;
  padding: 8px 10px 6px;
}

.veja-vender-map-wrap:fullscreen .veja-map-toolbar-bottom,
.veja-vender-map-wrap:-webkit-full-screen .veja-map-toolbar-bottom,
.veja-vender-map-wrap:-moz-full-screen .veja-map-toolbar-bottom,
.veja-vender-map-wrap:-ms-fullscreen .veja-map-toolbar-bottom {
  flex-shrink: 0;
  margin-top: 0 !important;
  padding: 6px 10px 10px;
}

.veja-vender-map-wrap:fullscreen .veja-vender-map-frame,
.veja-vender-map-wrap:-webkit-full-screen .veja-vender-map-frame,
.veja-vender-map-wrap:-moz-full-screen .veja-vender-map-frame,
.veja-vender-map-wrap:-ms-fullscreen .veja-vender-map-frame {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
}

/* min-height:280px do mapa impede o flex de preencher em ecrãs baixos */
.veja-vender-map-wrap:fullscreen .veja-vender-map-frame #veja-vender-map,
.veja-vender-map-wrap:fullscreen .veja-vender-map-frame [id^='veja-ar-map-'],
.veja-vender-map-wrap:-webkit-full-screen .veja-vender-map-frame #veja-vender-map,
.veja-vender-map-wrap:-webkit-full-screen .veja-vender-map-frame [id^='veja-ar-map-'],
.veja-vender-map-wrap:-moz-full-screen .veja-vender-map-frame #veja-vender-map,
.veja-vender-map-wrap:-moz-full-screen .veja-vender-map-frame [id^='veja-ar-map-'],
.veja-vender-map-wrap:-ms-fullscreen .veja-vender-map-frame #veja-vender-map,
.veja-vender-map-wrap:-ms-fullscreen .veja-vender-map-frame [id^='veja-ar-map-'] {
  min-height: 0 !important;
}

.veja-vender-map-wrap:fullscreen .veja-vender-map-frame .leaflet-container,
.veja-vender-map-wrap:-webkit-full-screen .veja-vender-map-frame .leaflet-container,
.veja-vender-map-wrap:-moz-full-screen .veja-vender-map-frame .leaflet-container,
.veja-vender-map-wrap:-ms-fullscreen .veja-vender-map-frame .leaflet-container {
  min-height: 0 !important;
}

/* Mapa como .leaflet-container no próprio div — min-height 280px normal quebra flex em portrait */
.veja-vender-map-wrap:fullscreen #veja-vender-map.leaflet-container,
.veja-vender-map-wrap:fullscreen [id^='veja-ar-map-'].leaflet-container,
.veja-vender-map-wrap:-webkit-full-screen #veja-vender-map.leaflet-container,
.veja-vender-map-wrap:-webkit-full-screen [id^='veja-ar-map-'].leaflet-container,
.veja-vender-map-wrap:-moz-full-screen #veja-vender-map.leaflet-container,
.veja-vender-map-wrap:-moz-full-screen [id^='veja-ar-map-'].leaflet-container,
.veja-vender-map-wrap:-ms-fullscreen #veja-vender-map.leaflet-container,
.veja-vender-map-wrap:-ms-fullscreen [id^='veja-ar-map-'].leaflet-container {
  min-height: 0 !important;
  height: 100% !important;
}

/* Contentor com altura explícita (min() em CSS falha em browsers antigos → altura 0) */
.veja-vender-map-frame {
  position: relative;
  width: 100%;
  height: 420px;
  min-height: 300px;
  max-height: 70vh;
  border-radius: 8px;
  overflow: hidden;
  background: #dee2e6;
}

/* Área reservada usa #veja-ar-map-novo / #veja-ar-map-edit — precisam das mesmas regras que #veja-vender-map */
#veja-vender-map,
[id^="veja-ar-map-"] {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 280px;
  z-index: 1;
  background: #dee2e6;
}

/* Leaflet / Google preenchem o contentor */
#veja-vender-map.leaflet-container,
#veja-vender-map .leaflet-container,
[id^="veja-ar-map-"].leaflet-container,
[id^="veja-ar-map-"] .leaflet-container {
  width: 100% !important;
  height: 100% !important;
  min-height: 280px;
  z-index: 1;
}

#veja-vender-map .gm-style,
#veja-vender-map .gm-style > div {
  border-radius: 0;
}

.veja-vender-map-meta {
  font-size: 0.875rem;
  color: #6c757d;
  padding: 0.5rem 0 0;
}

.veja-status-bar-externo {
  border-color: #e5e7eb !important;
}

/* Texto Área/Perímetro pode empurrar Vista+KML para fora da vista; Vista mantém-se à esquerda do KML */
.veja-status-bar-externo > .d-flex.align-items-center {
  gap: 0.5rem;
}
/* Só em ≥576px: crescer em largura (eixo horizontal). Em coluna (móvel), flex-grow-1 no eixo vertical = faixa branca enorme. */
@media (min-width: 576px) {
  .veja-status-bar-externo > .d-flex > .small.flex-grow-1 {
    min-width: 0;
    flex: 1 1 auto;
  }
}
.veja-ar-map-imports {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.5rem;
  flex: 0 0 auto;
}
@media (max-width: 575.98px) {
  .veja-status-bar-externo > .d-flex.align-items-center {
    flex-direction: column;
    align-items: stretch !important;
  }
  /* Anular .flex-grow-1 do Bootstrap no eixo vertical (coluna) */
  .veja-status-bar-externo > .d-flex > .small.flex-grow-1 {
    flex-grow: 0 !important;
    flex-basis: auto !important;
    width: 100%;
    min-width: 0;
  }
  .veja-ar-map-imports {
    width: 100%;
    justify-content: flex-start;
  }
}

.veja-drop-map-file {
  cursor: pointer;
  transition: background-color 0.2s, box-shadow 0.2s;
}

.veja-drop-map-file.veja-drop-kml:hover {
  background-color: rgba(40, 167, 69, 0.08) !important;
}

#veja-drop-kml {
  cursor: pointer;
  transition: background-color 0.2s, box-shadow 0.2s;
}

#veja-drop-kml:hover {
  background-color: rgba(40, 167, 69, 0.08) !important;
}

.veja-map-action-bar .btn {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
}

.veja-map-toolbar-bottom .btn {
  font-size: 0.75rem;
}

/* --- Cores distintas por função (evitar pares btn-info / btn-success iguais) --- */

/* Centrar = azul céu | Posição = índigo */
.veja-map-action-bar #veja-btn-centrar,
.veja-map-action-bar [id^='veja-btn-centrar-'] {
  background-color: #0284c7 !important;
  border-color: #0369a1 !important;
  color: #fff !important;
}
.veja-map-action-bar #veja-btn-centrar:hover,
.veja-map-action-bar [id^='veja-btn-centrar-']:hover {
  background-color: #0369a1 !important;
  border-color: #075985 !important;
  color: #fff !important;
}
.veja-map-action-bar #veja-btn-pos,
.veja-map-action-bar [id^='veja-btn-pos-'] {
  background-color: #4f46e5 !important;
  border-color: #4338ca !important;
  color: #fff !important;
}
.veja-map-action-bar #veja-btn-pos:hover,
.veja-map-action-bar [id^='veja-btn-pos-']:hover {
  background-color: #4338ca !important;
  border-color: #3730a3 !important;
  color: #fff !important;
}

/* GPS = verde sólido | GPS auto = contorno verde (destaque diferente) */
.veja-map-action-bar #veja-btn-gps,
.veja-map-action-bar [id^='veja-btn-gps-']:not([id*='gps-auto']) {
  background-color: #198754 !important;
  border-color: #157347 !important;
  color: #fff !important;
}
.veja-map-action-bar #veja-btn-gps:hover,
.veja-map-action-bar [id^='veja-btn-gps-']:not([id*='gps-auto']):hover {
  background-color: #157347 !important;
  border-color: #146c43 !important;
  color: #fff !important;
}
.veja-map-action-bar #veja-btn-gps-auto,
.veja-map-action-bar [id^='veja-btn-gps-auto'] {
  background-color: #fff !important;
  border: 2px solid #198754 !important;
  color: #0f5132 !important;
}
.veja-map-action-bar #veja-btn-gps-auto:hover,
.veja-map-action-bar [id^='veja-btn-gps-auto']:hover {
  background-color: #d1e7dd !important;
  border-color: #157347 !important;
  color: #0a3622 !important;
}

/* Fundo de mapa: satélite (âmbar) | ruas (índigo claro) | relevo (verde) */
.veja-map-toolbar-bottom #veja-btn-hybrid,
.veja-map-toolbar-bottom [id^='veja-btn-hybrid-'] {
  background-color: #ffedd5 !important;
  border-color: #ea580c !important;
  color: #9a3412 !important;
}
.veja-map-toolbar-bottom #veja-btn-hybrid:hover,
.veja-map-toolbar-bottom [id^='veja-btn-hybrid-']:hover {
  background-color: #fed7aa !important;
  border-color: #c2410c !important;
  color: #7c2d12 !important;
}
.veja-map-toolbar-bottom #veja-btn-map,
.veja-map-toolbar-bottom [id^='veja-btn-map-'] {
  background-color: #e0e7ff !important;
  border-color: #6366f1 !important;
  color: #312e81 !important;
}
.veja-map-toolbar-bottom #veja-btn-map:hover,
.veja-map-toolbar-bottom [id^='veja-btn-map-']:hover {
  background-color: #c7d2fe !important;
  border-color: #4f46e5 !important;
  color: #1e1b4b !important;
}
.veja-map-toolbar-bottom #veja-btn-terrain,
.veja-map-toolbar-bottom [id^='veja-btn-terrain-'] {
  background-color: #d1fae5 !important;
  border-color: #059669 !important;
  color: #065f46 !important;
}
.veja-map-toolbar-bottom #veja-btn-terrain:hover,
.veja-map-toolbar-bottom [id^='veja-btn-terrain-']:hover {
  background-color: #a7f3d0 !important;
  border-color: #047857 !important;
  color: #064e3b !important;
}

/* Leaflet.draw: esconder controlos nativos (camadas editar/apagar, Concluir / último ponto / Cancelar). */
#veja-vender-map .leaflet-control-draw,
#veja-vender-map .leaflet-draw-toolbar,
#veja-vender-map .leaflet-draw-actions,
[id^='veja-ar-map-'].leaflet-container .leaflet-control-draw,
[id^='veja-ar-map-'].leaflet-container .leaflet-draw-toolbar,
[id^='veja-ar-map-'].leaflet-container .leaflet-draw-actions {
  display: none !important;
}

/* Barra do draw por vezes fica como filha de body ou de main (fora do div do mapa) e cobre o topo — não é usada (botões na página). */
body > .leaflet-draw-toolbar,
main > .leaflet-draw-toolbar {
  display: none !important;
  pointer-events: none !important;
}

/* Vértices nativos do Leaflet.draw: pontos pequenos (evita quadrados brancos grandes) */
#veja-vender-map .veja-vender-draw-handle,
[id^="veja-ar-map-"] .veja-vender-draw-handle {
  background: #e69a00 !important;
  border: 2px solid #fff !important;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

#veja-vender-map .veja-vender-draw-handle--touch,
[id^="veja-ar-map-"] .veja-vender-draw-handle--touch {
  border-width: 2px;
}

/* Marcador transparente que captura cliques — não mostrar quadrado */
#veja-vender-map .leaflet-mouse-marker.leaflet-div-icon,
[id^="veja-ar-map-"] .leaflet-mouse-marker.leaflet-div-icon {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

/* Fallback se algum ícone de edição escapar ao tema */
#veja-vender-map .leaflet-editing-icon:not(.veja-vender-draw-handle),
[id^="veja-ar-map-"] .leaflet-editing-icon:not(.veja-vender-draw-handle) {
  width: 11px !important;
  height: 11px !important;
  margin-left: -5px !important;
  margin-top: -5px !important;
  border-radius: 50%;
  background: #e69a00 !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Tooltip de desenho — caixa mais larga = menos linhas e menos altura; quebras entre palavras */
#veja-vender-map .leaflet-draw-tooltip,
[id^="veja-ar-map-"] .leaflet-draw-tooltip {
  background: rgba(26, 26, 26, 0.92) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  border-radius: 8px !important;
  padding: 6px 12px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  max-width: min(96vw, 36rem) !important;
  min-width: 0;
  box-sizing: border-box !important;
  white-space: normal !important;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: normal;
  overflow: visible !important;
  hyphens: manual;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

/* leaflet.draw.css usa white-space:nowrap no tooltip — forçar quebra */
#veja-vender-map .leaflet-draw-tooltip.leaflet-draw-tooltip-single,
[id^="veja-ar-map-"] .leaflet-draw-tooltip.leaflet-draw-tooltip-single {
  white-space: normal !important;
}

#veja-vender-map .leaflet-draw-tooltip *,
[id^="veja-ar-map-"] .leaflet-draw-tooltip * {
  white-space: normal !important;
  max-width: 100%;
  box-sizing: border-box;
}

#veja-vender-map .leaflet-draw-tooltip-subtext,
[id^="veja-ar-map-"] .leaflet-draw-tooltip-subtext {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  display: block;
  margin-top: 0.2rem;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: normal;
}

/* Números nos vértices do polígono */
.veja-vender-vertex-marker {
  background: transparent !important;
  border: none !important;
}

.veja-vender-vertex-marker .veja-vender-vertex-n {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 4px;
  border-radius: 50%;
  background: #ffc107;
  color: #1a1a1a;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

/* Área no centro do polígono (fechado) */
.veja-vender-area-label-marker {
  background: transparent !important;
  border: none !important;
}

.veja-vender-area-label-marker .veja-vender-area-label-txt {
  display: inline-block;
  position: relative;
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
  padding: 5px 12px;
  border-radius: 8px;
  background: rgba(255, 193, 7, 0.95);
  color: #1a1a1a;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  border: 2px solid #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  pointer-events: none;
}

@media (max-width: 576px) {
  .veja-vender-map-wrap:not(:fullscreen):not(:-webkit-full-screen):not(:-moz-full-screen):not(:-ms-fullscreen) .veja-vender-map-frame {
    height: 55vh;
    min-height: 260px;
    max-height: none;
  }

  /* Alvos de toque ~44px — evita falhas ao tocar em botões pequenos no telemóvel */
  .veja-map-action-bar .btn,
  .veja-map-toolbar-bottom .btn {
    font-size: 0.72rem;
    padding: 0.4rem 0.5rem;
    min-height: 44px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.08);
  }
}
