/* 后台侧栏图标：20×20，SVG 描边仍用 stroke-width=2 */
.navbar-vertical .nav-link-icon {
  width: 20px;
  height: 20px;
}

.navbar-vertical .nav-link-icon .icon {
  display: block;
  width: 20px;
  height: 20px;
}

.admin-category-filter {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.admin-category-filter-label {
  flex: 0 0 auto;
  font-weight: 600;
  white-space: nowrap;
}

.admin-category-filter-groups {
  display: flex;
  flex: 1 1 100%;
  flex-direction: column;
  gap: .5rem;
}

.admin-category-filter-options {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
}

/* 选中/hover 底与工作台筛选 pill 同尺度：20 行高 + 2×2 padding + 1×2 透明边框 = 26px */
.admin-category-filter-option {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--tblr-body-color);
  font-size: 14px;
  line-height: 20px;
  text-decoration: none;
  white-space: nowrap;
}

.admin-category-filter-option:hover,
.admin-category-filter-option:focus {
  color: var(--tblr-primary);
  background: var(--tblr-primary-lt);
  text-decoration: none;
}

.admin-category-filter-option.active {
  color: var(--tblr-primary);
  background: var(--tblr-primary-lt);
}

:root,
[data-bs-theme="light"],
[data-bs-theme="dark"] {
  --app-font-sans: -apple-system, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimSun, Arial, sans-serif;
  --tblr-font-sans-serif: var(--app-font-sans);
  --tblr-body-font-family: var(--app-font-sans);
}

/* 只在后台布局生效：admin.css 会通过 stylesheet_link_tag :app 被所有布局
   一起加载，选择器必须用 :has(.navbar-vertical) 锁范围，避免再泄漏到用户端。
   不能在 html 上写 scrollbar-gutter: stable——Blink 会给根元素两侧各留约
   15px（computed margin-left: 15px）。侧栏是 position:fixed; left:0，不跟着
   这份位移走；.page-wrapper 是文档流，会被挤右，侧栏和「仪表盘」顶栏之间
   露出一条 body 底色缝。margin-left: 0 同时覆盖 Tabler 的
   :root { margin-left: calc(100vw - 100%) }，避免去掉 stable 后又被那条
   滚动条补偿挤出同样的缝。后台是固定侧栏而非居中布局，有无滚动条时
   内容只在右侧收缩，不必再用根元素补偿防跳动。 */
html:has(.navbar-vertical) {
  margin-left: 0;
  /* Tabler/Bootstrap：prefers-reduced-motion: no-preference 时 :root 为
     scroll-behavior: smooth。Turbo Drive 换页会把上一页滚动位置拉回顶部，
     于是侧栏跳转出现可见的上拉动画。后台 layout 不加载 main.css，必须在这里关掉。 */
  scroll-behavior: auto;
}

body {
  font-family: -apple-system, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimSun, Arial, sans-serif;
}

/* 后台左上角品牌位：沿用 Tabler 的紧凑横向 Logo 比例，不改变侧栏导航结构。 */
.navbar-vertical .navbar-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 72px;
  margin: 0;
  padding: 16px 20px;
}

.navbar-vertical .admin-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
}

.navbar-vertical .admin-brand:hover,
.navbar-vertical .admin-brand:focus-visible {
  color: #fff;
  text-decoration: none;
}

.admin-brand-mark {
  display: block;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  color: #fff;
}

.admin-brand-mark svg {
  display: block;
  width: 100%;
  height: 100%;
}

.admin-brand-copy {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  line-height: 1;
}

.admin-brand-name {
  color: #fff;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 32px;
  white-space: nowrap;
}

@media (max-width: 991.98px) {
  .navbar-vertical .navbar-brand {
    height: auto;
    padding: 12px 0;
    justify-content: flex-start;
  }

  .admin-brand-mark {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
  }

  .admin-brand-name {
    font-size: 19px;
    line-height: 30px;
  }
}

/* 后台 layout 不加载 main.css；同样隐藏 Turbo Drive 顶栏进度条。 */
.turbo-progress-bar {
  display: none;
}

.admin-listing-filter > [class*="col-"] {
  min-width: 8.5rem;
}

.admin-listing-filter > .col-12 {
  min-width: 0;
}

.admin-listing-filter .form-control,
.admin-listing-filter .form-select {
  min-width: 0;
  width: 100%;
}

.admin-listing-filter .form-control {
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 后台列表筛选分组标题：在同一张筛选卡里区分“我方归类 / 上游原始 / 其他条件”，
   避免我方映射结果和上游原始值被当成同一组条件。 */
.admin-listing-filter > .admin-listing-filter-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tblr-secondary);
}

.admin-listing-filter > .admin-listing-filter-group::after {
  content: "";
  flex: 1 1 auto;
  border-top: 1px solid var(--tblr-border-color);
}

.admin-listing-table {
  width: 100%;
  table-layout: auto;
}

/* 用户详情「最近记录」嵌入表：按 colgroup 比例分配列宽，避免长文本列吃掉整行。 */
html:has(.navbar-vertical) .admin-user-recent-table {
  width: 100%;
  table-layout: fixed;
}

/* 用户详情：摘要、资料与各业务 Tab 使用同一套轻量层级，避免大卡片反复嵌套。 */
.admin-user-show,
.admin-media-show {
  --admin-user-surface-muted: #f8fafc;
  --admin-user-line: rgba(98, 105, 118, 0.16);
  --admin-user-shadow: 0 8px 26px rgba(24, 36, 51, 0.055);
}

.admin-user-show .admin-user-summary,
.admin-user-show .admin-user-tabs,
.admin-media-show .admin-media-summary,
.admin-media-show .admin-media-tabs {
  border-color: var(--admin-user-line);
  box-shadow: var(--admin-user-shadow);
}

.admin-user-summary .card-body,
.admin-media-summary .card-body {
  padding: 0;
}

.admin-user-summary-item,
.admin-media-summary-item {
  display: flex;
  min-height: 104px;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  border-right: 1px solid var(--admin-user-line);
}

.admin-user-summary [class*="col-"]:last-child .admin-user-summary-item,
.admin-media-summary [class*="col-"]:last-child .admin-media-summary-item {
  border-right: 0;
}

.admin-user-summary .avatar-md,
.admin-media-summary .avatar-md {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  background: linear-gradient(145deg, #edf3ff, #f7f9fc);
  color: var(--tblr-primary);
  font-size: 17px;
  box-shadow: inset 0 0 0 1px rgba(32, 107, 196, 0.12);
}

.admin-user-summary-icon,
.admin-user-info-heading-icon,
.admin-media-summary-icon,
.admin-media-info-heading-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
}

.admin-user-summary-icon,
.admin-media-summary-icon {
  width: 40px;
  height: 40px;
  font-size: 21px;
}

.admin-user-summary-label,
.admin-media-summary-label {
  margin-bottom: 5px;
  color: var(--tblr-secondary);
  font-size: 12px;
  line-height: 1.3;
}

.admin-user-summary-value,
.admin-media-summary-value {
  color: var(--tblr-body-color);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
}

.admin-user-summary-value .badge,
.admin-media-summary-value .badge {
  padding: 5px 8px;
  font-size: 13px;
}

.admin-user-tabs,
.admin-media-tabs {
  overflow: hidden;
}

.admin-user-tabs-header,
.admin-media-tabs-header {
  min-height: 58px;
  padding: 0 20px;
  overflow: visible;
  background: #fff;
}

.admin-user-tabs-header .nav-tabs,
.admin-media-tabs-header .nav-tabs {
  flex-wrap: nowrap;
  gap: 4px;
  width: 100%;
  margin: 0;
  border: 0;
}

.admin-user-tabs-header .nav-link,
.admin-media-tabs-header .nav-link {
  position: relative;
  min-height: 58px;
  padding: 18px 16px 16px;
  border: 0 !important;
  border-radius: 0;
  background: transparent;
  color: var(--tblr-secondary);
  font-weight: 500;
}

.admin-user-tabs-header .nav-link:hover,
.admin-media-tabs-header .nav-link:hover {
  color: var(--tblr-primary);
  background: rgba(32, 107, 196, 0.045);
}

.admin-user-tabs-header .nav-link.active,
.admin-media-tabs-header .nav-link.active {
  color: var(--tblr-primary);
  font-weight: 600;
  background: transparent;
}

.admin-user-tabs-header .nav-link.active::after,
.admin-media-tabs-header .nav-link.active::after {
  position: absolute;
  right: 16px;
  bottom: 0;
  left: 16px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--tblr-primary);
  content: "";
}

.admin-user-tabs-body,
.admin-media-tabs-body {
  padding: 0;
  background: var(--admin-user-surface-muted);
}

.admin-user-tabs [data-user-360="overview"],
.admin-media-tabs [data-media-tab-pane="overview"] {
  padding: 24px;
}

.admin-user-info-grid,
.admin-media-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.admin-user-info-group,
.admin-media-info-group {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--admin-user-line);
  border-radius: 10px;
  background: #fff;
}

.admin-user-info-heading,
.admin-media-info-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px 16px;
  border-bottom: 1px solid var(--admin-user-line);
}

.admin-user-info-heading-icon,
.admin-media-info-heading-icon {
  width: 36px;
  height: 36px;
  font-size: 19px;
}

.admin-user-info-heading h3,
.admin-media-info-heading h3 {
  margin: 0;
  color: var(--tblr-body-color);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.admin-user-info-heading p,
.admin-media-info-heading p {
  margin: 2px 0 0;
  color: var(--tblr-secondary);
  font-size: 12px;
  line-height: 1.4;
}

.admin-user-info-list,
.admin-media-info-list {
  margin: 0;
  padding: 4px 20px;
}

.admin-user-info-row,
.admin-media-info-row {
  display: grid;
  grid-template-columns: minmax(72px, .75fr) minmax(0, 1.25fr);
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--admin-user-line);
}

.admin-user-info-row:last-child,
.admin-media-info-row:last-child {
  border-bottom: 0;
}

.admin-user-info-row dt,
.admin-user-info-row dd,
.admin-media-info-row dt,
.admin-media-info-row dd {
  min-width: 0;
  margin: 0;
  line-height: 1.45;
}

.admin-user-info-row dt,
.admin-media-info-row dt {
  color: var(--tblr-secondary);
  font-size: 12px;
  font-weight: 400;
}

.admin-user-info-row dd,
.admin-media-info-row dd {
  color: var(--tblr-body-color);
  font-size: 13px;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.admin-user-info-row dd small,
.admin-media-info-row dd small {
  display: block;
  margin-top: 2px;
  color: var(--tblr-secondary);
  font-size: 11px;
  font-weight: 400;
}

/* 表格 Tab 去掉重复的外层卡片感，同时保留标题、空状态和底部操作。 */
.admin-user-tabs-body .tab-pane > .row,
.admin-media-tabs-body .tab-pane > .row {
  margin: 0;
}

.admin-user-tabs-body .tab-pane > .row > [class*="col-"],
.admin-user-tabs-body .tab-pane > [data-admin-user-media-blacklists="true"],
.admin-media-tabs-body .tab-pane > .row > [class*="col-"] {
  padding: 0;
}

.admin-user-tabs-body .tab-pane > .row > [class*="col-"],
.admin-media-tabs-body .tab-pane > .row > [class*="col-"] {
  margin-top: 0 !important;
}

.admin-user-tabs-body .tab-pane .card,
.admin-media-tabs-body .tab-pane .card {
  margin: 0 !important;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #fff;
}

.admin-user-tabs-body .tab-pane .card-header,
.admin-media-tabs-body .tab-pane .card-header {
  min-height: 58px;
  padding: 14px 24px;
  background: #fff;
}

.admin-user-tabs-body .tab-pane .card-title,
.admin-media-tabs-body .tab-pane .card-title {
  font-size: 14px;
  font-weight: 600;
}

.admin-user-card-actions,
.admin-media-card-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}

.admin-user-card-actions .btn,
.admin-media-card-actions .btn {
  background: #fff;
}

.admin-user-tabs-body .admin-user-recent-table thead th,
.admin-media-tabs-body .admin-media-recent-table thead th {
  padding-top: 11px;
  padding-bottom: 11px;
  background: var(--admin-user-surface-muted);
  color: var(--tblr-secondary);
  font-size: 12px;
  font-weight: 500;
}

.admin-user-tabs-body .admin-user-recent-table tbody td,
.admin-media-tabs-body .admin-media-recent-table tbody td {
  padding-top: 14px;
  padding-bottom: 14px;
}

.admin-user-tabs-body .admin-user-recent-table tbody tr:hover td,
.admin-media-tabs-body .admin-media-recent-table tbody tr:hover td {
  background: rgba(32, 107, 196, 0.025);
}

@media (max-width: 991.98px) {
  .admin-user-summary-item,
  .admin-media-summary-item {
    border-bottom: 1px solid var(--admin-user-line);
  }

  .admin-user-summary [class*="col-"]:nth-child(2) .admin-user-summary-item,
  .admin-media-summary [class*="col-"]:nth-child(2) .admin-media-summary-item {
    border-right: 0;
  }

  .admin-user-summary [class*="col-"]:nth-child(n + 3) .admin-user-summary-item,
  .admin-media-summary [class*="col-"]:nth-child(n + 3) .admin-media-summary-item {
    border-bottom: 0;
  }

  .admin-user-info-grid,
  .admin-media-info-grid {
    grid-template-columns: 1fr;
  }

  .admin-user-tabs-header,
  .admin-media-tabs-header {
    overflow: hidden;
  }

  .admin-user-tabs-header .nav-tabs,
  .admin-media-tabs-header .nav-tabs {
    width: auto;
    min-width: max-content;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .admin-user-tabs-header .nav-tabs::-webkit-scrollbar,
  .admin-media-tabs-header .nav-tabs::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .admin-user-summary-item,
  .admin-media-summary-item {
    min-height: 92px;
    gap: 9px;
    padding: 16px 14px;
  }

  .admin-user-summary-icon,
  .admin-media-summary-icon {
    width: 34px;
    height: 34px;
    font-size: 18px;
  }

  .admin-user-summary .avatar-md,
  .admin-media-summary .avatar-md {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .admin-user-summary-value,
  .admin-media-summary-value {
    font-size: 14px;
  }

  .admin-user-tabs [data-user-360="overview"],
  .admin-media-tabs [data-media-tab-pane="overview"] {
    padding: 16px;
  }

  .admin-user-tabs-body .tab-pane .card-header,
  .admin-media-tabs-body .tab-pane .card-header {
    padding-right: 16px;
    padding-left: 16px;
  }

  .admin-user-card-actions > .text-secondary,
  .admin-media-card-actions > .text-secondary {
    display: none;
  }
}

/* 媒体详情在同一套 Tab 外框下的少量差异：摘要一行放 6～7 项、只读表格 Tab 通栏。 */
.admin-media-summary-item {
  min-height: 84px;
  padding: 16px 20px;
}

.admin-media-summary-value {
  font-size: 15px;
}

.admin-media-info-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  align-items: start;
}

.admin-media-tabs .admin-media-tab-pane {
  padding: 24px;
}

.admin-media-tabs .admin-media-tab-pane[data-media-tab-pane="upstream"],
.admin-media-tabs .admin-media-tab-pane[data-media-tab-pane="updates"] {
  padding: 0;
  background: #fff;
}

.admin-media-tab-pane > .row-cards {
  margin-top: 0;
}

.admin-media-pane-head {
  display: flex;
  min-height: 58px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 24px;
  background: #fff;
}

.admin-media-pane-head h3 {
  margin: 0;
  color: var(--tblr-body-color);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.admin-media-pane-head p {
  margin: 2px 0 0;
  color: var(--tblr-secondary);
  font-size: 12px;
  line-height: 1.4;
}

/* 固定表格布局，长文本才会真正截断成省略号，hover 通过 title 看全文。 */
html:has(.navbar-vertical) .admin-media-recent-table {
  width: 100%;
  table-layout: fixed;
}

.admin-media-recent-table .admin-media-col-field {
  width: 22%;
}

.admin-media-recent-table .admin-media-col-time {
  width: 15%;
}

.admin-media-recent-table .admin-media-col-source {
  width: 12%;
}

.admin-media-recent-table .admin-media-col-type {
  width: 18%;
}

.admin-media-recent-table .admin-media-col-action {
  width: 11%;
}

@media (max-width: 991.98px) {
  .admin-media-tabs .admin-media-tab-pane {
    padding: 16px;
  }
}

/* 后台详情卡片的标题使用 --tblr-card-spacer-x，而 Tabler 表格首列默认更靠左。
   将首个字段标题与卡片标题对齐；列表 card-table 保持原有紧凑列布局。 */
.page-body .card > .table-responsive > .table.table-vcenter:not(.card-table) > tbody > tr > th:first-child,
.page-body .card > .table-responsive > .table.table-vcenter:not(.card-table) > thead > tr > th:first-child {
  padding-left: var(--tblr-card-spacer-x);
}

/* 卡片有圆角但不会裁切内部表格。第一格 thead 是直角、底色又和页面一样，
   会盖住左上角边框和阴影，看起来缺一块。圆角加在已有 overflow-x:auto 的
   .table-responsive 上，把表头裁进卡片内圆角；不要给 .card 加 overflow:hidden，
   以免裁掉行内下拉。 */
html:has(.navbar-vertical) .page-body .card > .table-responsive:first-child {
  border-top-left-radius: var(--tblr-card-inner-border-radius);
  border-top-right-radius: var(--tblr-card-inner-border-radius);
}

html:has(.navbar-vertical) .page-body .card > .table-responsive:last-child {
  border-bottom-left-radius: var(--tblr-card-inner-border-radius);
  border-bottom-right-radius: var(--tblr-card-inner-border-radius);
}

.admin-list-loading {
  position: relative;
}

.admin-list-loading.is-loading .admin-listing-table tbody {
  visibility: hidden;
}

.admin-list-loading.is-loading .admin-listing-table tbody td {
  border-color: transparent;
  background: transparent;
}

.admin-list-loading.is-loading .card-footer,
.admin-list-loading.is-loading .pagination {
  pointer-events: none;
}

.admin-list-loading .media-list-loading-row td {
  height: auto;
  padding: 20px 0 28px;
  text-align: center;
  vertical-align: top;
  background: #fff;
}

.admin-list-loading .media-list-loading-indicator {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  display: none;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.admin-list-loading.is-loading .media-list-loading-indicator:not([hidden]) {
  display: block;
}

.cheetah-spin-dot {
  position: relative;
  display: inline-block;
  width: 1em;
  height: 1em;
  color: var(--tblr-primary, #3855d5);
  font-size: 24px;
}

.cheetah-spin-dot-spin {
  transform: rotate(45deg);
  animation: cheetah-spin-rotate 1.2s linear infinite;
}

.cheetah-spin-dot-item {
  position: absolute;
  display: block;
  width: 0.45em;
  height: 0.45em;
  background: currentColor;
  border-radius: 100%;
  transform: scale(0.75);
  transform-origin: 50% 50%;
  opacity: 0.3;
  animation: cheetah-spin-move 1s linear infinite alternate;
}

.cheetah-spin-dot-item:nth-child(1) { top: 0; left: 0; animation-delay: 0s; }
.cheetah-spin-dot-item:nth-child(2) { top: 0; right: 0; animation-delay: 0.4s; }
.cheetah-spin-dot-item:nth-child(3) { right: 0; bottom: 0; animation-delay: 0.8s; }
.cheetah-spin-dot-item:nth-child(4) { bottom: 0; left: 0; animation-delay: 1.2s; }

@keyframes cheetah-spin-rotate {
  to { transform: rotate(405deg); }
}

@keyframes cheetah-spin-move {
  to { opacity: 1; }
}

/* 媒体列表顶部的只读同步摘要：轻量一行，窄屏自行换行，不做成 KPI 卡片。 */
.admin-media-sync-health {
  font-size: 13px;
  line-height: 1.5;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.admin-media-sync-health-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 1rem;
  row-gap: 0.25rem;
}

.admin-media-sync-health-counts {
  display: inline-flex;
  flex-wrap: wrap;
  column-gap: 0.75rem;
  row-gap: 0.25rem;
}

.admin-media-sync-health-reason,
.admin-media-sync-health-note {
  margin-top: 0.25rem;
}

/* Reuse the membership help component on admin business summary cards. */
button.membership-help-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #b0b6c3;
  font-size: inherit;
  line-height: 1;
  transition: color 0.15s ease;
}

button.membership-help-trigger:hover,
button.membership-help-trigger:focus-visible {
  color: #5a65e9;
}

button.membership-help-trigger:focus-visible {
  border-radius: 50%;
  outline: 2px solid rgba(90, 101, 233, 0.35);
  outline-offset: 1px;
}

/* 统计卡片保持既有列宽，只压缩纵向留白。 */
.admin-update-events-summary-card .card-body {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

/* 卡片可点击筛选，但数字维持统计信息的视觉，而非链接默认样式。 */
.admin-update-events-summary-link,
.admin-update-events-summary-link:hover,
.admin-update-events-summary-link:focus {
  color: inherit;
  text-decoration: none;
}

/* 后台详情页 V2：复用 Users 的 Tab 外框，在内容层提供通用摘要与信息网格。 */
.admin-detail-page {
  --admin-user-surface-muted: #f8fafc;
  --admin-user-line: rgba(98, 105, 118, 0.16);
  --admin-user-shadow: 0 8px 26px rgba(24, 36, 51, 0.055);
}

.admin-detail-tabs,
.admin-detail-summary,
.admin-detail-section,
.admin-detail-technical {
  border-color: var(--admin-user-line);
  box-shadow: var(--admin-user-shadow);
}

.admin-detail-tab-padding { padding: 20px; }
.admin-detail-summary { overflow: hidden; }

.admin-detail-summary-grid {
  display: grid;
  background: #fff;
}

.admin-detail-summary-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.admin-detail-summary-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.admin-detail-summary-grid-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.admin-detail-summary-item {
  display: flex;
  min-width: 0;
  min-height: 92px;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 18px 20px;
  border-right: 1px solid var(--admin-user-line);
}

.admin-detail-summary-item:last-child { border-right: 0; }

.admin-detail-summary-item > span {
  color: var(--tblr-secondary);
  font-size: 12px;
  line-height: 1.3;
}

.admin-detail-summary-item > strong {
  min-width: 0;
  color: var(--tblr-body-color);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

.admin-detail-section {
  overflow: hidden;
  background: #fff;
}

.admin-detail-section > .card-header,
.admin-detail-technical > .card-header {
  min-height: 54px;
  padding: 14px 20px;
  background: #fff;
}

.admin-detail-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 4px 20px;
  column-gap: 28px;
}

.admin-detail-field-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-detail-field-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.admin-detail-field-grid > div {
  min-width: 0;
  padding: 13px 0;
  border-bottom: 1px solid var(--admin-user-line);
}

.admin-detail-field-grid dt,
.admin-detail-field-grid dd {
  min-width: 0;
  margin: 0;
}

.admin-detail-field-grid dt {
  margin-bottom: 5px;
  color: var(--tblr-secondary);
  font-size: 12px;
  font-weight: 400;
}

.admin-detail-field-grid dd {
  color: var(--tblr-body-color);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.admin-detail-field-grid .admin-detail-field-span-2 { grid-column: span 2; }
.admin-detail-field-grid .admin-detail-field-span-3 { grid-column: span 3; }
.admin-detail-field-grid .admin-detail-field-span-4 { grid-column: span 4; }

.admin-detail-current-value {
  min-height: 22px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--admin-user-surface-muted);
  font-size: 14px;
}

.admin-article-remark-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  gap: 28px;
  align-items: end;
  padding: 18px 20px 20px;
  background: #fff;
}

.admin-detail-tab-padding > .admin-detail-section,
.admin-detail-tab-padding > .admin-detail-summary,
.admin-detail-tab-padding > .row .admin-detail-section {
  border: 1px solid var(--admin-user-line);
  border-radius: var(--tblr-card-border-radius);
}

.admin-detail-clamp {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.admin-user-info-row-stack { grid-template-columns: 1fr; }

.admin-article-content {
  max-width: 920px;
  color: var(--tblr-body-color);
  font-size: 15px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.admin-article-content > :last-child { margin-bottom: 0; }

.admin-detail-tabs-body .tab-pane > .row.row-cards {
  row-gap: 16px;
  padding: 20px;
}

.admin-detail-tabs-body .tab-pane > .row.row-cards > [class*="col-"] > .card,
.admin-detail-tabs-body .tab-pane > .row.row-cards > [class*="col-"] > details.card,
.admin-administrator-security-grid > [class*="col-"] > .card {
  overflow: hidden;
  margin-top: 0 !important;
  border: 1px solid var(--admin-user-line);
  border-radius: var(--tblr-card-border-radius);
  box-shadow: none;
}

.admin-administrator-security-grid > [class*="col-"] > .card { height: 100%; }

.admin-detail-table {
  width: 100%;
  table-layout: fixed;
}

.admin-detail-table td.text-truncate { max-width: 0; }

.admin-detail-empty {
  padding: 56px 24px;
  text-align: center;
  color: var(--tblr-secondary);
}

.admin-detail-empty > i {
  display: block;
  margin-bottom: 10px;
  font-size: 30px;
}

.admin-detail-empty h3 {
  margin: 0 0 6px;
  color: var(--tblr-body-color);
  font-size: 16px;
}

.admin-detail-empty p { margin: 0; font-size: 13px; }
.admin-detail-technical { overflow: hidden; }

.admin-detail-technical > summary {
  display: flex;
  align-items: center;
  cursor: pointer;
  list-style: none;
}

.admin-detail-technical > summary::-webkit-details-marker { display: none; }

.admin-detail-technical > summary::before {
  margin-right: 8px;
  color: var(--tblr-secondary);
  content: "›";
  font-size: 20px;
  line-height: 1;
  transition: transform .15s ease;
}

.admin-detail-technical[open] > summary::before { transform: rotate(90deg); }
.admin-detail-error { border-left: 3px solid var(--tblr-danger); }

.admin-detail-money-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: var(--admin-user-surface-muted);
}

.admin-detail-money-flow > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
  padding: 14px 16px;
  border: 1px solid var(--admin-user-line);
  border-radius: 9px;
  background: #fff;
}

.admin-detail-money-flow span { color: var(--tblr-secondary); font-size: 12px; }
.admin-detail-money-flow strong { font-size: 17px; }
.admin-detail-money-flow > i { color: var(--tblr-secondary); font-size: 20px; }

@media (max-width: 1199.98px) {
  .admin-detail-summary-grid-5,
  .admin-detail-summary-grid-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  .admin-detail-summary-grid-4,
  .admin-detail-summary-grid-5,
  .admin-detail-summary-grid-6,
  .admin-detail-field-grid,
  .admin-detail-field-grid-3,
  .admin-detail-field-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .admin-detail-summary-item:nth-child(2n) { border-right: 0; }
  .admin-detail-field-grid .admin-detail-field-span-3,
  .admin-detail-field-grid .admin-detail-field-span-4 { grid-column: span 2; }

  .admin-detail-money-flow { grid-template-columns: 1fr; gap: 8px; }
  .admin-detail-money-flow > i { justify-self: center; transform: rotate(90deg); }
  .admin-article-remark-strip { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
  .admin-detail-tab-padding,
  .admin-detail-tabs-body .tab-pane > .row.row-cards { padding: 14px; }

  .admin-detail-summary-grid-4,
  .admin-detail-summary-grid-5,
  .admin-detail-summary-grid-6,
  .admin-detail-field-grid,
  .admin-detail-field-grid-3,
  .admin-detail-field-grid-4 { grid-template-columns: 1fr; }

  .admin-detail-summary-item,
  .admin-detail-summary-item:nth-child(2n) {
    min-height: 74px;
    border-right: 0;
    border-bottom: 1px solid var(--admin-user-line);
  }

  .admin-detail-summary-item:last-child { border-bottom: 0; }
  .admin-detail-field-grid .admin-detail-field-span-2,
  .admin-detail-field-grid .admin-detail-field-span-3,
  .admin-detail-field-grid .admin-detail-field-span-4 { grid-column: span 1; }
}
