/* modal.css — Modais: radius 8px, sombra permitida (camada flutuante) */

.modal-overlay {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(26, 26, 26, .5);
  display: flex; align-items: center; justify-content: center; padding: 24px;
}
.modal-overlay.hidden { display: none; }

.modal {
  background: var(--bg); border-radius: var(--radius);
  box-shadow: 0 8px 32px rgba(26, 26, 26, .25);
  width: 100%; max-width: 560px; max-height: calc(100vh - 96px);
  display: flex; flex-direction: column;
}
.modal.modal-lg { max-width: 760px; }

.modal-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 24px 16px; border-bottom: 1px solid var(--line);
}
.modal-header h3 { font-family: var(--ff-title); font-weight: 600; font-size: 18px; margin: 0; }
.modal-close {
  background: none; border: none; cursor: pointer; color: var(--fg-faint);
  font-size: 20px; line-height: 1; padding: 4px; transition: color .15s;
}
.modal-close:hover { color: var(--fg); }

.modal-body { padding: 24px; overflow-y: auto; }
.modal-footer {
  display: flex; justify-content: flex-end; gap: 12px;
  padding: 16px 24px; border-top: 1px solid var(--line);
}

/* Toast — feedback flutuante (sombra permitida, 0.25s, cor semântica) */
.toast-container {
  position: fixed; bottom: 24px; right: 24px; z-index: 200;
  display: flex; flex-direction: column; gap: 8px;
}
.toast {
  background: var(--bg); border: 1px solid var(--line);
  border-left: 4px solid var(--brand-blue);
  border-radius: var(--radius); box-shadow: 0 4px 16px rgba(26, 26, 26, .18);
  padding: 14px 18px; min-width: 280px; max-width: 420px;
  font-size: 13px; color: var(--fg);
  animation: toast-in .25s ease;
}
.toast.ok     { border-left-color: var(--ok); }
.toast.warn   { border-left-color: var(--warn); }
.toast.danger { border-left-color: var(--danger); }
.toast .toast-meta { font-family: var(--ff-mono); font-size: 11px; color: var(--fg-faint); margin-top: 4px; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
