/* ============================================================
   pearl-forms.css —— P4 批次：表单与弹窗统一
   2026-11-02 UI 改造第 4 批/共 5 批（执行顺序 P1→P3→P5→P4→P2）
   改动原因：按钮/输入/弹窗三类控件几何与状态散落多处（渐变按钮、三种弹窗
            各自成套），统一到参考仓库 components.css 控件语汇（摘取改写）。
   影响范围：仅视觉；类名零改动（crm-modal-x/ai-modal-close 等被 JS 引用），
            表单取值/校验/提交、弹窗开关逻辑、导出内核零改动。
   回退：从 index.html 移除本文件 link 即整批回退。
   ============================================================ */

/* ── 按钮：统一几何（36px / sm 30px / lg 44px，圆角 8/6/10）+ 平面配色 ── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    padding: 0 15px;
    border-radius: var(--radius);
    font-size: 13px;
    font-weight: 620;
    letter-spacing: 0.005em;
    white-space: nowrap;
    transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn-sm { min-height: 30px; padding: 0 11px; font-size: 12.5px; border-radius: var(--radius-sm); gap: 5px; }
.btn-lg { min-height: 44px; padding: 12px 28px; font-size: 14.5px; border-radius: var(--radius); }

.btn-primary {
    background: var(--primary);
    color: #fff;
    border: none;
    box-shadow: var(--shadow-accent);
    font-weight: 660;
}
.btn-primary:hover:not(:disabled) {
    background: var(--primary-dark);
    box-shadow: 0 1px 2px rgba(20, 66, 148, .32), 0 12px 24px rgba(35, 109, 233, .3);
    filter: none;
}
.btn-outline {
    background: transparent;
    color: var(--primary);
    border: 1px solid var(--primary-light);
}
.btn-outline:hover:not(:disabled) { background: var(--blue-soft); color: var(--primary-dark); box-shadow: none; }
.btn-secondary {
    background: var(--card-bg);
    color: var(--text-sub);
    border: 1px solid var(--border);
}
.btn-secondary:hover:not(:disabled) { background: var(--hover-bg); border-color: var(--border); color: var(--text); }
.btn-danger {
    background: var(--danger);
    color: #fff;
    border: none;
    box-shadow: 0 1px 2px rgba(150, 40, 34, .26), 0 8px 18px rgba(255, 90, 80, .24);
}
.btn-danger:hover:not(:disabled) { background: var(--danger-bright); filter: none; box-shadow: 0 1px 2px rgba(150, 40, 34, .3), 0 12px 22px rgba(255, 90, 80, .3); }
.btn-success {
    background: var(--success);
    color: #fff;
    border: none;
    box-shadow: 0 1px 2px rgba(22, 121, 79, .22), 0 8px 18px rgba(22, 121, 79, .18);
}
.btn-success:hover:not(:disabled) { background: #4a8a1c; filter: none; }

/* ── 输入控件：36px 标准高 / 8px 圆角 / 统一焦点环 ─────────────────── */
.form-group input, .form-group select, .form-group textarea {
    height: 36px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--card-bg);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.form-group textarea { height: auto; min-height: 64px; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-bg);
    background: #fff;
}
.form-group label { font-size: 12.5px; font-weight: 600; color: var(--text-sub); }
.form-group .hint { font-size: 11.5px; color: var(--text-light); }

/* 筛选行紧凑输入（保持 32px 高度不挤占行高，仅统一外观） */
.qmg-input {
    height: 32px;
    border-radius: var(--radius-sm);
    border-color: var(--border);
}
.qmg-input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-bg);
}

/* 下拉多选/原生 select 焦点一致（.form-group select 覆盖已在上方） */
.crm-form-grid .form-group input,
.crm-form-grid .form-group select,
.crm-form-grid .form-group textarea { width: 100%; }

/* ── 弹窗：三套（crm-modal / crm-modal-wide / ai-modal）统一几何 ───── */
.crm-modal-mask, .ai-modal {
    background: rgba(16, 20, 24, .38);
}
.crm-modal, .ai-modal-content {
    background: var(--card-bg);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-hover);
    border: 1px solid var(--border-light);
}
.crm-modal-head, .ai-modal-header {
    padding: 15px 20px;
    border-bottom: 1px solid var(--border-light);
}
.crm-modal-head h3, .ai-modal-header h3 { font-size: 15px; font-weight: 700; color: var(--text); }
.crm-modal-body, .ai-modal-body { padding: 18px 20px; }
.crm-modal-foot, .ai-modal-footer {
    padding: 13px 20px;
    border-top: 1px solid var(--border-light);
}
.crm-modal-x, .ai-modal-close {
    font-size: 20px;
    color: var(--text-light);
    transition: color .15s ease;
}
.crm-modal-x:hover, .ai-modal-close:hover { color: var(--text); }

/* ── 提示条（toast）：圆角与阴影统一 ───────────────────────────────── */
.crm-toast {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-hover);
}

/* ── 复选/单选与开关焦点一致 ───────────────────────────────────────── */
input[type="checkbox"], input[type="radio"] { accent-color: var(--primary); }
