/* =========================================================================
   Bússola — o censo de condomínios (modules/bussola).
   Apoia-se no Mapa de Imóveis (mapa_imoveis.css: .mapa-wrap, .mapa-split,
   .mapa-painel, .mapa-chip…) e no style.css (.card, .field, .bdg, .btn-*).
   Aqui só o que é da Bússola: a barra larga de filtros, os pinos agrupados,
   a ficha com a fonte de cada número e o bloco da captação.
   ========================================================================= */

/* A tela do administrador ocupa a largura toda, como nos portais do captador
   e do corretor: o teto de .page/.page-wide espremia o mapa. */
.page.bus-pagina {
  max-width: none;
}

/* --- barra de filtros --- */
.bus-barra {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bus-filtros .cfg-select {
  min-width: 150px;
}
.bus-filtros .bus-comod {
  min-width: 220px;
}
.bus-texto {
  min-width: 200px;
  flex: 1 1 200px;
}
.bus-par {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bus-ate {
  font-size: 12.5px;
  color: var(--text-muted, #6F6F6F);
}
.bus-mais {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--amber, #B08968);
  list-style: none;
}
.bus-mais::-webkit-details-marker {
  display: none;
}
.bus-mais::before {
  content: "＋ ";
}
.bus-mais-filtros[open] > .bus-mais::before {
  content: "－ ";
}
.bus-grupos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px 20px;
  margin-top: 12px;
}
.bus-grupo {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bus-grupo-titulo {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted, #6F6F6F);
}
.bus-campo,
.bus-form-campo {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.bus-rotulo {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted, #6F6F6F);
}
.bus-check label,
.bus-radio label,
.bus-dimensao label {
  display: block;
  font-size: 13px;
  color: var(--text, #3A3A3A);
  margin: 2px 0;
}
.bus-radio label,
.bus-dimensao label {
  display: inline-block;
  margin-right: 14px;
}

/* --- a situação das rotinas (administrador) --- */
.bus-rotinas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  font-size: 12.5px;
  color: var(--text-muted, #6F6F6F);
}
.bus-rotinas-titulo {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim, #9B958C);
}
.bus-rotinas-item + .bus-rotinas-item::before {
  content: "·";
  margin-right: 16px;
  color: var(--hairline, #E6DCCF);
}

/* --- contagem, legenda --- */
.bus-resumo {
  font-size: 14px;
  color: var(--text, #3A3A3A);
}
.bus-resumo strong {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 18px;
}
.bus-resumo-nota {
  color: var(--text-muted, #6F6F6F);
  font-size: 12.5px;
}
.bus-barra-mapa {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin-top: 8px;
}
.bus-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 12px;
  color: var(--text-muted, #6F6F6F);
}
.bus-legenda-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bus-bola {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(38, 63, 63, 0.18);
}
.bus-bola-vaga {
  background: transparent;
  border: 2px dashed var(--text-muted, #6F6F6F);
  box-shadow: none;
}

/* --- os pinos agrupados --- */
.bus-cluster-wrap {
  background: transparent;
  border: none;
}
.bus-cluster {
  border-radius: 50%;
  text-align: center;
  font-weight: 700;
  font-size: 12.5px;
  color: #fff;
  background: var(--ink, #2F4F4F);
  box-shadow: 0 0 0 5px rgba(47, 79, 79, 0.18);
}

/* --- a ficha --- */
.bus-painel {
  max-height: calc(62vh + 40px);
}
.bus-ficha {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.bus-grade {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
}
.bus-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.bus-item-rotulo {
  font-size: 11.5px;
  color: var(--text-muted, #6F6F6F);
}
.bus-item-valor {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 15px;
  color: var(--text, #3A3A3A);
}
.bus-item-nota {
  font-size: 11.5px;
  color: var(--text-dim, #9B958C);
  line-height: 1.35;
}
.bus-item-vazio {
  font-size: 13px;
  font-style: italic;
  color: var(--text-muted, #6F6F6F);
}
.bus-nota {
  font-size: 12.5px;
  color: var(--text-muted, #6F6F6F);
  margin: 4px 0;
}
.bus-destaque {
  font-size: 13px;
  color: #7A5A38;
  background: rgba(176, 137, 104, 0.1);
  border-radius: 10px;
  padding: 8px 10px;
  margin: 4px 0;
}
.bus-observacao {
  font-size: 13px;
  font-style: italic;
  color: var(--text, #3A3A3A);
}
.bus-linha {
  margin: 2px 0;
  font-size: 13px;
}
.bus-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--amber, #B08968);
}
.bus-chip-fonte {
  margin-left: 6px;
  font-size: 10.5px;
  color: var(--text-dim, #9B958C);
}
.bus-chip-ok {
  border-color: rgba(31, 169, 113, 0.45);
}
.bus-chip-fraco {
  opacity: 0.7;
  border-style: dashed;
}
.bdg.fraco {
  background: transparent;
  color: var(--text-muted, #6F6F6F);
  border: 1px dashed var(--hairline, #E6DCCF);
}

/* --- a lista --- */
.bus-lista {
  padding: 14px 16px;
}
.bus-lista-grade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
}
.bus-lista-linha {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  text-align: left;
  background: var(--paper, #F5F2EE);
  border: 1px solid var(--hairline, #E6DCCF);
  border-radius: 12px;
  padding: 9px 12px;
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.18s, background 0.18s;
}
.bus-lista-linha:hover {
  border-color: var(--amber, #B08968);
  background: var(--cloud, #fff);
}
.bus-lista-linha.urgente {
  border-color: var(--error, #E5484D);
}
.bus-lista-nome {
  font-weight: 700;
  font-size: 13.5px;
  color: var(--text, #3A3A3A);
}
.bus-lista-end,
.bus-lista-meta {
  font-size: 12px;
  color: var(--text-muted, #6F6F6F);
}

/* --- o bloco da captação (administrador) --- */
.bus-captacao {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--hairline, #E6DCCF);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bus-sub-menor {
  margin: 8px 0 2px;
  font-size: 13px;
  font-weight: 700;
}
.bus-contato,
.bus-atividade {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--hairline, #E6DCCF);
  border-radius: 10px;
  background: var(--paper, #F5F2EE);
}
.bus-atividade {
  flex-direction: column;
  gap: 2px;
}
.bus-contato-topo {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bus-atividade-topo {
  font-size: 12.5px;
  font-weight: 600;
}
.bus-atividade-relato {
  font-size: 13px;
}
.bus-form {
  border: 1px dashed var(--hairline, #E6DCCF);
  border-radius: 10px;
  padding: 8px 10px;
}
.bus-form[open] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bus-form-titulo {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--amber, #B08968);
}
.bus-form-grade {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 10px;
}
.bus-form .field {
  width: 100%;
  box-sizing: border-box;
}
.bus-textarea {
  min-height: 60px;
  resize: vertical;
}
.bus-botao-form {
  align-self: flex-start;
}
.bus-hr {
  border: none;
  border-top: 1px solid var(--hairline, #E6DCCF);
  margin: 6px 0;
}
.bus-falta {
  font-size: 12.5px;
}
.bus-falta-lista {
  color: #7A5A38;
}
.bus-aviso {
  font-size: 13px;
  border-radius: 10px;
  padding: 8px 10px;
  margin-bottom: 8px;
}
.bus-aviso-ok {
  background: rgba(31, 169, 113, 0.1);
  color: #138255;
}
.bus-aviso-erro {
  background: rgba(229, 72, 77, 0.08);
  color: var(--error, #E5484D);
}

@media (max-width: 1100px) {
  .bus-grade,
  .bus-form-grade {
    grid-template-columns: 1fr;
  }
}
