/* ============================================================
   pearl-tables.css —— P3 批次：列表/表格统一皮肤
   2026-11-02 UI 改造批次 3/5（纯视觉层；类名零改动，仅覆盖既有类的样式）
   改动原因：五套表格样式（qmg-table / crm-table / quote-items-table /
            config-table / ai-params-table）各自为政，统一到 qmg-table 基准。
   影响范围：仅表格/加载/空态/分页/操作列视觉；数据、排序、内联编辑、
            分页逻辑、导出内核零改动。打印/导出段不引用本文件选择器。
   回退：从 index.html 移除本文件 link 即整批回退。
   基准（qmg-table）：表头等宽 11px 大写字距、单元格 8px 10px、
                    行分隔 var(--border)、悬停 var(--hover-bg)、操作列 sticky。
   ============================================================ */

/* ── 统一表头/单元格/行态（五套共用一组规格） ───────────────────── */
.qmg-table th, .crm-table th,
.quote-items-table th, .config-table th, .ai-params-table th {
    background: var(--surface-sunken);
    color: var(--text-light);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: left;
    white-space: nowrap;
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
}
.qmg-table td, .crm-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}
/* 行悬停：五套统一中性 hover（原 crm/breakdown 用主色底，视觉噪音大） */
.qmg-table tbody tr:hover td,
.crm-table tbody tr:hover td,
.quote-items-table tbody tr:hover td,
.config-table tbody tr:hover td,
.ai-params-table tbody tr:hover td,
.breakdown-table tr:hover td { background: var(--hover-bg); }
.qmg-table tbody tr, .crm-table tbody tr { transition: background 0.15s ease; }

/* 操作列 sticky：横向滚动时行操作始终可见（参考 DataTable .col-actions 语义） */
.qmg-table th:last-child, .qmg-table td:last-child,
.crm-table th:last-child, .crm-table td.crm-op-cell {
    position: sticky;
    right: 0;
    z-index: 1;
    background: var(--card-bg);
    box-shadow: inset 1px 0 0 var(--border-light);
}
.qmg-table th:last-child, .crm-table th:last-child { z-index: 2; background: var(--surface-sunken); }
.qmg-table tbody tr:hover td:last-child {
    background: linear-gradient(var(--hover-bg), var(--hover-bg)), var(--card-bg);
}
.crm-table tbody tr:hover td.crm-op-cell {
    background: linear-gradient(var(--hover-bg), var(--hover-bg)), var(--card-bg);
}

/* ── qmg-table（基准表）微调 ─────────────────────────────────────── */
.qmg-table { font-size: 13px; }
.qmg-table .qmg-num { text-align: right; font-family: var(--font-mono); }

/* ── crm-table 对齐基准（原 12.5px/9px 10px/主色 hover） ─────────── */
.crm-table { font-size: 13px; }
.crm-table-compact th, .crm-table-compact td { padding: 6px 8px; }
.crm-table-compact { font-size: 12.5px; }

/* ── quote-items-table（报价明细）对齐基准 ───────────────────────── */
.quote-items-table th, .quote-items-table td { padding: 7px 9px; }
.quote-items-table th { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-light); background: var(--surface-sunken); }
/* 斑马纹取消，与基准一致（行分隔 + hover 已足够分层） */
.quote-items-table tbody tr:nth-child(even) td { background: transparent; }
.quote-items-table tbody tr:hover td { background: var(--hover-bg); }
.quote-items-table tfoot td { background: var(--surface-muted); }

/* ── config-table（价格配置矩阵）对齐基准（保持紧凑与内联编辑） ───── */
.config-table th, .config-table td { border: 1px solid var(--border-light); }
.config-table th { background: var(--surface-sunken); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-light); }
.config-table tbody tr:hover td { background: var(--hover-bg); }

/* ── ai-params-table 对齐基准 ────────────────────────────────────── */
.ai-params-table th, .ai-params-table td { padding: 8px 10px; border-bottom: 1px solid var(--border); }
.ai-params-table th { background: var(--surface-sunken); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-light); }

/* ── 汇总/明细小表 ──────────────────────────────────────────────── */
.breakdown-table td, .summary-table td { border-bottom: 1px solid var(--border-light); }
.summary-table tr.highlight td {
    background: var(--primary-bg);
    border-bottom: 2px solid var(--primary);
}

/* ── 加载态：统一等待胶囊（类名不变，仅换皮；骨架真行留给 P4 决策） ─ */
.crm-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 22px 12px;
    color: var(--text-light);
    font-size: 12.5px;
}
.crm-loading::before {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--border);
    border-top-color: var(--primary);
    animation: pearlSpin 0.8s linear infinite;
    flex: none;
}
@keyframes pearlSpin { to { transform: rotate(360deg); } }

/* ── 空态：统一弱化居中（qmg-empty / crm 占位） ──────────────────── */
.qmg-empty { text-align: center; color: var(--text-faint); padding: 28px 16px; }
tr.qmg-empty td { color: var(--text-faint); padding: 28px 16px; background: transparent !important; }
.crm-kanban-empty { border: 1px dashed var(--border); color: var(--text-faint); background: var(--surface-muted); }

/* ── 分页器：统一样式（qmg-pager / crm-pager 内按钮） ────────────── */
.qmg-pager, .crm-pager { font-size: 12.5px; color: var(--text-sub); }
.qmg-pager button, .crm-pager button {
    min-width: 30px;
    height: 28px;
    padding: 0 9px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--card-bg);
    color: var(--text-sub);
    font-family: inherit;
    font-size: 12.5px;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.qmg-pager button:hover:not(:disabled), .crm-pager button:hover:not(:disabled) {
    border-color: var(--primary-light);
    color: var(--primary);
}
.qmg-pager button:disabled, .crm-pager button:disabled { opacity: 0.45; cursor: not-allowed; }

/* ── 行操作小按钮（btn-icon）统一几何 ────────────────────────────── */
.btn-icon { border-radius: var(--radius-sm); border-color: var(--border); color: var(--text-sub); transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
.btn-icon:hover { background: var(--hover-bg); border-color: var(--border); color: var(--text); }
.btn-icon.btn-icon-confirm { color: var(--primary); border-color: var(--primary-light); background: var(--primary-bg); }
.btn-icon.btn-icon-confirm:hover { background: var(--blue-soft); }

/* ── 状态标签：圆点 + 文字双编码（颜色不单独承载语义） ───────────── */
.qmg-status-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}
.qmg-status-tag::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
