/* Portal de parceiros. Neutros com croma zero; o roxo da marca aparece só em detalhe
   (comissão, marcador), nunca em borda de cartão nem em bloco inteiro. */
:root{
  --fundo:#f6f6f6; --superficie:#fff; --texto:#111; --texto-2:#555; --texto-3:#6b6b6b;
  --linha:#e6e6e6; --linha-forte:#d0d0d0; --roxo:#735bb3; --roxo-fundo:#f1eef8;
  --ok:#1f7a4d; --ok-fundo:#e9f5ee; --alerta:#8a5a00; --alerta-fundo:#fbf3e2; --erro:#b42318; --erro-fundo:#fdecea;
  --raio:6px; --sombra:0 1px 2px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.04);
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--fundo);color:var(--texto);font:400 15px/1.5 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
img{display:block;max-width:100%}
h1[tabindex="-1"]:focus{outline:none}
[hidden]{display:none!important}

.topo{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--linha)}
.topo-in{max-width:1120px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.marca{flex-shrink:0;display:block}
.marca img{height:22px;width:auto;max-width:none}
.menu{display:flex;align-items:center;gap:4px;min-width:0}
.menu .curto{display:none}
.menu a,.menu button{display:inline-flex;align-items:center;min-height:44px;border:0;background:none;padding:0 12px;border-radius:var(--raio);text-decoration:none;color:var(--texto-2);font-weight:500;font-size:14px;cursor:pointer}
.menu a:hover,.menu button:hover{background:#f0f0f0;color:var(--texto)}
.menu a[aria-current="page"]{color:var(--texto);background:#f0f0f0}

.app{max-width:1120px;margin:0 auto;padding:32px 16px 64px}
body.sem-topo .app{padding:0;max-width:none}
h1{font-size:30px;line-height:1.15;font-weight:600;letter-spacing:-.02em;margin:0 0 6px;overflow-wrap:break-word}
h2{font-size:19px;font-weight:600;letter-spacing:-.01em;margin:0 0 4px;overflow-wrap:break-word}
.sub{color:var(--texto-2);margin:0 0 28px}
.mudo{color:var(--texto-3);font-size:13px}

/* entrada */
.entrada{min-height:100svh;display:grid;place-items:center;padding:24px 16px}
.cartao-entrada{width:100%;max-width:400px;background:var(--superficie);border-radius:var(--raio);box-shadow:var(--sombra);padding:36px 32px}
.cartao-entrada .marca img{height:24px;margin-bottom:28px}
.cartao-entrada h1{font-size:24px}
.cartao-entrada .sub{margin-bottom:24px}
.link-btn{display:inline-flex;align-items:center;min-height:44px;border:0;background:none;padding:0 6px;color:var(--texto-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:14px}
.link-btn:hover{color:var(--texto)}
.link-linha{margin:12px 0 0;text-align:center}

/* formulário */
.campo{display:block;margin-bottom:16px}
.campo>span{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--texto-2)}
.campo input,.campo select,.campo textarea{width:100%;height:44px;font-size:16px;padding:0 12px;border:1px solid var(--linha-forte);border-radius:var(--raio);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.campo input:focus,.campo select:focus{border-color:#111;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.campo input[readonly]{background:#f7f7f7;color:var(--texto-2)}
.campo small{display:block;color:var(--texto-3);font-size:12px;margin-top:6px}
.campo small.pendente{color:var(--alerta)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--texto-2);margin:4px 0 18px}
.check input{margin-top:3px;width:16px;height:16px;accent-color:#111}
.grade-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:var(--raio);border:1px solid #111;background:#111;color:#fff;font-weight:500;cursor:pointer;text-decoration:none;transition:opacity .15s}
.btn:hover{opacity:.88}
.btn[disabled]{opacity:.5;cursor:default}
.btn.claro{background:#fff;color:#111;border-color:var(--linha-forte)}
.btn.largo{width:100%}
.aviso{border-radius:var(--raio);padding:12px 14px;font-size:14px;margin-bottom:16px}
.aviso.erro{background:var(--erro-fundo);color:var(--erro)}
.aviso.ok{background:var(--ok-fundo);color:var(--ok)}
.aviso.info{background:#f2f2f2;color:var(--texto-2)}
.aviso.alerta{background:var(--alerta-fundo);color:var(--alerta)}

/* lista de empreendimentos */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:20px}
.card{display:flex;flex-direction:column;background:var(--superficie);border-radius:var(--raio);box-shadow:var(--sombra);overflow:hidden;text-decoration:none;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(0,0,0,.06),0 12px 28px rgba(0,0,0,.08)}
.card-foto{aspect-ratio:16/10;background:#e9e9e9 center/cover no-repeat;position:relative}
.card-foto.sem{display:grid;place-items:center;color:var(--texto-3);font-weight:600;font-size:22px;letter-spacing:-.01em}
.card-corpo{padding:18px 20px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.card-corpo .local{color:var(--texto-2);font-size:14px;margin-top:-8px}
.numeros{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:auto}
.numeros div{display:flex;flex-direction:column}
.numeros b{font-size:20px;font-weight:600;letter-spacing:-.01em}
.numeros span{font-size:12px;color:var(--texto-3)}
.selo{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--roxo-fundo);color:var(--roxo);font-size:13px;font-weight:600}
.selo::before{content:"";flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--roxo)}
.selo.longo{border-radius:var(--raio);align-items:flex-start;padding:6px 10px;line-height:1.4;max-width:100%}
.selo.longo::before{margin-top:7px}
.nota-alerta{margin:0;color:var(--alerta);font-size:13px}
.atualizado{margin:0}
.vazio{background:var(--superficie);border-radius:var(--raio);box-shadow:var(--sombra);padding:40px 28px;text-align:center;color:var(--texto-2)}

/* detalhe */
.voltar{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--texto-2);text-decoration:none;font-size:14px;margin:-10px 0 10px}
.voltar:hover{color:var(--texto)}
.cabeca{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:stretch;margin-bottom:28px}
.cabeca-foto{border-radius:var(--raio);min-height:240px;background:#e9e9e9 center/cover no-repeat}
.cabeca-texto{display:flex;flex-direction:column;gap:14px;justify-content:center}
.cabeca-texto p{margin:0;color:var(--texto-2)}
.fatos{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linha);border-radius:var(--raio);overflow:hidden;box-shadow:var(--sombra)}
.fatos div{background:#fff;padding:14px 16px}
.fatos b{display:block;font-size:18px;font-weight:600;white-space:nowrap}
.fatos span{font-size:12px;color:var(--texto-3)}
.barra{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.filtros{display:flex;gap:6px;flex-wrap:wrap}
.filtro{height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--linha-forte);background:#fff;cursor:pointer;font-size:14px;color:var(--texto-2)}
.filtro[aria-pressed="true"]{background:#111;border-color:#111;color:#fff}
.busca{height:34px;border:1px solid var(--linha-forte);border-radius:999px;padding:0 14px;min-width:180px;outline:none;font-size:16px;background:#fff}
.busca:focus{border-color:#111}
.tabela{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--raio);overflow:hidden;box-shadow:var(--sombra);font-variant-numeric:tabular-nums}
.tabela th{text-align:left;font-size:12px;font-weight:500;color:var(--texto-3);padding:12px 16px;border-bottom:1px solid var(--linha);background:#fafafa}
.tabela td{padding:13px 16px;border-bottom:1px solid #f0f0f0;font-size:14px}
.tabela tr:last-child td{border-bottom:0}
.tabela .num{text-align:right}
.situacao{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}
.situacao.disponivel{background:var(--ok-fundo);color:var(--ok)}
.situacao.reservada{background:var(--alerta-fundo);color:var(--alerta)}
.rodape-tabela{margin-top:12px}

/* meus dados */
.blocos{display:grid;gap:20px;max-width:760px}
.bloco{background:#fff;border-radius:var(--raio);box-shadow:var(--sombra);padding:24px}
.bloco>h2+p{margin:0 0 20px;color:var(--texto-2);font-size:14px}
.rotulo{margin:0 0 6px;font-size:13px;font-weight:500;color:var(--texto-2)}
.resumo-banco{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:12px 20px;margin:0 0 18px;padding:14px 16px;background:#f7f7f7;border-radius:var(--raio)}
.resumo-banco dt{font-size:12px;color:var(--texto-3)}
.resumo-banco dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

.carregando{color:var(--texto-3);padding:40px 0;text-align:center}

/* contato, obrigatórios e valores fixos */
.whats{color:inherit;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.vazio .whats{display:inline-block;margin-top:2px}
.contato-entrada{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--linha);text-align:center;font-size:14px;color:var(--texto-2)}
.contato-entrada .whats{display:inline-flex;align-items:center;min-height:44px}
.rodape{border-top:1px solid var(--linha)}
.rodape-in{max-width:1120px;margin:0 auto;padding:12px 16px 20px;font-size:14px;color:var(--texto-2)}
.rodape-in .whats{display:inline-flex;align-items:center;min-height:44px}
.req{color:var(--erro);font-weight:500}
.nota-obrig{margin:0 0 16px}
.valor-fixo{margin:0;min-height:44px;display:flex;align-items:center;padding:10px 12px;background:#f7f7f7;border-radius:var(--raio);color:var(--texto-2);overflow-wrap:anywhere;line-height:1.4}
.caixa:empty{display:none}
.quebra{overflow-wrap:anywhere}
.check .req{margin-left:2px}
.tabela tr.sem-unidade td{grid-column:1/-1}

@media (max-width:760px){
  h1{font-size:25px}
  .app{padding:22px 16px 48px}
  .cabeca{grid-template-columns:1fr;gap:18px}
  .cabeca-foto{min-height:200px}
  .grade-2{grid-template-columns:1fr}
  .menu{gap:0}
  .menu a,.menu button{padding:0 8px;font-size:14px;white-space:nowrap}
  .marca img{height:18px}
  .filtro{height:44px}
  .busca{height:44px;flex:1 1 100%;min-width:0}
  .cartao-entrada{padding:28px 20px}
  .tabela thead{display:none}
  .tabela,.tabela tbody,.tabela tr,.tabela td{display:block;width:100%}
  .tabela tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 16px;border-bottom:1px solid #f0f0f0}
  .tabela td{padding:0;border:0}
  .tabela td.num{text-align:left}
  .tabela td[data-r="unidade"]{font-weight:600}
  .tabela td[data-r="situacao"]{grid-column:2;grid-row:1;text-align:right}
  .tabela td[data-r="valor"]{grid-column:2;grid-row:2;text-align:right;font-weight:600}
  .tabela td[data-r="tipo"],.tabela td[data-r="area"]{color:var(--texto-2);font-size:13px}
  .tabela td.vazia{display:none}
}
@media (max-width:520px){
  .topo-in{gap:8px}
  .menu .longo{display:none}
  .menu .curto{display:inline}
  .bloco{padding:20px 16px}
}
@media (max-width:400px){
  .marca img{height:16px}
  .menu a,.menu button{padding:0 7px}
  .fatos{grid-template-columns:1fr 1fr}
  .fatos div:nth-child(3){grid-column:1/-1}
  .card-corpo{padding:16px}
  .entrada{padding:16px 12px}
  .cartao-entrada{padding:24px 16px}
  .cartao-entrada .marca img{margin-bottom:22px}
  .contato-entrada{margin-top:8px;padding-top:4px}
  .cartao-entrada .sub{margin-bottom:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
