/* 后台表格统一在自身容器内滚动，避免记录增多时撑高整个页面。 */
#content :is(.table-wrap, .admin-data-table-wrap, .table-wrap-scroll, .order-card-list, .loot-goods-table-wrap, .profit-panel-table-wrap) {
  max-height: min(56dvh, 560px);
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

/* 列表页使用导航下方的剩余高度：筛选与分页固定，只有数据区收缩并滚动。 */
.layout .content:has(> :is(.table-wrap-page, .admin-data-table-wrap, .order-card-list, .operation-log-table-layout, .member-page, .loot-goods-page-table)) {
  display: flex;
  flex-direction: column;
  overflow-y: hidden;
}
.layout .content:has(> :is(.table-wrap-page, .admin-data-table-wrap, .order-card-list, .operation-log-table-layout, .member-page, .loot-goods-page-table)) > * {
  flex-shrink: 0;
}
.layout .content > :is(.table-wrap-page, .admin-data-table-wrap, .order-card-list, .operation-log-table-layout, .loot-goods-page-table) {
  flex: 1 1 0;
  min-height: 0;
  max-height: 560px;
  overflow: auto;
}
.layout .content > .member-page {
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
.member-page .member-grid-scroll { flex: 1 1 0; height: auto; min-height: 0; max-height: 560px; overscroll-behavior: contain; }

/* 日志右侧固定操作列继续与数据列同步滚动，外层仅负责分配高度。 */
.layout .content > .operation-log-table-layout { height: auto; overflow: hidden; }
.layout .content > .operation-log-table-layout > .operation-log-table-scroll { height: 100%; max-height: 100%; }
#content :is(.table-wrap, .admin-data-table-wrap, .member-grid-scroll, .loot-goods-table-wrap) thead {
  position: sticky;
  top: 0;
  z-index: 5;
}

/* 弹窗里的表格沿用原有容器，限制数据高度，避免挤掉确认和取消按钮。 */
.modal :is(.table-wrap, .admin-data-table-wrap, .split-table-wrap, .profit-panel-table-wrap, .loot-goods-table-wrap) {
  max-height: min(50dvh, 420px);
  overflow: auto;
  overscroll-behavior: contain;
}
