/* ============================================================
   Mapa de Lotes · Gêmeos Imóveis
   Verde-escuro + dourado · Cormorant Garamond + Jost
   ============================================================ */

:root {
  --green-950: #051f15;
  --green-900: #0a2d1f;
  --green-800: #10402c;
  --green-700: #1a5238;
  --gold-500: #c9a24b;
  --gold-400: #d4af56;
  --gold-300: #e6c979;
  --cream: #f8f4e9;
  --cream-2: #f1ead9;
  --ink: #22301f;
  --ink-soft: #5c6355;

  --disp: #2e9e6b;
  --res: #d9a23c;
  --vend: #c25a50;
  --exclusivo: #2e719e;

  --grad-gold: linear-gradient(115deg, #a37e2f, #d4af56 45%, #b18a37);
  --shadow-lg: 0 18px 45px rgba(5, 31, 21, 0.35);
  --font-display: "Montserrat", sans-serif;
  --font-body: "Jost", "Segoe UI", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { height: 100%; }

body {
  font-family: var(--font-body);
  background: var(--green-950);
  color: var(--ink);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ---------- topo ---------- */
/* embutido na landing page: oculta topo, lista de lotes e botão de alternar */
html.is-embed .topbar { display: none; }
html.is-embed .sidebar { display: none !important; }
html.is-embed #lista-toggle { display: none !important; }


.topbar {
  height: 66px;
  flex: 0 0 66px;
  background: linear-gradient(180deg, var(--green-900), var(--green-950));
  border-bottom: 1px solid rgba(201, 162, 75, 0.45);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  gap: 1rem;
  z-index: 1200;
  position: relative;
}

.topbar__brand { display: flex; align-items: center; gap: 0.8rem; min-width: 0; cursor: pointer; transition: all 0.2s ease; }
.topbar__brand:hover .topbar__titles strong {
  color: var(--gold-300);
}
.topbar__brand:hover .topbar__medal {
  border-color: var(--gold-300);
  transform: scale(1.03);
}

.topbar__medal {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 2px solid var(--gold-500);
  background: var(--cream);
  overflow: hidden;
  flex: 0 0 46px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.topbar__medal img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

.topbar__titles { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.topbar__titles strong {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--cream);
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.topbar__titles span {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--gold-300);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.topbar__right { display: flex; align-items: center; gap: 1rem; }
.topbar__creci {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: rgba(248, 244, 233, 0.65);
  text-transform: uppercase;
}

.btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--grad-gold);
  color: var(--green-950);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  padding: 0.55rem 1.1rem;
  border: none;
  border-radius: 999px;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  box-shadow: 0 6px 18px rgba(201, 162, 75, 0.28);
}
.btn-gold:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 9px 22px rgba(201, 162, 75, 0.4); }
.btn-gold--full { width: 100%; justify-content: center; border-radius: 10px; padding: 0.7rem 1rem; font-size: 0.88rem; }

/* ---------- estrutura ---------- */
.layout { flex: 1; display: flex; min-height: 0; }

/* ---------- barra lateral ---------- */
.sidebar {
  width: 332px;
  flex: 0 0 332px;
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(201, 162, 75, 0.08), transparent 55%),
    var(--cream);
  border-right: 1px solid rgba(201, 162, 75, 0.5);
  display: flex;
  flex-direction: column;
  min-height: 0;
  z-index: 1100;
}

.sidebar__head { padding: 1.1rem 1.2rem 0.6rem; }
/* Botão "Voltar ao mapa" — só aparece no celular */
.sidebar__fechar {
  display: none;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.9rem;
  padding: 0.6rem 1rem;
  border-radius: 10px;
  border: 1.5px solid var(--gold-500);
  background: linear-gradient(150deg, var(--green-800), var(--green-950));
  color: var(--gold-300);
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.sidebar__fechar:active { transform: scale(0.98); }
.sidebar__head h1 {
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--green-900);
  line-height: 1.1;
}
.sidebar__head p {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--gold-500);
  margin-top: 0.25rem;
}
.sidebar__head p:empty {
  display: none;
  margin: 0;
}

.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
  padding: 0.7rem 1.2rem 0.3rem;
}
.stat {
  background: #fff;
  border: 1px solid rgba(201, 162, 75, 0.35);
  border-top: 3px solid var(--dot, var(--gold-500));
  border-radius: 10px;
  padding: 0.5rem 0.15rem 0.45rem;
  text-align: center;
  cursor: pointer;
  font-family: var(--font-body);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.stat:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(5, 31, 21, 0.12); }
.stat strong {
  display: block;
  font-family: var(--font-display);
  font-variant-numeric: lining-nums;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--green-900);
  line-height: 1;
}
.stat > span { font-size: 0.54rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-soft); }
.stat--todos { --dot: var(--ink-soft); }
.stat--disp { --dot: var(--disp); }
.stat--res  { --dot: var(--res); }
.stat--vend { --dot: var(--vend); }

.ordenacao {
  margin: 0.65rem 1.2rem 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  background: #fff;
  border: 1px solid rgba(201, 162, 75, 0.4);
  border-radius: 10px;
  padding: 0.4rem 0.65rem;
  color: var(--green-950);
  font-family: var(--font-body);
}
.ordenacao svg {
  color: var(--green-950);
  flex-shrink: 0;
  display: inline-block;
}
.ordenacao select {
  border: none;
  outline: none;
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 600;
  width: 100%;
  background: transparent;
  color: var(--green-950);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  padding-right: 1.5rem;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23051f15' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 11px;
}

.lista { flex: 1; overflow-y: auto; padding: 0.3rem 0.8rem 1rem; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(201,162,75,.6) transparent; }

.lista__quadra {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--green-800);
  padding: 0.7rem 0.4rem 0.25rem;
  border-bottom: 1px solid rgba(201, 162, 75, 0.35);
  margin-bottom: 0.3rem;
  position: sticky;
  top: 0;
  background: var(--cream);
  z-index: 2;
}

.lote-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 0.42rem 0.5rem;
  cursor: pointer;
  font-family: var(--font-body);
  text-align: left;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.lote-item:hover { background: rgba(255, 255, 255, 0.85); border-color: rgba(201, 162, 75, 0.4); }
.lote-item--sel { background: #fff; border-color: var(--gold-500); box-shadow: 0 4px 12px rgba(5,31,21,.1); }
.lote-item .dot { flex: 0 0 9px; }
.lote-item__id { font-weight: 600; font-size: 0.85rem; color: var(--green-900); width: 3.2rem; }
.lote-item__meta { font-size: 0.74rem; color: var(--ink-soft); flex: 1; }
.lote-item__preco { font-size: 0.78rem; font-weight: 600; color: var(--green-800); font-variant-numeric: lining-nums; }
.lote-item--vendido .lote-item__preco { color: var(--ink-soft); text-decoration: line-through; opacity: .6; }

.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.dot--disp { background: var(--disp); }
.dot--res  { background: var(--res); }
.dot--vend { background: var(--vend); }
.dot--exc  { background: var(--exclusivo); }

/* ---------- mapa ---------- */
.mapwrap { flex: 1; position: relative; min-width: 0; }
#mapa { position: absolute; inset: 0; background: #0d271b; }

/* pinos de localização numerados */
.pin { filter: drop-shadow(0 5px 8px rgba(5, 31, 21, 0.5)); transition: opacity 0.2s ease; }
.pin svg { display: block; overflow: visible; }
.pin__corpo { stroke: #f8f4e9; stroke-width: 2; }
.pin__disco { fill: rgba(248, 244, 233, 0.94); }
.pin__num {
  font-family: "Jost", sans-serif;
  font-size: 13px;
  font-weight: 600;
  fill: var(--green-900);
}
.pin--disponivel .pin__corpo { fill: var(--disp); }
.pin--reservado  .pin__corpo { fill: var(--res); }
.pin--vendido    .pin__corpo { fill: var(--vend); }
.pin--exclusivo  .pin__corpo { fill: var(--exclusivo); }
.pin--dim { opacity: 0.25; }
.pin--sel { filter: drop-shadow(0 0 6px rgba(230, 201, 121, 0.95)) drop-shadow(0 6px 10px rgba(5, 31, 21, 0.55)); z-index: 1000 !important; }
.pin--sel svg { transform: scale(1.22); transform-origin: 50% 100%; }
.pin--sel .pin__corpo { stroke: var(--gold-300); stroke-width: 2.5; }

/* controles flutuantes */
.basemap {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 1000;
  display: flex;
  background: var(--green-950);
  border: 1px solid rgba(201, 162, 75, 0.55);
  border-radius: 999px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.basemap__btn {
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.45rem 0.95rem;
  border: none;
  background: transparent;
  color: rgba(248, 244, 233, 0.7);
  cursor: pointer;
  transition: all 0.15s ease;
}
.basemap__btn--ativo { background: var(--grad-gold); color: var(--green-950); font-weight: 600; }

.legenda {
  position: absolute;
  bottom: 22px;
  left: 14px;
  z-index: 1000;
  background: rgba(5, 31, 21, 0.88);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(201, 162, 75, 0.5);
  border-radius: 12px;
  padding: 0.55rem 0.95rem;
  display: flex;
  gap: 1rem;
  color: var(--cream);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  box-shadow: var(--shadow-lg);
}
.legenda span { display: inline-flex; align-items: center; gap: 0.4rem; }

/* ---------- cartão de detalhes ---------- */
.detalhe {
  position: absolute;
  top: 60px;
  left: 14px;
  z-index: 1050;
  width: 290px;
  background: var(--cream);
  border: 1px solid var(--gold-500);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  padding: 0 0 1.15rem;
  overflow: hidden;
  animation: surgir 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
@keyframes surgir {
  from { opacity: 0; transform: translateY(14px) scale(0.97); }
  to   { opacity: 1; transform: none; }
}

.detalhe__fechar {
  position: absolute;
  top: 8px; right: 10px;
  z-index: 20;
  border: none;
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(5, 31, 21, 0.55);
  backdrop-filter: blur(4px);
  font-size: 1.2rem;
  line-height: 1;
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease;
}
.detalhe__fechar:hover { background: rgba(5, 31, 21, 0.85); }

.detalhe__badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  background: var(--badge, var(--disp));
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  margin-bottom: 0.4rem;
}
.detalhe__topo h2 {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--green-900);
  line-height: 1.02;
  letter-spacing: -0.015em;
  text-wrap: balance;        /* equilibra as linhas automaticamente */
  overflow-wrap: break-word;
}
.detalhe__topo p { font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); margin-top: 0.2rem; }

.detalhe__preco {
  font-family: var(--font-display);
  font-variant-numeric: lining-nums;
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--green-950);
  margin: 0.5rem 0 0.6rem;
}
.detalhe__preco small { font-size: 0.85rem; font-family: var(--font-body); font-weight: 400; }

.detalhe__ficha {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem 0.8rem;
  border-top: 1px solid rgba(201, 162, 75, 0.4);
  padding-top: 0.65rem;
}
/* o atributo [hidden] precisa vencer o display:grid/flex acima */
.detalhe__ficha[hidden], .detalhe__tags[hidden] { display: none !important; }
.detalhe__ficha dt { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-soft); }
.detalhe__ficha dd { font-size: 0.9rem; font-weight: 500; color: var(--green-900); font-variant-numeric: lining-nums; }

.detalhe__obs { font-size: 0.78rem; font-style: italic; color: var(--ink-soft); margin: 0.55rem 0 0.75rem; min-height: 1em; }

/* ---------- modo editor ---------- */
.editor {
  position: absolute;
  bottom: 22px;
  right: 14px;
  z-index: 1050;
  width: 300px;
  background: var(--green-950);
  border: 1px dashed var(--gold-400);
  border-radius: 14px;
  padding: 0.9rem 1rem;
  color: var(--cream);
  box-shadow: var(--shadow-lg);
}
.editor__head { font-weight: 600; letter-spacing: 0.14em; font-size: 0.72rem; color: var(--gold-300); margin-bottom: 0.4rem; }
.editor__modo { display: flex; gap: 0.4rem; margin-bottom: 0.5rem; }
.editor__modo .chip { color: var(--cream); border-color: rgba(248, 244, 233, 0.35); }
.editor__modo .chip--ativo { background: var(--grad-gold); color: var(--green-950); border-color: transparent; }
.editor p { font-size: 0.76rem; color: rgba(248, 244, 233, 0.75); margin-bottom: 0.5rem; }
.editor__coord { font-size: 0.72rem; font-variant-numeric: tabular-nums; color: var(--gold-300); margin-bottom: 0.5rem; }
.editor textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(201, 162, 75, 0.4);
  border-radius: 8px;
  color: var(--cream);
  font-family: Consolas, monospace;
  font-size: 0.68rem;
  padding: 0.5rem;
  resize: vertical;
  margin-bottom: 0.55rem;
}

/* botão lista (mobile) */
.lista-toggle {
  display: none;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1060;
  background: linear-gradient(150deg, var(--green-800), var(--green-950));
  color: var(--gold-300);
  border: 1.6px solid var(--gold-500);
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 800;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  padding: 0.78rem 1.9rem;
  box-shadow: 0 14px 30px -10px rgba(5, 31, 21, 0.7), inset 0 1px 0 rgba(201, 162, 75, 0.3);
  cursor: pointer;
}

/* leaflet: ajustes de tema */
.leaflet-control-zoom a {
  background: var(--green-950) !important;
  color: var(--gold-300) !important;
  border-color: rgba(201, 162, 75, 0.45) !important;
}
.leaflet-control-zoom a:hover { background: var(--green-800) !important; }
.leaflet-control-attribution { background: rgba(5, 31, 21, 0.75) !important; color: rgba(248,244,233,.6) !important; font-size: 9px !important; }
.leaflet-control-attribution a { color: var(--gold-300) !important; }

/* ---------- responsivo ---------- */
@media (max-width: 900px) {
  /* ---- cabeçalho limpo no celular ---- */
  .topbar { padding: 0 0.7rem; gap: 0.5rem; }
  .topbar__creci { display: none; }
  .btn-topbar-site { display: none !important; }   /* remove o "Website" central que bagunçava */
  .topbar__brand { flex: 1 1 auto; min-width: 0; }
  .topbar__medal { width: 40px; height: 40px; flex-shrink: 0; }
  .topbar__titles { min-width: 0; }
  .topbar__titles strong { font-size: 0.95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .topbar__titles span { font-size: 0.55rem; }
  .topbar__right { gap: 0.55rem; flex-shrink: 0; }
  /* WhatsApp vira um círculo verde só de ícone (vence a regra base mais abaixo) */
  .topbar__right #topbar-whats {
    font-size: 0;
    gap: 0;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(150deg, #2bb35a, #1d8a44);
    color: #fff;
    border: none;
    box-shadow: 0 8px 18px -6px rgba(29, 138, 68, 0.7);
    animation: none;
  }
  .topbar__right #topbar-whats svg { width: 22px; height: 22px; }

  .layout { position: relative; }
  .sidebar {
    position: absolute;
    inset: 0;
    width: 100%;
    flex: none;
    z-index: 1300;
    transform: translateY(105%);
    transition: transform 0.3s cubic-bezier(0.3, 0.8, 0.3, 1);
    border-right: none;
  }
  .sidebar--aberta { transform: none; }
  .sidebar__fechar { display: inline-flex; }
  .lista-toggle { display: block; }

  .detalhe {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-height: 86vh;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    border-radius: 18px 18px 0 0;
    animation-name: subir;
  }
  /* com o detalhe aberto, o botão "Lotes" some para não sobrepor */
  .mapwrap:has(.detalhe:not([hidden])) .lista-toggle { display: none; }
  @keyframes subir {
    from { transform: translateY(30px); opacity: 0; }
    to   { transform: none; opacity: 1; }
  }

  /* legenda no canto INFERIOR ESQUERDO, empilhada e compacta */
  .legenda {
    top: auto;
    bottom: 14px;
    left: 12px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.55rem 0.8rem;
    font-size: 0.68rem;
    max-width: none;
    width: max-content;
  }
  .basemap { top: 14px; }
  .editor { width: calc(100% - 28px); bottom: 80px; }
}

/* ---------- Tooltips Personalizados ---------- */
.pin-tooltip {
  background: var(--green-950) !important;
  color: var(--gold-300) !important;
  border: 1px solid var(--gold-500) !important;
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 0.7rem !important;
  padding: 3px 8px !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 10px rgba(5, 31, 21, 0.4) !important;
  border-bottom-width: 2px !important;
}
.pin-tooltip::before {
  border-top-color: var(--green-950) !important;
}

.guadalupe-tooltip {
  background: rgba(5, 31, 21, 0.92) !important;
  color: var(--cream) !important;
  border: 1px solid var(--gold-500) !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 0.65rem !important;
  text-align: center !important;
  padding: 4px 10px !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 14px rgba(5, 31, 21, 0.5), 0 0 10px rgba(201, 162, 75, 0.35) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}
.guadalupe-tooltip::before {
  display: none !important;
}

/* ---------- Marcadores dos Pontos de Interesse (Landmark) no Mapa ---------- */
.pin-landmark {
  position: relative !important;
  width: 36px !important;
  height: 48px !important;
  background: transparent !important;
  border: none !important;
}

/* O SVG do pino fica travado nas dimensões corretas */
.pin-landmark svg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 36px !important;
  height: 48px !important;
  display: block !important;
  z-index: 2 !important;
}

/* Animação hover no corpo do pino */
.pin-landmark__corpo {
  transition: transform 0.2s ease, filter 0.2s ease;
  transform-origin: 18px 46px;
}
.pin-landmark:hover svg {
  transform: scale(1.15);
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
}

/* Nome embaixo - posicionado absolutamente sem interferir na coordenada */
.landmark-label {
  position: absolute !important;
  top: 50px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: none !important;
  backdrop-filter: none !important;
  color: #ffffff !important;
  border: none !important;
  padding: 0 !important;
  font-family: var(--font-body);
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: normal;         /* permite quebrar em mais de uma linha */
  max-width: 130px;            /* nomes longos quebram; curtos ficam numa linha */
  text-align: center;
  line-height: 1.25;
  text-wrap: balance;          /* equilibra as linhas */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.95), -1.5px -1.5px 0 #051f15, 1.5px -1.5px 0 #051f15, -1.5px 1.5px 0 #051f15, 1.5px 1.5px 0 #051f15;
  box-shadow: none !important;
  z-index: 4 !important;
}
.pin-landmark--valor .landmark-label {
  color: var(--gold-300) !important;
  font-size: 0.76rem !important;
  text-shadow: 0 1.5px 4px rgba(0, 0, 0, 0.95), -1.5px -1.5px 0 #051f15, 1.5px -1.5px 0 #051f15, -1.5px 1.5px 0 #051f15, 1.5px 1.5px 0 #051f15;
}

/* Efeito Gota Caindo (Pulso de Ondulação) na Base da Área de Valor */
.landmark-pulse {
  position: absolute !important;
  top: 17.6px !important; /* Exatamente no centro do disco branco do pino (cy=17.6) */
  left: 18px !important;  /* Exatamente no centro do disco branco do pino (cx=18) */
  transform: translate(-50%, -50%) !important;
  width: 24px !important;
  height: 24px !important;
  z-index: 1 !important;
}

.landmark-pulse__ring {
  position: absolute !important;
  width: 24px !important;
  height: 24px !important;
  border: 2px solid var(--gold-400);
  border-radius: 50%;
  background: transparent;
  animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
  pointer-events: none;
  transform-origin: center;
}

.landmark-pulse__ring--2 { animation-delay: 0.66s !important; }
.landmark-pulse__ring--3 { animation-delay: 1.33s !important; }

@keyframes pulse-ring {
  0% {
    transform: scale(0.5);
    opacity: 0.85;
  }
  100% {
    transform: scale(3.5);
    opacity: 0;
  }
}

/* ---------- Seções Retráteis da Barra Lateral (Nítidas) ---------- */
.sidebar__secoes {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0 1.2rem 1rem;
}

.sidebar__secao {
  background: #fff;
  border: 1px solid rgba(201, 162, 75, 0.35);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(5,31,21,0.04);
}

.secao-toggle {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--cream);
  border: none;
  padding: 0.65rem 0.9rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--green-950);
  cursor: pointer;
  text-align: left;
  transition: background 0.15s ease;
}
.secao-toggle:hover {
  background: var(--cream-2);
}

.secao-toggle .arrow-icon {
  transition: transform 0.25s ease;
  color: var(--gold-500);
}
.secao-toggle--aberto .arrow-icon {
  transform: rotate(180deg);
}

.secao-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0, 1, 0, 1);
  background: #fff;
}
.secao-content--aberto {
  max-height: 500px;
  overflow-y: auto;
  transition: max-height 0.3s ease-in-out;
  border-top: 1px solid rgba(201, 162, 75, 0.2);
}

.landmark-item {
  width: 100%;
  display: flex;
  align-items: center;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(201, 162, 75, 0.15);
  padding: 0.55rem 0.9rem;
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--green-900);
  cursor: pointer;
  text-align: left;
  transition: background 0.12s ease, padding-left 0.12s ease;
}
.landmark-item:last-child {
  border-bottom: none;
}
.landmark-item:hover {
  background: rgba(201, 162, 75, 0.08);
  color: var(--gold-500);
  padding-left: 1.1rem;
}

/* ---------- Nitidez da Barra Lateral (Texto mais Escuro e Sharp) ---------- */
.sidebar__head h1 {
  color: var(--green-950) !important;
  letter-spacing: -0.01em;
}
.sidebar__head p {
  color: #a37e2f !important;
  font-weight: 600 !important;
}

.stats {
  padding: 0.7rem 1.2rem 0.5rem;
}
.stat {
  box-shadow: 0 2px 8px rgba(5,31,21,0.03);
}

/* TODOS: Sempre Verde Escuro */
.stat--todos {
  background: var(--green-950) !important;
  border: 1px solid var(--green-950) !important;
}
.stat--todos strong {
  color: var(--gold-300) !important;
}
.stat--todos span {
  color: #fff !important;
}

/* DISPONÍVEL: Verde Claro (Inativo) e Verde Escuro (Ativo) */
.stat--disp {
  background: #eaf7ed !important;
  border: 1px solid #c3e6cb !important;
}
.stat--disp strong {
  color: #1b5e20 !important;
}
.stat--disp span {
  color: #1b5e20 !important;
}
.stat--disp.stat--ativo {
  background: #1b5e20 !important;
  border-color: #1b5e20 !important;
}
.stat--disp.stat--ativo strong {
  color: #ffffff !important;
}
.stat--disp.stat--ativo span {
  color: #eaf7ed !important;
}

/* RESERVADO: Amarelo Claro (Inativo) e Amarelo Escuro/Mostarda (Ativo) */
.stat--res {
  background: #fef9e7 !important;
  border: 1px solid #ffeeba !important;
}
.stat--res strong {
  color: #b58900 !important;
}
.stat--res span {
  color: #b58900 !important;
}
.stat--res.stat--ativo {
  background: #b58900 !important;
  border-color: #b58900 !important;
}
.stat--res.stat--ativo strong {
  color: #ffffff !important;
}
.stat--res.stat--ativo span {
  color: #fef9e7 !important;
}

/* VENDIDO: Vermelho Claro (Inativo) e Vermelho Escuro (Ativo) */
.stat--vend {
  background: #fdf2f2 !important;
  border: 1px solid #f5c6cb !important;
}
.stat--vend strong {
  color: #b82525 !important;
}
.stat--vend span {
  color: #b82525 !important;
}
.stat--vend.stat--ativo {
  background: #b82525 !important;
  border-color: #b82525 !important;
}
.stat--vend.stat--ativo strong {
  color: #ffffff !important;
}
.stat--vend.stat--ativo span {
  color: #fdf2f2 !important;
}



.ordenacao {
  border: 1.5px solid rgba(201, 162, 75, 0.5) !important;
}
.ordenacao svg {
  color: var(--green-950) !important;
}
.ordenacao select {
  font-weight: 600 !important;
  color: var(--green-950) !important;
}

.lista__quadra {
  color: var(--green-950) !important;
  border-bottom: 1.5px solid rgba(201, 162, 75, 0.5) !important;
  font-weight: 800 !important;
  margin-top: 0.4rem;
}

.lote-item {
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(201, 162, 75, 0.2) !important;
  margin-bottom: 0.35rem !important;
  box-shadow: 0 1px 4px rgba(5,31,21,0.02) !important;
}
.lote-item:hover {
  background: #fff !important;
  border-color: var(--gold-500) !important;
}
.lote-item--sel {
  background: #fff !important;
  border-color: var(--gold-400) !important;
  border-width: 1.5px !important;
  box-shadow: 0 4px 10px rgba(5,31,21,0.08) !important;
}
.lote-item__id {
  color: var(--green-950) !important;
  font-weight: 700 !important;
}
.lote-item__meta {
  color: var(--green-900) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
}
.lote-item__preco {
  color: var(--green-950) !important;
  font-weight: 700 !important;
}

/* ---------- Estrelas de Avaliação (suporta meia-estrela) ---------- */
.stars {
  position: relative;
  display: inline-block;
  white-space: nowrap;
  font-size: 0.65rem;
  line-height: 1;
  letter-spacing: 0.05em;
  vertical-align: middle;
}
.stars__bg { color: rgba(10, 45, 31, 0.22); }
.stars__fill {
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  color: #f1c40f;
  text-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.15);
}
.detalhe__estrelas {
  margin: 0.15rem 0 0.3rem;
  display: block;
}
.detalhe__estrelas .stars {
  font-size: 1.15rem;
  letter-spacing: 0.08em;
}

/* ---------- Efeito de Shimmer / Alta Valorização ---------- */
.shimmery-text {
  background: linear-gradient(90deg, #5ed699 0%, #a2ffd1 25%, #5ed699 50%, #a2ffd1 75%, #5ed699 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  font-weight: 800 !important;
  animation: textShimmer 3s linear infinite;
  border-color: rgba(94, 214, 153, 0.4) !important;
}

@keyframes textShimmer {
  to { background-position: 200% center; }
}

/* ---------- Planta Técnica SVG do Lote ---------- */
.detalhe__planta {
  width: 100%;
  height: 175px;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
  background: #0a2d1f;
  flex-shrink: 0;
  display: block;
}
.detalhe__planta svg { display: block; }

/* ---------- Hero de marca (Pontos de Interesse) ---------- */
.poi-hero {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: radial-gradient(130% 100% at 50% 0%, #0f4633, #062218 78%);
}
.poi-hero__photos { position: absolute; inset: 0; }
.poi-hero__ph {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.poi-hero__ph.is-on { opacity: 1; }
/* slide da logomarca: mostra inteira, sem cortar; a cor do letterbox vem do capaBg (inline) */
.poi-hero__ph--logo { object-fit: contain; background: #0a3d2e; }
.poi-hero__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 34, 24, 0.35) 0%, rgba(6, 34, 24, 0.55) 55%, rgba(6, 34, 24, 0.82) 100%);
}
.poi-hero__emblem {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.poi-hero__emblem svg {
  width: 60%;
  max-width: 178px;
  height: auto;
  filter: drop-shadow(0 3px 7px rgba(0, 0, 0, 0.55));
}

/* ---------- Selos de pilares (Pontos de Interesse) ---------- */
.detalhe__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.1rem 0 0.2rem;
}
.detalhe__tag {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-900);
  background: rgba(201, 162, 75, 0.14);
  border: 1px solid rgba(201, 162, 75, 0.45);
  padding: 0.3rem 0.6rem;
  border-radius: 999px;
}

.detalhe__corpo {
  padding: 0.95rem 1.15rem 1.15rem;
  overflow-y: auto;
  flex-grow: 1;
}


/* Linha limite do terreno - amarelo nítido */
.lote-diagram__polygon {
  fill: rgba(255, 235, 59, 0.06);
  stroke: #ffeb3b;
  stroke-width: 2.2;
  stroke-dasharray: 4 4;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}

/* Linhas de cota amarelas */
.lote-diagram__line {
  stroke: #ffeb3b;
  stroke-width: 1.5;
  stroke-dasharray: 3 3;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}

/* Labels de cotas em amarelo bem nítido */
.lote-diagram__label {
  fill: #ffeb3b;
  font-family: var(--font-body);
  font-size: 8px;
  font-weight: 800;
  text-shadow: 
    -1px -1px 2px #000, 
     1px -1px 2px #000, 
    -1px  1px 2px #000, 
     1px  1px 2px #000,
     0px  2px 4px rgba(0,0,0,0.8);
}

/* ---------- Card Premium de Valorização (Sidebar) ---------- */
.premium-card {
  margin: 0.5rem 1.2rem 1.2rem;
  background: radial-gradient(120% 60% at 100% 100%, rgba(201, 162, 75, 0.12), transparent 75%), var(--green-900);
  border: 1.5px solid var(--gold-500);
  border-radius: 14px;
  padding: 0.9rem;
  box-shadow: 0 10px 25px rgba(5, 31, 21, 0.25);
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  flex-shrink: 0;
}
.premium-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(5, 31, 21, 0.35);
}

.premium-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(201, 162, 75, 0.25);
  padding-bottom: 0.5rem;
}

.premium-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--gold-300);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.premium-card__trend {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: rgba(46, 158, 107, 0.15);
  color: #5ed699;
  font-size: 0.62rem;
  font-weight: 600;
  text-transform: uppercase;
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(94, 214, 153, 0.25);
}

.premium-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.premium-card__stats-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.premium-card__counts {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--font-body);
  font-size: 0.72rem;
  color: rgba(248, 244, 233, 0.85);
  font-weight: 500;
  flex-shrink: 0;
}

.premium-card__counts strong {
  color: var(--gold-300);
  font-weight: 700;
}

.premium-card__counts .counts-dot {
  color: var(--gold-400);
  opacity: 0.6;
  margin: 0 0.1rem;
}

.premium-card__progress-block {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-grow: 1;
  min-width: 0;
  justify-content: flex-end;
}

.premium-card__progress-block .progress-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(248, 244, 233, 0.55);
  font-weight: 600;
  flex-shrink: 0;
}

.premium-card__graph-bar {
  width: 75px;
  height: 5px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.premium-card__graph-bar::after {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: var(--width, 0%);
  background: var(--grad-gold);
  border-radius: 999px;
  animation: graphFill 1.2s cubic-bezier(0.1, 0.8, 0.3, 1) forwards;
}

@keyframes graphFill {
  from { width: 0%; }
  to { width: var(--width); }
}



.premium-card__visuals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}

.premium-card__icon-box {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(201, 162, 75, 0.15);
  border-radius: 8px;
  padding: 0.45rem 0.2rem;
  text-align: center;
  color: var(--gold-300);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  transition: background 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  outline: none;
}
.premium-card__icon-box:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--gold-300);
}
.premium-card__icon-box svg {
  color: var(--gold-400);
}
.premium-card__icon-box span {
  font-size: 0.56rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 500;
  color: var(--cream);
}

/* ---------- Botão Whatsapp de Contato no Detalhe ---------- */
.btn-whatsapp {
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  background: #25D366 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.7rem 1.4rem !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.35) !important;
  transition: all 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.btn-whatsapp:hover {
  background: #20ba56 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 16px rgba(37, 211, 102, 0.45) !important;
}

/* ---------- CRECI em Negrito ---------- */
.topbar__creci {
  font-weight: 700 !important;
  color: var(--gold-300) !important;
}

/* ---------- Destaque da Zona de Guadalupe (Alta Valorização Pulsante) ---------- */
.premium-card__trend {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  background: linear-gradient(135deg, #1b5e20, #2e7d32) !important;
  color: #ffffff !important;
  font-size: 0.62rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  padding: 0.25rem 0.6rem !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 235, 59, 0.4) !important;
  box-shadow: 0 0 10px rgba(46, 125, 50, 0.4), 0 0 5px rgba(255, 235, 59, 0.2) !important;
  position: relative !important;
  overflow: hidden !important;
  animation: valorizacao-pulse 1.8s infinite alternate !important;
}
@keyframes valorizacao-pulse {
  0% { box-shadow: 0 0 8px rgba(46, 125, 50, 0.3); transform: scale(0.96); }
  100% { box-shadow: 0 0 18px rgba(46, 125, 50, 0.8), 0 0 10px rgba(255, 235, 59, 0.5); transform: scale(1.04); }
}

/* ---------- Estilização dos Ícones das Abas Retráteis ---------- */
.toggle-title {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  font-family: var(--font-body) !important;
  font-size: 0.76rem !important;
  font-weight: 700 !important;
}

.toggle-icon {
  width: 15px !important;
  height: 15px !important;
  display: inline-block !important;
  vertical-align: middle !important;
}

.toggle-icon--praia {
  fill: #2196f3 !important;
}

.toggle-icon--valor {
  fill: #b8860b !important; /* dark goldenrod for excellent contrast on light backgrounds */
}

/* ---------- Setas de Navegação do Hero de Imagens ---------- */
.poi-hero__btn {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 15 !important;
  width: 32px !important;
  height: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(5, 31, 21, 0.65) !important;
  backdrop-filter: blur(4px) !important;
  border: 1px solid rgba(201, 162, 75, 0.45) !important;
  border-radius: 50% !important;
  color: var(--cream) !important;
  cursor: pointer !important;
  transition: background 0.15s ease, transform 0.15s ease !important;
  padding: 0 !important;
}
.poi-hero__btn:hover {
  background: rgba(5, 31, 21, 0.9) !important;
  transform: translateY(-50%) scale(1.08) !important;
}
.poi-hero__btn--prev { left: 8px !important; }
.poi-hero__btn--next { right: 8px !important; }

/* ============================================================
   MINI-INDICADORES DO IMÓVEL (quartos, banheiros, vagas…)
   ============================================================ */
.detalhe__minis {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.55rem 0 0.15rem;
}
.detalhe__minis[hidden], .detalhe__feats[hidden] { display: none !important; }
.mini {
  flex: 1 1 0;
  min-width: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.12rem;
  background: #fff;
  border: 1px solid rgba(201, 162, 75, 0.35);
  border-radius: 9px;
  padding: 0.38rem 0.1rem 0.3rem;
  color: var(--gold-500);
}
.mini b {
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--green-950);
  line-height: 1;
}
.mini i {
  font-style: normal;
  font-size: 0.5rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ink-soft);
}
.detalhe__tag--feat {
  background: rgba(46, 158, 107, 0.1);
  border-color: rgba(46, 158, 107, 0.45);
  color: #1d6b47;
}

/* ============================================================
   PAINEL ADMINISTRADOR
   ============================================================ */

/* ---- cadeado no topo ---- */
.btn-admin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(201, 162, 75, 0.4);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(248, 244, 233, 0.75);
  cursor: pointer;
  transition: all 0.18s ease;
  flex-shrink: 0;
}
.btn-admin:hover { border-color: var(--gold-300); color: var(--gold-300); }
.btn-admin--on {
  background: var(--grad-gold);
  color: var(--green-950);
  border-color: transparent;
  box-shadow: 0 0 12px rgba(212, 175, 86, 0.5);
}

/* ---- botões do admin ---- */
.adm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-family: var(--font-body);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 0.48rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(201, 162, 75, 0.55);
  background: rgba(255, 255, 255, 0.06);
  color: var(--cream);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.adm-btn:hover { background: rgba(201, 162, 75, 0.2); border-color: var(--gold-300); }
.adm-btn--novo { background: var(--grad-gold); color: var(--green-950); border-color: transparent; }
.adm-btn--novo:hover { filter: brightness(1.07); background: var(--grad-gold); }
.adm-btn--fantasma { border-color: rgba(248, 244, 233, 0.3); background: transparent; }
.adm-btn--atencao {
  background: #2e9e6b;
  border-color: transparent;
  box-shadow: 0 0 0 0 rgba(46, 158, 107, 0.6);
  animation: adm-pulsa 1.6s infinite;
}
@keyframes adm-pulsa {
  0% { box-shadow: 0 0 0 0 rgba(46, 158, 107, 0.55); }
  70% { box-shadow: 0 0 0 9px rgba(46, 158, 107, 0); }
  100% { box-shadow: 0 0 0 0 rgba(46, 158, 107, 0); }
}
.adm-btn--editar { border-color: rgba(16, 64, 44, 0.4); background: var(--green-900); }
.adm-btn--excluir { border-color: rgba(194, 90, 80, 0.6); background: rgba(194, 90, 80, 0.12); color: #a13c33; }
.adm-btn--excluir:hover { background: #c25a50; border-color: #c25a50; color: #fff; }
.adm-btn--mapa { width: 100%; border-style: dashed; margin-top: 0.35rem; }

/* ---- barra de ferramentas lateral direita ---- */
.adm-bar {
  position: absolute;
  top: 80px;
  right: 14px;
  width: 250px;
  z-index: 1150;
  display: flex;
  flex-direction: column;
  background: rgba(5, 31, 21, 0.96);
  backdrop-filter: blur(10px);
  border: 1px solid var(--gold-500);
  border-radius: 16px;
  padding: 1.25rem 1.1rem;
  box-shadow: var(--shadow-lg);
  gap: 1.1rem;
  box-sizing: border-box;
  max-height: calc(100% - 100px);
  overflow-y: auto;
}
.adm-bar[hidden] { display: none !important; }

.adm-bar__header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  border-bottom: 1px solid rgba(201, 162, 75, 0.25);
  padding-bottom: 0.8rem;
}
.adm-bar__selo {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: var(--green-950);
  background: var(--grad-gold);
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  white-space: nowrap;
}
.adm-bar__titulo {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--cream);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.adm-bar__section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.adm-bar__section-title {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--gold-400);
  letter-spacing: 0.08em;
  margin-bottom: 0.15rem;
}
.adm-bar__buttons-row {
  display: flex;
  gap: 0.5rem;
}
.adm-bar__buttons-row button {
  flex: 1;
}

/* ---- faixa de captura ---- */
.adm-captura {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1150;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  background: rgba(5, 31, 21, 0.94);
  border: 1px dashed var(--gold-300);
  border-radius: 999px;
  padding: 0.45rem 0.55rem 0.45rem 1rem;
  color: var(--gold-300);
  font-size: 0.8rem;
  font-weight: 600;
  box-shadow: var(--shadow-lg);
  animation: surgir 0.25s ease;
}
.adm-captura[hidden] { display: none !important; }

/* durante a captura: mira e cliques passam direto pros mapa */
.modo-captura #mapa { cursor: crosshair !important; }
.modo-captura .pin,
.modo-captura .pin-landmark,
.modo-captura path.leaflet-interactive { pointer-events: none !important; }
.modo-captura .pin-tooltip { opacity: 0.25 !important; }

/* ---- login ---- */
.adm-login {
  position: fixed;
  inset: 0;
  z-index: 1500;
  background: rgba(5, 31, 21, 0.72);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.adm-login[hidden] { display: none !important; }
.adm-login__caixa {
  position: relative;
  width: 320px;
  max-width: 100%;
  background: var(--cream);
  border: 1px solid var(--gold-500);
  border-radius: 18px;
  padding: 1.6rem 1.4rem 1.4rem;
  text-align: center;
  box-shadow: var(--shadow-lg);
  animation: surgir 0.28s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.adm-login__cadeado {
  width: 54px;
  height: 54px;
  margin: 0 auto 0.7rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--green-900);
  color: var(--gold-300);
  border: 2px solid var(--gold-500);
}
.adm-login__caixa h2 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--green-950);
}
.adm-login__caixa p {
  font-size: 0.74rem;
  color: var(--ink-soft);
  margin: 0.2rem 0 0.9rem;
}
.adm-login__caixa input {
  width: 100%;
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 0.6rem 0.8rem;
  border: 1.5px solid rgba(201, 162, 75, 0.55);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  outline: none;
  text-align: center;
  letter-spacing: 0.12em;
  margin-bottom: 0.7rem;
}
.adm-login__caixa input:focus { border-color: var(--gold-400); box-shadow: 0 0 0 3px rgba(212, 175, 86, 0.2); }
.adm-login__erro {
  font-size: 0.74rem;
  font-weight: 600;
  color: #a13c33;
  margin: -0.25rem 0 0.6rem;
}
.adm-login__erro[hidden] { display: none !important; }
.adm-shake { animation: adm-shake 0.4s ease; }
@keyframes adm-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-9px); }
  40% { transform: translateX(8px); }
  60% { transform: translateX(-6px); }
  80% { transform: translateX(4px); }
}

/* ---- gaveta do formulário ---- */
.adm-drawer {
  position: fixed;
  top: 66px;
  right: 0;
  bottom: 0;
  width: 390px;
  max-width: 100vw;
  z-index: 1400;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(140% 50% at 100% 0%, rgba(201, 162, 75, 0.1), transparent 60%),
    var(--green-950);
  border-left: 1px solid var(--gold-500);
  box-shadow: -18px 0 45px rgba(5, 31, 21, 0.45);
  transform: translateX(105%);
  transition: transform 0.32s cubic-bezier(0.25, 0.9, 0.3, 1);
}
.adm-drawer--aberto { transform: translateX(0); }
.adm-drawer--recolhido { transform: translateX(105%) !important; }

.adm-drawer__topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.1rem;
  border-bottom: 1px solid rgba(201, 162, 75, 0.35);
  flex-shrink: 0;
}
.adm-drawer__topo h2 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--gold-300);
  letter-spacing: 0.02em;
}
.adm-drawer__topo .detalhe__fechar { position: static; }

.adm-drawer__corpo {
  flex: 1;
  overflow-y: auto;
  padding: 0.9rem 1.1rem 1.2rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(201, 162, 75, 0.6) transparent;
}

.adm-drawer__rodape {
  display: flex;
  gap: 0.5rem;
  padding: 0.8rem 1.1rem;
  border-top: 1px solid rgba(201, 162, 75, 0.35);
  flex-shrink: 0;
}
.adm-drawer__rodape .btn-gold { flex: 1; justify-content: center; border-radius: 10px; }

.adm-secao { margin-bottom: 1.05rem; }
.adm-secao h3 {
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--gold-400);
  border-bottom: 1px solid rgba(201, 162, 75, 0.25);
  padding-bottom: 0.3rem;
  margin-bottom: 0.55rem;
}

.adm-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 0.5rem; }
.adm-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem; margin-bottom: 0.5rem; }

.adm-campo { display: flex; flex-direction: column; gap: 0.22rem; min-width: 0; }
.adm-campo > span {
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(248, 244, 233, 0.65);
}
.adm-drawer input[type="text"],
.adm-drawer input[type="number"],
.adm-drawer input[type="password"],
.adm-drawer select,
.adm-drawer textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 0.84rem;
  color: var(--cream);
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(201, 162, 75, 0.4);
  border-radius: 8px;
  padding: 0.45rem 0.6rem;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.adm-drawer input:focus, .adm-drawer select:focus, .adm-drawer textarea:focus {
  border-color: var(--gold-400);
  box-shadow: 0 0 0 3px rgba(212, 175, 86, 0.18);
}
.adm-drawer select option { background: var(--green-950); color: var(--cream); }
.adm-drawer textarea { resize: vertical; }

.adm-checks { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.adm-check { position: relative; cursor: pointer; }
.adm-check input { position: absolute; opacity: 0; pointer-events: none; }
.adm-check span {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  color: rgba(248, 244, 233, 0.8);
  border: 1px solid rgba(248, 244, 233, 0.3);
  border-radius: 999px;
  padding: 0.34rem 0.75rem;
  transition: all 0.15s ease;
  user-select: none;
}
.adm-check:hover span { border-color: var(--gold-300); }
.adm-check input:checked + span {
  background: var(--grad-gold);
  color: var(--green-950);
  border-color: transparent;
  font-weight: 700;
}

.adm-poly { display: flex; gap: 0.4rem; align-items: center; }
.adm-poly .adm-btn--mapa { flex: 1; }
.adm-poly .adm-btn--fantasma { margin-top: 0.35rem; }
.adm-poly-status {
  font-size: 0.7rem;
  color: rgba(248, 244, 233, 0.55);
  margin-top: 0.35rem;
}
.adm-poly-status.ok { color: #5ed699; font-weight: 600; }
.adm-dica {
  font-size: 0.66rem;
  color: rgba(248, 244, 233, 0.5);
  margin-top: 0.35rem;
}
.adm-dica b { color: var(--gold-300); }

/* ---- ações de admin no cartão de detalhes ---- */
.detalhe__admin {
  display: flex;
  gap: 0.45rem;
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px dashed rgba(201, 162, 75, 0.45);
}
.detalhe__admin[hidden] { display: none !important; }
.detalhe__admin .adm-btn { flex: 1; }

/* ---- toast ---- */
.toast {
  position: fixed;
  bottom: 26px;
  left: 50%;
  transform: translate(-50%, 16px);
  z-index: 1600;
  max-width: min(92vw, 460px);
  background: rgba(5, 31, 21, 0.96);
  color: var(--cream);
  border: 1px solid var(--gold-500);
  border-radius: 12px;
  padding: 0.65rem 1.1rem;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.toast--on { opacity: 1; transform: translate(-50%, 0); }
.toast--erro { border-color: #c25a50; color: #ffd9d5; }

/* ---- responsivo ---- */
@media (max-width: 900px) {
  .adm-drawer { width: 100vw; top: 66px; }
  .adm-bar {
    position: absolute;
    top: auto;
    bottom: 22px;
    left: 14px;
    right: 14px;
    width: auto;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    border-radius: 12px;
    padding: 0.6rem;
    gap: 0.6rem;
  }
  .adm-bar__header { display: none; }
  .adm-bar__section { display: flex; flex-direction: row; align-items: center; gap: 0.4rem; }
  .adm-bar__section-title { display: none; }
  .adm-bar__buttons-row { display: flex; gap: 0.4rem; }
  .adm-bar__section button, .adm-bar__buttons-row button { padding: 0.45rem 0.7rem; font-size: 0.7rem; }
  .btn-admin { width: 32px; height: 32px; }
}

/* ============================================================
   CTA DE WHATSAPP EM DESTAQUE
   ============================================================ */

/* botão do topo: verde WhatsApp com respiração de brilho */
#topbar-whats {
  background: linear-gradient(135deg, #31d76e, #1fba58 60%, #17a94c);
  color: #fff;
  font-weight: 700;
  font-size: 0.86rem;
  padding: 0.62rem 1.25rem;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 6px 18px rgba(37, 211, 102, 0.4);
  animation: whats-respira 2.4s ease-in-out infinite;
}
#topbar-whats:hover {
  filter: brightness(1.08);
  box-shadow: 0 9px 24px rgba(37, 211, 102, 0.55);
}
@keyframes whats-respira {
  0%, 100% { box-shadow: 0 6px 18px rgba(37, 211, 102, 0.35); }
  50%      { box-shadow: 0 6px 24px rgba(37, 211, 102, 0.65), 0 0 16px rgba(37, 211, 102, 0.35); }
}

/* botão flutuante sobre o mapa (canto inferior direito) */
.whats-float {
  position: absolute;
  right: 16px;
  bottom: 28px;
  z-index: 1080;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  background: linear-gradient(135deg, #33da71, #1fba58 55%, #149c45);
  color: #fff;
  text-decoration: none;
  border: 2px solid rgba(255, 255, 255, 0.55);
  border-radius: 999px;
  padding: 0.55rem 1.3rem 0.55rem 0.6rem;
  box-shadow: 0 10px 28px rgba(5, 31, 21, 0.45), 0 0 0 0 rgba(37, 211, 102, 0.55);
  animation: whats-onda 2.2s cubic-bezier(0.45, 0, 0.4, 1) infinite;
  transition: transform 0.18s ease, filter 0.18s ease;
}
.whats-float:hover { transform: translateY(-3px) scale(1.03); filter: brightness(1.07); }
@keyframes whats-onda {
  0%   { box-shadow: 0 10px 28px rgba(5, 31, 21, 0.45), 0 0 0 0 rgba(37, 211, 102, 0.55); }
  70%  { box-shadow: 0 10px 28px rgba(5, 31, 21, 0.45), 0 0 0 16px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 10px 28px rgba(5, 31, 21, 0.45), 0 0 0 0 rgba(37, 211, 102, 0); }
}
.whats-float__icone {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 50%;
}
.whats-float__txt {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  white-space: nowrap;
}
.whats-float__txt b {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

@media (max-width: 900px) {
  /* no celular vira bolinha (o texto some), acima do botão ☰ Lotes */
  .whats-float { padding: 0.5rem; bottom: 84px; right: 12px; }
  .whats-float__txt { display: none; }
}

/* Botão Ver mais no site */
.btn-ver-mais {
  display: inline-flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  background: transparent !important;
  color: var(--gold-500) !important;
  border: 1.5px solid var(--gold-500) !important;
  border-radius: 999px !important;
  padding: 0.7rem 1.4rem !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin-top: 0.5rem !important;
}
.btn-ver-mais:hover {
  background: var(--gold-500) !important;
  color: var(--green-950) !important;
  box-shadow: 0 4px 12px rgba(201, 162, 75, 0.25) !important;
}

/* Hover do botão de voltar ao site no topbar */
.btn-topbar-site:hover {
  background: var(--gold-500) !important;
  color: var(--green-950) !important;
  box-shadow: 0 4px 12px rgba(201, 162, 75, 0.3) !important;
  transform: translateY(-1px);
}

/* Fotos Anexo */
.adm-fotos-anexo-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  margin-top: 0.5rem;
}
.adm-foto-slot {
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(201, 162, 75, 0.25);
  border-radius: 8px;
  padding: 0.5rem;
}
.adm-foto-slot__lbl {
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--gold-400);
  margin-bottom: 0.3rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.adm-foto-slot__wrapper {
  display: flex;
  gap: 0.6rem;
  align-items: center;
}
.adm-foto-slot__preview {
  width: 50px;
  height: 50px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(201, 162, 75, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}
.adm-foto-slot__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.adm-foto-slot__preview svg {
  color: rgba(248, 244, 233, 0.25);
}
.adm-foto-slot__inputs {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.adm-foto-slot__path {
  font-size: 0.75rem !important;
  padding: 0.25rem 0.5rem !important;
  background: rgba(0, 0, 0, 0.2) !important;
  border: 1px solid rgba(201, 162, 75, 0.25) !important;
}
.adm-foto-slot__botoes {
  display: flex;
  gap: 0.4rem;
}
.adm-foto-slot__botoes .adm-btn {
  padding: 0.25rem 0.6rem !important;
  font-size: 0.7rem !important;
  height: auto !important;
  border-radius: 4px !important;
}
.adm-btn-anexar {
  background: var(--gold-500) !important;
  color: var(--green-950) !important;
  font-weight: 700 !important;
  border: none !important;
}
.adm-btn-anexar:hover {
  background: var(--gold-400) !important;
}

/* Ocultar detalhes ao embutir no site principal */
html.is-embed .detalhe {
  display: none !important;
}

