.member-management-view-tabs {
  display: inline-flex;
  gap: 8px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  background-image: none;
  border: 0;
  box-shadow: none;
}
.member-management-view-tab {
  min-width: var(--admin-tab-width);
  min-height: var(--admin-tab-height);
  padding: 0 var(--admin-tab-padding-x);
  border: 1px solid transparent;
  border-radius: var(--admin-tab-radius);
  background: transparent;
  color: var(--wb-theme-button-soft-text);
  font-size: var(--admin-tab-font-size);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.24s ease, color 0.24s ease, box-shadow 0.24s ease;
}
.member-management-view-tab:hover { background: var(--admin-panel-surface); color: var(--admin-panel-text-strong); }
.member-management-view-tab.active {
  background: var(--wb-theme-button-strong);
  color: var(--wb-theme-button-text);
  border-color: var(--wb-theme-button-border);
  box-shadow: none;
}
#packages .member-management-primary-shell {
  display: flex;
  align-items: center;
  gap: 12px;
}

#packages .member-management-primary-shell > #memberManagementPrimaryTabs {
  flex: 1 1 auto;
  min-width: 0;
}

#packages .member-management-primary-actions {
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
}

#packages .member-management-primary-filter {
  align-items: center;
}

#packages .member-management-primary-filter .wb-select {
  --wb-select-trigger-height: var(--admin-tab-height);
  --wb-select-trigger-radius: var(--admin-tab-radius);
  width: var(--admin-tab-width) !important;
  min-width: var(--admin-tab-width) !important;
}

#packages .member-management-primary-filter .wb-select-trigger,
#packages .member-management-primary-filter .form-select,
#memberManagementDeliveryGuideTopBtn {
  width: var(--admin-tab-width) !important;
  min-width: var(--admin-tab-width) !important;
  height: var(--admin-tab-height) !important;
  min-height: var(--admin-tab-height) !important;
  padding: 0 var(--admin-tab-padding-x) !important;
  border-radius: var(--admin-tab-radius) !important;
  font-size: var(--admin-tab-font-size) !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  box-shadow: none !important;
  /* 这里只统一尺寸和圆角；不要写 transform: none，否则会把全局 .btn-secondary:hover 的悬停效果一起禁掉 */
}

#packages #memberManagementMount {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

#packages #memberManagementMount > .api-unified-workspace-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

#packages #memberManagementMount > .api-unified-workspace-card > .api-unified-workspace-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

#packages #memberManagementMount > .member-management-users-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--admin-section-shell-gap);
  min-height: 0;
}

#member-users.section.active.member-management-table-fit #memberUsersManagementMount,
#member-users.section.active.member-management-table-fit #memberManagementUsersView {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

#member-users.section.active.member-management-table-fit #memberManagementUsersView .member-management-users-body,
#member-users.section.active.member-management-table-fit #memberManagementUsersView .member-management-users-table-shell {
  flex: 1 1 auto;
  min-height: 0;
}

#memberManagementUsersView .member-management-users-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: auto;
  overflow: hidden;
  padding-bottom: 0;
  --admin-table-visible-row-count: 10;
}

.member-management-view-pane,
.member-management-pane {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--admin-table-layout-gap);
  min-height: 0;
}
.member-management-toolbar:not(.member-management-users-toolbar) { margin-bottom: 0; }

/* ------------------------------------------------------------------
   用户管理 / 订单管理 顶部筛选条（工具栏）最终外观
   说明：用户管理的工具栏由 renderMemberSection() 反复重新渲染，
   之前依赖 index.html 里 applyToolbarStyle() 写内联样式，元素一旦
   重建内联样式就丢失，只剩下被 .filters 重置过的样式（透明、无内边距、
   无圆角），于是工具栏会突然变成白色扁条、输入框像“漏出”容器。
   订单页的筛选条是静态 HTML，不会被重建，所以那边一直正常。
   现在把外观全部收敛到这里的 CSS，选择器权重高于
   style-04.css 的 `:is(...) .filters` 重置，重建/切换/刷新都不会再变形。
   ------------------------------------------------------------------ */
#orders .filters.order-management-filters,
#member-users .filters.member-management-users-toolbar,
#memberManagementUsersView .filters.member-management-users-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  box-sizing: border-box;
  flex: 0 0 auto;
  min-height: 62px;
  padding: 8px 12px !important;
  margin-bottom: 8px !important;
  border: 1px solid var(--admin-panel-border-soft) !important;
  border-radius: 18px !important;
  background: var(--admin-panel-header-surface, #dbeaf9) !important;
  background-image: var(--admin-panel-header-image, linear-gradient(180deg, #dbeaf9 0%, #c9dff5 100%)) !important;
  background-clip: padding-box !important;
  overflow: visible;
}

#orders .filters.order-management-filters > input,
#member-users .filters.member-management-users-toolbar > input,
#memberManagementUsersView .filters.member-management-users-toolbar > input {
  box-sizing: border-box;
  height: 44px;
  min-height: 44px;
}

#orders .filters.order-management-filters > .wb-select,
#member-users .filters.member-management-users-toolbar > .wb-select,
#memberManagementUsersView .filters.member-management-users-toolbar > .wb-select {
  box-sizing: border-box;
}

#memberManagementUsersView .order-management-title-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
  flex-wrap: wrap;
}

#memberManagementUsersView .order-management-title-row h4 {
  margin: 0;
  flex: 0 0 auto;
}

#memberManagementUsersView .order-management-summary {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--admin-panel-text-muted);
}

#member-users #memberManagementUsersView.member-management-view-pane {
  /* 去掉表格外那层“白色方角底板”，避免圆角处漏出白色直角 */
  background: transparent !important;
  background-image: none !important;
}

#memberManagementUsersView .member-management-users-table-shell,
#member-users .member-management-users-table-shell {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  overflow: hidden !important;
  border-radius: 16px !important;
  margin-bottom: 0;
  border: 1px solid var(--admin-panel-border-soft);
  background: var(--admin-panel-surface);
  background-image: none;
  box-shadow: none;
}

#memberManagementUsersView .member-management-users-table-scroll {
  --member-management-row-divider: #b0b4bb;
  --member-management-row-height: var(--member-management-users-row-height, var(--admin-table-row-height));
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background-image: none !important;
}

#memberManagementUsersView #memberUsersTable {
  width: 100%;
  min-width: 0;
  height: auto;
  table-layout: fixed;
  background-color: transparent;
  background-image: none !important;
}

#memberManagementUsersView #memberUsersTable th,
#memberManagementUsersView #memberUsersTable td {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap !important;
  padding-left: 8px;
  padding-right: 8px;
}

#memberManagementUsersView #memberUsersTable tbody tr:not(.table-state-row):not(.admin-table-spacer-row),
#memberManagementUsersView #memberUsersTable .admin-table-spacer-row {
  height: var(--member-management-users-row-height, var(--admin-table-row-height));
  max-height: var(--member-management-users-row-height, var(--admin-table-row-height));
}

#memberManagementUsersView #memberUsersTable tbody td,
#memberManagementUsersView #memberUsersTable .admin-table-spacer-cell {
  height: var(--member-management-users-row-height, var(--admin-table-row-height));
  max-height: var(--member-management-users-row-height, var(--admin-table-row-height));
}

#memberManagementUsersView #memberUsersTable > tbody:has(> .table-state-row--fill),
#memberManagementUsersView #memberUsersTable > tbody > .table-state-row--fill,
#memberManagementUsersView #memberUsersTable > tbody > .table-state-row--fill > .table-state-cell {
  height: auto;
}

#memberManagementUsersView #memberUsersTable > tbody > .table-state-row--fill > .table-state-cell > .table-state-content--fill {
  --table-state-row-height: var(--member-management-users-row-height, var(--admin-table-row-height));
  box-sizing: border-box;
  min-height: calc(var(--member-management-users-row-height, var(--admin-table-row-height)) * var(--admin-table-visible-row-count));
  height: auto;
}

#memberManagementUsersView #memberUsersTable .admin-table-spacer-row:hover,
#memberManagementUsersView #memberUsersTable .admin-table-spacer-row:hover .admin-table-spacer-cell {
  background: transparent !important;
  background-image: none !important;
}

#memberManagementUsersView #memberUsersTable th:nth-child(1),
#memberManagementUsersView #memberUsersTable td:nth-child(1) {
  width: 4%;
  padding-left: 8px;
  padding-right: 8px;
}

#memberManagementUsersView #memberUsersTable th:nth-child(2),
#memberManagementUsersView #memberUsersTable td:nth-child(2) {
  width: 11%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(3),
#memberManagementUsersView #memberUsersTable td:nth-child(3) {
  width: 7%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(4),
#memberManagementUsersView #memberUsersTable td:nth-child(4) {
  width: 7%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(5),
#memberManagementUsersView #memberUsersTable td:nth-child(5) {
  width: 11%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(6),
#memberManagementUsersView #memberUsersTable td:nth-child(6) {
  width: 19%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(7),
#memberManagementUsersView #memberUsersTable td:nth-child(7) {
  width: 7%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(8),
#memberManagementUsersView #memberUsersTable td:nth-child(8) {
  width: 11%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(9),
#memberManagementUsersView #memberUsersTable td:nth-child(9) {
  width: 11%;
}

#memberManagementUsersView #memberUsersTable th:nth-child(10),
#memberManagementUsersView #memberUsersTable td:nth-child(10) {
  width: 12%;
  overflow: visible;
  text-overflow: clip;
}

#memberManagementUsersView #memberUsersTable code,
#memberManagementUsersView #memberUsersTable .member-status,
#memberManagementUsersView #memberUsersTable .btn-sm {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#memberManagementUsersView #memberUsersTable code {
  display: inline-block;
  vertical-align: middle;
}

#memberManagementUsersView #memberUsersTable .btn-sm {
  min-width: 0;
  padding-left: 8px;
  padding-right: 8px;
}

#memberManagementUsersView .member-user-actions {
  flex-wrap: wrap;
  gap: 4px;
}

#memberManagementUsersView .member-user-actions .btn-sm {
  min-height: 30px !important;
  padding: 5px 8px !important;
  font-size: 12px !important;
}

#memberManagementUsersView .member-management-users-pagination {
  display: flex;
  flex: 0 0 auto;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 100% !important;
  align-self: stretch;
  min-height: var(--admin-table-pagination-height);
  margin: 0 !important;
  padding: var(--admin-table-pagination-padding-y) 0 !important;
  border-top: none;
  /* 底部分页条铺满表格底部；圆角交给外层 table-shell 的 overflow 裁切，
     否则分页条自己的圆角会在左下角留出一块白色直角 */
  border-radius: 0 !important;
  overflow: hidden;
}

#memberManagementUsersView .member-management-users-pagination .order-management-pagination-inner {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
}

.member-management-users-toolbar #memberUserSearchInput {
  flex: 1 1 320px;
  min-width: 260px;
}
.member-management-users-toolbar #memberUserStatusFilter {
  flex: 0 0 200px;
  margin-left: auto;
}
.member-management-users-toolbar .wb-select:has(#memberUserStatusFilter) {
  flex: 0 0 200px !important;
  width: 200px !important;
  min-width: 200px !important;
  margin-left: auto;
}
.member-management-table-wrap {
  flex: 0 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: auto;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 16px;
  background: var(--admin-panel-surface);
  background-image: var(--admin-panel-surface-soft-image);
}

#packages #memberManagementCatalogView .member-management-table-wrap,
#packages #memberManagementCodeSettingsView .member-management-table-wrap {
  /* 行高有 54px 下限，窗口变矮/屏幕小时表格会比容器高，这里必须允许纵向滚动，否则内容被裁掉 */
  overflow-x: hidden;
  overflow-y: auto;
  box-shadow: none !important;
}

#packages #memberManagementRecordsView .member-management-table-wrap {
  /* 与订单管理 / 用户管理一致：纵向滚动交给原生滚动条，占独立空间，不压表格内容 */
  overflow-x: hidden;
  overflow-y: auto;
  box-shadow: none !important;
}

#memberManagementRecordsView #activationRecordsTable {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

#memberManagementRecordsView #activationRecordsTable th,
#memberManagementRecordsView #activationRecordsTable td {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap !important;
  padding-left: 8px;
  padding-right: 8px;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(1),
#memberManagementRecordsView #activationRecordsTable td:nth-child(1) {
  width: 4%;
  padding-left: 8px;
  padding-right: 8px;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(2),
#memberManagementRecordsView #activationRecordsTable td:nth-child(2) {
  width: 8%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(3),
#memberManagementRecordsView #activationRecordsTable td:nth-child(3) {
  width: 10%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(4),
#memberManagementRecordsView #activationRecordsTable td:nth-child(4) {
  width: 14%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(5),
#memberManagementRecordsView #activationRecordsTable td:nth-child(5) {
  width: 15%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(6),
#memberManagementRecordsView #activationRecordsTable td:nth-child(6) {
  width: 9%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(7),
#memberManagementRecordsView #activationRecordsTable td:nth-child(7) {
  width: 24%;
  white-space: normal !important;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(8),
#memberManagementRecordsView #activationRecordsTable td:nth-child(8) {
  width: 8%;
}

#memberManagementRecordsView #activationRecordsTable th:nth-child(9),
#memberManagementRecordsView #activationRecordsTable td:nth-child(9) {
  width: 8%;
  padding-left: 6px;
  padding-right: 6px;
}

/* 内测码那一行才有按钮；按钮本身沿用表格里的小按钮尺寸，不另做样式 */
#memberManagementRecordsView #activationRecordsTable .activation-record-actions-cell {
  display: flex;
  align-items: center;
  gap: 4px;
  overflow: visible;
  text-overflow: clip;
}

#memberManagementRecordsView #activationRecordsTable .activation-record-code-cell code[role="button"] {
  cursor: pointer;
}

#memberManagementRecordsView #activationRecordsTable .activation-record-code-cell code {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  word-break: break-all;
  line-height: 1.45;
}

#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th,
#packages #memberManagementCodeSettingsView .member-management-table-wrap > .data-table th,
#packages #memberManagementRecordsView .member-management-table-wrap > .data-table th {
  border-bottom: 1px solid var(--admin-panel-border-soft) !important;
}

#packages .admin-section-layout-card {
  gap: var(--admin-section-shell-gap);
  overflow: visible;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

#packages .admin-section-layout-card > .member-management-workspace-header {
  width: 100%;
  box-sizing: border-box;
  min-height: calc(var(--admin-tab-height) + 18px);
  padding: 8px 12px !important;
  margin: 0 !important;
  border: 1px solid var(--admin-panel-border-soft) !important;
  border-radius: 18px;
  background: var(--admin-panel-header-surface) !important;
  background-image: var(--admin-panel-header-image) !important;
  box-shadow: none !important;
}

#packages .admin-section-layout-card > .member-management-view-pane {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  overflow: visible;
}

#packages .member-management-toolbar:not(.member-management-users-toolbar) {
  margin-bottom: 0 !important;
}

#memberManagementRecordsView .member-management-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: calc(var(--admin-tab-height) + 18px);
  height: calc(var(--admin-tab-height) + 18px);
  padding: 8px 12px !important;
  border-radius: 18px !important;
  border: 1px solid var(--admin-panel-border-soft) !important;
  background: var(--admin-panel-header-surface) !important;
  background-image: var(--admin-panel-header-image) !important;
  box-shadow: none !important;
}

#memberManagementRecordsView .member-management-toolbar .wb-select {
  --wb-select-trigger-height: var(--admin-tab-height);
  --wb-select-trigger-radius: var(--admin-tab-radius);
  flex: 0 0 var(--admin-tab-width);
  width: var(--admin-tab-width);
  min-width: var(--admin-tab-width);
  height: var(--admin-tab-height);
  min-height: var(--admin-tab-height);
}

#memberManagementRecordsView .member-management-toolbar .wb-select-trigger,
#memberManagementRecordsView .member-management-toolbar .form-select {
  width: var(--admin-tab-width) !important;
  min-width: var(--admin-tab-width) !important;
  height: var(--admin-tab-height) !important;
  min-height: var(--admin-tab-height) !important;
  padding: 0 var(--admin-tab-padding-x) !important;
  border-radius: var(--admin-tab-radius) !important;
  font-size: var(--admin-tab-font-size) !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
  transform: none !important;
}

#memberManagementRecordsView .member-management-toolbar .wb-select-trigger:hover {
  box-shadow: none !important;
  transform: none !important;
}
.member-management-table-wrap > .data-table {
  flex: 0 0 auto;
  height: auto;
  align-self: stretch;
  margin-bottom: 0;
}

#packages.section.active.member-management-table-fit .member-management-table-wrap {
  flex: 1 1 auto !important;
}

#packages.section.active.member-management-table-fit #memberManagementUsersView.member-management-view-pane.active .member-management-users-table-shell {
  flex: 1 1 auto !important;
}

#packages.section.active.member-management-table-fit #memberManagementUsersView.member-management-view-pane.active .member-management-users-table-scroll {
  flex: 1 1 auto !important;
}

#packages.section.active.member-management-table-fit .member-management-table-wrap > .data-table {
  flex: 0 0 auto !important;
  min-height: 0;
  height: auto;
}

#packages.section.active.member-management-table-fit #memberManagementUsersView.member-management-view-pane.active #memberUsersTable {
  flex: 0 0 auto !important;
  min-height: 0 !important;
  height: auto;
}

.member-management-table-wrap > .data-table > tbody {
  height: auto;
}
.member-management-table-wrap > .data-table:has(> tbody > .table-state-row--fill) {
  flex: 0 0 auto;
  height: auto;
}
.member-management-table-wrap > .data-table > tbody:has(> .table-state-row--fill),
.member-management-table-wrap > .data-table > tbody > .table-state-row--fill,
.member-management-table-wrap > .data-table > tbody > .table-state-row--fill > .table-state-cell {
  height: auto;
}
.member-management-table-wrap > .data-table > tbody > .table-state-row--fill > .table-state-cell > .table-state-content--fill {
  --table-state-row-height: var(--admin-table-row-height);
  min-height: var(--admin-table-fixed-body-height);
  height: auto;
}
.member-management-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding-top: 4px;
}

#packages .member-management-actions-cell {
  /* 四个按钮（发码 / 规则 / 编辑 / 删除）各 42px + 3 个 4px 间距 + 左右各 6px 内边距 = 192px，
     这里留到 200px，窗口变窄时也不会把最后一个按钮挤出去 */
  width: 200px;
  min-width: 200px;
  padding-left: 6px !important;
  padding-right: 6px !important;
}

#packages .member-management-actions-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: nowrap;
}

#packages .member-management-action-btn {
  flex: 0 0 42px;
  min-width: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
  white-space: nowrap;
}

#packages .member-management-table-wrap:not(.admin-table-bottom-fit-scroll) {
  --member-management-row-divider: #b0b4bb;
  --member-management-row-height: var(--admin-table-row-height);
  background-image:
    linear-gradient(
      to bottom,
      transparent calc(var(--member-management-row-height) - 1px),
      #b0b4bb calc(var(--member-management-row-height) - 1px),
      #b0b4bb var(--member-management-row-height)
    ),
    var(--admin-panel-surface-soft-image) !important;
  background-position: 0 var(--admin-table-header-height), 0 0 !important;
  background-repeat: repeat-y, repeat !important;
  background-size: 100% var(--member-management-row-height), auto !important;
  box-shadow: none !important;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll {
  --member-management-row-divider: #b0b4bb;
  box-shadow: none !important;
  /* 分页条是表格容器的兄弟节点，会自己带底部 16px 圆角；
     容器这里收成直角，否则它的圆角会在分页条上方露出一块白弧。
     选择器权重已高于 .member-management-table-wrap 的 16px，不需要 !important */
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll > .data-table {
  min-height: calc(100% - var(--admin-table-bottom-pagination-height, 0px)) !important;
}

#packages .member-management-table-wrap > .data-table {
  min-height: 100% !important;
  background-color: transparent;
  background-image: none !important;
}

#packages .data-table td,
#packages .data-table .admin-table-spacer-cell,
#packages .data-table .table-state-cell {
  border-bottom: 0 !important;
}

#packages .data-table th {
  border-bottom: 1px solid #b0b4bb !important;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll > .data-table > tbody > tr:not(.table-state-row):not(.admin-table-spacer-row):hover {
  background: rgba(var(--admin-accent-rgb), 0.08) !important;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll > .data-table > tbody > tr:not(.table-state-row):not(.admin-table-spacer-row):hover > td {
  background: transparent !important;
  background-image: none !important;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll > .data-table > tbody > tr.table-state-row:hover,
#packages .member-management-table-wrap.admin-table-bottom-fit-scroll > .data-table > tbody > tr.admin-table-spacer-row:hover {
  background: transparent !important;
}

#packages #memberManagementUsersView #memberUsersTable thead th,
#packages #memberManagementUsersView #memberUsersTable tbody td:not(.table-state-cell),
#packages #memberManagementUsersView #memberUsersTable .admin-table-spacer-cell {
  border-bottom: 1px solid var(--admin-panel-border-soft) !important;
}

#packages #memberManagementUsersView #memberUsersTable .table-state-cell {
  border-bottom: 0 !important;
}

#packages.section.active.member-management-table-fit #memberManagementWorkspaceCard,
#packages.section.active.member-management-table-fit #memberManagementCatalogView.active,
#packages.section.active.member-management-table-fit #memberManagementCodeSettingsView.active,
#packages.section.active.member-management-table-fit #memberManagementRecordsView.active {
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

/* 发码设置没有表格，是设置面板：让面板框同样撑到浏览器底部，高度固定、不随内容多少变化。
   用 grid 的 1fr 行把卡片拉满，内容超了在容器里滚动，外框高度不动。 */
#packages #memberManagementCodeSettingsView.active > #activationCodeSettingsBody {
  flex: 1 1 auto;
  min-height: 0;
  grid-auto-rows: 1fr;
  overflow: auto;
}

#packages.section.active.member-management-table-fit #memberManagementPackagePane.active,
#packages.section.active.member-management-table-fit #memberManagementAddonPane.active {
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

#packages.section.active.member-management-table-fit #memberManagementPackagePane.active > .member-management-table-wrap {
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

#packages.section.active.member-management-table-fit #memberManagementRecordsView.active {
  position: relative;
}

#packages.section.active.member-management-table-fit #memberManagementRecordsView.active > .member-management-table-wrap {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  margin-bottom: 0 !important;
}

/* 三张表（主套餐 / 加购包 / 记录）的表格与分页栏之间不留间隙：
   分页栏回到正常流后紧贴表格下沿，与订单管理 / 用户管理同构。 */
#packages #memberManagementPackagePane,
#packages #memberManagementAddonPane,
#packages #memberManagementRecordsView {
  gap: 0 !important;
}
.member-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.member-status--on { background: var(--wb-theme-success-soft); color: var(--wb-theme-success-text); }
.member-status--off { background: var(--wb-theme-danger-soft); color: var(--wb-theme-danger-text); }
.member-status--soft { background: var(--wb-theme-info-soft); color: var(--wb-theme-info-text); }
#memberManagementRecordsView .member-record-usage--unused { background: var(--wb-theme-success-soft); color: var(--wb-theme-success-text); }
#memberManagementRecordsView .member-record-usage--used { background: var(--wb-theme-danger-soft); color: var(--wb-theme-danger-text); }
.member-name-cell { display: flex; flex-direction: column; gap: 4px; }
.member-name-cell strong { color: var(--admin-panel-text-strong); }
.member-name-cell span,
.member-muted-text { font-size: 12px; color: var(--admin-panel-text-muted); }
.member-editable-cell {
  cursor: pointer;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}
.member-editable-cell:hover {
  background: rgba(var(--admin-accent-rgb), 0.12);
  box-shadow: none;
}
.member-editable-cell:active {
  background: rgba(var(--admin-accent-rgb), 0.18);
}
.member-editable-cell--editing {
  background: transparent !important;
  box-shadow: none !important;
  cursor: default;
  vertical-align: top;
}
.member-editable-cell--code code {
  display: inline-block;
}
.member-cell-editor {
  display: inline-grid;
  gap: 10px;
  width: auto;
  max-width: 100%;
  min-width: 0;
  justify-items: start;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.member-editable-cell--editing .member-cell-editor-control.form-control,
.member-editable-cell--editing .member-cell-editor-control.form-select {
  width: fit-content !important;
  min-width: 96px !important;
  max-width: min(100%, 280px) !important;
}
.member-editable-cell--editing .member-cell-editor-control--code.form-control,
.member-editable-cell--editing .member-cell-editor-control--code.form-select {
  min-width: 108px !important;
  max-width: min(100%, 220px) !important;
}
.member-editable-cell--editing .member-cell-editor-control--textarea.form-control {
  min-height: 84px;
  min-width: 180px !important;
  max-width: min(100%, 320px) !important;
  resize: vertical;
}
.member-cell-editor-group {
  display: inline-grid;
  gap: 8px;
  width: auto;
  max-width: 100%;
  min-width: 0;
}
.member-cell-editor-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: wrap;
}
.member-binding-pill {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--wb-theme-info-soft);
  color: var(--wb-theme-info-text);
  font-size: 12px;
  font-weight: 600;
}
.member-user-identity,
.member-user-contact {
  display: grid;
  gap: 4px;
}
.member-user-identity strong,
.member-user-contact strong {
  color: var(--admin-panel-text-strong);
  font-size: 14px;
  word-break: break-word;
}
.member-user-identity span,
.member-user-contact span {
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  word-break: break-word;
}
.member-user-source-pill {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--wb-theme-info-soft);
  color: var(--wb-theme-info-text);
  font-size: 12px;
  font-weight: 600;
}

#modal.app-modal--member-wallet .modal-content {
  width: min(960px, 92vw) !important;
  max-height: calc(100vh - 40px) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

#modal.app-modal--member-wallet .modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}

.member-wallet-modal-body {
  gap: var(--admin-table-layout-gap);
}

.member-wallet-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: var(--admin-table-layout-gap);
  column-gap: 12px;
}

.member-wallet-summary-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 14px;
  background: var(--admin-panel-surface);
}

.member-wallet-summary-card span {
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  font-weight: 600;
}

.member-wallet-summary-card strong,
.member-wallet-summary-card code {
  color: var(--admin-panel-text-strong);
  font-size: 18px;
  line-height: 1.3;
  word-break: break-all;
}

.member-wallet-note {
  margin: var(--admin-table-layout-gap) 0 0;
  color: var(--admin-panel-text-muted) !important;
  font-size: 13px;
  line-height: 1.7;
}

.member-wallet-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  row-gap: var(--admin-table-layout-gap);
  column-gap: 12px;
}

.member-wallet-form-grid label {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.member-wallet-form-grid label > span {
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  font-weight: 700;
}

.member-wallet-form-field--wide {
  grid-column: 1 / -1;
}

.member-wallet-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 14px;
}

.member-wallet-table {
  min-width: 560px;
  margin: 0;
}

.member-wallet-table th,
.member-wallet-table td {
  white-space: nowrap;
}

.member-wallet-table td:nth-child(6) {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.member-wallet-empty {
  padding: 24px !important;
  text-align: center;
  color: var(--admin-panel-text-muted) !important;
}

@media (max-width: 820px) {
  .member-wallet-summary-grid,
  .member-wallet-form-grid {
    grid-template-columns: 1fr;
  }
}
.member-page-admin-shell {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.member-page-admin-tabs-shell {
  margin-bottom: var(--admin-table-layout-gap);
  padding: 8px 12px;
  border-radius: 18px;
  border: 1px solid var(--admin-panel-border-soft);
  background: var(--admin-panel-header-surface);
  background-image: var(--admin-panel-header-image);
  box-shadow: none;
}
.member-page-admin-tabs {
  display: inline-flex;
  width: fit-content;
  gap: 8px;
  padding: 0;
  margin-bottom: 0;
  border-radius: 0;
  background: transparent;
  background-image: none;
  border: 0;
  box-shadow: none;
}
.member-page-admin-tab {
  min-width: var(--admin-tab-width);
  min-height: var(--admin-tab-height);
  padding: 0 var(--admin-tab-padding-x);
  border: 1px solid transparent;
  border-radius: var(--admin-tab-radius);
  background: transparent;
  color: var(--wb-theme-button-soft-text);
  font-size: var(--admin-tab-font-size);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.24s ease, color 0.24s ease, box-shadow 0.24s ease;
}
.member-page-admin-tab:hover {
  background: var(--admin-panel-surface);
  color: var(--admin-panel-text-strong);
}
.member-page-admin-tab.active {
  background: var(--wb-theme-button-strong);
  color: var(--wb-theme-button-text);
  border-color: var(--wb-theme-button-border);
  box-shadow: none;
}
.member-page-admin-panel {
  margin-bottom: 0;
  padding: 20px;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 22px;
  background: var(--admin-panel-surface);
  background-image: var(--admin-panel-surface-soft-image);
  box-shadow: none;
}
#packages #memberPageAdminConfig.member-page-admin-panel {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  background-image: none;
  box-shadow: none;
}
.member-page-admin-preview-surface {
  overflow: visible;
}
.member-page-preview-container {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  row-gap: var(--admin-table-layout-gap);
  column-gap: 20px;
  width: 100%;
  min-width: 1200px;
  padding-bottom: 0;
  margin-bottom: 0;
}
.member-page-config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: var(--admin-table-layout-gap);
  column-gap: 18px;
}
.member-page-admin-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  row-gap: var(--admin-table-layout-gap);
  column-gap: 16px;
  padding: 20px 22px;
  border-radius: 22px;
  border: 1px solid var(--admin-panel-border-soft);
  background: var(--admin-panel-surface-strong);
  background-image: var(--admin-panel-surface-strong-image);
  box-shadow: none;
}
.member-page-admin-hero--full {
  margin-bottom: var(--admin-table-layout-gap);
}
.member-page-admin-copy {
  display: grid;
  gap: 6px;
}
.member-page-admin-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--wb-theme-info-soft);
  color: var(--wb-theme-info-text);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.member-page-admin-copy h5 {
  margin: 0;
  color: var(--admin-panel-text-strong);
  font-size: 22px;
}
.member-page-admin-copy p {
  margin: 0;
  color: var(--admin-panel-text-muted);
  font-size: 14px;
  line-height: 1.7;
}
.member-page-admin-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.member-page-admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  row-gap: var(--admin-table-layout-gap);
  column-gap: 18px;
  align-items: start;
}
.member-page-preview-stack,
.member-page-admin-side {
  display: grid;
  row-gap: var(--admin-table-layout-gap);
  column-gap: 18px;
}
.member-page-device-card,
.member-page-info-card {
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 22px;
  background: var(--admin-panel-surface);
  background-image: var(--admin-panel-surface-soft-image);
  box-shadow: none;
}
.member-page-device-card {
  padding: 18px;
}
.member-page-device-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: var(--admin-table-layout-gap);
}
.member-page-device-head span {
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.member-page-device-head strong {
  color: var(--admin-panel-text-strong);
  font-size: 15px;
}
.member-page-preview-iframe {
  width: 100%;
  border: 0;
  display: block;
  background: var(--wb-theme-body-bg);
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.member-page-preview-iframe::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.member-page-preview-iframe.member-page-preview-iframe--touch.is-dragging {
  cursor: grabbing;
}
.member-page-info-card {
  padding: 18px 20px;
}
.member-page-info-card--wide {
  grid-column: 1 / -1;
}
.member-page-config-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  row-gap: var(--admin-table-layout-gap);
  column-gap: 16px;
  margin-bottom: var(--admin-table-layout-gap);
}
.member-page-config-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.member-page-info-card h6 {
  margin: 0 0 var(--admin-table-layout-gap);
  color: var(--admin-panel-text-strong);
  font-size: 15px;
}
.member-page-url-tip {
  margin: 0 0 var(--admin-table-layout-gap);
  color: var(--admin-panel-text-muted);
  font-size: 13px;
  line-height: 1.7;
}
.member-page-endpoint-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: var(--admin-table-layout-gap);
  column-gap: 16px;
}
.member-page-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: var(--admin-table-layout-gap);
  column-gap: 16px;
}
.member-page-form-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.member-page-form-field--full {
  grid-column: 1 / -1;
}
.member-page-form-field span {
  color: var(--admin-panel-text-strong);
  font-size: 13px;
  font-weight: 700;
}
.member-page-form-field input,
.member-page-form-field textarea {
  width: 100%;
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 12px;
  background: var(--admin-panel-surface) !important;
  background-image: var(--admin-panel-surface-image) !important;
  color: var(--admin-panel-text-strong);
  font-size: 13px;
  line-height: 1.6;
  box-sizing: border-box;
}
.member-page-form-field textarea {
  min-height: 96px;
  resize: vertical;
}
.member-page-form-field input:focus,
.member-page-form-field textarea:focus {
  outline: none;
  border-color: var(--wb-theme-button-border);
}
.member-page-code-entry {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.member-page-code-label {
  color: var(--admin-panel-text-muted);
  font-size: 13px;
  font-weight: 700;
}
.member-page-url-row {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.member-page-url-box {
  flex: 1;
  min-width: 0;
  padding: 11px 13px;
  border-radius: 12px;
  border: 1px solid var(--admin-panel-border-soft);
  background: var(--admin-panel-muted-surface);
  background-image: var(--admin-panel-muted-surface-image);
  color: var(--admin-panel-text-strong);
  font-size: 13px;
  line-height: 1.55;
  word-break: break-word;
}
.member-page-url-box code {
  color: inherit;
  font-family: 'Consolas', 'Monaco', monospace;
  font-size: 13px;
}
.member-page-url-box,
.member-page-code-block {
  background: #ffffff !important;
  background-image: none !important;
  border-color: rgba(148, 163, 184, 0.32) !important;
  color: #1f2f46 !important;
  box-shadow: none !important;
}
.member-page-url-box code,
.member-page-code-block,
.member-page-code-block code {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  color: #1f2f46 !important;
  text-shadow: none !important;
  font-weight: 600;
}
.member-page-copy-btn {
  min-width: 72px;
  min-height: var(--admin-button-min-height);
  padding: var(--admin-button-padding-y) var(--admin-button-padding-x);
  border: 1px solid var(--wb-theme-button-border);
  border-radius: var(--admin-button-radius);
  background: var(--wb-theme-button-strong);
  color: var(--wb-theme-button-text);
  font-size: var(--admin-button-font-size);
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  box-shadow: none;
}
.member-page-copy-btn:hover { transform: scale(1.1) !important; }
.member-page-info-row {
  display: grid;
  gap: 6px;
  padding: 12px 0;
  border-bottom: 1px solid var(--admin-panel-border-soft);
}

.member-page-info-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.member-page-info-row span {
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  font-weight: 600;
}
.member-page-info-row strong,
.member-page-info-row code {
  color: var(--admin-panel-text-strong);
  font-size: 14px;
  word-break: break-all;
}
.member-page-code-block {
  margin: 0;
  padding: 11px 13px;
  border-radius: 12px;
  border: 1px solid var(--admin-panel-border-soft);
  background: var(--admin-panel-muted-surface);
  background-image: var(--admin-panel-muted-surface-image);
  color: var(--admin-panel-text-strong);
  font-size: 13px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}
.member-page-guide-list {
  margin: 0;
  padding-left: 18px;
  color: var(--admin-panel-text-muted);
  display: grid;
  gap: 10px;
  line-height: 1.7;
}
@media (max-width: 900px) {
  .member-management-view-tabs { display: flex; width: 100%; }
  .member-management-view-tab { flex: 0 0 auto; }
  .member-page-admin-tabs-shell {
    padding: 8px 12px;
  }
  .member-page-admin-tabs {
    flex-wrap: wrap;
  }
  .member-page-admin-preview-surface {
    overflow: visible;
  }
  .member-page-config-grid {
    grid-template-columns: 1fr;
  }
  .member-page-form-grid,
  .member-page-endpoint-grid {
    grid-template-columns: 1fr;
  }
  .member-page-config-head {
    flex-direction: column;
  }
  .member-page-url-row {
    flex-direction: column;
  }
  .member-page-admin-hero {
    flex-direction: column;
  }
  .member-page-admin-actions {
    justify-content: flex-start;
  }
  .member-page-admin-layout {
    grid-template-columns: 1fr;
  }
}

#packages#packages:not(#admin-no-shadow-root),
#packages#packages *:not(#admin-no-shadow-root):not(#admin-no-shadow-boost),
#packages#packages *:not(#admin-no-shadow-root):not(#admin-no-shadow-boost)::before,
#packages#packages *:not(#admin-no-shadow-root):not(#admin-no-shadow-boost)::after {
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-shadow: none !important;
}

#packages#packages .member-page-copy-btn {
  transform: none !important;
}
#packages#packages .member-page-copy-btn:hover {
  transform: scale(1.1) !important;
}
#modal.app-modal--member-user-detail .admin-modal-section-list {
  gap: 6px;
}
#modal.app-modal--member-user-detail .admin-modal-section {
  padding: 2px 0 8px;
}
#modal.app-modal--member-user-detail .admin-modal-section h6 {
  margin: 0 0 6px;
}
#modal.app-modal--member-user-detail .admin-modal-data-row {
  padding: 6px 0;
}
#modal.app-modal--member-user-detail .modal-body {
  padding: 12px 20px;
}
#modal.app-modal--member-user-detail .admin-modal-section h6 {
  text-align: center;
}
#modal.app-modal--member-user-detail .admin-modal-section:not(:first-child) {
  margin-top: 10px;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table {
  width: 100%;
  table-layout: fixed;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th,
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td {
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  padding-left: 6px;
  padding-right: 6px;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(1),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(1) {
  width: 5%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(2),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(2) {
  width: 13%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(3),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(3) {
  width: 18%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(4),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(4) {
  width: 8%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(5),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(5) {
  width: 10%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(6),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(6) {
  width: 16%;
  white-space: normal;
  text-overflow: clip;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(7),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(7) {
  width: 8%;
}
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table th:nth-child(8),
#packages #memberManagementCatalogView .member-management-table-wrap > .data-table td:nth-child(8) {
  width: 22%;
}
/* cutcat33: 积分规则配置面板边框（与其他标签页一致，覆盖 #packages 下的 border:0 !important） */
#memberManagementPointsView.member-management-view-pane.active {
  border: 1px solid var(--admin-panel-border-soft) !important;
  border-radius: 10px !important;
  background: var(--admin-panel-surface) !important;
  overflow: hidden !important;
}
/* cutcat35: 积分规则页选择框放大、输入框与选择框比例协调 */
#pointsRulesBody input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  flex: none !important;
  cursor: pointer !important;
  accent-color: var(--admin-accent-color, #3478f6) !important;
}
/* cutcat37: 积分规则页输入框宽度90px+数字居中（容纳4位数值不被遮挡） */
#pointsRulesBody input.form-input {
  width: 90px !important;
  height: 30px !important;
  min-height: 30px !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  text-align: center !important;
  padding: 0 2px !important;
  line-height: normal !important;
  font-size: 13px !important;
}
#pointsRulesBody #exchangeLevelsList input.form-input {
  width: 100px !important;
}

/* 隐藏积分规则数字输入框的上下箭头, 输入框更紧凑贴合数字 */
#pointsRulesBody input[type="number"]::-webkit-inner-spin-button,
#pointsRulesBody input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* 行分隔线（滚动场景）
   分隔线不是 td 边框，而是容器上的覆盖层 ::after，按行高重复绘制。
   原来它的高度只等于「容器可见高度 - 表头 - 分页栏」，表格内容一旦超出容器，
   向下滚动后超出部分就没有横线，看上去是一片空白。
   现在按「可见行数 × 行高」铺满整个表体（top 已经让出了表头，不能再加表头高度，
   否则会多出一段可滚动区域，底部出现缝隙），窗口更高时至少铺满容器。 */
#packages #memberManagementCatalogView .member-management-table-wrap.admin-table-bottom-fit-scroll::after,
#packages #memberManagementCodeSettingsView .member-management-table-wrap.admin-table-bottom-fit-scroll::after,
#packages #memberManagementRecordsView .member-management-table-wrap.admin-table-bottom-fit-scroll::after {
  bottom: auto !important;
  height: max(calc(100% - var(--admin-table-bottom-header-height, 52px)), calc(var(--admin-table-bottom-row-height, 54px) * var(--admin-table-bottom-visible-row-count, 10))) !important;
  background-size: 100% var(--admin-table-bottom-row-height, 54px) !important;
}


/* ===== 套餐功能权益：功能键勾选 + 每月额度 ===== */
.member-feature-picker > label {
  display: block;
  margin-bottom: 8px;
}

.member-feature-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.member-feature-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--admin-panel-text-muted, #6b7280);
}

.member-feature-toolbar-actions {
  display: inline-flex;
  gap: 8px;
}

.member-feature-items {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 8px;
  max-height: 280px;
  overflow-y: auto;
  padding-right: 4px;
}

/* 用 .form-group label 的后代选择器压过全局表单标签样式，避免勾选项被改成块级 */
.member-feature-picker .member-feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--admin-panel-border, rgba(15, 23, 42, .12));
  border-radius: 10px;
  background: var(--admin-panel-muted-surface, rgba(15, 23, 42, .03));
  cursor: pointer;
  min-width: 0;
}

.member-feature-picker .member-feature-item.is-checked {
  border-color: var(--wb-theme-button-soft-border, #3b82f6);
}

.member-feature-picker .member-feature-item > input[type="checkbox"] {
  flex: 0 0 auto;
  margin: 0;
}

.member-feature-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.member-feature-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--admin-panel-text-strong, #111827);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.member-feature-key {
  display: block;
  font-family: 'Courier New', monospace;
  font-size: 11px;
  line-height: 1.4;
  color: var(--admin-panel-text-muted, #6b7280);
  background: none;
  padding: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.member-feature-quota-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--admin-panel-text-muted, #6b7280);
}

.member-feature-quota-wrap .form-control {
  width: 78px;
  height: 30px;
  padding: 2px 6px;
  text-align: center;
}

.member-feature-quota:disabled {
  opacity: .45;
}

.member-feature-empty {
  padding: 14px;
  text-align: center;
  font-size: 12px;
  line-height: 1.6;
  color: var(--admin-panel-text-muted, #6b7280);
  border: 1px dashed var(--admin-panel-border, rgba(15, 23, 42, .16));
  border-radius: 10px;
}

.member-feature-manager {
  border: 1px solid var(--admin-panel-border, rgba(15, 23, 42, .12));
  border-radius: 10px;
  padding: 10px;
  background: var(--admin-panel-muted-surface, rgba(15, 23, 42, .03));
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.member-feature-manager[hidden] {
  display: none;
}

.member-feature-manager-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.member-feature-manager-form-actions {
  grid-column: 1 / -1;
  display: inline-flex;
  gap: 8px;
}

.member-feature-manager-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 220px;
  overflow-y: auto;
}

.member-feature-manager-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--admin-panel-surface, #fff);
  border: 1px solid var(--admin-panel-border, rgba(15, 23, 42, .08));
}

.member-feature-manager-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  font-size: 12px;
}

.member-feature-manager-meta strong {
  font-size: 13px;
  color: var(--admin-panel-text-strong, #111827);
}

.member-feature-manager-meta span {
  color: var(--admin-panel-text-muted, #6b7280);
}

.member-feature-manager-actions {
  display: inline-flex;
  gap: 6px;
  flex: 0 0 auto;
}

.member-feature-manager-actions .btn-sm {
  height: 28px;
  padding: 0 10px;
  font-size: 12px;
}

/* 套餐模板二级档位标签（月度 / 季度 / 半年 / 年 / 永久） */
#modal.app-modal--member-create .template-cycle-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 8px;
}

#modal.app-modal--member-create .template-cycle-tabs[hidden] {
  display: none;
}

#modal.app-modal--member-create .template-cycle-btn {
  padding: 5px 16px;
  border: 1px solid var(--admin-panel-border-soft);
  border-radius: 999px;
  background: var(--admin-panel-muted-surface);
  color: var(--admin-panel-text-muted);
  font-size: 12px;
  line-height: 1.4;
  cursor: pointer;
}

#modal.app-modal--member-create .template-cycle-btn.active {
  background: var(--wb-theme-button-strong);
  border-color: var(--wb-theme-button-border);
  color: var(--wb-theme-button-text);
}

/* 会员管理一级页签：4 个页签等宽，不折行 */
#packages .member-management-primary-shell > #memberManagementPrimaryTabs > .member-management-view-tab {
  flex: 0 1 auto;
  min-width: 0 !important;
  text-align: center;
  white-space: nowrap;
}

/* 会员管理表格：滚动条常驻并预留槽位，避免 clientHeight 随滚动条出现/消失变化，
   进而导致行高反复重算、整行（含操作按钮）上下抖动 */
#packages .member-management-table-wrap {
  scrollbar-gutter: stable;
}

#packages .member-management-table-wrap.admin-table-bottom-fit-scroll {
  overflow-y: scroll !important;
}
