/* ==========================================================
   flash-modal.css — PRG 居中弹窗 + showToast/confirmDialog 共用样式
   单一来源（T3-1，r23）：原 console.css 的 .mt-* 段迁至此处 ——
   后台两端 layout 与前台 news-detail.ejs 都直接引本文件，
   使前台「复制链接 showToast」与后台 PRG 弹窗共用同一套 DOM/样式。
   var() 全部带 fallback：后台由 console.css :root 提供主题值（视觉与 r22 定稿一致）；
   前台无设计令牌时用字面 fallback（值 = console.css 令牌现值，视觉一致）。
   行为口径（r22 老板定稿）：带半透明遮罩；成功 2.5s 自动关（底部进度条倒计时）；
   失败不自动关、点「知道了」手动关；点遮罩 / Esc 均可关闭。
   ========================================================== */

.mt-overlay { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background: rgba(15, 23, 42, 0.45); }
.mt-card { width: 330px; max-width: calc(100vw - 48px); background: var(--color-bg-card, #FFFFFF); border: 1px solid var(--color-border, #E2E8F0); border-radius: 12px; padding: 26px 24px 18px; text-align: center; transform: scale(0.95); opacity: 0; transition: transform 0.18s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)), opacity 0.18s var(--ease, cubic-bezier(0.4, 0, 0.2, 1)); }
.mt-card.mt-on { transform: scale(1); opacity: 1; }
.mt-card.mt-closing { transform: scale(0.95) !important; opacity: 0 !important; }
.mt-icon { width: 50px; height: 50px; border-radius: 50%; margin: 0 auto 12px; display: flex; align-items: center; justify-content: center; }
.mt-icon iconify-icon, .mt-icon > span { font-size: 26px; }
.mt-icon-success { background: var(--color-success-50, #F0FDF4); }
.mt-icon-success iconify-icon, .mt-icon-success > span { color: var(--color-success-600, #16A34A); }
.mt-icon-error { background: var(--color-danger-50, #FEF2F2); }
.mt-icon-error iconify-icon, .mt-icon-error > span { color: var(--color-danger-600, #DC2626); }
.mt-icon-warn { background: var(--color-warning-50, #FFFBEB); }
.mt-icon-warn iconify-icon, .mt-icon-warn > span { color: var(--color-warning-600, #D97706); }
.mt-title { font-size: var(--font-size-base, 14px); font-weight: 500; color: var(--color-text-primary, #1E293B); }
.mt-msg { font-size: var(--font-size-sm, 13px); color: var(--color-text-secondary, #475569); margin-top: 6px; line-height: 1.6; word-break: break-word; }
.mt-btns { margin-top: 16px; display: flex; gap: 10px; justify-content: center; }
.mt-btn { margin-top: 16px; padding: 7px 28px; border: none; border-radius: var(--radius-md, 8px); background: var(--color-primary, #0D9488); color: #fff; font-size: var(--font-size-sm, 13px); font-weight: 500; cursor: pointer; }
.mt-btn:hover { filter: brightness(1.06); }
.mt-btn-plain { background: transparent; color: var(--color-text-secondary, #475569); border: 1px solid var(--color-border, #E2E8F0); }
.mt-btns .mt-btn { margin-top: 0; }
.mt-progress { height: 3px; background: var(--color-border, #E2E8F0); border-radius: 2px; margin-top: 18px; overflow: hidden; }
.mt-bar { height: 100%; width: 100%; background: var(--color-success-600, #16A34A); }
