/* Shared confirmation modal — see js/confirm-modal.js.
 *
 * One dialog for the whole portal, appended to <body> once and reused, so a
 * destructive action can say what it is about to break. window.confirm() cannot:
 * it renders unstyled, unbranded, and its one line of text has to serve as title,
 * consequence and button label at once.
 *
 * Globally loaded from base.html rather than a pages/*.css: the forms that opt in
 * live all over the portal, and a component whose CSS ships with only some of its
 * call sites renders as a bare browser dialog on the rest. */

.cs-confirm {
  width: min(460px, calc(100vw - 32px));
  /* reset.css zeroes the margin on `*`, which beats the UA stylesheet's
   * `dialog { margin: auto }` — without this a fixed-width dialog collapses into
   * the top-left corner. Every dialog in the portal re-adds it; do not strip it. */
  margin: auto;
  padding: var(--cs-space-6, 24px);
  border: 1px solid var(--cs-border, rgba(15, 23, 42, .12));
  border-radius: var(--cs-radius-lg, 16px);
  background: var(--cs-surface, #fff);
  color: inherit;
  box-shadow: 0 24px 64px rgba(16, 24, 40, .22);
}

.cs-confirm::backdrop { background: rgba(15, 23, 42, .45); }

.cs-confirm__title { margin: 0; font-size: 1.08rem; font-weight: 650; }

.cs-confirm__body {
  margin: 10px 0 0; font-size: .9rem; line-height: 1.5;
  color: var(--cs-text-muted, #475569);
}

.cs-confirm__actions {
  display: flex; justify-content: flex-end; gap: 8px;
  margin-top: var(--cs-space-5, 20px);
}
