/** Aquafish 公共弹窗动效：单一状态源，避免历史覆盖层互相冲突。 */
html { scrollbar-gutter: stable; }
/* 0.8.9 — WordPress-safe scroll lock.
 * WordPress admin reserves its fixed toolbar with html.wp-toolbar { padding-top: 32px }.
 * Locking body overflow turns body into the sticky containing block, so Aquafish's
 * sticky header (top:32px) gets that toolbar offset a second time and visibly jumps down.
 * Only the root scrolling element is locked; body keeps overflow visible so sticky
 * geometry is identical before, during and after a modal. */
html.aq-modal-open,
html.aq-config-modal-open,
html.aq-forum-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.aq-modal-open,
body.aq-config-modal-open,
body.aq-forum-modal-open {
  overscroll-behavior: none;
}

:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog) {
  visibility: hidden;
  pointer-events: none !important;
  opacity: 0 !important;
  isolation: isolate;
  contain: layout style paint;
  transition: opacity var(--aq-dialog-duration, 160ms) ease !important;
}
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog)[hidden] {
  display: none !important;
}
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog).is-open,
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog).is-closing {
  visibility: visible;
}
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog).is-open {
  pointer-events: auto !important;
  opacity: 1 !important;
}

:where(.aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop, .aq-system-dialog__backdrop) {
  opacity: 0 !important;
  touch-action: none;
  transition: opacity var(--aq-dialog-duration, 160ms) ease !important;
}
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog).is-open >
:where(.aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop, .aq-system-dialog__backdrop) {
  opacity: 1 !important;
}
:where(.aq-config-modal__dialog, .aq-forum-modal__dialog, .aq-global-popup__dialog, .aq-qr-modal__dialog, .aq-share-qr-modal__dialog) {
  opacity: 0 !important;
  transform: translate3d(0, 10px, 0) scale(.986) !important;
  transition: transform var(--aq-dialog-duration, 170ms) cubic-bezier(.2, .8, .2, 1), opacity var(--aq-dialog-duration, 150ms) ease !important;
}
:where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal).is-open >
:where(.aq-config-modal__dialog, .aq-forum-modal__dialog, .aq-global-popup__dialog, .aq-qr-modal__dialog, .aq-share-qr-modal__dialog) {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
}

html:not(.aq-dialog-backdrop-disabled) :where(.aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop) {
  -webkit-backdrop-filter: blur(var(--aq-modal-backdrop-blur, 8px)) saturate(108%);
  backdrop-filter: blur(var(--aq-modal-backdrop-blur, 8px)) saturate(108%);
}
html.aq-dialog-backdrop-disabled :where(.aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop, .aq-system-dialog__backdrop),
.aq-system-dialog[data-backdrop="off"] .aq-system-dialog__backdrop {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  opacity: 0 !important;
}

/* 全局确认弹窗 */
.aq-system-dialog {
  position: fixed;
  inset: 0;
  z-index: 1000000;
  display: grid !important;
  place-items: center;
  padding: 24px;
}
.aq-system-dialog__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(18 25 39 / 46%);
  -webkit-backdrop-filter: blur(var(--aq-dialog-blur, 10px)) saturate(110%);
  backdrop-filter: blur(var(--aq-dialog-blur, 10px)) saturate(110%);
}
.aq-system-dialog[data-backdrop-blur="off"] .aq-system-dialog__backdrop {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.aq-system-dialog__dialog {
  position: relative;
  width: min(460px, calc(100vw - 32px));
  padding: 30px;
  border: 1px solid rgb(218 226 239 / 92%);
  border-radius: 22px;
  background: linear-gradient(145deg, rgb(255 255 255 / 99%), rgb(248 250 255 / 98%));
  box-shadow: 0 30px 90px rgb(15 23 42 / 28%), 0 6px 22px rgb(91 77 135 / 12%);
  opacity: 0;
  transform-origin: center;
  transition: transform var(--aq-dialog-duration, 180ms) cubic-bezier(.2, .8, .2, 1), opacity var(--aq-dialog-duration, 180ms) ease;
}
.aq-system-dialog[data-effect="fade"] .aq-system-dialog__dialog { transform: translate3d(0, 8px, 0); }
.aq-system-dialog[data-effect="zoom"] .aq-system-dialog__dialog { transform: scale(.93); }
.aq-system-dialog[data-effect="slide-up"] .aq-system-dialog__dialog { transform: translate3d(0, 42px, 0); }
.aq-system-dialog[data-effect="slide-down"] .aq-system-dialog__dialog { transform: translate3d(0, -42px, 0); }
.aq-system-dialog[data-effect="bounce"] .aq-system-dialog__dialog { transform: scale(.84); transition-timing-function: cubic-bezier(.2, 1.28, .38, 1); }
.aq-system-dialog[data-effect="flip"] .aq-system-dialog__dialog { transform: perspective(900px) rotateX(-14deg) translateY(-12px); }
.aq-system-dialog.is-open .aq-system-dialog__dialog { opacity: 1; transform: none; }
.aq-system-dialog__close {
  position: absolute; top: 14px; right: 14px; display: grid; width: 34px; height: 34px; place-items: center;
  padding: 0; border: 1px solid #e3e9f3; border-radius: 10px; background: #fff; color: #718096;
  font-size: 20px; line-height: 1; cursor: pointer; transition: transform .15s ease, background .15s ease, color .15s ease;
}
.aq-system-dialog__close:hover { background: #f5f7fb; color: #1f2937; transform: rotate(6deg); }
.aq-system-dialog__icon { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 18px; border-radius: 18px; background: #eef3ff; color: #4f7cff; }
.aq-system-dialog__icon svg { width: 30px; height: 30px; fill: currentColor; }
.aq-system-dialog[data-type="success"] .aq-system-dialog__icon { background: #e8f8ef; color: #15945b; }
.aq-system-dialog[data-type="warning"] .aq-system-dialog__icon { background: #fff5dc; color: #e59b16; }
.aq-system-dialog[data-type="danger"] .aq-system-dialog__icon { background: #fff0f3; color: #f04468; }
.aq-system-dialog__eyebrow { margin: 0 0 5px; color: #ee4f88; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.aq-system-dialog__content h2 { margin: 0; color: #172033; font-size: 22px; line-height: 1.35; }
.aq-system-dialog__content > p:last-child { margin: 10px 0 0; color: #69758a; font-size: 14px; line-height: 1.75; white-space: pre-line; }
.aq-system-dialog__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 26px; padding-top: 20px; border-top: 1px solid #edf0f5; }
.aq-system-dialog__button { min-width: 88px; height: 40px; padding: 0 18px; border-radius: 10px; font-weight: 700; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.aq-system-dialog__button:hover { transform: translateY(-1px); }
.aq-system-dialog__button--secondary { border: 1px solid #dfe5ef; background: #fff; color: #4c586d; }
.aq-system-dialog__button--primary { border: 1px solid #2766ed; background: linear-gradient(135deg, #3977f6, #1f5ee7); color: #fff; box-shadow: 0 8px 20px rgb(39 102 237 / 22%); }
.aq-system-dialog[data-type="danger"] .aq-system-dialog__button--primary { border-color: #ef476f; background: linear-gradient(135deg, #fb6688, #ef476f); box-shadow: 0 8px 20px rgb(239 71 111 / 22%); }

@media (max-width: 600px) {
  .aq-system-dialog { padding: 16px; }
  .aq-system-dialog__dialog { padding: 24px 20px; border-radius: 18px; }
  .aq-system-dialog__actions { flex-direction: column-reverse; }
  .aq-system-dialog__button { width: 100%; }
}

/* V0.7.98：移动端弹窗采用“运动时减滤镜”策略。
 * 全屏实时 backdrop blur + 多层后台玻璃会让手机 GPU 在每一帧重复采样整页；
 * 手机上只动画 opacity + 单轴 translate，玻璃质感由高透明表面/边缘/阴影保留。 */
@media (max-width: 782px) {
  :where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog) {
    opacity: 1 !important;
    transition: none !important;
  }

  :where(.aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop, .aq-system-dialog__backdrop) {
    background: rgb(18 25 42 / 52%) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    transition-duration: 120ms !important;
  }

  :where(.aq-config-modal__dialog, .aq-forum-modal__dialog, .aq-global-popup__dialog, .aq-qr-modal__dialog, .aq-share-qr-modal__dialog) {
    transform: translate3d(0, 14px, 0) !important;
    transition: transform 150ms cubic-bezier(.22, 1, .36, 1), opacity 120ms linear !important;
  }

  :where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal).is-open >
  :where(.aq-config-modal__dialog, .aq-forum-modal__dialog, .aq-global-popup__dialog, .aq-qr-modal__dialog, .aq-share-qr-modal__dialog) {
    transform: translate3d(0, 0, 0) !important;
  }

  .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="fade"] .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="zoom"] .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="slide-up"] .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="slide-down"] .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="bounce"] .aq-system-dialog__dialog,
  .aq-system-dialog[data-effect="flip"] .aq-system-dialog__dialog {
    transform: translate3d(0, 14px, 0);
    transition: transform 150ms cubic-bezier(.22, 1, .36, 1), opacity 120ms linear;
  }

  .aq-system-dialog.is-open .aq-system-dialog__dialog {
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(.aq-config-modal, .aq-forum-modal, .aq-global-popup, .aq-qr-modal, .aq-share-qr-modal, .aq-system-dialog, .aq-config-modal__backdrop, .aq-forum-modal__backdrop, .aq-global-popup__backdrop, .aq-qr-modal__backdrop, .aq-share-qr-modal__backdrop, .aq-system-dialog__backdrop, .aq-config-modal__dialog, .aq-forum-modal__dialog, .aq-global-popup__dialog, .aq-qr-modal__dialog, .aq-share-qr-modal__dialog, .aq-system-dialog__dialog) {
    transition-duration: .01ms !important;
  }
}
