/* 自定义模拟弹窗（替代原生 alert/confirm） */
.cdlg-mask { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 999999; align-items: center; justify-content: center; animation: cdlgFadeIn 0.18s ease; }
.cdlg-mask.show { display: flex; }
.cdlg-box { background: #fff; border-radius: 14px; min-width: 300px; max-width: 440px; width: calc(100% - 60px); box-shadow: 0 20px 60px rgba(0,0,0,0.25); overflow: hidden; animation: cdlgPop 0.22s ease; }
.cdlg-header { padding: 20px 24px 8px; font-size: 16px; font-weight: 600; color: #23395d; display: flex; align-items: center; gap: 10px; }
.cdlg-header .cdlg-icon { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 700; flex-shrink: 0; }
.cdlg-icon.info { background: #3d5af1; }
.cdlg-icon.warn { background: #f0ad4e; }
.cdlg-icon.error { background: #e74c3c; }
.cdlg-icon.success { background: #28a745; }
.cdlg-body { padding: 6px 24px 22px; font-size: 14px; color: #4a5568; line-height: 1.65; white-space: pre-wrap; word-break: break-word; max-height: 50vh; overflow-y: auto; }
.cdlg-footer { padding: 12px 18px 18px; display: flex; justify-content: flex-end; gap: 10px; }
.cdlg-btn { min-width: 80px; padding: 9px 20px; border: none; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.15s; }
.cdlg-btn.primary { background: #3d5af1; color: #fff; }
.cdlg-btn.primary:hover { background: #2d47d4; }
.cdlg-btn.cancel { background: #f0f2f5; color: #4a5568; }
.cdlg-btn.cancel:hover { background: #e4e6eb; }
@keyframes cdlgFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes cdlgPop { from { opacity: 0; transform: translateY(-10px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
