/* ============================================================
   通用提交结果模态框（所有页面共用）
   用法：<link rel="stylesheet" href="/h5/css/modal.css">
         <script src="/h5/js/modal.js"></script>
         showModal('success'|'error', '标题', '描述');
   弹框 DOM 由 modal.js 动态创建，无需在各页面手写。
   ============================================================ */
.cm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
}
.cm-overlay.show { opacity: 1; visibility: visible; }

.cm-box {
    width: 360px;
    max-width: calc(100vw - 40px);
    background: #fff;
    border-radius: 16px;
    padding: 36px 28px 28px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    transform: translateY(16px) scale(.96);
    transition: transform .25s ease;
}
.cm-overlay.show .cm-box { transform: translateY(0) scale(1); }

.cm-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cm-icon svg { width: 32px; height: 32px; }
.cm-icon.is-success { background: #e8f6ee; }
.cm-icon.is-success svg { stroke: #1f9d55; }
.cm-icon.is-error { background: #fdeaea; }
.cm-icon.is-error svg { stroke: #e23b3b; }

.cm-title { font-size: 20px; font-weight: 700; color: #1a1a1a; margin-bottom: 8px; }
.cm-text { font-size: 14px; color: #666; line-height: 1.6; margin-bottom: 22px; }

.cm-btn {
    display: inline-block;
    min-width: 120px;
    padding: 11px 24px;
    border: none;
    border-radius: 10px;
    background: var(--primary, #1a56db);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
}
.cm-btn:hover { background: #1648b8; }
