/* Public-site modal dialogs (replaces native alert/confirm) */
.app-dialog-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 20px;
  backdrop-filter: blur(2px);
}
.app-dialog-card {
  background: var(--surface, #fff);
  border-radius: var(--radius-lg, 12px);
  width: 100%;
  max-width: 420px;
  box-shadow: var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, 0.18));
  overflow: hidden;
}
.app-dialog-hdr {
  padding: 18px 22px 0;
}
.app-dialog-hdr h2 {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text, #1a1a2e);
}
.app-dialog-body {
  padding: 14px 22px 22px;
}
.app-dialog-body p {
  margin: 0 0 20px;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--text-muted, #6b7280);
}
.app-dialog--error .app-dialog-hdr h2 {
  color: #991b1b;
}
.app-dialog--error .app-dialog-body p {
  color: #7f1d1d;
}
.app-dialog-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.app-dialog-actions .btn {
  min-width: 88px;
  justify-content: center;
}
.app-dialog-actions .btn-outline {
  color: var(--text, #1a1a2e) !important;
  border-color: var(--border, #d1d5db) !important;
  background: var(--surface, #fff);
}
.app-dialog-actions .btn-outline:hover {
  background: var(--bg, #f3f4f6) !important;
  border-color: var(--text-muted, #9ca3af) !important;
}
.btn-danger {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}
.btn-danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}
