/* ==========================================================================
   DiviFácil — modais e avisos (DiviModal). Nunca usamos alert()/confirm().
   ========================================================================== */

html.dm-aberto { overflow: hidden; }

.dm-overlay {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, .55);
  -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
  opacity: 0; transition: opacity .2s ease;
}
.dm-overlay.is-visivel { opacity: 1; }

.dm {
  position: relative; width: 100%; max-width: 410px;
  padding: 34px 28px 24px; text-align: center;
  background: #fff; border-radius: 22px; box-shadow: var(--shadow-lg);
  opacity: 0; transform: translateY(16px) scale(.96);
  transition: transform .28s cubic-bezier(.2, .9, .3, 1.15), opacity .2s ease;
  outline: none;
}
.dm-overlay.is-visivel .dm { opacity: 1; transform: none; }

.dm__fechar {
  position: absolute; top: 12px; right: 12px; width: 34px; height: 34px;
  display: grid; place-items: center;
  border: 0; border-radius: 10px; background: transparent; color: var(--ink-400); cursor: pointer;
  transition: background-color .15s, color .15s;
}
.dm__fechar:hover { background: var(--ink-100); color: var(--ink-700); }
.dm__fechar .ico { width: 18px; height: 18px; }

.dm__icone {
  width: 68px; height: 68px; margin: 0 auto 18px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--info-bg); color: var(--info);
  box-shadow: 0 0 0 9px rgba(255, 138, 71, .1);
}
.dm__icone .ico { width: 32px; height: 32px; stroke-width: 2.2; }
.dm--sucesso .dm__icone { background: var(--ok-bg);    color: var(--ok);    box-shadow: 0 0 0 9px rgba(22, 163, 74, .09); }
.dm--erro    .dm__icone { background: var(--erro-bg);  color: var(--erro);  box-shadow: 0 0 0 9px rgba(220, 38, 38, .08); }
.dm--aviso   .dm__icone { background: var(--aviso-bg); color: var(--aviso); box-shadow: 0 0 0 9px rgba(217, 119, 6, .09); }
.dm--ajuda   .dm__icone { background: var(--brand-100); color: var(--brand-700); }

.dm__titulo { margin: 0 0 8px; font-size: 20px; font-weight: 800; letter-spacing: -.015em; line-height: 1.25; color: var(--ink-900); }
.dm__msg { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ink-500); white-space: pre-line; }

.dm__acoes { display: flex; gap: 10px; margin-top: 26px; }
.dm__acoes .btn { flex: 1 1 0; min-width: 0; }

/* ---------- Toasts (avisos rápidos que somem sozinhos) ---------- */
.dm-toasts {
  position: fixed; z-index: 10000; left: 50%; bottom: 24px; transform: translateX(-50%);
  width: calc(100% - 32px); max-width: 420px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  pointer-events: none;
}
.dm-toast {
  pointer-events: auto; display: flex; align-items: center; gap: 10px;
  padding: 12px 18px; border-radius: 14px;
  font-size: 14px; font-weight: 600; color: #fff; background: var(--ink-900); box-shadow: var(--shadow-lg);
  opacity: 0; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease;
}
.dm-toast.is-visivel { opacity: 1; transform: none; }
.dm-toast .ico { width: 19px; height: 19px; }
.dm-toast--sucesso .ico { color: #4ADE80; }
.dm-toast--erro .ico    { color: #F87171; }
.dm-toast--aviso .ico   { color: #FBBF24; }
.dm-toast--info .ico    { color: var(--brand-400); }

@media (max-width: 480px) {
  .dm { padding: 30px 22px 22px; border-radius: 20px; }
  .dm__acoes { flex-direction: column-reverse; }
}

/* ---------- Janela de conteúdo livre (formulários, detalhes) — DiviModal.janela() ---------- */
.dm.dm--janela {
  display: flex; flex-direction: column; max-width: 560px; padding: 0; text-align: left; overflow: hidden;
  max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px);
}
.dm.dm--larga { max-width: 680px; }

.dm__cab { position: relative; flex: none; display: flex; align-items: center; gap: 14px; padding: 22px 64px 18px 24px; border-bottom: 1px solid var(--ink-100); }
.dm__cab-icone { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 14px; background: var(--brand-50); color: var(--brand-600); }
.dm__cab-icone .ico { width: 24px; height: 24px; }
.dm__cab-txt { min-width: 0; }
.dm__titulo.dm__titulo--janela { margin: 0; font-size: 18px; }
.dm__sub { margin: 3px 0 0; font-size: 13px; line-height: 1.45; color: var(--ink-500); }
.dm--janela .dm__fechar { top: 20px; right: 18px; z-index: 1; }

.dm__corpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px 24px 8px; }
.dm__rodape { flex: none; display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px 18px; border-top: 1px solid var(--ink-100); background: var(--ink-50); }
.dm__rodape:empty { display: none; }
.dm__rodape .btn { min-width: 120px; }
.dm--janela.is-ocupado .dm__fechar { opacity: .4; cursor: progress; }

@media (max-width: 480px) {
  .dm-overlay--janela { padding: 12px; }
  .dm.dm--janela { border-radius: 18px; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .dm__cab { gap: 12px; padding: 18px 56px 14px 18px; }
  .dm__cab-icone { width: 40px; height: 40px; border-radius: 12px; }
  .dm__corpo { padding: 16px 18px 6px; }
  .dm__rodape { flex-direction: column-reverse; padding: 12px 18px 16px; }
  .dm__rodape .btn { width: 100%; }
}
