/* ═══ 数据表 LXTable（P1-B，D10 预留位独立样式表）═══
   真源=design/数据管理原型_v1.html（B2 冻结原型即规格）；词条登记=docs/前端样式规范.md §3「数据表 LXTable」
   规约：颜色只用语义令牌；字号只取阶梯；z-index 只取分配表（3=行内浮层档）
   页面骨架/表单/空态复用 style.css 既有件（.frm/.fr/.fin/.fchips/.chip/.saveb/.pbtn/.empty），本表只登记差量类
   可视内容对齐（2610k UI 优化立规）：lxt 各层不吃水平内距（0），由 #dpage .dbody 的 16px 统一供位——
   可见内容左缘=页头返回钮图标、右缘=页头右缘（此前容器外框对齐/内容又缩 16px 的老毛病不再犯）
   表页（2610k 老板两轮定稿）：工具行/页签/面板守 16px 供位（左右间距=应用页卡片缩进口径）、
   仅表格/卡片视图全出血贴面板左/右/底三缘；首行可视元素顶=应用页卡头顶同一水平线（dbody 顶距 2px）
   行间距=14px（对齐应用页卡片间距口径）；表格区满高内滚=APP 上滑时功能区与表头常驻 */

/* ── 表页骨架（L3 满高）：工具行/页签/面板自然高，表格区 flex:1 内滚 ──
   顶部 -2px 抵消 .dbody padding-top（首行可视元素 y=页头底+2=与应用页卡头顶平齐）、
   底部 -20px 抵消 padding-bottom（表格贴面板底缘零空白）、水平 -16px 破出供位（缩进自控）：
   工具行/页签/面板/横幅可视缩进 10px=表格列头文字一条线（2610k 老板定稿「可视部分与表头一致」；
   双重缩进 16+16=32 的教训：供位与层内 padding 不可叠加）；面板超长把表格压到 min-height 后
   由 .dbody 滚动兜底 */
/* ── 弱底色令牌（261030 走查元素3-6）：--gray-10 是固定浅灰、不随主题翻转——暗色下浅底+浅字
   =内容不可见的根因。本页弱底（页签条/分段轨/表头/文本胶囊/行悬停/表尾悬停）统一走 --lxt-sub
   （定义在 style.css 令牌块：浅色=gray-10、暗色=gray-70，与卡色的相对关系两端一致） ── */

#lxtBody{display:flex;flex-direction:column;height:calc(100% + 22px);min-height:0;margin:-2px -16px -20px;position:relative}
/* APP 底部渐进磨砂（2610k 老板定稿）：手机系统导航栏压住表格末行——底部 56px 由浅至深渐变
   托底（to bottom 透明→--bg），pointer-events:none 不挡触控；左右 -16 补回破出量=全屏宽覆盖；
   WEB 停靠无导航栏不渲染。261030 元素7：磨砂层抬到表尾统计行上缘（原 56px 含统计行会把首格计数一并洗淡） */
.phone:not(.ldesk) #lxtBody::after{content:'';position:absolute;left:-16px;right:-16px;bottom:0;height:56px;
  background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 0%,transparent),var(--bg) 82%);
  pointer-events:none;z-index:3}
/* APP 统计栏让位系统手势条（261030 走查元素7）：表尾统计行 sticky 贴底=被手势条压住——
   格内底部垫 safe-area（.tabbar 同口径 env/--sa-bottom 双通道），统计内容抬到手势条上方；
   计数浮层同步收进 34px 内容带（不被垫高层拉低中心）；磨砂层抬升只限表格视图（:has 兜底=
   老内核忽略即回原托底，卡片视图无统计行仍贴底护住末行） */
.phone:not(.ldesk) .lxt-grid tfoot td{height:calc(34px + max(env(safe-area-inset-bottom,0px),var(--sa-bottom,0px)));
  padding-bottom:max(env(safe-area-inset-bottom,0px),var(--sa-bottom,0px))}
.phone:not(.ldesk) .lxt-statcnt{bottom:max(env(safe-area-inset-bottom,0px),var(--sa-bottom,0px))}
.phone:not(.ldesk) #lxtBody:has(.lxt-wrap)::after{bottom:calc(34px + max(env(safe-area-inset-bottom,0px),var(--sa-bottom,0px)))}

/* ── 表目录（L2）：域分组 + 表行 ── */
.lxt-dir{padding:var(--sp-2) 0 var(--sp-24)}
.lxt-dgrp{margin:var(--sp-10) 0 var(--sp-4);font-size:12px;font-weight:600;color:var(--t3);letter-spacing:.4px}
.lxt-drow{display:flex;align-items:center;gap:var(--sp-10);width:100%;padding:var(--sp-12) 0;background:none;
  border:none;border-bottom:1px solid var(--line);color:var(--t1);font-size:14px;cursor:pointer;text-align:left}
.lxt-drow:hover{background:var(--primary-soft)}
.lxt-drow .cnt{margin-left:auto;flex:none;font-size:12px;color:var(--t3)}
.lxt-arr{flex:none;color:var(--t3);font-size:12px}
/* 类型胶囊（2610X-S9 元素1）：与任务标签 .tagchip 同款规格（11px/500/2px 8px/胶囊，基类在 style.css）；
   不同内容不同色——钉钉表单=蓝（info）、本地表单=绿（success），语义令牌混色 */
.lxt-drow .tagchip{flex:none}
.tagchip.lxt-dt.ding{background:color-mix(in srgb,var(--info) 16%,var(--card));color:var(--info)}
.tagchip.lxt-dt.local{background:color-mix(in srgb,var(--success) 16%,var(--card));color:var(--success)}
:root[data-theme="dark"] .tagchip.lxt-dt.ding{background:rgba(59,130,246,.22);color:var(--info)}
:root[data-theme="dark"] .tagchip.lxt-dt.local{background:rgba(22,163,74,.22);color:var(--success)}

/* ── 表页工具行（L3）：搜索 + 视图工具（计数在行尾：spacer 之后）──
   控件高度统一 46=规范（searchwrap .tinput 09-10 元素1-2 口径）；首行顶距 2px=与应用页卡头顶平齐；
   可视缩进 16px（#lxtBody 已破出供位，锚=页头返回钮图标=「原来正确的左右间距」，老板复验定稿）；
   行间距 14px=应用卡间距口径 */
/* ── 表页工具行（L3）：搜索 + 视图工具（计数在行尾：spacer 之后）──
   高度换代（261030 走查元素6-7）：整行控件统一 30px=工具钮档（原 38/36 混排）；首行顶距 2px=
   与应用页卡头顶平齐；可视缩进 16px（#lxtBody 已破出供位，锚=页头返回钮图标）；行间距 14px */
.lxt-bar{display:flex;align-items:center;gap:var(--sp-6);flex-wrap:wrap;flex:none;padding:var(--sp-14) var(--sp-16) 0}
/* 首行顶距 0（261030 二轮走查元素8：TAB 顶部与条带无缝衔接，TAB 条自身吃满高度） */
#lxtBody>.lxt-bar:first-child{padding-top:0}
.lxt-q{flex:1;min-width:140px;height:30px;border:1px solid var(--line-strong);border-radius:var(--r-md);
  background:var(--card);color:var(--t1);font-size:13px;padding:0 var(--sp-12);outline:none}
.lxt-q:focus{border-color:var(--primary)}
/* 工具钮（261029 复刻钉钉功能区）：轻量浅灰底圆角钮=图标+文字；主钮=主题色实底（添加，无下拉）；
   line-height 14px=文字行盒与 14px 图标盒等高（261030 走查元素3-4「标签+文字组件统一」：页签/工具钮/表头同规） */
.lxt-tool{flex:none;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line);
  background:var(--card);color:var(--t2);font-size:13px;line-height:14px;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:4px}
.lxt-tool .ic{width:14px;height:14px;flex:none;color:var(--t3)}  /* 图标与文字 flex 垂直居中（三轮走查：0.5px 补偿废止=图标偏低） */
.lxt-tool:hover{color:var(--t1);border-color:var(--line-strong)}
.lxt-tool:hover .ic{color:var(--t2)}
.lxt-tool.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.lxt-tool.main{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.lxt-tool.main .ic{color:var(--on-primary)}
/* 激活态彩色胶囊（261029 复刻附件1-3）：筛选/分组=绿、排序=黄，文案「按 X 筛选/排序/分组」 */
.lxt-tool.tgreen{background:color-mix(in srgb,var(--success) 13%,var(--card));
  border-color:color-mix(in srgb,var(--success) 36%,transparent);color:color-mix(in srgb,var(--success) 74%,var(--t1))}
.lxt-tool.tgreen .ic{color:inherit}
.lxt-tool.tamber{background:color-mix(in srgb,var(--warning) 16%,var(--card));
  border-color:color-mix(in srgb,var(--warning) 40%,transparent);color:color-mix(in srgb,var(--warning) 62%,var(--t1))}
.lxt-tool.tamber .ic{color:inherit}
.lxt-tool.tgreen .lxt-sval,.lxt-tool.tamber .lxt-sval{color:inherit;opacity:.85}
/* 脏配置胶囊（261029 复刻附件5「你调整了筛选配置 取消 保存」）：视图页签配置有改动时出现在功能区 */
.lxt-dirtybar{display:inline-flex;align-items:center;gap:2px;height:30px;padding:0 4px 0 10px;flex:none;
  border-radius:var(--r-xl);background:var(--primary-soft);
  border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);font-size:13px;color:var(--primary)}
.lxt-dirtybar .lxt-dtxt{white-space:nowrap}
.lxt-dirtybar .lxt-dcancel{height:22px;padding:0 8px;border:0;border-radius:var(--r-lg);background:none;
  color:var(--primary);font-size:13px;cursor:pointer}
.lxt-dirtybar .lxt-dcancel:hover{background:color-mix(in srgb,var(--primary) 14%,transparent)}
.lxt-dirtybar .lxt-dsave{height:22px;padding:0 10px;border:0;border-radius:var(--r-lg);background:var(--primary);
  color:var(--on-primary);font-weight:600;cursor:pointer}
/* 全局搜索=常驻展开输入框（261029：框内放大镜图标；261030 四轮走查元素10 换代=钉钉AI表格口径：
   不筛行——输入即命中格描边高亮，框内右侧 ‹ n/N › 导航，点 ‹›/回车滚动定位到命中格；
   「/」角标在有词时让位给导航器） */
.lxt-qwrap .lxt-qic{position:absolute;left:10px;width:14px;height:14px;color:var(--t3);pointer-events:none;z-index:1}
.lxt-qwrap .lxt-q{padding-left:30px}
.lxt-qwrap.hasq .lxt-kbd{display:none}
.lxt-qwrap.hasq .lxt-q{padding-right:84px}
.lxt-snav{position:absolute;right:4px;top:0;bottom:0;display:none;align-items:center;gap:1px;z-index:1}
.lxt-qwrap.hasq .lxt-snav{display:inline-flex}
.lxt-snav .lxt-scnt{min-width:38px;text-align:center;font-size:12px;color:var(--t2);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.lxt-snav .lxt-scnt.nul{color:var(--t3)}
.lxt-snav .lxt-sb{width:22px;height:22px;border:0;border-radius:5px;background:none;color:var(--t3);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.lxt-snav .lxt-sb .ic{width:13px;height:13px}
.lxt-snav .lxt-sb:hover{background:var(--lxt-sub);color:var(--t1)}
/* 命中格高亮（钉钉同款描边）：普通命中=info 细描边；当前命中=primary 粗描边+浅底（导航定位格） */
.lxt-grid td.lxt-hit{outline:1.5px solid color-mix(in srgb,var(--info) 70%,transparent);outline-offset:-1.5px}
.lxt-grid td.lxt-hit.lxt-hit-cur{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-soft)}
.lxt-count{flex:none;font-size:13px;color:var(--t3);padding:0 var(--sp-2)}
/* 功能区底色=选中页签同色（261030 三轮走查元素1：卡色与白页签连成一体，选中标签视觉识别最佳）；
   条件回显行同卡色保持块面连续；表格区上缘 1px 分隔线不变 */
.lxt-bar.lxt-act{background:var(--card);padding-bottom:var(--sp-10)}
.lxt-bar.lxt-cond{background:var(--card);padding-top:0;padding-bottom:var(--sp-8)}

/* ── 就地视图面板（筛选/排序/分组/行高/列；一次只开一个，不弹层） ── */
.lxt-panel{flex:none;margin:var(--sp-14) var(--sp-16) 0;padding:var(--sp-12);border:1px solid var(--line);border-radius:var(--r-2xl);
  background:var(--card)}
.lxt-pl{font-size:13px;font-weight:600;color:var(--t3);margin:var(--sp-8) 0 var(--sp-6)}
.lxt-flrow{display:grid;grid-template-columns:minmax(96px,1.2fr) auto minmax(90px,1fr) 30px;gap:var(--sp-6);
  align-items:center;margin-bottom:var(--sp-6)}
.lxt-inp,.lxt-sel{height:34px;border:1px solid var(--line-strong);border-radius:var(--r-lg);
  background:var(--card);color:var(--t1);font-size:13px;padding:0 var(--sp-8);outline:none;min-width:0}
.lxt-inp:focus,.lxt-sel:focus{border-color:var(--primary)}
.lxt-x{width:30px;height:30px;border:none;background:none;color:var(--t3);font-size:14px;cursor:pointer}
.lxt-x:hover{color:var(--destructive)}
.lxt-mini{font-size:13px;color:var(--t3);line-height:1.6}
.lxt-add{height:32px;padding:0 var(--sp-12);border:1px dashed var(--line-strong);border-radius:var(--r-xl);
  background:none;color:var(--t2);font-size:13px;cursor:pointer}
.lxt-add:hover{color:var(--primary);border-color:var(--primary)}
.lxt-chips{display:flex;flex-wrap:wrap;gap:var(--sp-6);align-items:center}

/* ── 表格视图（flex:1 占满余高内滚：表头 sticky 常驻＝APP 上滑功能区/表头固定；全出血贴三缘） ──
   水平 -16px 破出 .dbody 供位=表格全宽贴面板左右缘（工具行守 16px 缩进=层次，老板两轮定稿）；
   极窄滚动条（2610k 老板元素反馈）：6px、默认拇指透明、容器悬停浮现——浮现改 JS 委托挂 .sb-on
   （CSS :hover 伪元素在 Chromium/Edge 刷新不稳=移入移出时好时坏、拇指瞄不准的根因，实测避坑）。
   关键坑：scrollbar-width/scrollbar-color 标准属性一旦设置，Chromium 121+ 会放弃 ::-webkit-scrollbar
   渲染（常显细条=自动隐藏失效，Windows 实测）——标准属性只进 @supports Firefox 兜底档 */
.lxt-wrap{overflow:auto;flex:1 1 auto;min-height:180px;margin:0;border-top:1px solid var(--line);
  border-radius:0;background:var(--card)}
.lxt-wrap::-webkit-scrollbar,.lxt-cards::-webkit-scrollbar{width:6px;height:6px}
.lxt-wrap::-webkit-scrollbar-track,.lxt-cards::-webkit-scrollbar-track{background:transparent}
.lxt-wrap::-webkit-scrollbar-thumb,.lxt-cards::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}
.lxt-wrap.sb-on::-webkit-scrollbar-thumb,.lxt-cards.sb-on::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--t3) 38%,transparent)}
.lxt-wrap.sb-on::-webkit-scrollbar-thumb:hover,.lxt-cards.sb-on::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--t3) 65%,transparent)}
@supports not selector(::-webkit-scrollbar){
  .lxt-wrap,.lxt-cards{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--t3) 45%,transparent) transparent}
}
/* table-layout:fixed（261029 钉钉复刻）：列宽=拖宽把手/col_w 唯一真源——auto 布局在多列挤压下
   会无视 th 宽度乱收缩（拖到 198 渲染 98 的根因），fixed 后列宽忠实+超宽内容省略号截断，
   总宽超出容器走横向滚动 */
.lxt-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:13px}
/* 表头（261029 复刻；261030 二轮走查元素4/5 换代；261030 四轮走查元素8 再换代）：
   底色/边框/字号与数据格一致、仅字重加粗区分（表头从灰底换卡色=与上方 TAB 条/功能区灰块整体区分）；
   结构=类型图标+列名（点=排序）+▾列菜单；列分隔线与表体同款（首列豁免）；
   四轮走查元素8：行高跟随行高配置（--lxt-rh 与数据格同一变量，紧凑/正常/宽松/自定义同步伸缩） */
.lxt-grid th{position:sticky;top:0;z-index:2;background:var(--card);
  border-bottom:1px solid var(--line);border-left:1px solid var(--line);
  font-size:13px;font-weight:600;color:var(--t3);text-align:left;white-space:nowrap;padding:0;height:var(--lxt-rh,40px)}
.lxt-grid th:first-child{border-left:0}
.lxt-grid th .lxt-hc{display:flex;align-items:center;gap:3px;height:100%;width:100%;
  padding:0 2px 0 8px;background:none;border:none;color:inherit;font:inherit;box-sizing:border-box}
/* 列名行盒=line-height 14px：与 14px 类型图标盒等高居中（261030 走查元素10-11「标签+文字」同规） */
.lxt-grid th .lxt-hname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;
  border:0;background:none;color:inherit;font:inherit;font-weight:600;line-height:14px;cursor:pointer;padding:0}
.lxt-grid th .lxt-hname:hover{color:var(--t1)}
/* 四轮走查元素4（第4次修订=根因修复）：此前三次只调了 .lxt-hic 盒（span 14×14），
   盒内 svg.ic 从未设尺寸——吃全局 .ic 22px 档，在 14px 盒里溢出右下=「图标比文字大、
   落在文字左下角」。本条直接钉 svg 本体 14px=与 TAB 页签/功能区工具钮图标同档，flex 居中同规 */
.lxt-grid th .lxt-hic{width:14px;height:14px;flex:none;color:var(--t3);display:inline-flex;align-items:center;justify-content:center}
.lxt-grid th .lxt-hic .ic,.lxt-grid th svg.lxt-tyic{width:14px;height:14px;flex:none;display:block}
.lxt-grid th .lxt-hmenu{width:20px;height:20px;flex:none;border:0;border-radius:5px;background:none;color:var(--t3);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}
.lxt-grid th .lxt-hmenu .ic{width:12px;height:12px}
.lxt-grid th:hover .lxt-hmenu{opacity:1}
.lxt-grid th .lxt-hmenu:hover{background:color-mix(in srgb,var(--t3) 18%,transparent);color:var(--t1)}
/* 列宽拖把手（261029）：th=sticky 定位上下文；把手收在 th 右缘内侧 8px（右邻列底色会盖住
   越界部分=命中区必须完全落在本列内），悬停出主题色竖杆，长按拖动调宽 */
.lxt-rs{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:col-resize;z-index:5}
.lxt-rs:hover::after{content:'';position:absolute;right:2px;top:22%;bottom:22%;width:2.5px;
  border-radius:2px;background:var(--primary)}
/* 单元格底色统一走 --rowbg（行悬停/行填色经 tr 变量透传）——冻结 sticky 格不透底的前提 */
.lxt-grid td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:0 var(--sp-10);height:var(--lxt-rh,40px);
  max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t1);cursor:pointer;
  background:var(--rowbg,var(--card))}  /* 列宽=拖宽把手可调 60-480：超宽省略号截断，点行进编辑器看明细 */
.lxt-grid td:first-child{border-left:0}
.lxt-grid tbody td:hover{background:var(--primary-soft)}  /* 钉钉网格=行悬停浅灰（--rowbg）、格悬停浅主题色 */
.lxt-num{text-align:left;font-variant-numeric:tabular-nums}  /* 2610k 老板定稿：全部左对齐（原数字右对齐=短数字左侧大片空白） */
.lxt-sarr{font-size:10.5px;color:var(--primary)}
.lxt-mut{color:var(--t3)}
/* 文本格灰胶囊（261029 复刻：参考图「建设单位/合同编号」样式） */
.lxt-pill{display:inline-flex;align-items:center;max-width:100%;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:5px;background:var(--lxt-sub);color:var(--t1)}
.lxt-opt{display:inline-flex;align-items:center;padding:var(--sp-2) var(--sp-8);border-radius:var(--r-pill);
  font-size:13px;line-height:18px;white-space:nowrap}
.lxt-lk{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-8);border-radius:var(--r-lg);
  background:var(--primary-soft);color:var(--primary);font-size:13px;max-width:100%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.lxt-calc{color:var(--primary);font-variant-numeric:tabular-nums}
/* 四轮走查元素6：省略号颜色跟随文字色——截断发生在 td（overflow+text-overflow 在格上），
   「…」字形吃 td 自身字色（--t1 浅白），格内蓝字 span（.lxt-calc）一截断就成了白点；
   :has 把 td 字色对齐内容档=省略号与文字同色 */
.lxt-grid td:has(> .lxt-calc){color:var(--primary)}
/* 数据来源三档配色（261030 三轮走查元素5 拍板，借鉴钉钉「关联=蓝」规则、色走主题令牌）：
   同步引用（remote 可编辑字段）=info 蓝字、去胶囊底；本表计算=primary（.lxt-calc 既有）；
   可编辑=正常字色+灰胶囊。选项彩底/关联胶囊是数据自身颜色不参与分档 */
.lxt-grid td.lxt-vref{color:var(--info)}
.lxt-grid td.lxt-vref .lxt-pill{background:none;color:var(--info)}
.lxt-grp td{cursor:pointer;color:var(--t2);background:var(--bg);height:36px}
.lxt-grp .lxt-gcnt{color:var(--t3);font-size:13px}
/* 分组折叠=JS 就地切换组内行显示（组头与行同 tbody；closed 只改箭头方向） */
.lxt-grp.closed .lxt-garr{transform:rotate(-90deg);display:inline-block}

/* 行填色（color_rules 首条命中；scope=row）——语义令牌混色 */
.lxt-cr-red td{background:color-mix(in srgb,var(--destructive) 10%,var(--card))}
.lxt-cr-amber td{background:color-mix(in srgb,var(--warning) 12%,var(--card))}
.lxt-cr-green td{background:color-mix(in srgb,var(--success) 12%,var(--card))}
.lxt-cr-blue td{background:color-mix(in srgb,var(--info) 12%,var(--card))}
.lxt-cr-violet td{background:color-mix(in srgb,var(--primary) 10%,var(--card))}

/* 底部合计条（lxt-gbar）2610k 老板元素1 退役：同步期说明=页头标题后 ？红点（lxtable.js stateMark），
   计数在工具行行尾；表格全出血与面板底缘无缝衔接 */

/* ── 记录编辑器（L4，表单骨架复用 .frm/.fr/.fin/.fchips/.chip/.saveb） ── */
.lxt-ro{display:flex;align-items:center;min-height:38px;width:100%;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:0 var(--sp-10);color:var(--t2);font-size:13px;background:var(--bg);box-sizing:border-box}
.lxt-ro .v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t1)}
.lxt-ro .lxt-clr{flex:none;border:none;background:none;color:var(--t3);cursor:pointer;font-size:12px;padding:4px}
.lxt-ro .lxt-clr:hover{color:var(--destructive)}
.lxt-calcbox{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-10);background:var(--bg)}
.lxt-calcbox .lxt-cv{font-size:15px;font-weight:600;color:var(--primary)}
.lxt-selwrap{position:relative}
.lxt-sellist{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:3;max-height:220px;overflow:auto;
  background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-xl);
  box-shadow:var(--shadow-card)}
.lxt-selrow{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-10);font-size:13px;color:var(--t1);cursor:pointer}
.lxt-selrow:hover{background:var(--primary-soft)}
.lxt-selrow.on{color:var(--primary);font-weight:600}
.lxt-del{align-self:flex-start;margin:var(--sp-4) 0 var(--sp-12);border:none;background:none;color:var(--destructive);
  font-size:13px;cursor:pointer;padding:var(--sp-6) 0;text-decoration:underline}

/* ── 字段管理（工具「字段」面板：拖拽排序/眼睛显隐/编辑/删除/新增；
     2610X-S9 元素5：↑↓ 双钮退役，字段序=长按拖拽（.flrow+.flhandle，样式在 style.css） ── */
.lxt-fmr{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-2);border-bottom:1px solid var(--line)}
.lxt-fmr:last-of-type{border-bottom:none}
.lxt-fname{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lxt-fname b{font-size:13px;color:var(--t1);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lxt-fty{font-size:13px;color:var(--t3)}
.lxt-x .ic{width:16px;height:16px}
.lxt-x{display:inline-flex;align-items:center;justify-content:center}

/* ── 字段编辑页（选项行/色板/公式条+预览） ── */
.lxt-opted{display:flex;align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-6)}
.lxt-cpick{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);cursor:pointer}
.lxt-fxbar{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-6)}
.lxt-fxbtn{height:26px;padding:0 var(--sp-8);border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--card);color:var(--t2);font-size:11px;cursor:pointer}
.lxt-fxbtn:hover{color:var(--primary);border-color:var(--primary)}
.lxt-fxbtn.alt{background:var(--primary-soft);color:var(--primary)}
.lxt-fxprev{margin-top:var(--sp-6);font-size:12px;color:var(--t2);min-height:18px}

/* ── 数据历史时间线（D16：字段级 diff + 恢复此值） ── */
.lxt-hist{padding:var(--sp-2) 0 var(--sp-8)}
.lxt-hrow{padding:var(--sp-10) var(--sp-2);border-bottom:1px solid var(--line)}
.lxt-hmeta{display:flex;align-items:baseline;gap:var(--sp-6);flex-wrap:wrap;font-size:13px;color:var(--t1)}
.lxt-hmeta .lxt-fty{margin-left:auto}
.lxt-diff{margin-top:var(--sp-4);font-size:13px;color:var(--t2);word-break:break-all}
.lxt-harr{color:var(--primary);margin:0 var(--sp-2)}
.lxt-hact{border:none;background:none;color:var(--primary);font-size:13px;cursor:pointer;
  padding:0 var(--sp-2);text-decoration:underline;margin-left:var(--sp-6)}

/* ── 第一行·视图页签行（261029 复刻钉钉 AI 表格附件2-3；261030 二轮走查元素8 换代=截图2/3；
   261030 四轮走查元素1/2 换代=截图1/2）：
   整行浅灰底+底部基线；页签=书签卡片——顶部与条带顶无缝衔接（无上距、吃满条带高），
   首个页签左侧贴条带左缘、左侧圆角取消（0 8 0 0），其余页签左右保持圆角；
   选中=白底描边圆角顶+加粗+页签图标主题色，未选=透明底灰字常规字重；
   ⋮ 仅选中页签渲染；双击页签=就地改名；命中数徽标退役 ──
   四轮走查元素1：基线从 border-bottom 换成盒底 1px 背景渐变层——背景先画、子元素页签后画，
   选中页签白底自然压线（未选中页签透明底=基线原样保留）。原 border-bottom+负 margin 下探的方案
   在 overflow-y:hidden 滚动容器里把页签下探的 1px 裁掉，选中页签压不住线=
   「选中TAB与功能栏之间多一条分割线」的根因；背景层不随横向滚动走位（child ::before 会），
   background-clip:border-box=层位与原 border-bottom 完全重合；
   四轮走查元素2：基线与页签侧边相接的外直角（外侧 L）改内凹圆角（反圆角 fillet，半径=顶角 8px）——
   选中页签 ::before/::after 挂 8×8 径向渐变方块（透明区露灰底、弧线接侧边框色、卡色区连页签与下方功能区），
   首个页签左侧贴缘无基线=只做右侧，其余页签左右都做（截图1/2 钉钉同款） */
.lxt-bookrow{gap:var(--sp-2);row-gap:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;padding-left:0;padding-right:var(--sp-16);
  background:linear-gradient(var(--line-strong),var(--line-strong)) 0 100%/100% 1px no-repeat border-box border-box,
    var(--lxt-sub)}
.lxt-bookrow::-webkit-scrollbar{display:none}
.lxt-vwrap{display:inline-flex;align-items:center;flex:none}
.lxt-vwrap:first-child .lxt-vtab{border-radius:0 8px 0 0}
.lxt-vtab{position:relative;display:inline-flex;align-items:center;gap:var(--sp-4);height:40px;
  padding:0 var(--sp-10);border:1px solid transparent;border-bottom:0;
  border-radius:8px 8px 0 0;background:none;color:var(--t2);font-size:13px;line-height:14px;cursor:pointer;white-space:nowrap}
.lxt-vtab .ic{width:14px;height:14px;color:var(--t3);flex:none}  /* 与文字 flex 居中 */
.lxt-vtab:hover{color:var(--t1)}
.lxt-vtab.on{background:var(--card);border-color:var(--line-strong);color:var(--t1);font-weight:600;
  box-shadow:0 -2px 4px -3px rgba(0,0,0,.1)}
.lxt-vtab.on .ic{color:var(--primary)}
/* 外直角→内凹圆角（fillet）：8×8 方块骑在基线与页签侧边的夹角上；
   径向渐变=远端（朝页签/下方功能区）卡色、近角区透明露灰底、1px 弧线过渡（色=侧边框 line-strong） */
.lxt-vtab.on::before,.lxt-vtab.on::after{content:'';position:absolute;bottom:0;width:8px;height:8px;pointer-events:none}
.lxt-vtab.on::before{left:-8px;
  background:radial-gradient(circle at 0 0,transparent 6.9px,var(--line-strong) 7.3px 7.9px,var(--card) 8.3px)}
.lxt-vtab.on::after{right:-8px;
  background:radial-gradient(circle at 100% 0,transparent 6.9px,var(--line-strong) 7.3px 7.9px,var(--card) 8.3px)}
/* 首个页签左侧贴缘：左直角保留（无基线可接），只做右侧 fillet（截图1） */
.lxt-vwrap:first-child .lxt-vtab.on::before{content:none}
.lxt-vname{max-width:160px;overflow:hidden;text-overflow:ellipsis}
/* 页签内就地改名输入框（双击进入，Enter 提交/Esc 还原） */
.lxt-renin{width:120px;height:24px;border:1px solid var(--primary);border-radius:5px;background:var(--card);
  color:var(--t1);font-size:13px;padding:0 6px;outline:none}
/* ⋮（视图操作，261030 走查元素1 换代）：收进选中页签内部、紧跟视图名——竖三点无外框（i-dotsv），
   span 嵌 button（button 不嵌套）、点击/双击均 stopPropagation（单击=菜单不切页签、双击不触发改名）；
   仅选中页签渲染；hover 淡底反白，触屏常态半显 */
.lxt-tmenu{width:18px;height:18px;margin-right:-3px;border-radius:5px;background:none;color:var(--t3);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex:none;opacity:.8;transition:opacity .12s}
.lxt-tmenu .ic{width:14px;height:14px}
.lxt-tmenu:hover{background:color-mix(in srgb,var(--t3) 18%,transparent);color:var(--t1);opacity:1}
@media (hover:none){.lxt-tmenu{opacity:.75}}
.lxt-vadd{display:inline-flex;align-items:center;flex:none;height:28px;padding:0 var(--sp-8);border:0;background:none;
  color:var(--t3);font-size:13px;cursor:pointer;margin-left:2px}
.lxt-vadd .ic{width:14px;height:14px}  /* 四轮走查元素3：＋=reicon r-plus（原字形废止） */
.lxt-vadd:hover{color:var(--primary)}
.lxt-vpick{display:inline-flex;align-items:center;gap:var(--sp-4);height:38px;padding:0 var(--sp-12);
  border:1px solid var(--line);border-radius:var(--r-xl);background:var(--card);
  color:var(--t1);font-size:13px;font-weight:600;cursor:pointer}
.lxt-vdot{color:var(--warning);font-size:10.5px}
/* 列表/卡片分段控件（渲染模式；与保存的查询解耦——2610k 评审定稿）。
   261030 走查元素7/8：整轨 30px=工具钮同档（钮 26+轨 padding 2×2）；双端图标钮去文字（title 提示） */
.lxt-seg{display:inline-flex;padding:var(--sp-2);background:var(--lxt-sub);border-radius:var(--r-xl);gap:var(--sp-2);flex:none}
.lxt-seg button{display:inline-flex;align-items:center;height:26px;padding:0 var(--sp-10);border:0;
  border-radius:calc(var(--r-xl) - 3px);background:none;color:var(--t3);font-size:13px;cursor:pointer}
.lxt-seg button .ic{width:13px;height:13px;flex:none}  /* 四轮走查元素3：分段图标钮=reicon（原 ☰▦ 字形废止） */
.lxt-seg button.on{background:var(--card);color:var(--t1);font-weight:600;
  box-shadow:0 1px 3px rgba(0,0,0,.12)}
/* 面板 chip 图标+文字（布局面板 表格/卡片 档，reicon 同规） */
.lxt-panel .chip{display:inline-flex;align-items:center;gap:var(--sp-4)}
.lxt-panel .chip .ic{width:12px;height:12px;flex:none}

/* ── 面板浮层（WEB popover：锚定动作行按钮下方，点外部/Esc 关闭；内容=panelHTML 原样）──
   2610X-S9 元素9：z 3→7——吸顶表头/吸左序号列（sticky z=1/3）与弹窗同档时按 DOM 序压在
   弹窗上（点排序等按钮即见单元格浮起），弹窗必须整档压过网格 sticky 族 */
.lxt-pop{position:absolute;z-index:7;min-width:280px;max-height:62%;
  overflow-y:auto;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-2xl);
  box-shadow:0 18px 44px -14px rgba(0,0,0,.32)}
/* 261029 元素3：面板宽=popWrap 按面板分档内联下发（筛选 440 使 字段/方式/值 一行放下），
   左缘=触发按钮左缘（data-pop 同名锚定），不再统一 300 窄条 */
.lxt-pop .lxt-panel{margin:0;border:0;border-radius:0;background:none}
/* 筛选面板（2610X-S9 元素6：复刻图表分析筛选 .flrow 全家，住在 style.css） */
.lxt-panel .qcap{margin:0 0 var(--sp-8)}
.lxt-panel .fladd{margin-top:2px}

/* ── 全屏显示（2610k 老板元素2）：页头全屏钮=L4 覆盖整屏+浏览器全屏 ──
   fixed 盖过四栏（含 .phone.ldesk .dpage 停靠右栏几何，特异性 4>3 覆盖 left/width）；
   z=115 新档（§2.3）：高于编辑弹层 97/居中对话框 99、低于 toast 120 与 pmenu 150——
   全屏态下轻提示与切表下拉仍可见；go() 切页整栈清空/hmCloseAll 同步退出（home.js） */
.phone.ldesk .dpage.lxt-fs{position:fixed;left:0;right:0;top:0;bottom:0;width:auto;z-index:115;
  transform:none;transition:none;border-left:0}

/* ── 页头标题切表（2610k 元素3→261030 走查元素1 换代）：下拉并入标题——标题本体可点
   （无底色边框，名字尾随 ▼ 图标=标题字号同款 20px，二轮走查拍板），点=全量表清单 dropMenu 点选换表 ── */
.lxt-ttl{display:inline-flex;align-items:center;gap:4px;cursor:pointer;vertical-align:middle}
.lxt-ttl:hover{color:var(--primary)}
.lxt-ttl:hover .ic{color:var(--primary)}
.lxt-ttl .ic{color:inherit;flex:none}

/* ── 动作行件（2610k 二次优化）：徽标=生效条件数 / 排序值上脸 / 计数带单位 / / 聚焦角标 ── */
.lxt-badge{min-width:16px;height:16px;padding:0 var(--sp-4);border-radius:5px;display:inline-grid;
  place-items:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--primary);color:var(--on-primary);margin-left:2px}
.lxt-sval{color:var(--primary);font-size:13px;font-variant-numeric:tabular-nums;margin-left:2px}
.lxt-count.hot{color:var(--primary);font-weight:600}
.lxt-qwrap{position:relative;display:flex;align-items:center;flex:1;min-width:140px;max-width:420px}
.lxt-qwrap .lxt-q{flex:1}
.lxt-kbd{position:absolute;right:9px;width:18px;height:18px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:4px;font-size:10.5px;color:var(--t3);
  background:var(--bg);pointer-events:none;font-family:inherit}
.lxt-icob{padding:0 var(--sp-12)}
/* 第三层·条件回显：chip=字段+值+单删；清除全部+存为视图（仅有筛选时出现） */
.lxt-cond{gap:var(--sp-6);flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.lxt-cond::-webkit-scrollbar{display:none}
.lxt-fchip{display:inline-flex;align-items:center;gap:var(--sp-6);height:30px;padding:0 var(--sp-4) 0 var(--sp-8);flex:none;
  border:1px solid var(--line-strong);border-radius:var(--r-xl);background:var(--card);font-size:13px}
.lxt-fchip em{font-style:normal;color:var(--t3)}
.lxt-fchip b{font-weight:400;color:var(--t1);white-space:nowrap}
.lxt-fchip-x{width:18px;height:18px;border:0;border-radius:5px;background:none;color:var(--t3);
  cursor:pointer;font-size:11px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.lxt-fchip-x .ic{width:11px;height:11px}
.lxt-fchip-x:hover{background:var(--gray-10);color:var(--t1)}
.lxt-clrall,.lxt-saveview{flex:none;height:30px;padding:0 var(--sp-8);border:0;border-radius:var(--r-xl);
  background:none;color:var(--t3);font-size:13px;cursor:pointer}
.lxt-saveview{border:1px solid var(--line-strong);color:var(--t2)}
.lxt-clrall:hover,.lxt-saveview:hover{color:var(--primary)}

/* ── APP 底部抽屉（任务弹层 .dsmask/.dsheet 同款；面板外壳随抽屉拍平） ── */
.lxt-drawerbody{overflow-y:auto;padding:0 var(--sp-16);flex:1;min-height:0}
.lxt-drawerbody .lxt-panel{margin:0 0 var(--sp-4);border:0;border-radius:0;background:none;padding:var(--sp-10) 0}
.lxt-drawerfoot{flex:none;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--line)}

/* ── 表格首列吸边（2610k 评审：横向滑动序号列恒可见；行色经 --rowbg 透传；
   2610X-S9：首列=序号列，表头吸顶吸左交叉格同步灰底） ── */
.lxt-grid th:first-child,.lxt-grid td:first-child{position:sticky;left:0;z-index:1;
  background:var(--rowbg,var(--card))}
.lxt-grid thead th:first-child{z-index:3;background:var(--card)}
.lxt-grid tbody td:first-child{box-shadow:5px 0 8px -6px rgba(0,0,0,.18)}
.lxt-grid tbody tr:hover{--rowbg:var(--lxt-sub)}
.lxt-grid tbody tr.lxt-cr-red{--rowbg:color-mix(in srgb,var(--destructive) 10%,var(--card))}
.lxt-grid tbody tr.lxt-cr-amber{--rowbg:color-mix(in srgb,var(--warning) 10%,var(--card))}
.lxt-grid tbody tr.lxt-cr-green{--rowbg:color-mix(in srgb,var(--success) 10%,var(--card))}
.lxt-grid tbody tr.lxt-cr-blue{--rowbg:color-mix(in srgb,var(--info) 10%,var(--card))}
.lxt-grid tbody tr.lxt-cr-violet{--rowbg:color-mix(in srgb,var(--primary) 10%,var(--card))}
.lxt-grid tbody tr.lxt-grp td{position:static}  /* 分组行 colspan 全宽，无吸边需求 */

/* ── 卡片视图（与表格同一 schema，仅 layout=card + card 配置） ── */
.lxt-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-10);
  flex:1 1 auto;min-height:0;overflow-y:auto;margin:0;align-content:start;
  grid-auto-rows:min-content}  /* 行高显式 min-content：满高容器+隐式 auto 行在 Chromium 塌成 2px（只剩边框横线，2610k 老板元素3 实测二分定案） */
.lxt-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-2xl);
  overflow:hidden;cursor:pointer;box-shadow:var(--shadow-card)}
.lxt-card:hover{border-color:var(--primary)}
.lxt-card-hd{padding:var(--sp-12) var(--sp-14);color:var(--on-primary)}
.lxt-card-hd h4{font-size:15px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lxt-card-hd span{display:block;font-size:11px;opacity:.85;margin-top:var(--sp-2);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.lxt-card-bd{padding:var(--sp-6) var(--sp-14) var(--sp-8)}
.lxt-crow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-10);
  padding:var(--sp-8) 0;border-bottom:1px solid var(--line);font-size:12px}
.lxt-crow:last-child{border-bottom:none}
.lxt-crow span{color:var(--t3);flex:none}
.lxt-crow b{color:var(--t1);font-weight:600;text-align:right;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lxt-card-ft{display:flex;flex-wrap:wrap;gap:var(--sp-4);padding:0 var(--sp-14) var(--sp-12)}

/* ── 组合选择框（2610X-S8 拍板一 元素8：选择族字段框内搜索——值盒=已选 chips+▾，
   点开=框内下拉面板（搜索输入+选项列表，成熟 combobox 模式）；废止外挂「已选：无」说明行） ── */
.lxt-cbxbox{display:flex;align-items:center;gap:var(--sp-6);min-height:38px;width:100%;box-sizing:border-box;flex-wrap:wrap;
  border:1px solid var(--line-strong);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-10);background:var(--card);
  cursor:pointer;font-family:var(--font-ui);font-size:14px;color:var(--t1)}
.lxt-cbxbox:focus-within{border-color:var(--primary)}
.lxt-cbxbox .chip{padding:var(--sp-2) var(--sp-8);font-size:12px}
.lxt-cbxbox .cbxph{color:var(--t3)}
.lxt-cbxbox .cbxarr{margin-left:auto;color:var(--t3);font-size:12px;flex:none}
/* 面板=复用 .lxt-sellist 浮层（z=3），自带搜索输入+列表；列表内滚、面板本体不滚 */
.lxt-cbxpanel{overflow:visible;display:flex;flex-direction:column;gap:var(--sp-6);padding:var(--sp-6)}
.lxt-cbxpanel .lxt-cbxlist{max-height:180px;overflow:auto;margin:0 calc(var(--sp-6) * -1) calc(var(--sp-6) * -1)}

/* ── 附件（P2-D 文件底座；2610X-S8 拍板二换代=上传标准行列表：图标+名称+大小+下载+✕，
   行高 40、宽度撑满；添加=末位「＋ 上传附件」虚线行（.lxt-addfull 40px）；钉钉存量=同款行+「只读」徽标） ── */
.lxt-files{display:flex;flex-direction:column;gap:var(--sp-6);min-height:20px}
.lxt-files .lxt-lk{cursor:default;justify-content:flex-start;height:40px;padding:0 var(--sp-10);gap:var(--sp-8);
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);color:var(--t1)}
.lxt-files .lxt-lk .ic{width:16px;height:16px;color:var(--t3);flex:none}
.lxt-files .lxt-lk .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lxt-addfull{width:100%;height:40px;display:flex;align-items:center;justify-content:center}

/* ── 本机待重放横幅（P2-E 弱网排队写：表页/目录页工具行下常驻；说明=qmark 红点） ── */
.lxt-qbar{flex:none;margin:var(--sp-14) var(--sp-16) 0;padding:var(--sp-10) var(--sp-12);border:1px solid var(--primary);
  border-radius:var(--r-2xl);background:var(--primary-soft)}
.lxt-qbar b{font-size:13px;color:var(--primary)}

/* ── 表单底部动作行（2610k UI 优化：主次同行——次操作 .pbtn 在左、主操作 .saveb 在右；说明=qmark 红点行尾） ── */
.lxt-actrow{display:flex;align-items:center;gap:var(--sp-10);margin:var(--sp-12) 0 var(--sp-8)}
.lxt-actrow .qmark{flex:none}

/* ══ 2610X-S9 数据表单页换代（钉钉布局，老板元素10）══
   261029 全量复刻钉钉 AI 表格换代：书签 TAB 行/功能区/网格样式上移至上方对应区块统一维护，
   本区块仅保留网格点格即编与添加记录空行等仍生效件 */

/* 条件回显「或」标记 */
.lxt-fchip em.lxt-or{color:var(--warning);font-weight:600;margin-right:2px}

/* ── 网格·序号列（吸左；点=打开记录编辑页，title 提示） ── */
.lxt-grid .lxt-idx{width:44px;min-width:44px;max-width:44px;box-sizing:border-box;padding:0 4px;
  text-align:center;color:var(--t3);font-size:13px;font-variant-numeric:tabular-nums;user-select:none}
.lxt-grid tbody .lxt-idx:hover{color:var(--primary)}
.lxt-grid thead .lxt-idx{cursor:default}

/* ── 网格·点格即编（cellEdit）：可编格手型、编辑态主题色描边（钉钉同款）+ 无框输入 ── */
.lxt-grid td.lxt-celled{cursor:pointer}
.lxt-grid td.lxt-celled:hover{background:var(--primary-soft)}
.lxt-grid td.lxt-cedit{outline:2px solid var(--primary);outline-offset:-2px;background:var(--card);cursor:text}
.lxt-cin{width:100%;height:100%;border:0;background:transparent;color:var(--t1);font:inherit;
  outline:none;padding:0;min-width:0}

/* ── 网格·添加记录空行（最下方；首格 ✓=收起；空值格=可点编辑） ── */
.lxt-addrow td{height:34px;color:var(--t3)}
.lxt-addrow td.lxt-celled:hover{background:var(--primary-soft)}
.lxt-addrow .lxt-idx{color:var(--primary);font-weight:600}

/* ── 表尾统计行（261029 复刻附件3/4；261030 走查元素7 换代）：sticky bottom 通栏与表体无缝；
   首格=全表统计（默认计数、纯数字无单位，可点开菜单 选计数/取消统计）；各列点格换统计口径
   （取消统计+已填写/未填写/计数/合计，再点当前项=取消）；对齐=与单元格一致全部左对齐 ── */
.lxt-grid tfoot td{border-top:1px solid var(--line-strong);border-bottom:0;background:var(--card);
  height:34px;font-size:13px;color:var(--t3);cursor:pointer;overflow:visible}
.lxt-grid tfoot td:hover{background:var(--lxt-sub)}
.lxt-grid tfoot td.lxt-stat.has{color:var(--t1);text-align:left;font-variant-numeric:tabular-nums}
.lxt-grid tfoot td.lxt-stat-all{cursor:default}
.lxt-grid tfoot td.lxt-stat-all:hover{background:var(--card)}
.lxt-grid tfoot td.lxt-stat-all[onclick]{cursor:pointer}
.lxt-grid tfoot td.lxt-stat-all[onclick]:hover{background:var(--lxt-sub)}
.lxt-statcnt{position:absolute;left:0;top:0;bottom:0;display:flex;align-items:center;padding:0 8px;
  background:var(--card);white-space:nowrap;font-size:13px;color:var(--t1);font-variant-numeric:tabular-nums}

/* ── 数字格就地编辑=纯输入（261029 元素2：分润等数字列直接键入，无上下步进钮） ── */
.lxt-cin[type="number"]{appearance:textfield;-moz-appearance:textfield}
.lxt-cin[type="number"]::-webkit-outer-spin-button,
.lxt-cin[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ── 字段管理行（2610X-S9 元素5：↑↓ 退役=长按拖拽；行=卡片式 .flrow（拖拽 ghost 同源），
     拖柄在删除钮后面——与图表筛选行/时间范围行同一规范） ── */
.lxt-fmr.flrow{display:flex;align-items:center;gap:var(--sp-6);padding:6px 10px;margin-bottom:6px}
.lxt-fmr.flrow .flhandle{align-self:center}
.lxt-panel #lxtFmList{margin-bottom:var(--sp-6)}
