---
description: 弹窗/抽屉内 Ant Design Table 列对齐规范；完成含明细列表的弹窗后必须检查
globs: src/prototypes/**/*.{tsx,jsx,ts,js}
alwaysApply: false
---

# 弹窗明细表列对齐（防错行）

## 适用场景

Modal、Drawer 内展示明细列表的 `Table`，尤其启用 `scroll.y` 或 `scroll.x` 时。

## 必须遵守

1. **Table 属性**
   - `className={LN_MODAL_DETAIL_TABLE_CLASS}`（来自 `src/common/modalDetailTable.ts`）
   - `tableLayout="fixed"`
   - `scroll.x` 使用 `sumColumnScrollX(columns)`，值为各列 `width` 之和（可 +8~16 预留滚动条）

2. **列定义**
   - **每一列**都必须设置数字 `width`，禁止仅 `ellipsis: true` 而不设宽度
   - 金额列：`align: 'right'` + `className: 'tabular-nums'`
   - 长文本列：`ellipsis: true` + 明确 `width`

3. **样式**
   - 项目已提供 `src/common/modal-detail-table.css`（经 `vehicle-management/style.css` 全局引入）
   - 不要覆盖 `.ant-table-header` / `.ant-table-body` 的 margin 或隐藏 measure-row 的局部 hack，统一用 `ln-modal-detail-table`

## 完成前自检

实现或修改弹窗明细表后，在浏览器中确认：

- [ ] 表头文字与每列首行数据**垂直对齐**（不错行、不整体右偏）
- [ ] 纵向滚动时表头与表体列宽仍一致
- [ ] 金额列右对齐、长文本省略号正常
- [ ] 开发控制台无 `弹窗表格列缺少 width` 警告

## 参考实现

`src/prototypes/payment-records/components/PaymentKpiDetailModal.tsx`
