/* ========== 统一美化通知组件 ========== */
.notify-toast-container { position: fixed !important; top: 20px !important; left: 50% !important; transform: translateX(-50%) !important; z-index: 99999 !important; display: flex !important; flex-direction: column !important; align-items: center !important; gap: 10px !important; pointer-events: none !important; }
.notify-toast { min-width: 200px; max-width: 400px; padding: 12px 24px; border-radius: 8px; font-size: 14px; color: #fff; display: flex; align-items: center; gap: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); opacity: 0; transform: translateY(-20px); transition: all 0.3s ease; pointer-events: auto; }
.notify-toast.show { opacity: 1; transform: translateY(0); }
.notify-toast.success { background: linear-gradient(135deg, #52c41a, #389e0d); }
.notify-toast.error { background: linear-gradient(135deg, #ff4d4f, #cf1322); }
.notify-toast.warning { background: linear-gradient(135deg, #faad14, #d48806); }
.notify-toast.info { background: linear-gradient(135deg, #1890ff, #096dd9); }
.notify-toast .icon { font-size: 16px; font-weight: bold; }
.notify-mask { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; background: rgba(0,0,0,0.45); z-index: 99998 !important; display: flex !important; align-items: center !important; justify-content: center !important; opacity: 0; visibility: hidden; transition: all 0.25s ease; }
.notify-mask.show { opacity: 1; visibility: visible; }
.notify-modal { width: 90%; max-width: 420px; background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 30px rgba(0,0,0,0.2); transform: scale(0.9); transition: transform 0.25s ease; }
.notify-mask.show .notify-modal { transform: scale(1); }
.notify-modal-header { padding: 20px 24px 12px; font-size: 18px; font-weight: 600; color: #333; display: flex; align-items: center; gap: 10px; }
.notify-modal-header .warn-icon { width: 24px; height: 24px; border-radius: 50%; background: #fff7e6; color: #faad14; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: bold; }
.notify-modal-body { padding: 0 24px 24px; font-size: 14px; color: #666; line-height: 1.6; }
.notify-modal-footer { padding: 12px 24px; border-top: 1px solid #f0f0f0; display: flex; justify-content: flex-end; gap: 12px; }
.notify-btn { padding: 8px 20px; border-radius: 6px; font-size: 14px; cursor: pointer; border: none; transition: all 0.2s; font-weight: 500; }
.notify-btn-cancel { background: #f5f5f5; color: #666; }
.notify-btn-cancel:hover { background: #e8e8e8; }
.notify-btn-confirm { background: linear-gradient(135deg, #1890ff, #096dd9); color: #fff; }
.notify-btn-confirm:hover { opacity: 0.9; }
.notify-btn-confirm.danger { background: linear-gradient(135deg, #ff4d4f, #cf1322); }
@media (max-width: 768px) {
    .notify-toast { min-width: 160px; max-width: 85%; padding: 10px 18px; font-size: 13px; }
    .notify-modal { max-width: 90%; }
    .notify-modal-header { padding: 16px 20px 10px; font-size: 16px; }
    .notify-modal-body { padding: 0 20px 20px; font-size: 13px; }
    .notify-modal-footer { padding: 10px 20px; }
    .notify-btn { padding: 8px 16px; font-size: 13px; }
}
