/* AF CRM — Dashboard: prazos da Esteira no quadrante "Prazos 30d" (25/09/2026) */
.afdp-oculto { display: none !important; }
.afdp-num.afdp-urgente { color: #dc2626; }
.afdp-extra { display: flex; flex-direction: column; gap: .3rem; margin-top: .55rem; }
.afdp-resumo { margin: 0 0 .1rem; font-size: .72rem; color: hsl(var(--muted-foreground)); }
.afdp-item { display: flex; align-items: center; gap: .45rem; width: 100%; min-width: 0; padding: .3rem .45rem; border: 1px solid hsl(var(--border)); border-radius: .55rem; background: hsl(var(--muted) / .35); font: inherit; font-size: .76rem; text-align: left; color: hsl(var(--foreground)); cursor: pointer; }
.afdp-data { flex: 0 0 auto; font-weight: 700; font-variant-numeric: tabular-nums; min-width: 3.1rem; }
.afdp-perto .afdp-data { color: #dc2626; }
.afdp-tit { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.afdp-fatal { flex: 0 0 auto; padding: 0 .35rem; border-radius: 999px; background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; font-size: .65rem; font-weight: 700; }
:is(.dark *) .afdp-fatal { background: rgba(220,38,38,.15); color: #fca5a5; }
.afdp-mais { align-self: flex-start; border: 0; background: none; padding: .1rem 0; font: inherit; font-size: .74rem; font-weight: 600; color: #ea580c; cursor: pointer; }
/* rev. b: vencidos e selo do fluxo extrajudicial */
.afdp-vencidos { margin: 0 0 .1rem; font-size: .72rem; font-weight: 700; color: #dc2626; }
.afdp-vencido { border-color: #fca5a5; background: #fef2f2; }
.afdp-vencido .afdp-data { color: #dc2626; }
:is(.dark *) .afdp-vencido { background: rgba(220,38,38,.12); border-color: rgba(220,38,38,.4); }
.afdp-pipe { flex: 0 0 auto; padding: 0 .35rem; border-radius: 999px; background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px solid hsl(var(--border)); font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
/* rev. c: lista expansível no próprio quadrante */
.afdp-lista { display: flex; flex-direction: column; gap: .3rem; }
.afdp-lista.afdp-aberta { max-height: 22rem; overflow-y: auto; overscroll-behavior: contain; padding-right: .15rem; scrollbar-width: thin; }
.afdp-rodape { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .1rem; }
.afdp-ir { border: 0; background: none; padding: .1rem 0; margin-left: auto; font: inherit; font-size: .72rem; font-weight: 600; color: hsl(var(--muted-foreground)); cursor: pointer; }
/* rev. d: ✓ finalizar prazo */
.afdp-linha { display: flex; align-items: stretch; gap: .3rem; min-width: 0; }
.afdp-linha .afdp-item { flex: 1 1 auto; width: auto; }
.afdp-ok { flex: 0 0 auto; width: 1.95rem; border: 1px solid hsl(var(--border)); border-radius: .55rem; background: hsl(var(--background)); color: hsl(var(--muted-foreground)); font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.afdp-ok:disabled { opacity: .5; cursor: default; }
.afdp-ok.afdp-erro { color: #dc2626; border-color: #fca5a5; }
.afdp-desfazer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .3rem .5rem; border-radius: .55rem; background: #f0fdf4; color: #15803d; font-size: .74rem; font-weight: 600; }
:is(.dark *) .afdp-desfazer { background: rgba(22,163,74,.14); color: #86efac; }
.afdp-desf-bt { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: inherit; text-decoration: underline; cursor: pointer; }
/* rev. g: o card não pode alargar por causa de título comprido (no celular a página inteira passava da tela
   e o ✓ ficava fora de vista) + selo "N prazos" quando o card tem mais de um */
.afdp-card { min-width: 0; max-width: 100%; }
.afdp-extra, .afdp-lista, .afdp-linha { min-width: 0; max-width: 100%; }
.afdp-item { overflow: hidden; }
.afdp-qtd { flex: 0 0 auto; padding: 0 .35rem; border-radius: 999px; background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); border: 1px solid hsl(var(--border)); font-size: .62rem; font-weight: 700; white-space: nowrap; }
/* rev. h: no iPhone o 1º toque num botão com :hover só "passa o mouse" (fica verde e não clica).
   Hover só em aparelho com mouse; o toque vai direto para o clique. */
@media (hover: hover) {
  .afdp-item:hover { background: hsl(var(--muted)); }
  .afdp-mais:hover { text-decoration: underline; }
  .afdp-ir:hover { color: hsl(var(--foreground)); text-decoration: underline; }
  .afdp-ok:hover { background: #f0fdf4; border-color: #86efac; color: #15803d; }
  :is(.dark *) .afdp-ok:hover { background: rgba(22,163,74,.14); color: #86efac; border-color: rgba(22,163,74,.4); }
}
.afdp-ok, .afdp-item, .afdp-mais, .afdp-ir { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
/* ✓ tocado: fica verde e a linha some */
.afdp-ok.afdp-feito, .afdp-ok.afdp-feito:disabled { opacity: 1; background: #16a34a; border-color: #16a34a; color: #fff; }
.afdp-linha { transition: opacity .25s ease, transform .25s ease; }
.afdp-linha.afdp-saindo { opacity: 0; transform: translateX(12px); }
