/* =====================================================================
 * antd-swal.css
 * 让 ksbm 前台弹窗（sweetalert.js.org / t4t5，类名 swal-modal 等）
 * 统一为 antd Modal 观感：主色 #1677ff、圆角 8px、antd 阴影/遮罩、
 * 标题 16px / 正文 14px 灰字、按钮右对齐、primary 蓝 / default 白。
 * 同时兼容后端 swaltips 的 SweetAlert2（类名 swal2-*）。
 *
 * 注意：前台只引入了 sweetalert.min.js（无官方 CSS），本文件同时承担
 * 「基础布局 + antd 外观」两套职责；仅在弹窗出现时（--show-modal）生效，
 * 不会常驻遮罩、不会拦截页面点击。
 * ===================================================================== */

/* ---------- 遮罩：仅在显示时着色并居中（避免常驻黑屏） ---------- */
.swal-overlay {
    pointer-events: none;            /* 未显示时不拦截点击 */
}
.swal-overlay--show-modal,
.swal2-container.swal2-backdrop-show {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 1060 !important;
    pointer-events: auto;
    background: rgba(0, 0, 0, .45) !important;   /* antd mask */
}

/* ---------- 弹窗容器 ---------- */
.swal-modal,
.swal2-popup {
    position: relative !important;
    z-index: 1061 !important;
    box-sizing: border-box !important;
    width: auto !important;
    max-width: 92vw !important;
    min-width: 360px !important;
    margin: 0 !important;
    padding: 24px 32px !important;
    font-size: 15px !important;
    background: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    /* 清晰锐利的投影：小半径 + 高浓度，避免大半径低透明度的雾状发虚 */
    box-shadow: 0 2px 8px rgba(0, 0, 0, .16) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB",
        "Microsoft YaHei", "微软雅黑", sans-serif !important;
    text-align: left !important;
}

/* ---------- 标题 ---------- */
.swal-title,
.swal2-title {
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: rgba(0, 0, 0, .88) !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    text-align: center !important;
}

/* ---------- 正文 ---------- */
.swal-text,
.swal2-html-container,
.swal2-content {
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(0, 0, 0, .65) !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    text-align: center !important;
}

/* ---------- 按钮区：antd confirm 默认靠右 ---------- */
.swal-footer,
.swal2-actions {
    margin-top: 24px !important;
    padding: 0 !important;
    text-align: right !important;
}
.swal-button-container {
    display: inline-block !important;
    margin: 0 0 0 8px !important;
}

/* ---------- 按钮基类 ---------- */
.swal-button,
.swal2-confirm,
.swal2-cancel {
    box-sizing: border-box !important;
    height: auto !important;
    min-width: 72px !important;
    margin: 0 !important;
    padding: 7px 20px !important;
    border: 1px solid transparent !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.5715 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    outline: none !important;
    cursor: pointer !important;
    transition: background-color .2s, border-color .2s, color .2s;
}

/* ---------- 确认 / 主按钮（primary） ---------- */
.swal-button--confirm,
.swal2-confirm {
    background-color: #1677ff !important;
    border-color: #1677ff !important;
    color: #fff !important;
    box-shadow: 0 2px 0 rgba(0, 0, 0, .045) !important;
}
.swal-button--confirm:hover,
.swal2-confirm:hover {
    background-color: #4096ff !important;
    border-color: #4096ff !important;
}
.swal-button--confirm:active,
.swal2-confirm:active {
    background-color: #0958d9 !important;
    border-color: #0958d9 !important;
}
.swal-button--confirm:focus,
.swal2-confirm:focus {
    box-shadow: 0 0 0 2px rgba(22, 119, 255, .2) !important;
}

/* ---------- 取消按钮（default） ---------- */
.swal-button--cancel,
.swal2-cancel {
    background-color: #fff !important;
    border-color: #d9d9d9 !important;
    color: rgba(0, 0, 0, .88) !important;
    margin-right: 8px !important;
}
.swal-button--cancel:hover,
.swal2-cancel:hover {
    border-color: #4096ff !important;
    color: #4096ff !important;
}

/* ---------- 图标配色贴近 antd 语义色（次级，不影响布局） ---------- */
.swal-icon--success { border-color: #52c41a !important; }
.swal-icon--success__ring { border-color: #52c41a !important; }
.swal-icon--success__line { background-color: #52c41a !important; }

.swal-icon--error { border-color: #ff4d4f !important; }
.swal-icon--error__line { background-color: #ff4d4f !important; }

.swal-icon--warning { border-color: #faad14 !important; }
.swal-icon--warning__body { background-color: #faad14 !important; }
.swal-icon--warning__dot { background-color: #faad14 !important; }

.swal-icon--info { border-color: #1677ff !important; }
.swal-icon--info__i,
.swal-icon--info::before,
.swal-icon--info::after { background-color: #1677ff !important; }

.swal2-icon.swal2-success { border-color: #52c41a !important; color: #52c41a !important; }
.swal2-icon.swal2-error { border-color: #ff4d4f !important; color: #ff4d4f !important; }
.swal2-icon.swal2-warning { border-color: #faad14 !important; color: #faad14 !important; }
.swal2-icon.swal2-info { border-color: #1677ff !important; color: #1677ff !important; }

/* ---------- 缩小 swal2 图标尺寸，避免过大影响弹窗观感 ---------- */
/* SweetAlert2 默认图标 80px，缩到约 48px（scale .6），并用负下边距抵消留白 */
.swal2-icon {
    margin: 4px auto -20px !important;
    transform: scale(0.6) !important;
    transform-origin: top center !important;
}

/* ---------- 显示/退出动画优化，消除卡顿 ---------- */
/* 遮罩为纯色半透明，提示 GPU 合成层不会显出发虚；淡入淡出走 opacity 合成，避免每帧重绘全屏背景 */
.swal2-container.swal2-backdrop-show,
.swal2-container.swal2-backdrop-hide {
    will-change: opacity !important;
    animation-duration: .06s !important;
}
/* 弹窗动画时长缩短，退出更跟手（swal2 依赖 animationend 清理 DOM，不可用 animation:none） */
.swal2-popup,
.swal2-popup.swal2-show,
.swal2-popup.swal2-hide {
    animation-duration: .06s !important;
}
