html.cu-dialog-open, html.cu-dialog-open body { overflow: hidden; }
.cu-dialog {
  width: min(27rem, calc(100vw - 2rem));
  max-width: none;
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  margin: auto;
  padding: 1.5rem;
  border: 1px solid transparent;
  border-radius: var(--radius, 1.125rem);
  background: var(--surface, #fff);
  color: var(--ink, #26232c);
  box-shadow: 0 0 0 1px #26232c14, 0 4px 8px #26232c0d, 0 20px 56px #26232c33;
  overflow: auto;
  overscroll-behavior: contain;
  opacity: 0;
  transition: opacity 150ms ease-out;
}
.cu-dialog.is-visible { opacity: 1; }
.cu-dialog::backdrop, .cu-dialog-fallback-backdrop { background: #21172b75; }
.cu-dialog-heading { display: flex; align-items: center; gap: .625rem; margin-bottom: 1rem; }
.cu-dialog-heading h2 { flex: 1; min-width: 0; margin: 0; font-size: 1.125rem; line-height: 1.45; font-weight: 700; }
.cu-dialog-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2rem; height: 2rem; border-radius: .625rem; background: var(--brand-soft); color: var(--brand); }
.cu-dialog[data-variant="danger"] .cu-dialog-icon { background: #fceef0; color: var(--danger); }
.cu-dialog-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2.75rem; height: 2.75rem; margin: -.375rem -.375rem -.375rem 0; padding: 0; border: 0; border-radius: .65rem; color: var(--muted); background: var(--canvas); }
.cu-dialog-message { margin: 0 0 1.375rem; color: var(--muted); font-size: .9375rem; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.cu-dialog-actions { display: flex; justify-content: flex-end; gap: .625rem; }
.cu-dialog-actions .btn { flex: 1; min-width: 0; min-height: 2.875rem; }
.cu-dialog-actions .btn[hidden] { display: none; }
.cu-dialog-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.cu-dialog-danger:active { background: #952837; border-color: #952837; color: #fff; }
.cu-dialog-fallback-backdrop { position: fixed; inset: 0; z-index: 3000; }
.cu-dialog-fallback { position: fixed; inset: 0; z-index: 3001; }
@media (hover: hover) {
  .cu-dialog-close:hover { color: var(--ink); background: var(--brand-soft); }
  .cu-dialog-danger:hover { background: #952837; border-color: #952837; color: #fff; }
}
@media (prefers-reduced-motion: no-preference) {
  .cu-dialog { transform: translateY(8px); transition: opacity 150ms ease-out, transform 150ms ease-out; }
  .cu-dialog.is-visible { transform: translateY(0); }
  .cu-dialog button { transition: transform 150ms ease-out, background-color 150ms ease-out; }
  .cu-dialog button:not(:disabled):active { transform: scale(.96); }
}
@media (max-width: 400px) { .cu-dialog { padding: 1.25rem; } }
@media (prefers-reduced-motion: reduce) {
  .cu-dialog { transition: opacity 150ms ease-out; transition-duration: 150ms !important; }
}
