/* Início — o quadro ao vivo (plan/28 §5, plano 29; desenho do Stitch de 06/10).
 *
 * ⚠️ Nenhuma cor fixa aqui (CLAUDE.md §4): tudo passa pelos tokens de `app.css` (`--bg*`, `--fg`,
 * `--muted`, `--line`, `--acao*`, `--mod-*`, `--atencao-*`, `--red`, `--green`) e de `leads.css`
 * (`--ld-quente/morno/frio/ok` e os pares `-s`), que já têm o par do tema escuro.
 */
#app.quadro { max-width: 1680px; }

.in-tela { display: flex; flex-direction: column; gap: var(--esp-3); }
.in-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-3); }
.in-titulo-linha { display: flex; align-items: center; gap: var(--esp-2); }
.in-titulo { margin: 0; font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 26px; font-weight: 800;
  letter-spacing: -.02em; }
.in-vivo { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px;
  background: var(--ld-ok-s); color: var(--ld-ok); font-size: 12.5px; font-weight: 700; }
.in-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex: none; }
.in-controles { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2); }
.in-seg { display: inline-flex; padding: 3px; border-radius: 12px; background: var(--bg3); }
.in-seg button { min-height: 44px; padding: 0 14px; border: 0; border-radius: 10px; background: none; color: var(--muted);
  font-weight: 700; }
.in-seg button.on { background: var(--bg2); color: var(--fg); box-shadow: var(--sombra-1); }
.in-seg button:hover { background: var(--bg2); color: var(--fg); }
.in-sel, .in-busca { min-height: 44px; width: auto; margin: 0; }
.in-sel { flex: 0 1 220px; }
.in-busca { flex: 0 1 240px; min-width: 160px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--bg2); color: var(--fg); font: inherit; }
.in-log-b { min-height: 44px; }

.in-chips { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.in-chip { min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg2);
  color: var(--fg); font-weight: 700; font-size: 13.5px; }
.in-chip.on { background: var(--fg); border-color: var(--fg); color: var(--bg2); }
.in-chip:hover { border-color: var(--acao); background: var(--bg2); color: var(--fg); }
.in-chip.on:hover { background: var(--fg); color: var(--bg2); }

/* ── Precisa de você ── */
.in-precisa { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-3); padding: 10px 12px;
  border: 1px solid var(--atencao-borda); border-radius: 14px; background: var(--atencao-s); }
.in-precisa-h { margin: 0; font-size: 14.5px; font-weight: 800; color: var(--acao-texto); white-space: nowrap; }
.in-precisa-lista { display: flex; flex-wrap: wrap; gap: var(--esp-2); flex: 1; min-width: 0; }
.in-precisa-item { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 4px 6px 4px 12px; flex: 1 1 260px;
  min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--bg2); color: var(--fg);
  text-decoration: none; }
.in-precisa-item:hover { border-color: var(--acao); }
.in-precisa-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--amber); flex: none; }
.in-precisa-item.erro .in-precisa-ponto { background: var(--red); }
.in-precisa-t { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; }
.in-precisa-acao { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 9px;
  border: 1px solid var(--line); font-size: 13px; font-weight: 800; white-space: nowrap; }
.in-precisa-acao.principal { background: var(--acao); border-color: var(--acao); color: var(--acao-fg); }
.in-precisa-item.erro .in-precisa-acao:not(.principal) { border-color: var(--red); color: var(--red); }

/* ── o quadro (computador) ── */
.in-area { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: var(--esp-3); align-items: start; }
.in-tela.sem-log .in-area { grid-template-columns: minmax(0, 1fr); }
.in-tela.sem-log .in-log { display: none; }
.in-quadro-wrap { min-width: 0; }
/* As 8 colunas (9 com Corretores) cabem sem rolar com o "Acontecendo agora" fechado; com ele aberto o quadro rola
   DENTRO dele, nunca a página. `--in-n` vem do JS: quantas colunas estão à vista. */
.in-quadro { display: grid; grid-template-columns: repeat(var(--in-n, 8), minmax(124px, 1fr)); gap: 8px; overflow-x: auto;
  padding-bottom: 4px; }
.in-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 10px 8px; border-radius: 14px;
  background: var(--bg3); }
.in-col.corretores { background: var(--mod-gestao-s); }
.in-col-venc { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
  background: var(--red); color: var(--bg2); font-size: 11px; font-weight: 800; }
.in-grupo { margin: 4px 4px 0; color: var(--mod-gestao); font-size: 12px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .03em; }
.in-corr-b { min-height: 44px; margin: 0 0 8px auto; display: flex; }
.in-col-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; padding: 0 4px; }
.in-col-cab h3 { margin: 0; font-size: 13.5px; font-weight: 800; }
.in-col-n { color: var(--muted); font-weight: 800; font-size: 13px; }
.in-barra { display: flex; height: 4px; border-radius: 999px; overflow: hidden; background: var(--line); }
.in-barra .quente { background: var(--ld-quente); }
.in-barra .morno { background: var(--ld-morno); }
.in-barra .frio { background: var(--ld-frio); }
.in-col-lista { display: flex; flex-direction: column; gap: 8px; }
.in-col-vazia { margin: 6px 4px; color: var(--muted); font-size: 13px; }
.in-mais { min-height: 44px; border: 0; background: none; color: var(--fg); font-weight: 700; font-size: 13px; }
.in-mais:hover { background: var(--bg2); color: var(--acao-texto); }

.in-cartao { display: flex; flex-direction: column; gap: 4px; min-height: 44px; padding: 9px 10px; border-radius: 12px;
  border: 1px solid var(--line); background: var(--bg2); color: var(--fg); text-decoration: none;
  box-shadow: var(--ld-sombra-sm); }
.in-cartao:hover { border-color: var(--acao); }
.in-c1 { display: flex; align-items: center; gap: 6px; min-width: 0; }
.in-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.in-selo { flex: none; max-width: 44px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 1px 6px;
  border-radius: 6px; background: var(--bg3); color: var(--muted); font-size: 11px; font-weight: 700; }
.in-procura { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12.5px; }
.in-estava { color: var(--mod-gestao); font-size: 12px; font-weight: 700; }
/* kanban do funil (20/10): finalidade, dono do próximo passo, motivo e prazo */
.in-c2 { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-width: 0; }
.in-fin, .in-dono { display: inline-flex; align-items: center; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; padding: 1px 6px; border-radius: 6px; font-size: 11px; font-weight: 800; }
.in-fin.compra { background: var(--ld-frio-s); color: var(--fg); }
.in-fin.aluguel { background: var(--ld-ok-s); color: var(--ld-ok); }
.in-fin.indefinida { background: var(--atencao-s); color: var(--acao-texto); }
.in-dono { background: var(--bg3); color: var(--muted); }
.in-dono.maysa { color: var(--mod-atendimento); }
.in-dono.corretor, .in-dono.pessoa { color: var(--mod-gestao); }
.in-dono.total.sem { color: var(--red); }
.in-imovel-de { color: var(--muted); font-size: 11.5px; }
.in-motivo { color: var(--fg); font-size: 12px; font-weight: 600; line-height: 1.3; }
.in-parado { color: var(--muted); font-weight: 700; }
.in-motivo.vencido, .in-motivo.vencido .in-parado { color: var(--red); }
.in-cartao.vencido { border-left: 3px solid var(--red); }
.in-linha.vencido { box-shadow: inset 3px 0 0 var(--red); }
.in-av { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
  border: 2px solid var(--ld-frio); background: var(--ld-frio-s); color: var(--fg); font-size: 11px; font-weight: 800; }
.in-av.quente { border-color: var(--ld-quente); background: var(--ld-quente-s); }
.in-av.morno { border-color: var(--ld-morno); background: var(--ld-morno-s); }

.in-status { display: flex; flex-wrap: wrap; gap: 4px 8px; padding-top: 4px; border-top: 1px solid var(--line); }
.in-st { display: inline-flex; align-items: center; gap: 3px; color: var(--muted); font-size: 11.5px; font-weight: 700; }
.in-st .ico { width: 13px; height: 13px; }
.in-st.maysa { color: var(--mod-atendimento); }
.in-st.respondeu, .in-st.feita, .in-st.gostou { color: var(--ld-ok); }
.in-st.sem_resposta { color: var(--ld-morno); }
.in-st.abriu, .in-st.enviada { color: var(--ld-frio); }
.in-st.pessoa { color: var(--mod-gestao); }

.in-cartao.novo, .in-linha.novo { animation: in-novo 3s ease-out; }
@keyframes in-novo { from { box-shadow: 0 0 0 3px var(--acao); } to { box-shadow: 0 0 0 0 transparent; } }
@media (prefers-reduced-motion: reduce) {
  .in-cartao.novo, .in-linha.novo { animation: none; outline: 2px solid var(--acao); }
}

.in-rodape { margin: var(--esp-2) 0 0; color: var(--muted); font-size: 13.5px; font-weight: 700; }

/* ── o funil medido ── */
.in-funil { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--esp-3); padding: 10px 12px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--bg2); }
.in-funil-h { margin: 0; font-size: 14px; font-weight: 800; white-space: nowrap; }
.in-funil-lista { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; min-width: 0; margin: 0; padding: 0; list-style: none; }
.in-funil-e { display: flex; align-items: baseline; gap: 5px; padding: 4px 10px; border-radius: 10px; background: var(--bg3);
  font-size: 12.5px; }
.in-funil-n { font-weight: 800; font-variant-numeric: tabular-nums; }
.in-funil-r { color: var(--muted); font-weight: 600; }
.in-funil-pct { color: var(--fg); font-weight: 800; }
.in-funil-sub { margin: 0; color: var(--muted); font-size: 12.5px; font-weight: 600; }
.in-rodape-sub { font-weight: 500; }

/* ── Acontecendo agora ── */
.in-log { position: sticky; top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 14px;
  background: var(--bg2); }
.in-log-h { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 14.5px; font-weight: 800; }
.in-log-lista { list-style: none; margin: 0; padding: 0; }
.in-log-lista a { display: grid; grid-template-columns: 44px 1fr; gap: 8px; min-height: 44px; padding: 6px 4px;
  border-bottom: 1px solid var(--line); color: var(--fg); text-decoration: none; font-size: 13px; }
.in-log-lista li:last-child a { border-bottom: 0; }
.in-log-lista a:hover { color: var(--acao-texto); }
.in-log-lista time { color: var(--muted); font-variant-numeric: tabular-nums; font-weight: 700; }
.in-log-vazio { margin: 0; color: var(--muted); font-size: 13px; }

/* ── celular: sem kanban (telas 3 e 4) ── */
@media (max-width: 760px) {
  .in-titulo { font-size: 22px; }
  .in-controles { width: 100%; }
  .in-seg { flex: 1 1 100%; }
  .in-seg button { flex: 1; }
  .in-sel, .in-busca { flex: 1 1 100%; min-width: 0; width: 100%; }
  .in-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
  .in-chip { flex: none; }

  .in-precisa-faixa { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 52px; padding: 0 14px;
    border: 1px solid var(--atencao-borda); border-radius: 14px; background: var(--atencao-s); color: var(--acao-texto);
    font-weight: 800; text-align: left; }
  .in-precisa-faixa span { flex: 1; }
  .in-precisa-faixa:hover { background: var(--atencao-s); color: var(--acao-texto); }
  .in-folha-lista { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
  .in-folha-lista .in-precisa-item { flex-wrap: wrap; padding: 12px; }
  .in-folha-lista .in-precisa-acao { min-height: 44px; margin-left: auto; padding: 0 18px; }

  .in-trilho-wrap { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .in-trilho { display: flex; gap: 8px; flex: 1; min-width: 0; overflow-x: auto; padding: 2px 0; scrollbar-width: none; }
  .in-trilho::-webkit-scrollbar { display: none; }
  .in-pilula { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px;
    border-radius: 999px; border: 1px solid var(--line); background: var(--bg2); color: var(--fg); font-weight: 700; }
  .in-pilula.on { background: var(--fg); border-color: var(--fg); color: var(--bg2); }
  .in-pilula:hover { background: var(--bg2); color: var(--fg); }
  .in-pilula.on:hover { background: var(--fg); color: var(--bg2); }
  .in-pilula.pessoa { background: var(--mod-gestao-s); border-color: var(--mod-gestao-s); color: var(--mod-gestao); }
  .in-pilula.pessoa.on { border-color: var(--mod-gestao); }
  .in-pilula.vencido:not(.on) { border-color: var(--red); }
  .in-corr-b { width: 100%; justify-content: center; margin: 0; }
  .in-linha .in-c2 { margin: 2px 0; }
  .in-funil-lista { flex-wrap: nowrap; overflow-x: auto; }
  .in-funil-e { flex: none; }
  .in-pilula-n { font-weight: 800; color: inherit; opacity: .75; }

  .in-abas { display: flex; gap: var(--esp-3); border-bottom: 1px solid var(--line); }
  .in-abas button { min-height: 44px; padding: 0 2px; border: 0; border-bottom: 3px solid transparent; border-radius: 0;
    background: none; color: var(--muted); font-weight: 800; }
  .in-abas button.on { color: var(--fg); border-bottom-color: var(--acao); }
  .in-abas button:hover { background: none; color: var(--fg); }

  .in-lista { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; background: var(--bg2);
    overflow: hidden; }
  .in-linha { display: flex; align-items: center; gap: 10px; min-height: 60px; padding: 8px 12px; border-bottom: 1px solid var(--line);
    color: var(--fg); text-decoration: none; }
  .in-linha:last-child { border-bottom: 0; }
  .in-linha .in-av { width: 40px; height: 40px; font-size: 13px; }
  .in-linha-txt { display: flex; flex-direction: column; flex: 1; min-width: 0; }
  .in-linha .in-nome { font-size: 15px; }
  .in-status.compacto { flex-wrap: nowrap; gap: 6px; padding: 0; border: 0; }
  .in-status.compacto .in-st { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px;
    background: var(--bg3); }
  .in-status.compacto .in-st .ico { width: 16px; height: 16px; }
  .in-mais { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: var(--bg2); }
  .in-log-lista { border: 1px solid var(--line); border-radius: 14px; background: var(--bg2); padding: 0 10px; }
}

/* ── a gaveta: a ficha do lead ao lado do quadro (sem trocar de página) ── */
.in-cartao.aberto, .in-linha.aberto { outline: 2px solid var(--acao); outline-offset: -2px; }
.in-gaveta { position: fixed; top: 0; right: 0; bottom: 0; z-index: 55; width: min(520px, 100vw); display: flex;
  flex-direction: column; background: var(--bg); border-left: 1px solid var(--line); box-shadow: var(--sombra-folha); }
.in-gaveta-cab { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-2);
  padding: 8px 12px 8px 16px; border-bottom: 1px solid var(--line); background: var(--bg2); }
.in-gaveta-x { min-width: 44px; min-height: 44px; font-size: 18px; }
.in-gaveta-cab .ld-link { display: inline-flex; align-items: center; min-height: 44px; }
.in-gaveta-corpo { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 14px 16px 24px; }
/* Na gaveta a ficha é uma coluna só e não tem "← Leads" (o ✕ fecha). */
.in-gaveta .ld-voltar { display: none; }
.in-gaveta .ld-grade { grid-template-columns: minmax(0, 1fr); }
/* Computador: o quadro recua a largura da gaveta e o "Acontecendo agora" sai de cena enquanto ela está
   aberta — as 8 colunas rolam DENTRO do quadro, nenhuma fica escondida atrás da ficha. */
@media (min-width: 761px) {
  body.in-gaveta-aberta #app.quadro { margin-right: 520px; }
  body.in-gaveta-aberta .in-area { grid-template-columns: minmax(0, 1fr); }
  body.in-gaveta-aberta .in-log { display: none; }
  .in-gaveta .ld-acoes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Na gaveta a ficha é UMA coluna, na ordem de quem bate o olho: quem é e ações → a conversa (resumo e histórico
   da Maysa) → os imóveis dele → o que procura → linha do tempo e notas → dinheiro, seleção e sugeridos.
   As duas colunas da ficha viram `contents` para as seções se ordenarem juntas (rótulos de `ldDesenharFicha`). */
.in-gaveta .ld-grade { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
.in-gaveta .ld-col { display: contents; }
.in-gaveta .ld-col > * { order: 50; }
.in-gaveta [aria-label="Cliente"] { order: 1; }
.in-gaveta .ld-acoes { order: 2; }
.in-gaveta [aria-label="Maysa e jornada"] { order: 3; }
.in-gaveta [aria-label="Imóveis dele"] { order: 4; }
.in-gaveta [aria-label="O que procura"] { order: 5; }
.in-gaveta [aria-label="Linha do tempo"] { order: 6; }
.in-gaveta [aria-label="Notas"] { order: 7; }
