/* Lista negra — diálogos próprios (14/10/2026, ver js/lista-negra-dialogos.js). Mesma moldura dos diálogos
   centrais da Fase 1C (fundo escurecido, título arrastável com ⋮⋮, × e Esc), com faixa de cor pelo tom:
   vermelho para "Tirar da lista" e "Revogar", azul para "Permitir cadastro…" e verde para a confirmação. */
.lnd-fundo { position: fixed; inset: 0; z-index: 2300; background: rgba(8, 12, 22, .42); }
html[data-tema="escuro"] .lnd-fundo, html[data-tema="noturno"] .lnd-fundo { background: rgba(0, 0, 0, .52); }
.lnd-dialogo {
  --lnd-tom: var(--primary);
  position: fixed; z-index: 2310; left: 0; top: 0;
  width: min(480px, calc(100vw - 16px)); max-height: calc(100vh - 16px);
  display: flex; flex-direction: column; overflow: hidden;
  color: var(--text); background: var(--card-bg);
  border: 1px solid var(--border); border-top: 3px solid var(--lnd-tom); border-radius: 14px;
  box-shadow: 0 18px 48px rgba(10, 14, 25, .34);
  outline: none; animation: lnd-in 170ms cubic-bezier(.2, .8, .2, 1) both;
}
.lnd-dialogo.lnd-perigo { --lnd-tom: var(--danger); }
.lnd-dialogo.lnd-ok { --lnd-tom: var(--success); }
.lnd-dialogo.lnd-arrastando { box-shadow: 0 26px 64px rgba(10, 14, 25, .44); }
.lnd-cabeca {
  flex: none; display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 7px 8px 7px 12px;
  background: var(--surface-2); border-bottom: 1px solid var(--border);
  cursor: grab; user-select: none; touch-action: none;
}
.lnd-arrastando .lnd-cabeca { cursor: grabbing; }
.lnd-grip { flex: none; color: var(--text-3, var(--text-muted)); font-size: 15px; line-height: 1; letter-spacing: -3px; }
.lnd-cabeca b { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.3; overflow-wrap: anywhere; }
.lnd-fechar {
  flex: none; width: 28px; height: 28px; min-height: 28px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-muted); background: transparent; border: 1px solid var(--border); border-radius: 7px; font-size: 16px; line-height: 1; cursor: pointer; box-shadow: none;
}
.lnd-fechar:hover, .lnd-fechar:focus-visible { color: var(--text); border-color: var(--primary); outline: none; transform: none; }
.lnd-corpo { flex: 1 1 auto; min-height: 0; padding: 16px 16px 4px; overflow: auto; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.lnd-topo { display: flex; gap: 14px; align-items: flex-start; }
.lnd-icone {
  flex: none; width: 38px; height: 38px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center;
  color: var(--lnd-tom); background: color-mix(in srgb, var(--lnd-tom) 12%, var(--card-bg));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lnd-tom) 30%, transparent);
}
.lnd-icone svg { width: 18px; height: 18px; }
.lnd-texto { flex: 1; min-width: 0; }
.lnd-texto p { margin: 0 0 12px; color: var(--text-muted); }
.lnd-texto p strong { color: var(--text); }
.lnd-contexto { padding: 9px 10px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; color: var(--text) !important; font-size: 12.5px; }
.lnd-campo { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; font-size: 12px; font-weight: 700; color: var(--text); }
.lnd-campo small { font-weight: 400; color: var(--text-muted); }
.lnd-campo input { min-height: 38px; font-weight: 400; width: 100%; box-sizing: border-box; }
.lnd-horas { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; color: var(--text-muted); }
.lnd-horas input { width: 92px; text-align: right; font-variant-numeric: tabular-nums; }
.lnd-erro {
  margin: 0 0 10px; padding: 9px 10px; border-radius: 8px; font-size: 12.5px;
  color: var(--red-text, var(--danger)); background: var(--red-bg, color-mix(in srgb, var(--danger) 12%, var(--card-bg)));
  border: 1px solid color-mix(in srgb, var(--danger) 40%, transparent);
}
.lnd-erro.hidden { display: none; }
.lnd-acoes { flex: none; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 10px 16px 14px; }
.lnd-acoes button { min-height: 36px; font-weight: 700; }
.lnd-acoes button:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.lnd-ocupado .lnd-confirmar { cursor: progress; }
@keyframes lnd-in { from { opacity: 0; transform: translateY(6px) scale(.985); } }
@media (prefers-reduced-motion: reduce) { .lnd-dialogo { animation: none; } }
