/* ============================================================
   团队大脑 · 协作表（ds-bn-tables- 前缀）
   只用 design-system.css 的设计令牌（var(--xxx)），深色模式自动跟随。
   中文 flex 容器一律 nowrap / min-width:0，防「一个字一行」。
   ============================================================ */

.ds-bn-tables, .ds-bn-tables-view { display: flex; flex-direction: column; gap: .8em; min-width: 0; }
.ds-bn-tables-fill { flex: 1 1 auto; min-width: 0; }
.ds-bn-tables-sub { font-size: 12.5px; font-weight: 600; color: var(--text-2); margin: .9em 0 .35em; white-space: nowrap; }
.ds-bn-tables-subtitle { font-size: 13px; font-weight: 650; color: var(--text); margin: 1.1em 0 .5em; white-space: nowrap; }
.ds-bn-tables-checkrow { display: inline-flex; align-items: flex-start; gap: .4em; cursor: pointer; line-height: 1.6; min-width: 0; }
.ds-bn-tables-checkrow > span { min-width: 0; }
.ds-bn-tables-checkrow input { margin-top: .35em; flex: none; }
.ds-bn-tables-grow1 { flex: 1 1 auto; min-width: 0; }
.ds-bn-tables-inline { height: 30px; width: auto; max-width: 260px; }
.ds-bn-tables-num-in { width: 80px; height: 30px; }
.ds-bn-tables-time { width: 120px; }
.ds-bn-col label, .ds-bn-row > label:not(.ds-bn-tables-checkrow) { white-space: nowrap; color: var(--text-2); font-size: 12.5px; }

/* 标签 / 选项色（10 色，全部由设计令牌派生） */
.ds-bn-tables-chip {
  display: inline-flex; align-items: center; gap: .25em; white-space: nowrap; max-width: 100%;
  border: 1px solid var(--border); background: var(--card-bg); color: var(--text-2);
  border-radius: 999px; padding: 0 .55em; font-size: 11.5px; line-height: 1.7; margin: 1px 3px 1px 0;
  overflow: hidden; text-overflow: ellipsis;
}
.ds-bn-tables-chip.info { border-color: transparent; background: var(--info-bg); color: var(--info); }
.ds-bn-tables-chip.warn { border-color: transparent; background: var(--warning-bg); color: var(--warning); }
.ds-bn-tables-chip.link { border-color: transparent; background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
.ds-bn-tables-chips { display: flex; flex-wrap: wrap; gap: .3em; margin: .5em 0; min-width: 0; }
.ds-bn-tables-opt {
  display: inline-flex; align-items: center; white-space: nowrap; border-radius: 4px; padding: 0 .5em;
  font-size: 12px; line-height: 1.7; margin: 1px 3px 1px 0; border: none;
}
.ds-bn-tables-opt.c0 { background: color-mix(in srgb, var(--primary) 16%, transparent); color: var(--primary); }
.ds-bn-tables-opt.c1 { background: var(--success-bg); color: var(--success); }
.ds-bn-tables-opt.c2 { background: var(--warning-bg); color: var(--warning); }
.ds-bn-tables-opt.c3 { background: var(--danger-bg); color: var(--danger); }
.ds-bn-tables-opt.c4 { background: var(--info-bg); color: var(--info); }
.ds-bn-tables-opt.c5 { background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent); }
.ds-bn-tables-opt.c6 { background: var(--hover); color: var(--text-2); }
.ds-bn-tables-opt.c7 { background: color-mix(in srgb, var(--primary) 10%, var(--accent) 10%); color: var(--text); }
.ds-bn-tables-opt.c8 { background: color-mix(in srgb, var(--success) 12%, var(--info) 10%); color: var(--text); }
.ds-bn-tables-opt.c9 { background: color-mix(in srgb, var(--danger) 10%, var(--warning) 12%); color: var(--text); }
.ds-bn-tables-swatch { cursor: pointer; width: 28px; justify-content: center; }

/* ---------- 列表页 ---------- */
.ds-bn-tables-navbar {
  display: flex; align-items: center; gap: .4em; flex-wrap: wrap;
  padding: .45em .7em; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card-bg);
}
.ds-bn-tables-navlabel { white-space: nowrap; }
.ds-bn-tables-navitem {
  border: 1px solid var(--border-2); background: var(--hover); color: var(--text); border-radius: var(--radius-sm);
  padding: .2em .7em; cursor: pointer; white-space: nowrap; font-size: 12.5px;
}
.ds-bn-tables-navitem:hover { border-color: var(--primary); color: var(--primary); }
.ds-bn-tables-pending {
  display: flex; align-items: center; gap: .5em; white-space: nowrap; flex-wrap: wrap;
  background: var(--warning-bg); color: var(--text); border-radius: var(--radius-sm); padding: .5em .9em; font-size: 13px;
}
.ds-bn-tables-toolbar { display: flex; align-items: center; gap: .5em; flex-wrap: wrap; min-width: 0; }
.ds-bn-tables-toolbar .ds-btn { white-space: nowrap; }
.ds-bn-tables-search { width: 240px; max-width: 100%; }
.ds-bn-tables-scope, .ds-bn-tables-groupsel { width: auto; min-width: 130px; }
.ds-bn-tables-split { grid-template-columns: 220px minmax(0, 1fr); }
@media (max-width: 640px) { .ds-bn-tables-split { grid-template-columns: minmax(0, 1fr); } .ds-bn-tables-cards { grid-template-columns: minmax(0, 1fr); } }
.ds-bn-tables-groups { padding: .6em; display: flex; flex-direction: column; gap: .15em; }
.ds-bn-tables-gsec { font-size: 11.5px; color: var(--muted); font-weight: 600; margin: .7em .3em .2em; white-space: nowrap; }
.ds-bn-tables-gitem {
  display: flex; align-items: center; gap: .4em; padding: .35em .5em; border-radius: var(--radius-sm);
  cursor: pointer; min-width: 0; color: var(--text-2); font-size: 13px;
}
.ds-bn-tables-gitem:hover { background: var(--hover); }
.ds-bn-tables-gitem.on { background: var(--info-bg); color: var(--primary); }
.ds-bn-tables-gitem b { font-weight: 500; font-size: 11.5px; color: var(--muted); }
.ds-bn-tables-gname { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-bn-tables-gacts { display: none; gap: .1em; white-space: nowrap; }
.ds-bn-tables-gitem:hover .ds-bn-tables-gacts { display: inline-flex; }
.ds-bn-tables-gacts .ds-link-btn { padding: 0 .15em; font-size: 12px; }
.ds-bn-tables-gempty { padding: .3em .5em; }
.ds-bn-tables-gnew { display: flex; gap: .3em; margin-top: .6em; min-width: 0; }
.ds-bn-tables-gnew .ds-input { flex: 1 1 auto; min-width: 0; height: 30px; }

.ds-bn-tables-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .7em; }
.ds-bn-tables-card {
  display: flex; flex-direction: column; gap: .45em; padding: .8em .9em; cursor: pointer; min-width: 0;
  transition: box-shadow .15s, border-color .15s;
}
.ds-bn-tables-card:hover { box-shadow: var(--shadow-md); border-color: var(--primary); }
.ds-bn-tables-card.pending { border-left: 3px solid var(--warning); }
.ds-bn-tables-card-head { display: flex; align-items: center; gap: .4em; min-width: 0; }
.ds-bn-tables-card-name { flex: 1 1 auto; min-width: 0; font-weight: 650; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-bn-tables-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .2em; min-width: 0; }
.ds-bn-tables-card-meta .ds-bn-muted { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ds-bn-tables-card-foot { display: flex; align-items: center; gap: .4em; min-width: 0; }
.ds-bn-tables-card-foot > .ds-bn-muted { flex: 1 1 auto; white-space: nowrap; }
.ds-bn-tables-card-acts { display: inline-flex; gap: .1em; white-space: nowrap; }
.ds-bn-tables-card-acts .ds-link-btn, .ds-bn-tables-head .ds-link-btn { opacity: .45; font-size: 14px; }
.ds-bn-tables-card-acts .ds-link-btn.on, .ds-bn-tables-head .ds-link-btn.on,
.ds-bn-tables-card-acts .ds-link-btn:hover, .ds-bn-tables-head .ds-link-btn:hover { opacity: 1; }
.ds-bn-tables-emptyhero { padding: 2.5em 1em; }
.ds-bn-tables-emptybody { max-width: 560px; margin: .8em auto 1.2em; text-align: left; line-height: 1.8; color: var(--text-2); font-size: 13px; }
.ds-bn-tables-importsum { margin-bottom: .6em; }
.ds-bn-tables-importfile { padding: .5em 0; border-bottom: 1px solid var(--border-2); display: flex; flex-direction: column; gap: .25em; }
.ds-bn-tables-tpls { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .7em; }
.ds-bn-tables-tpl { padding: .8em .9em; display: flex; flex-direction: column; gap: .45em; min-width: 0; }
.ds-bn-tables-tpl-name { font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ds-bn-tables-tpl-cols { display: flex; flex-wrap: wrap; min-width: 0; }

/* ---------- 打开一张表 ---------- */
.ds-bn-tables-head { display: flex; align-items: center; gap: .5em; flex-wrap: wrap; min-width: 0; }
.ds-bn-tables-title {
  font-size: 17px; font-weight: 700; color: var(--text); min-width: 0; max-width: 50%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: default;
}
.ds-bn-tables-desc { margin-top: -.3em; }
.ds-bn-tables-tabs { margin-bottom: 0; }
.ds-bn-tables-filters { padding: .7em .9em; display: flex; flex-direction: column; gap: .45em; }
.ds-bn-tables-frow .ds-input { width: auto; min-width: 120px; height: 32px; }
.ds-bn-tables-conj { width: auto; height: 30px; }
.ds-bn-tables-sortbox { display: flex; flex-direction: column; gap: .4em; min-width: 320px; }
.ds-bn-tables-sortbox .ds-input { width: auto; height: 30px; }
.ds-bn-tables-gridcard { padding: 0; overflow: hidden; }
.ds-bn-tables-gridwrap { max-height: calc(100vh - 290px); overflow: auto; }
.ds-bn-tables-grid { width: auto; min-width: 100%; }
.ds-bn-tables-grid th, .ds-bn-tables-grid td { padding: .45em .65em; }
.ds-bn-tables-grid th.ds-bn-tables-th { width: 180px; cursor: pointer; user-select: none; }
.ds-bn-tables-grid th.ds-bn-tables-th:hover { color: var(--primary); }
.ds-bn-tables-ticon { display: inline-block; min-width: 1.3em; color: var(--muted); font-size: 11.5px; margin-right: .25em; text-align: center; }
.ds-bn-tables-selcell { width: 36px; text-align: center; }
.ds-bn-tables-grid .ds-bn-tables-idx { width: 48px; color: var(--muted); font-size: 12px; cursor: pointer; white-space: nowrap; }
.ds-bn-tables-grip { visibility: hidden; cursor: grab; margin-right: .2em; }
.ds-bn-tables-expand { visibility: hidden; margin-left: .25em; color: var(--primary); }
.ds-bn-tables-grid tr:hover .ds-bn-tables-grip, .ds-bn-tables-grid tr:hover .ds-bn-tables-expand { visibility: visible; }
.ds-bn-tables-addcol { width: 48px; text-align: center; cursor: pointer; color: var(--primary); }
.ds-bn-tables-cell.editable { cursor: text; }
.ds-bn-tables-cell.editable:hover { box-shadow: inset 0 0 0 1px var(--primary); }
.ds-bn-tables-cell.ro { color: var(--text-2); }
.ds-bn-tables-cell.t-formula, .ds-bn-tables-cell.t-lookup, .ds-bn-tables-cell.t-rollup {
  background: color-mix(in srgb, var(--hover) 55%, transparent);
}
.ds-bn-tables-grid tr.sel td { background: color-mix(in srgb, var(--primary) 8%, transparent); }
.ds-bn-tables-num { font-variant-numeric: tabular-nums; }
.ds-bn-tables-check { display: inline-flex; width: 18px; height: 18px; align-items: center; justify-content: center; border-radius: 4px; border: 1px solid var(--border); font-size: 12px; }
.ds-bn-tables-check.on { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.ds-bn-tables-person { display: inline-flex; align-items: center; gap: .25em; margin-right: .4em; white-space: nowrap; }
.ds-bn-tables-person .ds-bn-avatar { width: 20px; height: 20px; font-size: 9.5px; }
.ds-bn-tables-grow td { background: var(--hover); cursor: pointer; font-size: 12.5px; }
.ds-bn-tables-caret { display: inline-block; width: 1em; color: var(--muted); }
.ds-bn-tables-total td { background: var(--hover); font-weight: 600; position: sticky; bottom: 0; }
.ds-bn-tables-pager { display: flex; align-items: center; justify-content: flex-end; gap: .5em; flex-wrap: wrap; white-space: nowrap; }
.ds-bn-tables-pagesize { width: auto; height: 30px; }

/* 浮层（格子编辑器 / 菜单） */
.ds-bn-tables-pop {
  position: absolute; z-index: 1200; min-width: 200px; max-width: min(420px, 94vw); max-height: 60vh; overflow: auto;
  background: var(--card-bg); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-md); padding: .45em;
}
.ds-bn-tables-pop-input { min-width: 280px; }
.ds-bn-tables-popinput { flex: 1 1 auto; min-width: 0; height: 32px; }
.ds-bn-tables-menuhead { padding: .3em .6em .45em; font-weight: 650; border-bottom: 1px solid var(--border-2); margin-bottom: .3em; white-space: nowrap; }
.ds-bn-tables-menuitem {
  display: block; width: 100%; text-align: left; border: none; background: transparent; color: var(--text);
  padding: .45em .7em; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap; font: inherit; font-size: 13px;
}
.ds-bn-tables-menuitem:hover { background: var(--hover); }
.ds-bn-tables-menuitem.danger { color: var(--danger); }
.ds-bn-tables-optlist { display: flex; flex-direction: column; gap: .1em; }
.ds-bn-tables-optrow { display: flex; align-items: center; gap: .45em; padding: .3em .45em; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap; }
.ds-bn-tables-optrow:hover { background: var(--hover); }
.ds-bn-tables-popfoot { border-top: 1px solid var(--border-2); margin-top: .35em; padding-top: .35em; }
.ds-bn-tables-longta { min-height: 220px; }
.ds-bn-tables-picklist { max-height: 46vh; overflow: auto; display: flex; flex-direction: column; gap: .15em; margin-top: .4em; }
.ds-bn-tables-picklist .ds-bn-tables-checkrow { padding: .3em .4em; border-radius: var(--radius-sm); }
.ds-bn-tables-picklist .ds-bn-tables-checkrow:hover { background: var(--hover); }

/* 行详情 */
.ds-bn-tables-detail { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 1.2em; align-items: start; }
@media (max-width: 900px) { .ds-bn-tables-detail { grid-template-columns: minmax(0, 1fr); } }
.ds-bn-tables-detail-main, .ds-bn-tables-detail-side { min-width: 0; }
.ds-bn-tables-detail-side { max-height: 70vh; overflow: auto; border-left: 1px solid var(--border-2); padding-left: 1em; }
.ds-bn-tables-detail-title { font-size: 16px; font-weight: 700; color: var(--text); word-break: break-word; }
.ds-bn-tables-field { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: .8em; padding: .35em 0; border-bottom: 1px dashed var(--border-2); align-items: start; }
.ds-bn-tables-flabel { color: var(--muted); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: .2em; }
.ds-bn-tables-fval { min-height: 1.8em; padding: .15em .4em; border-radius: var(--radius-sm); white-space: pre-wrap; word-break: break-word; min-width: 0; }
.ds-bn-tables-fval.editable { cursor: text; }
.ds-bn-tables-fval.editable:hover { background: var(--hover); }
.ds-bn-tables-hist { padding: .4em 0; border-bottom: 1px solid var(--border-2); font-size: 12.5px; word-break: break-word; }

/* 列设置 / 列管理 / 指派 */
.ds-bn-tables-optedit .ds-input { flex: 1 1 auto; min-width: 0; height: 30px; }
.ds-bn-tables-formula { min-height: 80px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.ds-bn-tables-refs { display: flex; flex-wrap: wrap; gap: .3em; align-items: center; font-size: 12px; color: var(--muted); }
.ds-bn-tables-colrow { padding: .2em 0; border-bottom: 1px solid var(--border-2); flex-wrap: nowrap; }
.ds-bn-tables-assign { padding: .5em 0; border-bottom: 1px solid var(--border-2); }
.ds-bn-tables-assign .ds-bn-row { flex-wrap: nowrap; }
.ds-bn-tables-assign .ds-bn-muted { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* 提醒规则 */
.ds-bn-tables-remind-intro { font-size: 13px; line-height: 1.8; color: var(--text-2); margin-bottom: .8em; }
.ds-bn-tables-rules { display: flex; flex-direction: column; gap: .45em; }
.ds-bn-tables-rule {
  display: flex; align-items: flex-start; gap: .8em; padding: .6em .8em; min-width: 0;
  border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--card-bg);
}
.ds-bn-tables-rule.off { opacity: .6; }
.ds-bn-tables-rule.editing { border-color: var(--primary); }
.ds-bn-tables-rule-main { flex: 1 1 auto; min-width: 0; line-height: 1.7; word-break: break-word; }
.ds-bn-tables-rule-main[data-r-edit] { cursor: pointer; }
.ds-bn-tables-rule-note { font-size: 12px; }
.ds-bn-tables-rule-acts { display: inline-flex; align-items: center; gap: .35em; white-space: nowrap; }
.ds-bn-tables-rule-add { margin: .8em 0; }
.ds-bn-tables-ruleform { padding: .9em 1em; margin-top: .6em; display: flex; flex-direction: column; gap: .45em; border-color: var(--primary); }
.ds-bn-tables-ruleform .ds-bn-muted { line-height: 1.7; }
.ds-bn-tables-days { display: flex; flex-wrap: wrap; gap: .3em; }
.ds-bn-tables-days .ds-bn-chip { min-width: 34px; justify-content: center; }
.ds-bn-tables-crossbox {
  display: flex; flex-direction: column; gap: .45em; padding: .7em .8em; border-radius: var(--radius-sm);
  background: var(--info-bg); border: 1px solid color-mix(in srgb, var(--info) 30%, transparent);
}

/* 仪表盘 */
.ds-bn-tables-dash { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8em; }
@media (max-width: 1000px) { .ds-bn-tables-dash { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ds-bn-tables-widget { padding: .7em .9em; min-width: 0; display: flex; flex-direction: column; gap: .4em; }
.ds-bn-tables-widget.size-sm { grid-column: span 1; }
.ds-bn-tables-widget.size-md { grid-column: span 2; }
.ds-bn-tables-widget.size-lg { grid-column: 1 / -1; }
.ds-bn-tables-widget-head { flex-wrap: nowrap; }
.ds-bn-tables-widget-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-bn-tables-bignum { font-size: 30px; font-weight: 700; color: var(--text); padding: .3em 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ds-bn-tables-chartbox { position: relative; height: 240px; min-width: 0; }

/* design-system 给 .ds-btn / .ds-card 写了 display，会盖掉 hidden 属性 —— 本模块内统一兜住 */
.ds-bn-tables [hidden], .ds-bn-tables-view [hidden], .ds-bn-tables-pop [hidden] { display: none !important; }
.ds-bn-tables-gnew .inp-clear-wrap { flex: 1 1 auto; min-width: 0; }
.ds-bn-tables-gnew .inp-clear-wrap .ds-input { width: 100%; box-sizing: border-box; }
.ds-bn-tables-gnew .ds-btn { flex: none; }

/* ============================================================
   编辑列弹窗（2026-10-09）：类型按钮 / 色板 / 条件格式 / 谁能填·谁能看
   ============================================================ */
.ds-bn-tables-delcol { color: var(--danger); white-space: nowrap; margin-left: auto; margin-right: .6em; font-size: 13px; }
.ds-bn-tables-coledit { gap: .65em; }
.ds-bn-tables-colname { height: 40px; font-size: 15px; }
.ds-bn-tables-types { display: flex; flex-wrap: wrap; gap: .45em; }
.ds-bn-tables-type {
  border: 1px solid var(--border); background: var(--card-bg); color: var(--text-2); border-radius: 999px;
  padding: .32em .95em; font: inherit; font-size: 13px; cursor: pointer; white-space: nowrap;
}
.ds-bn-tables-type:hover { border-color: var(--primary); color: var(--primary); }
.ds-bn-tables-type.on { border-color: var(--text); background: var(--hover); color: var(--text); font-weight: 600; box-shadow: inset 0 0 0 1px var(--text); }
.ds-bn-tables-swatches { display: flex; flex-wrap: wrap; gap: .5em; }
.ds-bn-tables-dot {
  width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--border); cursor: pointer; padding: 0;
  display: inline-flex; align-items: center; justify-content: center; color: var(--danger); font-size: 13px; flex: none;
}
.ds-bn-tables-dot.none { background: var(--card-bg); }
.ds-bn-tables-dot.on { box-shadow: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--accent); }
.ds-bn-tables-swatches.sm { gap: .4em; }
.ds-bn-tables-swatches.sm .ds-bn-tables-dot { width: 22px; height: 22px; font-size: 11px; }
.ds-bn-tables-condrule { display: flex; flex-direction: column; gap: .45em; padding: .1em 0 .35em; }
.ds-bn-tables-condrow { flex-wrap: nowrap; }
.ds-bn-tables-condrow select[data-k="op"] { width: auto; flex: none; height: 34px; }
.ds-bn-tables-condrow .ds-bn-tables-grow1 { height: 34px; }
.ds-bn-tables-perm {
  display: flex; flex-direction: column; gap: .45em; min-width: 0;
  background: var(--hover); border-radius: var(--radius); padding: .75em .85em; margin-top: .3em;
}
.ds-bn-tables-perm.view { background: var(--warning-bg); }
.ds-bn-tables-permhead { font-weight: 650; font-size: 13px; color: var(--text); }
.ds-bn-tables-perm.view .ds-bn-tables-permhead { color: var(--warning); }
.ds-bn-tables-perm .ds-bn-row { flex-wrap: nowrap; white-space: nowrap; }
.ds-bn-tables-perm .ds-bn-tables-chips { margin: 0; }
.ds-bn-tables-perm .ds-bn-tables-chips:empty { display: none; }
.ds-bn-tables-perm .ds-bn-chip { cursor: pointer; white-space: nowrap; }
.ds-bn-tables-permlist {
  max-height: 220px; overflow: auto; background: var(--card-bg); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: .25em;
}
.ds-bn-tables-permrow { display: flex; align-items: center; gap: .5em; padding: .35em .5em; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap; min-width: 0; }
.ds-bn-tables-permrow > span:last-child { overflow: hidden; text-overflow: ellipsis; min-width: 0; font-size: 12px; }
.ds-bn-tables-permrow:hover, .ds-bn-tables-permrow.cur { background: var(--hover); }
.ds-bn-tables-permnone { padding: .5em; }
.ds-bn-tables-permnote { font-size: 12.5px; line-height: 1.65; color: var(--warning); }

/* 列头：列名右边的 ▾（排序 / 筛选 / 移动 / 隐藏） */
.ds-bn-tables-thmenu { display: inline-block; margin-left: .3em; padding: 0 .3em; border-radius: 4px; color: var(--muted); visibility: hidden; }
.ds-bn-tables-th:hover .ds-bn-tables-thmenu { visibility: visible; }
.ds-bn-tables-thmenu:hover { background: var(--border); color: var(--text); }

/* 图片列 */
.ds-bn-tables-thumb { width: 34px; height: 34px; object-fit: cover; border-radius: 4px; border: 1px solid var(--border); margin-right: 3px; vertical-align: middle; cursor: zoom-in; background: var(--hover); }
.ds-bn-tables-imgs { display: flex; flex-wrap: wrap; gap: .6em; min-height: 96px; }
.ds-bn-tables-imgitem { position: relative; width: 96px; height: 96px; }
.ds-bn-tables-imgitem img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); cursor: zoom-in; background: var(--hover); }
.ds-bn-tables-imgrm {
  position: absolute; top: -7px; right: -7px; width: 20px; height: 20px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--danger); color: #fff; font-size: 13px; line-height: 1; padding: 0;
}
.ds-bn-tables-imgadd {
  width: 96px; height: 96px; border: 1px dashed var(--border); border-radius: var(--radius-sm); background: var(--hover);
  color: var(--muted); cursor: pointer; font-size: 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1em;
}
.ds-bn-tables-imgadd span { font-size: 12px; white-space: nowrap; }
.ds-bn-tables-imgadd:hover { border-color: var(--primary); color: var(--primary); }
.ds-bn-tables-bigwrap { text-align: center; }
.ds-bn-tables-bigimg { max-width: 100%; max-height: 72vh; border-radius: var(--radius-sm); }

/* 列背景色 / 条件格式：14 色（1-7 浅，8-14 深）。半透明叠在卡片底上，深色模式自动跟着变。
   放在文件最后：要盖过计算列的灰底。 */
.ds-bn-tables-bg1  { background: color-mix(in srgb, #ef4444 13%, transparent); }
.ds-bn-tables-bg2  { background: color-mix(in srgb, #f97316 15%, transparent); }
.ds-bn-tables-bg3  { background: color-mix(in srgb, #eab308 18%, transparent); }
.ds-bn-tables-bg4  { background: color-mix(in srgb, #22c55e 14%, transparent); }
.ds-bn-tables-bg5  { background: color-mix(in srgb, #3b82f6 14%, transparent); }
.ds-bn-tables-bg6  { background: color-mix(in srgb, #a855f7 13%, transparent); }
.ds-bn-tables-bg7  { background: color-mix(in srgb, #94a3b8 20%, transparent); }
.ds-bn-tables-bg8  { background: color-mix(in srgb, #ef4444 46%, transparent); }
.ds-bn-tables-bg9  { background: color-mix(in srgb, #f97316 50%, transparent); }
.ds-bn-tables-bg10 { background: color-mix(in srgb, #eab308 58%, transparent); }
.ds-bn-tables-bg11 { background: color-mix(in srgb, #22c55e 46%, transparent); }
.ds-bn-tables-bg12 { background: color-mix(in srgb, #3b82f6 48%, transparent); }
.ds-bn-tables-bg13 { background: color-mix(in srgb, #a855f7 44%, transparent); }
.ds-bn-tables-bg14 { background: color-mix(in srgb, #94a3b8 55%, transparent); }
.ds-bn-tables-cell[class*="ds-bn-tables-bg"], .ds-bn-tables-fval[class*="ds-bn-tables-bg"] { color: var(--text); }

/* 智能列：大白话 → 公式 */
.ds-bn-tables-smartta { min-height: 76px; }
.ds-bn-tables-smartnote { font-size: 12.5px; line-height: 1.7; }
.ds-bn-tables-smartnote:empty { display: none; }
/* 表中表：关联记录可点开 */
.ds-bn-tables-chip.link.open { cursor: pointer; }
.ds-bn-tables-chip.link.open:hover { text-decoration: underline; }
/* 表中表：在当前行下面展开对面表（width:0 + min-width:100% → 不把主表撑宽，宽了自己横向滚） */
.ds-bn-tables-nesttog { display: inline-block; margin-right: .35em; padding: 0 .35em; border-radius: 4px; font-size: 12px; color: var(--primary); cursor: pointer; white-space: nowrap; }
.ds-bn-tables-nesttog:hover, .ds-bn-tables-nesttog.on { background: color-mix(in srgb, var(--primary) 12%, transparent); }
.ds-bn-tables-grid tr.ds-bn-tables-nestrow > td { padding: .3em .65em .7em 3.2em; background: var(--hover); }
.ds-bn-tables-nestbox { width: 0; min-width: 100%; display: flex; flex-direction: column; gap: .4em; border-left: 3px solid color-mix(in srgb, var(--primary) 45%, transparent); padding-left: .7em; }
.ds-bn-tables-nesthead { display: flex; align-items: center; gap: .5em; white-space: nowrap; min-width: 0; }
.ds-bn-tables-nestscroll { overflow-x: auto; min-width: 0; }
.ds-bn-tables-nestgrid { border-collapse: collapse; background: var(--card-bg); font-size: 12.5px; }
.ds-bn-tables-nestgrid th, .ds-bn-tables-nestgrid td { border: 1px solid var(--border); padding: .35em .6em; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.ds-bn-tables-nestgrid th { color: var(--text-2); font-weight: 600; background: var(--border-2); }
.ds-bn-tables-nestgrid td.ds-bn-tables-idx { width: 40px; color: var(--muted); cursor: pointer; }
.ds-bn-tables-nestgrid tr:hover .ds-bn-tables-expand { visibility: visible; }
