/* 页面弹窗：紧凑标题、独立内容滚动、固定操作区 */
.swal2-container.app-dialog-layer { z-index: 1000; padding: 16px; }
#toast { z-index: 1100; }
.app-dialog-layer.swal2-backdrop-show { background: #1c191766; backdrop-filter: blur(2px); }
.swal2-popup.app-dialog { width: min(440px, 100%); max-height: calc(100dvh - 32px); padding: 0; overflow: hidden; border: 1px solid #e7e5e4; border-radius: 10px; background: #fff; color: #292524; font: inherit; box-shadow: 0 20px 70px #1c191733; }
.app-dialog .swal2-title { padding: 20px 54px 0 20px; color: #292524; font-size: 16px; font-weight: 600; line-height: 1.5; text-align: left; }
.app-dialog .swal2-html-container { margin: 0; padding: 12px 20px 20px; color: #57534e; font-size: 13px; line-height: 1.7; text-align: left; white-space: pre-line; overflow-wrap: anywhere; }
.app-dialog .swal2-close { width: 30px; height: 30px; margin: 14px 14px 0 0; border-radius: 5px; color: #78716c; font: 24px/1 sans-serif; transition: background-color .15s; }
.app-dialog .swal2-close:hover { background: #f5f5f4; color: #292524; }
.app-dialog .swal2-close:focus-visible, .app-dialog .btn:focus-visible { outline: 2px solid var(--control-focus); outline-offset: 2px; box-shadow: none; }
.app-dialog .swal2-actions { width: 100%; justify-content: flex-end; gap: 8px; margin: 0; padding: 12px 20px; border-top: 1px solid #f0eeec; background: #fafaf9; }
.app-dialog .swal2-actions .btn { min-width: 76px; margin: 0; font-size: 13px; }
.app-dialog .swal2-actions .danger { border-color: #b91c1c; background: #b91c1c; color: #fff; }
.app-dialog .swal2-actions .danger:hover { border-color: #991b1b; background: #991b1b; }
.swal2-popup.app-dialog-details { width: min(1080px, 100%); }
.app-dialog-details .swal2-title { padding-top: 16px; padding-bottom: 16px; border-bottom: 1px solid #e7e5e4; }
.app-dialog-details .swal2-html-container { max-height: calc(100dvh - 108px); padding: 16px 20px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; white-space: normal; }
.app-dialog-enter { animation: dialog-enter .16s ease-out; }
.app-dialog-leave { animation: dialog-leave .1s ease-in forwards; }
@keyframes dialog-enter { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes dialog-leave { to { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .app-dialog-enter, .app-dialog-leave { animation: none; } }
@media (max-width: 520px) {
  .swal2-container.app-dialog-layer { padding: 10px; }
  .app-dialog .swal2-title { padding-left: 16px; }
  .app-dialog .swal2-html-container, .app-dialog .swal2-actions { padding-right: 16px; padding-left: 16px; }
}
