/**
 * crud-table.css — CrudTable / NeoInputTable 表格滚动
 *
 * NeoUI DataTable 容器默认 overflow-x-auto（sticky 列需要）。
 * 操作列按钮等内容若超出单元格，会把 tbody 撑宽 1～4px，导致横向滚动条一直出现。
 *
 * 做法：table 铺满容器 + table-layout:fixed，单元格 overflow:hidden，内容用 truncate 省略。
 * 列总宽超出视口时仍可通过容器 overflow-x-auto 滚动（见 table min-width）。
 */

.crud-table [data-keyboard-nav] table {
  width: 100%;
  min-width: 100%;
  table-layout: fixed;
}

.crud-table [data-keyboard-nav] th,
.crud-table [data-keyboard-nav] td {
  overflow: hidden;
}

/* CrudAuditPanel：历史版本 JSON 在弹窗内换行/滚动，避免撑破对话框宽度 */
.crud-audit-panel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.crud-audit-panel [role="tabpanel"] {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.crud-audit-json {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-all;
}

/* 列表纵向滚动时固定表头（滚动容器为 DataTable 的 overflow-y-auto 外层） */
.crud-table [data-keyboard-nav] thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background-color: color-mix(in oklab, var(--muted) 90%, transparent);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 var(--border);
  white-space: nowrap;
}

.crud-table [data-keyboard-nav] thead th > div {
  min-width: 0;
  overflow: hidden;
}

.crud-table [data-keyboard-nav] thead th span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 单选模式：RadioGroup 包裹 DataTable 时需参与 flex 高度链，否则纵向滚动条不出现 */
.crud-table [role="radiogroup"] {
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

/* DataTable 内层默认 h-full，在 flex 列布局下 min-height:auto 会按内容撑开，需显式收缩 */
.crud-table [role="radiogroup"] > .space-y-4 {
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.crud-table [role="radiogroup"] > .space-y-4 > .rounded-md {
  flex: 1 1 0%;
  min-height: 0;
}
