/* ============================================================================
   swal-dialog.css — §ADLG, the house dialog (2026-09-23)

   Every SweetAlert2 v11 MODAL on the site — admin confirms (the onclick
   confirm() interceptor in layouts/admin, the crs:confirm bridge, the page
   kits), the public ad-block notice, the news-article messages and the
   Remove-photo dialog — in one design, first built for Remove photo and then
   rolled out to all of them on request. Layered on swal-premium.css (load
   AFTER it); toasts (.swal2-toast) are not touched. Behaviour that needs
   script — the round close button, the pointer spotlight, swipe-to-dismiss —
   is assets/js/swal-dialog.js.

   The look is the home hero in miniature: a white (or #131317) card lit by
   the brand's soft glows and star specks, a glowing semantic ORB instead of
   the old tinted chip, and two equal buttons — a ghost that lights up brand
   blue, and a solid confirm whose colour follows the dialog:

     warning  amber orb · red confirm   (nearly every warning is a delete)
     error    red orb   · red confirm
     success  green orb · green confirm
     info     blue orb  · blue confirm   (also: no icon)
     question indigo orb · blue confirm

   The Remove-photo dialog (`.adlg`) swaps the orb for a before→after hero.
   Centred card above 600px; a bottom sheet with a grab handle at 600px and
   below. Contrast, measured: white on the confirm buttons 4.52–6.70:1, body
   text 8.5:1 light / 8.6:1 dark, white glyph on the orbs ≥3.2:1 (large
   graphic), ghost hover 4.74:1, error text 7.3 / 8.5:1.
   ============================================================================ */

/* ── 1. Tokens ──────────────────────────────────────────────────────────── */
.swal2-popup.swal2-modal {
  --dlg-card:        var(--dk-surface-2, #FFFFFF);
  --dlg-ink:         var(--dk-text, #0B1220);
  --dlg-txt:         var(--dk-text-2, #3D4757);
  --dlg-line:        var(--dk-line, #E7ECF3);
  --dlg-edge:        rgba(255, 255, 255, .9);
  --dlg-shadow:
    0 1px 1px rgba(15, 23, 42, .04),
    0 18px 40px -20px rgba(15, 23, 42, .30),
    0 56px 110px -44px rgba(15, 23, 42, .42);

  /* The dialog's semantic accent (set per icon type below). The orb is its
     gradient; the card's left glow and the orb's ring and glow are its rgb. */
  --dlg-acc-rgb:     54 128 237;
  --dlg-orb-1:       #3680ED;
  --dlg-orb-2:       #2060C0;
  --dlg-wash-a:      .13;
  --dlg-ring-a:      .42;
  --dlg-glow-a:      .55;

  /* The confirm button: top stop, bottom stop, hover bottom, glow rgb. */
  --dlg-btn-1:       #2563EB;
  --dlg-btn-2:       #1D4ED8;
  --dlg-btn-3:       #1E40AF;
  --dlg-btn-rgb:     37 99 235;

  /* The home hero's sky (homepage.css / auth-sky.css). */
  --dlg-glow-blue:   rgba(54, 128, 237, .17);
  --dlg-glow-sky:    rgba(14, 165, 233, .12);
  --dlg-speck:       rgba(54, 128, 237, .55);
  --dlg-spark:       var(--aits-blue, #3680ED);
  --dlg-spark-2:     #0369A1;
  --dlg-comet-tail:  rgba(54, 128, 237, .45);
  --dlg-comet-head:  #3680ED;
  --dlg-handle:      rgba(15, 23, 42, .16);

  --dlg-ghost-bg:    #FFFFFF;
  --dlg-ghost-line:  #E3E8F0;
  --dlg-ghost-ink:   #1F2937;
  --dlg-ghost-hbg:   #F5F9FF;
  --dlg-ghost-hline: rgba(54, 128, 237, .45);
  --dlg-ghost-hink:  #2060C0;
  --dlg-spot:        rgba(54, 128, 237, .16);

  --dlg-close-bg:    rgba(255, 255, 255, .78);
  --dlg-close-ink:   #475467;
  --dlg-close-hbg:   #FFFFFF;
  --dlg-focus:       #3680ED;

  --dlg-err-bg:      #FFF1F3;
  --dlg-err-ink:     #9F1239;
  --dlg-err-line:    rgba(244, 63, 94, .28);

  --dlg-ease:   cubic-bezier(.16, 1, .3, 1);
  --dlg-spring: cubic-bezier(.34, 1.56, .64, 1);
  /* The house sparkle — four points with CONCAVE sides (homepage.css
     §HERO-ORB-SPARK, auth-sky.css --ait-star). */
  --dlg-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4c1.6 6.2 3.4 8 9.6 9.6C15.4 13.6 13.6 15.4 12 21.6 10.4 15.4 8.6 13.6 2.4 12 8.6 10.4 10.4 8.6 12 2.4z'/%3E%3C/svg%3E");
}

/* Per type. :has() reads the rendered icon, as swal-premium §2 does. */
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-warning) {
  --dlg-acc-rgb: 245 158 11;  --dlg-orb-1: #F59E0B; --dlg-orb-2: #B45309;
}
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-error),
.swal2-popup.swal2-modal.adlg {
  --dlg-acc-rgb: 244 63 94;   --dlg-orb-1: #F43F5E; --dlg-orb-2: #BE123C;
}
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-success) {
  --dlg-acc-rgb: 16 185 129;  --dlg-orb-1: #10B981; --dlg-orb-2: #047857;
  /* Emerald's lighter stops fail AA under a white label (3.77:1 at #059669). */
  --dlg-btn-1: #047857; --dlg-btn-2: #065F46; --dlg-btn-3: #064E3B; --dlg-btn-rgb: 5 150 105;
}
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-question) {
  --dlg-acc-rgb: 99 102 241;  --dlg-orb-1: #6366F1; --dlg-orb-2: #4338CA;
}
/* The destructive confirm — every warning (the delete convention) and error,
   and the Remove-photo dialog. */
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-warning),
.swal2-popup.swal2-modal:has(.swal2-icon.swal2-error),
.swal2-popup.swal2-modal.adlg {
  --dlg-btn-1: #E11D48; --dlg-btn-2: #BE123C; --dlg-btn-3: #9F1239; --dlg-btn-rgb: 225 29 72;
}

/* The hero at night — auth-sky.css §5's palette. body.theme-dark is set on
   the public site and the admin alike. */
body.theme-dark .swal2-popup.swal2-modal {
  --dlg-card:        var(--dk-surface, #131317);
  --dlg-ink:         var(--dk-text, #F4F5F7);
  --dlg-txt:         var(--dk-text-2, #C7CAD1);
  --dlg-line:        rgba(255, 255, 255, .09);
  --dlg-edge:        rgba(255, 255, 255, .06);
  --dlg-shadow:
    0 1px 1px rgba(0, 0, 0, .4),
    0 24px 48px -20px rgba(0, 0, 0, .7),
    0 60px 120px -40px rgba(0, 0, 0, .75);
  --dlg-wash-a:      .18;
  --dlg-ring-a:      .5;
  --dlg-glow-a:      .6;
  --dlg-glow-blue:   rgba(54, 128, 237, .24);
  --dlg-glow-sky:    rgba(14, 165, 233, .16);
  --dlg-speck:       rgba(255, 255, 255, .75);
  --dlg-spark:       #DCEAFF;
  --dlg-spark-2:     #C9B6FF;
  --dlg-comet-tail:  rgba(170, 205, 255, .6);
  --dlg-comet-head:  #FFFFFF;
  --dlg-handle:      rgba(255, 255, 255, .22);
  --dlg-ghost-bg:    rgba(255, 255, 255, .05);
  --dlg-ghost-line:  rgba(255, 255, 255, .12);
  --dlg-ghost-ink:   #E6E8EC;
  --dlg-ghost-hbg:   rgba(96, 164, 245, .12);
  --dlg-ghost-hline: rgba(96, 164, 245, .55);
  --dlg-ghost-hink:  #CFE2FF;
  --dlg-spot:        rgba(96, 164, 245, .18);
  --dlg-close-bg:    rgba(255, 255, 255, .06);
  --dlg-close-ink:   #C7CAD1;
  --dlg-close-hbg:   rgba(255, 255, 255, .12);
  --dlg-focus:       #60A4F5;
  --dlg-err-bg:      rgba(244, 63, 94, .14);
  --dlg-err-ink:     #FDA4AF;
  --dlg-err-line:    rgba(251, 113, 133, .32);
}

/* The page's corner widgets — the scroll-depth pill (custom.ltr.css,
   z-index 2147483000) and back-to-top (#ezStt, 2147480000) — sit far above
   SweetAlert's 1060, so they painted over the dimmed page and, on a phone,
   across the sheet's buttons. They stand down while any modal is open
   (SweetAlert puts .swal2-shown on <body>; a toast adds .swal2-toast-shown). */
body.swal2-shown:not(.swal2-toast-shown) .aits-scrollpill,
body.swal2-shown:not(.swal2-toast-shown) #ezStt {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: none !important;
}

/* ── 2. The card ────────────────────────────────────────────────────────── */
/* (0,3,0), later in the cascade than swal-premium.css §2, which it replaces
   for modals. An explicit `width` option (an inline style) still wins. */
.swal2-container .swal2-popup.swal2-modal {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  inline-size: 440px;
  max-inline-size: min(92vw, 440px);
  padding: 26px 28px 24px;
  border: 1px solid var(--dlg-line);
  border-radius: 28px;
  background: var(--dlg-card);
  color: var(--dlg-txt);
  box-shadow: var(--dlg-shadow), inset 0 1px 0 var(--dlg-edge);
  font-family: var(--font, 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif);
  font-size: 15px;
  text-align: center;
  overflow: hidden;
}
.swal2-container .swal2-popup.swal2-modal[style*="width"] { max-inline-size: 94vw; }

/* The lit top: the accent's glow, the brand's two, and a sprinkle of star
   specks, painted on the card at z-index:-1 — above its background, below
   every word, so no text sits on a gradient it was not measured against.
   The house aura's geometry (a 160% circle hung off the top) is reset. */
.swal2-container .swal2-popup.swal2-modal::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0 0 auto 0;
  inline-size: auto;
  block-size: 64%;
  aspect-ratio: auto;
  translate: none;
  border-radius: 0;
  opacity: 1;
  background:
    /* Specks stay in the top band or out at the edges — nearer the middle
       they read as stray punctuation beside a wrapped title on a phone. */
    radial-gradient(1.4px 1.4px at 6% 14%,  var(--dlg-speck), transparent 100%),
    radial-gradient(1.2px 1.2px at 11% 40%, var(--dlg-speck), transparent 100%),
    radial-gradient(1px 1px     at 30% 8%,  var(--dlg-speck), transparent 100%),
    radial-gradient(1.3px 1.3px at 70% 6%,  var(--dlg-speck), transparent 100%),
    radial-gradient(1px 1px     at 91% 42%, var(--dlg-speck), transparent 100%),
    radial-gradient(1.5px 1.5px at 95% 18%, var(--dlg-speck), transparent 100%),
    radial-gradient(52% 62% at 26% 8%,  rgb(var(--dlg-acc-rgb) / var(--dlg-wash-a)), transparent 72%),
    radial-gradient(64% 78% at 76% 0%,  var(--dlg-glow-blue), transparent 74%),
    radial-gradient(46% 58% at 50% 24%, var(--dlg-glow-sky),  transparent 72%);
  z-index: -1;
  pointer-events: none;
  animation: none;
}
[dir="rtl"] .swal2-container .swal2-popup.swal2-modal::before { transform: scaleX(-1); }

/* A brand hairline across the top, tapered so it never meets the corners.
   On a phone the same pseudo-element becomes the sheet's grab handle (§9). */
.swal2-container .swal2-popup.swal2-modal::after {
  content: "";
  display: block;
  position: absolute;
  inset-block-start: 0;
  inset-inline: 14%;
  block-size: 2px;
  border-radius: 0 0 2px 2px;
  background: linear-gradient(90deg, transparent, var(--dlg-focus) 30%, #60A4F5 50%, var(--dlg-focus) 70%, transparent);
  opacity: .9;
  pointer-events: none;
}

.swal2-container .swal2-popup.swal2-modal.swal2-show { animation: dlg-pop-in .46s var(--dlg-ease); }
.swal2-container .swal2-popup.swal2-modal.swal2-hide { animation: dlg-pop-out .18s cubic-bezier(.4, 0, 1, 1) forwards; }
@keyframes dlg-pop-in {
  0%   { opacity: 0; transform: translateY(14px) scale(.95); }
  60%  { opacity: 1; transform: translateY(-2px) scale(1.006); }
  100% { opacity: 1; transform: none; }
}
@keyframes dlg-pop-out {
  to { opacity: 0; transform: translateY(8px) scale(.97); }
}

/* The timer bar (auto-closing messages) takes the accent. */
.swal2-container .swal2-popup.swal2-modal .swal2-timer-progress-bar {
  background: linear-gradient(90deg, var(--dlg-orb-2), var(--dlg-orb-1));
}

/* ── 3. Close ───────────────────────────────────────────────────────────── */
/* swal-dialog.js turns it on for every modal, with an SVG cross; a plain
   "×" (SweetAlert's default) is sized here too. */
.swal2-container .swal2-popup.swal2-modal .swal2-close {
  position: absolute;
  inset-block-start: 14px;
  inset-inline-end: 14px;
  z-index: 3;
  align-items: center;
  justify-content: center;
  inline-size: 36px;
  block-size: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--dlg-line);
  border-radius: 50%;
  background: var(--dlg-close-bg);
  color: var(--dlg-close-ink);
  font: 400 22px/1 system-ui, -apple-system, 'Segoe UI', sans-serif;
  box-shadow: 0 4px 12px -6px rgba(15, 23, 42, .25);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  transition: transform .3s var(--dlg-ease), background-color .2s ease, color .2s ease, border-color .2s ease;
}
.swal2-container .swal2-popup.swal2-modal .swal2-close svg { inline-size: 16px; block-size: 16px; }
@media (hover: hover) and (pointer: fine) {
  .swal2-container .swal2-popup.swal2-modal .swal2-close:hover {
    transform: rotate(90deg);
    background: var(--dlg-close-hbg);
    color: var(--dlg-ink);
    border-color: var(--dlg-ghost-hline);
  }
}
.swal2-container .swal2-popup.swal2-modal .swal2-close:focus { outline: none; box-shadow: 0 4px 12px -6px rgba(15, 23, 42, .25); }
.swal2-container .swal2-popup.swal2-modal .swal2-close:focus-visible { outline: 2px solid var(--dlg-focus); outline-offset: 2px; }
.swal2-container .swal2-popup.swal2-modal .swal2-close:disabled { opacity: .4; cursor: not-allowed; transform: none; }

/* ── 4. The orb (every typed icon) ──────────────────────────────────────── */
/* The same object as the initials avatar in the Remove-photo hero: a
   gradient disc, a white glyph, a ring set off the card by a gap, a glow in
   its own colour, and two of the house sparkles. The house chip's tint,
   halo and pop are replaced; its percentage geometry for the tick and the
   cross is kept (swal-premium §4), only recoloured. Never set font-size on
   .swal2-icon itself (swal-premium trap 3). */
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero) {
  position: relative;
  box-sizing: border-box;
  inline-size: 74px;
  block-size: 74px;
  margin: 12px auto 20px;
  border: 0 !important;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 24%, rgba(255, 255, 255, .34), transparent 52%),
    linear-gradient(150deg, var(--dlg-orb-1) 0%, var(--dlg-orb-2) 100%);
  color: #FFFFFF;
  box-shadow:
    0 0 0 4px var(--dlg-card),
    0 0 0 6px rgb(var(--dlg-acc-rgb) / var(--dlg-ring-a)),
    0 18px 34px -14px rgb(var(--dlg-acc-rgb) / var(--dlg-glow-a)),
    inset 0 1px 0 rgba(255, 255, 255, .3);
  animation: dlg-orb-in .55s var(--dlg-spring) .04s both;
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero).swal2-icon-show {
  animation: dlg-orb-in .55s var(--dlg-spring) .04s both;
}
@keyframes dlg-orb-in {
  from { opacity: 0; transform: scale(.6) rotate(-10deg); }
  to   { opacity: 1; transform: none; }
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero) .swal2-icon-content {
  color: #FFFFFF;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon.swal2-success .swal2-success-line-tip,
.swal2-container .swal2-popup.swal2-modal .swal2-icon.swal2-success .swal2-success-line-long,
.swal2-container .swal2-popup.swal2-modal .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {
  background-color: #FFFFFF;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
}
/* Two sparkles on the orb — the halo pseudo-element is repurposed. */
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::before,
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::after {
  content: "";
  display: block;
  position: absolute;
  inset: auto;
  z-index: 1;
  border-radius: 0;
  background: var(--dlg-spark);
  opacity: .9;
  transform: none;
  -webkit-mask: var(--dlg-star) center / contain no-repeat;
          mask: var(--dlg-star) center / contain no-repeat;
  pointer-events: none;
  animation: dlg-twinkle 2.8s ease-in-out .7s infinite both;
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::before {
  inline-size: 19px;
  block-size: 19px;
  inset-block-start: -10px;
  inset-inline-end: -13px;
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::after {
  inline-size: 11px;
  block-size: 11px;
  inset-block-end: -1px;
  inset-inline-start: -16px;
  background: var(--dlg-spark-2);
  animation-delay: 1.6s;
}
@keyframes dlg-twinkle {
  0%, 100% { opacity: .38; transform: scale(.82) rotate(0deg); }
  50%      { opacity: 1;   transform: scale(1.12) rotate(12deg); }
}

/* ── 5. Title, message, error ───────────────────────────────────────────── */
.swal2-container .swal2-popup.swal2-modal .swal2-title {
  margin: 0 0 8px;
  padding: 0 8px;
  color: var(--dlg-ink);
  font-size: clamp(1.2rem, 1.1rem + .5vw, 1.42rem);
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: -.02em;
  text-align: center;
  text-wrap: balance;
  overflow-wrap: break-word;
  animation: dlg-rise .5s var(--dlg-ease) .1s both;
}
.swal2-container .swal2-popup.swal2-modal .swal2-html-container {
  margin: 0 auto;
  padding: 0 4px;
  max-inline-size: 36ch;
  color: var(--dlg-txt);
  font-size: clamp(.92rem, .89rem + .14vw, 1rem);
  line-height: 1.6;
  text-align: center;
  text-wrap: pretty;
  animation: dlg-rise .5s var(--dlg-ease) .16s both;
}
.swal2-container .swal2-popup.swal2-modal .swal2-html-container b,
.swal2-container .swal2-popup.swal2-modal .swal2-html-container strong { color: var(--dlg-ink); }
@keyframes dlg-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.swal2-container .swal2-popup.swal2-modal .swal2-validation-message {
  margin: 16px 0 0;
  padding: 10px 14px;
  border: 1px solid var(--dlg-err-line);
  border-radius: 14px;
  background: var(--dlg-err-bg) !important;
  color: var(--dlg-err-ink) !important;
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.45;
  text-align: start;
}
.swal2-container .swal2-popup.swal2-modal .swal2-validation-message::before { flex: none; background: #E11D48; }

/* ── 6. Actions ─────────────────────────────────────────────────────────── */
/* Equal buttons in a row: flex:1 1 0 splits the width evenly whatever the
   labels, and a lone "OK" stops at 260px instead of spanning the card. Flex,
   not grid: SweetAlert shows the row with an INLINE display:flex and hides it
   (a message with no buttons) with an inline display:none, which must win.
   The order is by ROLE (swal-premium §5: cancel, deny, confirm), so call
   sites that pass reverseButtons render the same. */
.swal2-container .swal2-popup.swal2-modal .swal2-actions {
  position: relative;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  gap: 12px;
  inline-size: 100%;
  margin: 24px 0 0;
  padding: 0;
  animation: dlg-rise .5s var(--dlg-ease) .22s both;
}
.swal2-container .swal2-popup.swal2-modal .swal2-actions::before { display: none; }
.swal2-container .swal2-popup.swal2-modal .swal2-actions .swal2-loader { order: 3; }

body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-sizing: border-box;
  flex: 1 1 0;
  inline-size: auto;
  min-inline-size: 0;
  max-inline-size: 260px;
  min-block-size: 0;
  /* !important: several call sites pass Bootstrap's `me-2`, which is itself
     !important and would knock the pair off centre. */
  margin: 0 !important;
  /* 15 + 19 + 15 + 2 = a 51px target, by padding: in a block box a min-height
     pins a one-line label to the top instead of centring it. */
  padding: 15px 18px;
  border: 1px solid transparent;
  border-radius: 15px;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: -.006em;
  text-align: center;
  text-transform: none;
  white-space: normal;
  cursor: pointer;
  transform: none;
  transition:
    transform .2s var(--dlg-ease),
    box-shadow .25s var(--dlg-ease),
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease;
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:focus-visible,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel:focus-visible,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny:focus-visible {
  outline: 2px solid var(--dlg-focus);
  outline-offset: 3px;
}
body .swal2-popup.swal2-modal .swal2-actions button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
body .swal2-popup.swal2-modal .swal2-actions button:active:not(:disabled) { transform: scale(.98); }

/* --- Confirm: solid, in the dialog's colour ------------------------------
   ::before — a 10px top gloss, shorter than the top padding, so it can never
              sit behind the label at any button height (swal-premium §5).
   ::after  — a diagonal sheen that sweeps once on hover, 12% white at peak. */
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm {
  background-color: var(--dlg-btn-2);
  background-image: linear-gradient(180deg, var(--dlg-btn-1) 0%, var(--dlg-btn-2) 100%);
  border-color: var(--dlg-btn-3);
  color: #FFFFFF;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .24),
    0 10px 22px -10px rgb(var(--dlg-btn-rgb) / .6),
    0 2px 6px -3px rgba(0, 0, 0, .3);
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm::before {
  content: "";
  display: block;
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  inline-size: auto;
  block-size: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .34), transparent);
  opacity: .7;
  transition: opacity .22s ease;
  z-index: 0;
  pointer-events: none;
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm::after {
  content: "";
  display: block;
  position: absolute;
  inset-block: -20%;
  inset-inline-start: 0;
  inline-size: 44%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .12), transparent);
  transform: skewX(-18deg);
  translate: -180% 0;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  animation: none;
}
@media (hover: hover) and (pointer: fine) {
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:hover:not(:disabled) {
    transform: translateY(-2px);
    background-color: var(--dlg-btn-3);
    background-image: linear-gradient(180deg, var(--dlg-btn-2) 0%, var(--dlg-btn-3) 100%);
    border-color: var(--dlg-btn-3);
    color: #FFFFFF;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .28),
      0 18px 34px -12px rgb(var(--dlg-btn-rgb) / .62),
      0 3px 8px -3px rgba(0, 0, 0, .34);
  }
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:hover:not(:disabled)::before { opacity: 1; }
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:hover:not(:disabled)::after { animation: dlg-sheen .7s var(--dlg-ease); }
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:active:not(:disabled) {
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .25), 0 4px 10px -6px rgb(var(--dlg-btn-rgb) / .6);
}
@keyframes dlg-sheen {
  0%   { translate: -180% 0; opacity: 0; }
  22%  { opacity: 1; }
  100% { translate: 330% 0; opacity: 0; }
}
[dir="rtl"] body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:hover::after { animation-name: dlg-sheen-rtl; }
@keyframes dlg-sheen-rtl {
  0%   { translate: 330% 0; opacity: 0; }
  22%  { opacity: 1; }
  100% { translate: -180% 0; opacity: 0; }
}

/* --- Cancel / Deny: a quiet ghost that lights up brand blue --------------
   No clipping: the ring sits exactly ON the 1px border (inset:-1px), and a
   clipped button would cut it off at the padding edge.
   ::before — a spotlight that follows the pointer (--mx/--my from
              swal-dialog.js; centred without it).
   ::after  — a blue → sky gradient ring, faded in on hover.
   `display:block` on both: swal-premium §5 hides the cancel ::before. */
body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny {
  overflow: visible;
  background: var(--dlg-ghost-bg);
  border-color: var(--dlg-ghost-line);
  color: var(--dlg-ghost-ink);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .05), inset 0 1px 0 var(--dlg-edge);
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel::before,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  inline-size: auto;
  block-size: auto;
  border-radius: 14px;
  background: radial-gradient(circle 140px at var(--mx, 50%) var(--my, 50%), var(--dlg-spot), transparent 70%);
  opacity: 0;
  transition: opacity .25s ease;
  z-index: -1;
  pointer-events: none;
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel::after,
body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny::after {
  content: "";
  display: block;
  position: absolute;
  inset: -1px;
  inline-size: auto;
  block-size: auto;
  padding: 1px;
  box-sizing: border-box;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--dlg-focus), #60A4F5 55%, var(--dlg-focus));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite: exclude;
  opacity: 0;
  transform: none;
  translate: none;
  transition: opacity .25s ease;
  animation: none;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel:hover:not(:disabled),
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny:hover:not(:disabled) {
    transform: translateY(-2px);
    background: var(--dlg-ghost-hbg);
    border-color: var(--dlg-ghost-hline);
    color: var(--dlg-ghost-hink);
    box-shadow: 0 12px 24px -14px rgba(54, 128, 237, .55), inset 0 1px 0 var(--dlg-edge);
  }
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel:hover:not(:disabled)::before,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel:hover:not(:disabled)::after,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny:hover:not(:disabled)::before,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny:hover:not(:disabled)::after { opacity: 1; }
}

/* ── 7. Working ─────────────────────────────────────────────────────────── */
/* The stock spinner, in the accent, in the confirm button's slot. */
.swal2-container .swal2-popup.swal2-modal .swal2-loader:not(.adlg-loader) {
  border-color: rgb(var(--dlg-acc-rgb)) transparent rgb(var(--dlg-acc-rgb)) transparent;
}

/* ── 8. The Remove-photo dialog (`.adlg`) ───────────────────────────────── */
/* The hero rides in SweetAlert's icon slot (iconHtml, no icon type), so the
   orb and the house chip are both switched off for it first. */
.swal2-container .swal2-popup.swal2-modal .swal2-icon.adlg-hero {
  position: relative;
  box-sizing: border-box;
  inline-size: 100%;
  block-size: auto;
  min-inline-size: 0;
  margin: 0 0 14px;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
  line-height: normal;
  cursor: default;
  animation: none;
}
.swal2-container .swal2-popup.swal2-modal .swal2-icon.adlg-hero::before,
.swal2-container .swal2-popup.swal2-modal .swal2-icon.adlg-hero::after { display: none; }
.swal2-container .swal2-popup.swal2-modal .swal2-icon.adlg-hero .swal2-icon-content {
  display: block;
  inline-size: 100%;
  color: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: normal;
  text-shadow: none;
  transform: none;
  animation: none;
}

.adlg-sky { position: relative; display: block; padding: 10px 0 8px; }
.adlg-pair {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.adlg-av {
  position: relative;
  flex: none;
  display: block;
  inline-size: 76px;
  block-size: 76px;
  border-radius: 50%;
  background: var(--dlg-card);
}
.adlg-av__img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  border-radius: 50%;
  object-fit: cover;
}
.adlg-av--from {
  box-shadow:
    0 0 0 3px var(--dlg-card),
    0 0 0 5px rgb(244 63 94 / var(--dlg-ring-a)),
    0 16px 28px -16px rgba(225, 29, 72, .55);
  animation: adlg-av-in .5s var(--dlg-spring) .06s both;
}
.adlg-av--to {
  box-shadow:
    0 0 0 3px var(--dlg-card),
    0 0 0 5px rgb(54 128 237 / var(--dlg-ring-a)),
    0 16px 30px -14px rgba(54, 128, 237, .6);
  animation: adlg-av-in .55s var(--dlg-spring) .24s both;
}
@keyframes adlg-av-in {
  from { opacity: 0; transform: scale(.72); }
  to   { opacity: 1; transform: none; }
}
.adlg-av__badge {
  position: absolute;
  inset-block-end: -3px;
  inset-inline-end: -5px;
  display: grid;
  place-items: center;
  inline-size: 28px;
  block-size: 28px;
  border-radius: 50%;
  background: linear-gradient(180deg, #F43F5E 0%, #BE123C 100%);
  color: #FFFFFF;
  box-shadow: 0 0 0 3px var(--dlg-card), 0 6px 14px -4px rgba(225, 29, 72, .6);
  animation: adlg-badge-in .5s var(--dlg-spring) .38s both;
}
.adlg-av__badge svg { inline-size: 14px; block-size: 14px; }
@keyframes adlg-badge-in {
  from { opacity: 0; transform: scale(.3) rotate(-30deg); }
  to   { opacity: 1; transform: none; }
}
.adlg-av__glint {
  position: absolute;
  inset-block-start: -8px;
  inset-inline-end: -8px;
  inline-size: 20px;
  block-size: 20px;
  background: var(--dlg-spark);
  -webkit-mask: var(--dlg-star) center / contain no-repeat;
          mask: var(--dlg-star) center / contain no-repeat;
  animation: dlg-twinkle 2.6s ease-in-out .7s infinite both;
}

/* The travelling light between the two. */
.adlg-flow {
  --adlg-flow-w: 58px;
  position: relative;
  flex: none;
  display: block;
  inline-size: calc(var(--adlg-flow-w) + 14px);
  block-size: 18px;
  animation: adlg-fade .4s ease .18s both;
}
.adlg-flow__line {
  position: absolute;
  inset-inline: 0 14px;
  inset-block-start: 50%;
  block-size: 2px;
  margin-block-start: -1px;
  border-radius: 2px;
  background: linear-gradient(90deg, #F43F5E, #3680ED);
  opacity: .55;
  -webkit-mask: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 11px);
          mask: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 11px);
}
[dir="rtl"] .adlg-flow__line { background: linear-gradient(270deg, #F43F5E, #3680ED); }
.adlg-flow__dot {
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 50%;
  inline-size: 8px;
  block-size: 8px;
  margin-block-start: -4px;
  border-radius: 50%;
  background: #F43F5E;
  box-shadow: 0 0 10px 2px rgba(244, 63, 94, .45);
  opacity: 0;
  animation: adlg-travel 2.4s cubic-bezier(.45, 0, .2, 1) .7s infinite;
}
.adlg-flow__chev {
  position: absolute;
  inset-inline-end: 0;
  inset-block-start: 50%;
  inline-size: 16px;
  block-size: 16px;
  margin-block-start: -8px;
  color: #3680ED;
}
[dir="rtl"] .adlg-flow__chev { transform: scaleX(-1); }
[dir="rtl"] .adlg-flow { --adlg-dir: -1; }
@keyframes adlg-travel {
  0%   { opacity: 0; transform: translateX(0) scale(.5);
         background: #F43F5E; box-shadow: 0 0 10px 2px rgba(244, 63, 94, .45); }
  14%  { opacity: 1; transform: translateX(calc(var(--adlg-flow-w) * .14 * var(--adlg-dir, 1))) scale(1); }
  82%  { opacity: 1; }
  100% { opacity: 0; transform: translateX(calc(var(--adlg-flow-w) * var(--adlg-dir, 1))) scale(.5);
         background: #3680ED; box-shadow: 0 0 10px 2px rgba(54, 128, 237, .5); }
}
@keyframes adlg-fade { from { opacity: 0; } to { opacity: 1; } }

/* Glints — the brand sparkle as a mask, each on its own period. */
.adlg-glint {
  position: absolute;
  left: var(--x);
  top: var(--y);
  inline-size: var(--s, 14px);
  aspect-ratio: 1;
  background: var(--dlg-spark);
  opacity: .5;
  -webkit-mask: var(--dlg-star) center / contain no-repeat;
          mask: var(--dlg-star) center / contain no-repeat;
  animation: dlg-twinkle var(--dur, 6s) ease-in-out var(--dl, 0s) infinite;
  pointer-events: none;
}
.adlg-glint--1 { --x: 6%;  --y: 18%; --s: 15px; --dur: 6.2s; --dl: -1.1s; }
.adlg-glint--2 { --x: 15%; --y: 74%; --s: 10px; --dur: 5.4s; --dl: -3.2s; background: var(--dlg-spark-2); }
.adlg-glint--3 { --x: 27%; --y: 4%;  --s: 11px; --dur: 7.1s; --dl: -2.4s; }
.adlg-glint--4 { --x: 72%; --y: 2%;  --s: 12px; --dur: 6.6s; --dl: -4.6s; background: var(--dlg-spark-2); }
.adlg-glint--5 { --x: 86%; --y: 70%; --s: 16px; --dur: 7.6s; --dl: -.6s; }
.adlg-glint--6 { --x: 93%; --y: 60%; --s: 10px; --dur: 5.8s; --dl: -2.9s; }

/* One falling star across the hero, now and then (auth-sky.css §3). */
.adlg-comet {
  position: absolute;
  top: 6%;
  left: 78%;
  inline-size: 64px;
  block-size: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--dlg-comet-tail) 72%, var(--dlg-comet-head));
  transform-origin: 100% 50%;
  opacity: 0;
  animation: adlg-comet 7.5s cubic-bezier(.4, 0, .7, 1) 1.4s infinite;
  pointer-events: none;
}
.adlg-comet::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -2px;
  inline-size: 4px;
  block-size: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--dlg-comet-head);
  box-shadow: 0 0 8px 2px var(--dlg-comet-tail);
}
@keyframes adlg-comet {
  0%   { opacity: 0; transform: rotate(146deg) translateX(0) scaleX(.3); }
  2%   { opacity: 1; }
  12%  { opacity: 0; transform: rotate(146deg) translateX(150px) scaleX(1); }
  100% { opacity: 0; transform: rotate(146deg) translateX(150px) scaleX(1); }
}

/* The one-tile fallback when no photo could be read off the page. */
.adlg-solo {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  inline-size: 68px;
  block-size: 68px;
  margin: 0 auto;
  border-radius: 22px;
  background: linear-gradient(180deg, #F43F5E 0%, #BE123C 100%);
  color: #FFFFFF;
  box-shadow: 0 16px 30px -14px rgba(225, 29, 72, .6), inset 0 1px 0 rgba(255, 255, 255, .25);
  animation: adlg-av-in .5s var(--dlg-spring) .06s both;
}
.adlg-solo svg { inline-size: 30px; block-size: 30px; }

/* Its buttons carry an inner wrapper (the icon + label as one flex line) and
   a bin whose lid lifts on hover. */
.adlg-btn__in {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  max-inline-size: 100%;
  vertical-align: middle;
}
.adlg-btn__ico { position: relative; z-index: 1; flex: none; inline-size: 18px; block-size: 18px; overflow: visible; }
.adlg-lid { transform-box: fill-box; transform-origin: 0% 100%; transition: transform .3s var(--dlg-spring); }
@media (hover: hover) and (pointer: fine) {
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:hover:not(:disabled) .adlg-lid { transform: translateY(-1.5px) rotate(-14deg); }
}
body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm:focus-visible .adlg-lid { transform: translateY(-1.5px) rotate(-14deg); }

/* "Removing…": the loader dressed as the confirm button, in its slot. */
.swal2-container .swal2-popup.swal2-modal .swal2-loader.adlg-loader {
  display: none;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-sizing: border-box;
  inline-size: auto;
  max-inline-size: 260px;
  block-size: auto;
  min-block-size: 51px;
  margin: 0;
  padding: 12px 18px;
  border: 1px solid #9F1239;
  border-radius: 15px;
  background: linear-gradient(180deg, #BE123C 0%, #9F1239 100%);
  color: #FFFFFF;
  font-size: .95rem;
  font-weight: 650;
  line-height: 1.2;
  animation: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 10px 22px -12px rgba(225, 29, 72, .6);
}
.adlg-spin {
  flex: none;
  inline-size: 16px;
  block-size: 16px;
  border: 2px solid rgba(255, 255, 255, .35);
  border-top-color: #FFFFFF;
  border-radius: 50%;
  animation: adlg-spin .7s linear infinite;
}
@keyframes adlg-spin { to { transform: rotate(360deg); } }

/* ── 9. Phones: a bottom sheet ──────────────────────────────────────────── */
/* Anchored to the bottom edge, full width, rising from below, with a grab
   handle (the hairline's pseudo-element, restyled). swal-dialog.js makes the
   handle real: a downward swipe dismisses the sheet. --dlg-drag carries the
   finger's offset and the exit keyframe starts from it, so a released sheet
   keeps falling from where it was let go. `touch-action: pinch-zoom` keeps
   the browser from claiming the vertical drag while still allowing zoom; the
   message keeps normal scrolling (it is its own scroll container). */
@media (max-width: 600px) {
  body:not(.swal2-toast-shown) .swal2-container.swal2-center { padding: 0; }
  body:not(.swal2-toast-shown) .swal2-container.swal2-center::after { display: none; }
  .swal2-container.swal2-center > .swal2-popup.swal2-modal {
    grid-column: 1 / -1;
    grid-row: 1 / -1;
    align-self: end;
    justify-self: stretch;
    inline-size: 100%;
    max-inline-size: 100%;
    padding: 30px 20px calc(20px + env(safe-area-inset-bottom, 0px));
    border-width: 1px 0 0;
    border-radius: 28px 28px 0 0;
    transform: translateY(var(--dlg-drag, 0px));
    transition: transform .34s var(--dlg-ease);
    touch-action: pinch-zoom;
  }
  .swal2-container.swal2-center > .swal2-popup.swal2-modal.is-dragging { transition: none; }
  .swal2-container.swal2-center > .swal2-popup.swal2-modal.swal2-show { animation: dlg-sheet-in .44s cubic-bezier(.22, 1, .36, 1); }
  .swal2-container.swal2-center > .swal2-popup.swal2-modal.swal2-hide { animation: dlg-sheet-out .26s cubic-bezier(.4, 0, 1, 1) forwards; }
  .swal2-container.swal2-center > .swal2-popup.swal2-modal::after {
    inset-block-start: 10px;
    inset-inline: calc(50% - 21px);
    block-size: 5px;
    border-radius: 999px;
    background: var(--dlg-handle);
    opacity: 1;
  }
  .swal2-container .swal2-popup.swal2-modal .swal2-html-container { max-inline-size: none; touch-action: auto; }
  .swal2-container .swal2-popup.swal2-modal .swal2-close { inset-block-start: 14px; inset-inline-end: 12px; }

  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero) { inline-size: 66px; block-size: 66px; margin: 6px auto 18px; }
  .adlg-av { inline-size: 66px; block-size: 66px; }
  .adlg-flow { --adlg-flow-w: 44px; }

  /* Stacked, the decisive action on top and the safe one at the bottom,
     under the thumb — the action-sheet convention. */
  .swal2-container .swal2-popup.swal2-modal .swal2-actions { flex-direction: column; gap: 10px; margin-block-start: 22px; }
  .swal2-container .swal2-popup.swal2-modal .swal2-actions .swal2-confirm,
  .swal2-container .swal2-popup.swal2-modal .swal2-actions .swal2-loader { order: 1; }
  .swal2-container .swal2-popup.swal2-modal .swal2-actions .swal2-deny { order: 2; }
  .swal2-container .swal2-popup.swal2-modal .swal2-actions .swal2-cancel { order: 3; }
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny {
    flex: none;
    inline-size: 100%;
    max-inline-size: none;
    padding-block: 16px;
  }
  .swal2-container .swal2-popup.swal2-modal .swal2-loader.adlg-loader { flex: none; inline-size: 100%; max-inline-size: none; min-block-size: 53px; }
}
@keyframes dlg-sheet-in {
  from { transform: translateY(100%); }
  to   { transform: translateY(var(--dlg-drag, 0px)); }
}
@keyframes dlg-sheet-out {
  from { transform: translateY(var(--dlg-drag, 0px)); }
  to   { transform: translateY(104%); }
}

@media (max-width: 360px) {
  .swal2-container.swal2-center > .swal2-popup.swal2-modal { padding-inline: 16px; }
  .adlg-av { inline-size: 58px; block-size: 58px; }
  .adlg-flow { --adlg-flow-w: 34px; }
  .adlg-glint--1, .adlg-glint--6 { display: none; }
}

/* Short windows (a phone on its side, a split screen): trim the top so the
   buttons never fall below the fold. */
@media (max-height: 560px) and (min-width: 601px) {
  .swal2-container .swal2-popup.swal2-modal { padding-block: 20px 20px; }
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero) { inline-size: 56px; block-size: 56px; margin: 4px auto 14px; }
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero) .swal2-icon-content { font-size: 26px; }
  .adlg-sky { padding-block: 2px; }
  .adlg-av { inline-size: 56px; block-size: 56px; }
  .adlg-glint--2, .adlg-glint--3, .adlg-glint--5 { display: none; }
  .swal2-container .swal2-popup.swal2-modal .swal2-actions { margin-block-start: 18px; }
  .swal2-container .swal2-popup.swal2-modal .swal2-html-container { max-block-size: 30vh; }
}

/* ── 10. Motion, forced colours ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .swal2-container .swal2-popup.swal2-modal.swal2-show,
  .swal2-container .swal2-popup.swal2-modal.swal2-hide,
  .swal2-container.swal2-center > .swal2-popup.swal2-modal.swal2-show,
  .swal2-container.swal2-center > .swal2-popup.swal2-modal.swal2-hide,
  .swal2-container .swal2-popup.swal2-modal .swal2-title,
  .swal2-container .swal2-popup.swal2-modal .swal2-html-container,
  .swal2-container .swal2-popup.swal2-modal .swal2-actions,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero),
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero).swal2-icon-show,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::before,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::after,
  .adlg-av, .adlg-av__badge, .adlg-av__glint, .adlg-flow, .adlg-glint, .adlg-solo,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm::after {
    animation: none !important;
  }
  .swal2-container .swal2-popup.swal2-modal,
  .swal2-container .swal2-popup.swal2-modal .swal2-close,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-confirm,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-cancel,
  body .swal2-popup.swal2-modal .swal2-actions button.swal2-deny,
  .adlg-lid { transition: none !important; }
  /* Held still at their resting look rather than removed. */
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::before,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::after,
  .adlg-glint, .adlg-av__glint { opacity: .7; }
  .adlg-flow__dot {
    animation: none;
    opacity: 1;
    inset-inline-start: calc(50% - 11px);
    background: #3680ED;
  }
  .adlg-comet { display: none; }
  .adlg-spin { animation-duration: 1.6s; }
  body .swal2-popup.swal2-modal .swal2-actions button:hover,
  .swal2-container .swal2-popup.swal2-modal .swal2-close:hover,
  .adlg-lid { transform: none !important; }
}

@media (forced-colors: active) {
  body .swal2-popup.swal2-modal .swal2-actions button,
  .swal2-container .swal2-popup.swal2-modal .swal2-loader.adlg-loader { border: 1px solid ButtonText; }
  .swal2-container .swal2-popup.swal2-modal::before,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::before,
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero)::after,
  .adlg-glint, .adlg-av__glint, .adlg-comet, .adlg-flow__dot { display: none; }
  .swal2-container .swal2-popup.swal2-modal .swal2-icon:not(.adlg-hero),
  .adlg-av { outline: 2px solid CanvasText; outline-offset: 2px; }
}
