) ?>)
diff --git a/templates/people/index.php b/templates/people/index.php
index 6cb9f1b..fc69ff3 100644
--- a/templates/people/index.php
+++ b/templates/people/index.php
@@ -211,7 +211,18 @@ $renderGrid = function (array $list) use ($meId, $canMove): void {
data-pm-hint="= ($p['roster_source'] ?? '') === 'kin' ? '1' : '' ?>"
aria-label="更多操作" title="更多操作">⋯
-
+
+ `(闭合 `.person`)在 v29 重写平铺列表时**漏掉了**。
+ 浏览器遇到"卡片没闭合"会**把下一张卡塞进上一张里**(DOM 修复行为),
+ 于是每张卡的宽度被前一张的按钮吃掉 —— 实测第一张的 `.person-main`
+ 只剩 24~151px(本该 ~800px),姓名与徽标全被挤碎,
+ 整页看起来就是"错乱"。
+ ⚠️ 这类"少一个闭合标签"的 bug,`php -l` 与静态断言**全绿**
+ (PHP 语法没错、PHP 的 if/endif 也平衡),只有真机量 DOM 才现形。
+ 定位手法:量 `.person` 的 `children`,发现里面**有另一个 `.person`**
+ —— 嵌套的同类元素 = 上一张没收尾。 */ ?>