/* Dialog: <dialog class="sv-dialog sv-dialog--sm|md|lg"> > <form method="dialog" class="sv-dialog__form">
   > header / .sv-dialog__body / footer. Full-screen sheet below 30em. */

.sv-dialog {
  width: min(var(--_w, var(--sv-dialog-md)), calc(100vw - 2rem));
  max-width: none;
  max-height: min(90vh, 52rem);
  max-height: min(90dvh, 52rem);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--sv-radius-lg);
  background: var(--sv-color-surface);
  color: var(--sv-color-text);
  box-shadow: var(--sv-shadow-lg), 0 0 0 1px rgb(16 24 40 / 0.06);
  overflow: hidden;
}
.sv-dialog--sm { --_w: var(--sv-dialog-sm); }
.sv-dialog--md { --_w: var(--sv-dialog-md); }
.sv-dialog--lg { --_w: var(--sv-dialog-lg); }
.sv-dialog--xl { --_w: 72rem; }
.sv-dialog[open] { display: flex; flex-direction: column; animation: sv-dialog-in var(--sv-duration) var(--sv-ease); }
.sv-dialog::backdrop {
  background: var(--sv-color-overlay);
  animation: sv-fade-in var(--sv-duration) var(--sv-ease);
}

.sv-dialog__form {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  margin: 0;
}
.sv-dialog__form > :where(* + *) { margin-top: 0; }

.sv-dialog__header {
  display: flex;
  flex: none;
  align-items: flex-start;
  gap: var(--sv-space-3);
  padding: var(--sv-space-4) var(--sv-space-4) var(--sv-space-3) var(--sv-space-5);
  border-bottom: 1px solid var(--sv-color-border);
}
.sv-dialog__header > h2,
.sv-dialog__title {
  flex: 1 1 auto;
  margin: 0;
  padding-top: 0.2rem;
  font-size: var(--sv-text-lg);
}
.sv-dialog__close { flex: none; margin: -0.25rem -0.25rem 0 0; }
.sv-dialog__icon {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--sv-radius-pill);
  background: var(--sv-info-bg);
  color: var(--sv-info-fg);
}
.sv-dialog--danger .sv-dialog__icon { background: var(--sv-error-bg); color: var(--sv-error-fg); }

.sv-dialog__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: var(--sv-space-5);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.sv-dialog__body > * + * { margin-top: var(--sv-space-4); }
.sv-dialog__body > p { margin-bottom: 0; }

.sv-dialog__footer {
  display: flex;
  flex: none;
  flex-wrap: wrap-reverse;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sv-space-2);
  padding: var(--sv-space-3) var(--sv-space-5);
  border-top: 1px solid var(--sv-color-border);
  background: var(--sv-color-surface-muted);
}
.sv-dialog__footer-start { margin-inline-end: auto; }

/* Map inside a dialog (worklist map dialog). */
.sv-dialog--map .sv-dialog__body { padding: 0; }

@media (max-width: 29.99em) {
  .sv-dialog {
    width: 100vw;
    max-height: 100vh;
    max-height: 100dvh;
    height: 100dvh;
    margin: 0;
    border-radius: 0;
  }
  .sv-dialog__footer { padding-bottom: calc(var(--sv-space-3) + env(safe-area-inset-bottom, 0px)); }
  .sv-dialog__footer .sv-button { flex: 1 1 auto; }
}

@keyframes sv-dialog-in {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
