:root{
  --tinta:#141332; --tinta2:#4B4B6B; --mudo:#7C7C99;
  --fundo:#FFFFFF; --cinza:#F4F4F8; --linha:#E4E4EE;
  --coral:#FF6B3D; --rosa:#FF2E63; --grad:linear-gradient(135deg,#FF6B3D,#FF2E63);
  --ok:#00A38C; --raio:16px; --sombra:0 8px 30px rgba(20,19,50,.10);
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:'Plus Jakarta Sans','Segoe UI',Arial,sans-serif;color:var(--tinta);background:var(--fundo);font-size:15px;line-height:1.45}
a{color:inherit}
h1,h2,h3{letter-spacing:-.4px;margin:0}
h1{font-size:40px;line-height:1.1;font-weight:800}
h2{font-size:24px;font-weight:800}
h3{font-size:16px;font-weight:700}
button{font:inherit;cursor:pointer;color:inherit}
input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.mudo{color:var(--mudo)}
.cont{max-width:1180px;margin:0 auto;padding:0 20px}

/* topo */
.topo{position:sticky;top:0;z-index:1000;height:68px;display:flex;align-items:center;gap:20px;padding:0 20px;background:#fff;border-bottom:1px solid var(--linha)}
.marca img{display:block}
.busca-topo{flex:1;max-width:420px;display:flex;align-items:center;gap:8px;background:var(--cinza);border-radius:999px;padding:0 16px;height:42px}
.busca-topo input{border:0;background:none;outline:none;flex:1;min-width:0}
.menu{display:flex;align-items:center;gap:6px;margin-left:auto}
.menu a{text-decoration:none;font-weight:700;padding:9px 14px;border-radius:999px}
.menu a:hover{background:var(--cinza)}
.pais-btn{border:1px solid var(--linha);background:#fff;border-radius:999px;padding:7px 14px;font-weight:700}

/* hero */
.hero{padding:56px 0 34px;text-align:center}
.hero h1 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--tinta2);font-size:17px;margin:12px 0 26px}
.busca-grande{max-width:720px;margin:0 auto;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--linha);box-shadow:var(--sombra);border-radius:999px;padding:8px 8px 8px 24px}
.busca-grande input{flex:1;border:0;outline:none;font-size:17px;min-width:0;padding:10px 0}
.btn{border:0;border-radius:999px;padding:12px 22px;font-weight:800}
.btn.prim{background:var(--grad);color:#fff}
.btn.esc{background:var(--tinta);color:#fff}
.btn.sec{background:#fff;border:1.5px solid var(--tinta)}
.btn.lg{width:100%;padding:15px}
.cats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}
.cat{display:flex;align-items:center;gap:8px;border:1.5px solid var(--linha);background:#fff;border-radius:999px;padding:9px 16px;font-weight:700;text-decoration:none}
.cat:hover,.cat.on{border-color:var(--tinta)}
.cat i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px}

/* seções */
.secao{padding:28px 0}
.secao-cab{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}
.secao-cab p{margin:4px 0 0;color:var(--mudo)}
.link{color:var(--tinta);font-weight:800;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0}
.trilho{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,calc((100% - 54px) / 4));gap:18px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.trilho > *{scroll-snap-align:start}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}

/* cartões */
.card{text-decoration:none;display:block;cursor:pointer}
.foto{position:relative;aspect-ratio:4/3;border-radius:var(--raio);overflow:hidden;background:var(--cinza)}
.foto img.ph{width:100%;height:100%;object-fit:cover;display:block}
.foto .tiles{position:absolute;inset:0;overflow:hidden}
.foto .tiles img{position:absolute;width:256px;height:256px;max-width:none}
.foto .alfinete{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-100%) rotate(-45deg);border-radius:50% 50% 50% 0;border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.3)}
.foto .selo-tipo{position:absolute;left:10px;bottom:10px;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}
.coracao{position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.15);font-size:17px}
.coracao.on{color:var(--rosa)}
.card h3{margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .linha{font-size:13px;color:var(--tinta2);margin-top:4px}
.card .preco{margin-top:6px;font-weight:800}
.card .preco small{font-weight:500;color:var(--mudo)}
.bolhas{display:inline-flex;gap:3px;vertical-align:middle;margin-right:6px}
.bolhas i{width:12px;height:12px;border-radius:50%;border:2px solid var(--ok)}
.bolhas i.f{background:var(--ok)}
.cidade{position:relative;border-radius:var(--raio);overflow:hidden;aspect-ratio:1/1;text-decoration:none;display:block;color:#fff}
.cidade .tiles{position:absolute;inset:0}
.cidade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,50,0) 35%,rgba(20,19,50,.85))}
.cidade div{position:absolute;left:14px;bottom:12px;z-index:1}
.cidade strong{display:block;font-size:20px}

/* como funciona */
.passos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.passo{background:var(--cinza);border-radius:var(--raio);padding:22px}
.passo b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;margin-bottom:10px}
.passo p{margin:6px 0 0;color:var(--tinta2)}
.faixa-dono{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--tinta);color:#fff;border-radius:22px;padding:30px 32px;margin:24px 0 40px}
.faixa-dono p{margin:6px 0 0;opacity:.8}

/* explorar */
.explorar{display:grid;grid-template-columns:minmax(0,1fr) 46%;height:calc(100vh - 68px)}
.explorar .col{overflow-y:auto;padding:20px}
.explorar .mapa{position:sticky;top:68px;height:calc(100vh - 68px)}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.chip{border:1.5px solid var(--linha);background:#fff;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.chip.on{border-color:var(--tinta);background:var(--tinta);color:#fff}
.chip i{width:9px;height:9px;border-radius:50%}
.lista{display:flex;flex-direction:column;gap:16px}
.item{display:grid;grid-template-columns:200px 1fr;gap:16px;border:1px solid var(--linha);border-radius:var(--raio);padding:10px;cursor:pointer;text-decoration:none;transition:.15s}
.item:hover{box-shadow:var(--sombra)}
.item .foto{aspect-ratio:4/3}
.item h3{margin:4px 0}
.item p{margin:3px 0;font-size:13px;color:var(--tinta2)}
.vazio{text-align:center;padding:50px 16px;color:var(--mudo)}
.pino{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.pino span{transform:rotate(45deg);color:#fff;font-size:13px;font-weight:800}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(255,46,99,.25)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:var(--rosa);color:#fff;font-weight:800;font-family:inherit}

/* detalhe */
.migalha{font-size:13px;color:var(--mudo);margin:18px 0 8px}
.migalha a{color:var(--mudo)}
.det-cab{display:flex;justify-content:space-between;gap:16px;align-items:start;flex-wrap:wrap}
.det-cab .sub{margin-top:8px;color:var(--tinta2)}
.galeria{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:18px 0;height:400px}
.galeria > div{border-radius:var(--raio);overflow:hidden;position:relative;background:var(--cinza)}
.galeria img.ph{width:100%;height:100%;object-fit:cover;display:block}
.galeria .lado{display:grid;grid-template-rows:1fr 1fr;gap:10px;background:none}
.galeria .lado > div{border-radius:var(--raio);overflow:hidden;position:relative;background:var(--cinza)}
.det-corpo{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:34px;margin-bottom:40px}
.ficha{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}
.ficha div{border:1px solid var(--linha);border-radius:12px;padding:12px 14px}
.ficha small{display:block;color:var(--mudo);font-size:12px}
.ficha strong{font-size:15px}
.caixa{position:sticky;top:88px;border:1px solid var(--linha);border-radius:20px;padding:20px;box-shadow:var(--sombra);display:flex;flex-direction:column;gap:12px}
.caixa .valor{font-size:24px;font-weight:800}
.caixa label{font-size:12px;font-weight:700;color:var(--tinta2);display:flex;flex-direction:column;gap:4px}
.caixa input{border:1px solid var(--linha);border-radius:10px;padding:10px}
.datas{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tot{display:flex;justify-content:space-between;font-size:14px}
.tot.g{font-size:17px;font-weight:800;border-top:1px solid var(--linha);padding-top:10px}
.contato{font-size:14px;display:flex;flex-direction:column;gap:6px}
.resenhas{border-top:1px solid var(--linha);margin-top:26px;padding-top:22px}
.resenha{border-bottom:1px solid var(--linha);padding:14px 0}
.resenha p{margin:6px 0 0}
.form-res{display:flex;flex-direction:column;gap:10px;margin-top:14px;background:var(--cinza);border-radius:var(--raio);padding:16px}
.form-res textarea,.form-res input{border:1px solid var(--linha);border-radius:10px;padding:10px;background:#fff}
.estrelas{display:flex;gap:6px}
.estrelas button{width:28px;height:28px;border-radius:50%;border:2px solid var(--ok);background:#fff}
.estrelas button.f{background:var(--ok)}
.fonte{font-size:12px;color:var(--mudo);margin-top:14px}
.mini-mapa{height:240px;border-radius:var(--raio);margin-top:12px;border:1px solid var(--linha)}

/* modal */
.fundo{position:fixed;inset:0;background:rgba(20,19,50,.5);z-index:2000}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:22px;padding:26px;z-index:2100;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal .fechar{position:absolute;right:14px;top:14px;border:0;background:var(--cinza);width:34px;height:34px;border-radius:50%}
.paises{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.paises button{border:2px solid var(--linha);background:#fff;border-radius:18px;padding:22px 10px;font-weight:800;font-size:17px}
.paises button:hover{border-color:var(--rosa)}
.paises span{display:block;margin-bottom:10px}
.paises .bandeira{width:72px;height:auto;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.pais-btn{display:inline-flex;align-items:center;gap:8px}
.pais-btn .bandeira{width:22px;height:auto;border-radius:3px;box-shadow:0 0 0 1px var(--linha)}
.opc-pago{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.opc-pago label{display:flex;gap:10px;align-items:center;border:1.5px solid var(--linha);border-radius:12px;padding:12px;cursor:pointer}
.opc-pago input{accent-color:var(--rosa)}
.opc-pago small{display:block;color:var(--mudo)}
.qr{display:grid;place-items:center;padding:16px;background:var(--cinza);border-radius:16px;margin:12px 0}
.qr canvas,.qr img{background:#fff;padding:10px;border-radius:10px}
.demo{background:#FFF4E5;color:#9A4A00;border-radius:10px;padding:10px 12px;font-size:13px}

/* formulários e listas */
.pagina{max-width:900px;margin:0 auto;padding:30px 20px 50px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form label{font-size:13px;font-weight:700;color:var(--tinta2);display:flex;flex-direction:column;gap:4px}
.form input,.form select{border:1px solid var(--linha);border-radius:10px;padding:11px;background:var(--cinza)}
.form .full{grid-column:1/-1}
.mapa-cad{height:280px;border-radius:var(--raio);border:1px solid var(--linha)}
.repasse{background:#E8F8F5;color:#05705F;border-radius:12px;padding:12px}
.res{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--linha);border-radius:var(--raio);padding:16px;margin-bottom:12px}
.etq{display:inline-block;font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--cinza)}
.etq.ok{background:#E8F8F5;color:#05705F}
.etq.esp{background:#FFF4E5;color:#9A4A00}

.rodape{border-top:1px solid var(--linha);padding:28px 20px;text-align:center;font-size:14px}
.rodape p{margin:6px 0}
.aviso{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:12px 20px;border-radius:999px;z-index:3000;font-weight:700}

@media (max-width:900px){
  h1{font-size:30px}
  .topo{gap:10px;padding:0 12px}
  .busca-topo{display:none}
  .menu a{display:none}
  .menu a[href="#/anunciar"]{display:inline;padding:8px 10px;font-size:13px}
  .passos{grid-template-columns:1fr}
  .faixa-dono{flex-direction:column;align-items:start}
  .explorar{grid-template-columns:1fr;height:auto}
  .explorar .mapa{position:relative;top:0;height:300px;order:-1}
  .item{grid-template-columns:120px 1fr}
  .galeria{grid-template-columns:1fr;height:260px}
  .galeria .lado{display:none}
  .det-corpo{grid-template-columns:1fr}
  .caixa{position:static}
  .form{grid-template-columns:1fr}
}

/* contato bloqueado */
.cadeado{font-size:13px;color:var(--tinta2);background:var(--cinza);border-radius:10px;padding:10px 12px}

/* painel de gestão */
.gestao{padding:26px 20px 50px}
.g-cab{display:flex;justify-content:space-between;align-items:end;gap:14px;flex-wrap:wrap}
.g-abas{display:flex;gap:4px;border-bottom:1px solid var(--linha);margin:18px 0 20px;overflow-x:auto}
.g-abas a{padding:10px 16px;text-decoration:none;font-weight:700;color:var(--tinta2);border-bottom:3px solid transparent;white-space:nowrap}
.g-abas a.on{color:var(--tinta);border-color:var(--rosa)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.kpis > div{border:1px solid var(--linha);border-radius:var(--raio);padding:16px;display:flex;flex-direction:column;gap:4px}
.kpis small{color:var(--mudo);font-weight:700;font-size:12px}
.kpis strong{font-size:26px;font-weight:800;letter-spacing:-.5px}
.kpis span{font-size:12px;color:var(--tinta2)}
.barra{display:block;height:8px;background:var(--cinza);border-radius:99px;overflow:hidden;flex:1}
.barra i{display:block;height:100%;background:var(--grad);border-radius:99px}
.g-duas{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.g-caixa{border:1px solid var(--linha);border-radius:var(--raio);padding:18px}
.g-caixa h3{margin-bottom:12px}
.dicas{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px;color:var(--tinta2)}
.g-barra{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.g-barra input{border:1px solid var(--linha);border-radius:999px;padding:9px 14px;min-width:240px;background:var(--cinza)}
.tabela{overflow:auto;max-height:65vh}
.tabela table{border-collapse:collapse;width:100%;font-size:14px}
.tabela th{position:sticky;top:0;background:#fff;text-align:left;font-size:12px;color:var(--mudo);padding:8px;border-bottom:1px solid var(--linha);z-index:1}
.tabela td{padding:8px;border-bottom:1px solid var(--linha);vertical-align:middle}
.tabela .inPreco{width:140px;border:1px solid var(--linha);border-radius:8px;padding:8px}
.interruptor{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.interruptor input{accent-color:var(--ok)}
.agenda td:first-child,.agenda th:first-child{position:sticky;left:0;background:#fff;min-width:220px;z-index:2}
.agenda th{text-align:center;white-space:nowrap}
.cel{width:42px;height:30px;border-radius:8px;border:0;display:block;margin:auto}
.c-libre{background:var(--cinza);outline:1px dashed var(--linha)}
.c-vizo{background:var(--rosa)}
.c-pend{background:#FFB199}
.c-directa{background:var(--ok)}
.c-bloqueo{background:#9CA3AF}
.legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--tinta2)}
.legenda span{display:inline-flex;align-items:center;gap:5px}
.legenda i{width:12px;height:12px;border-radius:4px;display:inline-block}
.barras{display:flex;align-items:end;gap:14px;height:200px;margin-top:14px}
.col-b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.pilha{flex:1;width:100%;max-width:46px;display:flex;flex-direction:column-reverse;background:var(--cinza);border-radius:8px;overflow:hidden}
.pilha i{display:block;width:100%}
.col-b small{color:var(--mudo)}
.linha-oc{display:grid;grid-template-columns:1fr 120px 40px;gap:10px;align-items:center;font-size:13px;margin:6px 0}
.linha-oc span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:900px){.kpis{grid-template-columns:1fr 1fr}.g-duas{grid-template-columns:1fr}}

/* cartão ao clicar no pino */
.pop-vizo .leaflet-popup-content-wrapper{border-radius:16px;padding:0;overflow:hidden}
.pop-vizo .leaflet-popup-content{margin:0;width:260px!important;font-family:'Plus Jakarta Sans','Segoe UI',Arial,sans-serif}
.pop .foto{border-radius:0}
.pop-c{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.pop-t{font-size:15px;line-height:1.25}
.pop-preco b{font-size:16px}
.pop-livre{color:var(--ok);font-weight:700;font-size:12px}
.pop .btn{padding:10px;margin-top:4px}

/* escolha do período */
.modos{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
.modos label{display:flex;gap:8px;align-items:center;border:1.5px solid var(--linha);border-radius:12px;padding:9px 10px;cursor:pointer;font-size:13px}
.modos label:has(input:checked){border-color:var(--tinta)}
.modos input{accent-color:var(--rosa)}
.modos small{display:block;color:var(--mudo)}
.tabela .inPreco{width:120px}

/* split e chat */
.split{background:var(--cinza);border-radius:12px;padding:12px;margin-top:10px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.chat{max-height:46vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;background:var(--cinza);border-radius:14px;padding:12px}
.msg{max-width:80%;background:#fff;border-radius:14px 14px 14px 4px;padding:8px 12px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.msg.eu{align-self:flex-end;background:var(--tinta);color:#fff;border-radius:14px 14px 4px 14px}
.msg p{margin:0}
.msg small{opacity:.6;font-size:11px}
.chat-form{display:flex;gap:8px;margin-top:10px}
.chat-form input{flex:1;border:1px solid var(--linha);border-radius:999px;padding:11px 14px}
.fio{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--linha);background:none;padding:12px 4px}
.fio:hover{background:var(--cinza)}

/* passos do pagamento em duas partes */
.passos-pg{display:flex;gap:6px;margin-bottom:12px}
.passos-pg span{flex:1;text-align:center;font-size:12px;font-weight:800;padding:7px;border-radius:999px;background:var(--cinza);color:var(--mudo)}
.passos-pg span.on{background:var(--tinta);color:#fff}
.passos-pg span.ok{background:#E8F8F5;color:#05705F}
.g-caixa h3 .bandeira{width:30px;height:auto;flex:none;border-radius:4px}
.g-caixa h3 a.link{white-space:nowrap}
