/* 公共皮肤只统一色彩；页面网格、输入留白及图标各自保有布局职责。 */
/* 排名筛选新增“评分尺度”后仍沿用五列模板，导致搜索及按钮被挤窄。 */
html[data-debater-visual='unified'] #rankings-filter.ss-filter {
    display: grid !important;
    grid-template-columns: minmax(160px, 1fr) minmax(140px, .85fr) minmax(150px, .9fr) minmax(200px, 1.25fr) auto auto !important;
    align-items: end;
    gap: 12px !important;
    padding: 16px;
  }
html[data-debater-visual='unified'] #rankings-filter > label {
    display: flex;
    flex-direction: column;
    position: relative;
    min-width: 0;
    gap: 6px;
    grid-column: auto;
    font-size: 13px;
    line-height: 1.5;
  }
html[data-debater-visual='unified'] #rankings-filter .pr-field-label {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    clip-path: none;
  }
html[data-debater-visual='unified'] #rankings-filter :is(input, select) {
    width: 100%;
    min-width: 0;
  }
html[data-debater-visual='unified'] #rankings-filter #rankings-search {
    padding-left: 38px !important;
  }
html[data-debater-visual='unified'] #rankings-filter .pr-search-icon {
    position: absolute;
    left: 12px;
    top: auto;
    bottom: 14px;
    width: 16px;
    height: 16px;
    line-height: 0;
    pointer-events: none;
  }
html[data-debater-visual='unified'] #rankings-query {
    min-width: 64px;
    white-space: nowrap !important;
  }
html[data-debater-visual='unified'] #rankings-refresh {
    align-self: end;
  }
  html[data-debater-visual='unified'] #rankings-filter > button {
    grid-column: auto;
  }
  html[data-debater-visual='unified'] #rankings-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px 16px;
  }
  html[data-debater-visual='unified'] #rankings-summary .ss-summary-card {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 8px 12px;
    line-height: 1.5;
  }
/* 完成入场后的 identity transform 会建立 fixed 定位容器，浮层应回到视口。 */
app-reveal > .translate-y-0.opacity-100 {
    transform: none !important;
  }
@media (max-width: 1100px) {
    html[data-debater-visual='unified'] #rankings-filter.ss-filter {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    html[data-debater-visual='unified'] #rankings-filter > button {
      justify-self: start;
    }
  }
  @media (max-width: 640px) {
    /* 后台标题和操作按钮应分行，避免汉字标题被压成一字一行。 */
    html app-admin .flex.items-center.justify-between:has(> :is(h1, h2, h3)) {
      flex-wrap: wrap;
      gap: 12px;
    }
    html app-admin .flex.items-center.justify-between > :is(h1, h2, h3) {
      flex: 1 0 100%;
      min-width: 0;
      line-height: 1.45;
    }
    html app-admin .flex.items-center.justify-between:has(> :is(h1, h2, h3)) > .flex {
      flex-wrap: wrap;
      gap: 8px;
      max-width: 100%;
    }
    html app-admin-formats-tab .flex.items-start.justify-between:has(h4) {
      flex-wrap: wrap;
      gap: 12px;
    }
    html app-admin-formats-tab .flex.items-start.justify-between:has(h4) > .flex-1 {
      flex-basis: 100%;
    }
  }
@media (max-width: 480px) {
    html[data-debater-visual='unified'] #rankings-filter.ss-filter {
      grid-template-columns: minmax(0, 1fr) auto !important;
      padding: 12px;
    }
    html[data-debater-visual='unified'] #rankings-filter > label {
      grid-column: 1 / -1;
    }
    html[data-debater-visual='unified'] #rankings-refresh {
      justify-self: end;
    }
  }

/*
 * 全站布局检修：战队、榜单与后台文档的专属修复。
 * 复用当前生产 DOM；不改变内容、权限、数据或主题颜色。
 */
/* 六个战队标签必须保留自身宽度，并在窄屏内滚动。 */
html[data-debater-visual='unified'] app-team .container > .flex.justify-center.mb-8 {
    min-width: 0;
  }
html[data-debater-visual='unified'] app-team .container > .flex.justify-center.mb-8 > .inline-flex {
    max-width: 100%;
    overflow-x: auto;
    justify-content: flex-start;
    scrollbar-width: thin;
  }
html[data-debater-visual='unified'] app-team .container > .flex.justify-center.mb-8 > .inline-flex > button {
    flex: 0 0 auto;
    white-space: nowrap !important;
  }
/* 内容变长或手机横屏时，居中弹窗要在视口内拥有滚动区。 */
html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full {
    min-width: 0;
    max-height: calc(100vh - 2rem) !important;
    max-height: calc(100dvh - 2rem) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full h2 {
    overflow-wrap: anywhere;
  }
html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full .flex-1 {
    min-width: 0;
  }
html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full > .flex.items-start {
    padding-right: 2.25rem;
  }
html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full > .flex.justify-between {
    flex-wrap: wrap;
    gap: .75rem;
  }
/* 文档批量操作栏的 max-content 宽度不能超过手机屏幕。 */
html[data-debater-visual='unified'] app-admin-documents-tab .fixed.bottom-6 {
    width: max-content;
    max-width: calc(100vw - 2rem);
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    border-radius: 1rem !important;
  }
html[data-debater-visual='unified'] app-admin-documents-tab nav[aria-label='文档分页'] {
    flex-wrap: wrap;
  }
/* 人名和探索路径来自用户资料；允许长姓名在卡片边界内断行。 */
html[data-debater-visual='unified'] app-relations :is(.focus-content h3, .focus-path strong, .result-person-copy strong) {
    min-width: 0;
    overflow-wrap: anywhere;
  }
html[data-debater-visual='unified'] app-relations .workspace-controls.exploring .results {
    max-height: min(50vh, 28rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
@media (max-width: 640px) {
    html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full {
      padding: 1.25rem !important;
    }
    html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full > .flex.items-start {
      flex-direction: column;
      gap: 1rem;
    }
    html[data-debater-visual='unified'] :is(app-team, app-leaderboard) .fixed.inset-0 > div.relative.w-full > .grid-cols-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .75rem;
    }
    html[data-debater-visual='unified'] app-team .fixed.inset-0 > div.relative.w-full > .grid-cols-4 > .col-span-3 {
      grid-column: auto;
    }
    html[data-debater-visual='unified'] app-leaderboard .fixed.inset-0 > div.relative.w-full > .grid-cols-4 > div {
      padding: .875rem !important;
    }
    html[data-debater-visual='unified'] app-leaderboard .fixed.inset-0 > div.relative.w-full > .flex.items-start .flex.items-center.gap-4 {
      flex-wrap: wrap;
      gap: .5rem;
    }
  }

/*
 * 2026-10-26 生产截图复核：手机筛选行和设置列保留了内容固有宽度，
 * 导致按钮右边框、筛选箭头被截断。只约束已复现的后台页和对应行。
 */
@media (max-width: 640px) {
  html[data-debater-visual='unified'] :is(
    app-admin-documents-tab,
    app-admin-announcements-tab,
    app-admin-argument-cache-tab,
    app-admin-settings-tab
  ) {
    display: block;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }

  html[data-debater-visual='unified'] app-admin-documents-tab > .space-y-6 {
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-documents-tab > .space-y-6 > .flex.gap-4.items-center {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-documents-tab > .space-y-6 > .flex.gap-4.items-center > .flex-1 {
    min-width: 0;
  }
  html[data-debater-visual='unified'] app-admin-documents-tab > .space-y-6 > .flex.gap-4.items-center input {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  html[data-debater-visual='unified'] app-admin-announcements-tab > .flex.gap-3.mb-4 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-announcements-tab > .flex.gap-3.mb-4 > :is(input, select) {
    box-sizing: border-box;
    min-width: 0;
    width: 100% !important;
    max-width: 100%;
  }

  html[data-debater-visual='unified'] app-admin-argument-cache-tab > .space-y-4 > .flex.items-center.justify-between {
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-argument-cache-tab > .space-y-4 > .flex.items-center.justify-between > div:first-child {
    flex: 1 1 16rem;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  html[data-debater-visual='unified'] app-admin-argument-cache-tab > .space-y-4 > .flex.items-center.justify-between > div:last-child {
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
    gap: .5rem;
  }

  /* 提示是说明文字，放回输入框后方即可与赛季值分开。 */
  html[data-debater-visual='unified'] app-admin-season-tab .mb-8 > .relative > div.absolute {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin-top: .5rem;
    line-height: 1.6;
    white-space: normal;
  }

  /* 附属菜单无位置选择器；展平后的说明应占标题列，不能落入序号窄列。 */
  html[data-debater-visual='unified'] app-admin-navigation-tab .navigation-entry-controls > span {
    grid-column: 2 / -1;
    min-width: 0;
    width: auto;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
  }

  html[data-debater-visual='unified'] app-admin-settings-tab > .flex {
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-settings-tab > .flex > .flex-1 {
    flex: 1 1 0%;
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-settings-tab > .flex > .flex-1 > .flex.justify-end.pt-4 {
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
  }
  html[data-debater-visual='unified'] app-admin-settings-tab > .flex > .flex-1 > .flex.justify-end.pt-4 > button {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }
}

/* 纸本顶栏身份徽标仍沿用原内容，只改其实际容器的文字对比。 */
@layer debater-visual-system {
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin .admin-role-label {
    color: var(--dv-secondary) !important;
  }
}

/* 日志保留表内横向滚动；管理员姓名和列名不应被挤成逐字竖排。 */
html[data-debater-visual='unified'] app-admin-logs-tab table :is(th, td):nth-child(2) {
  white-space: nowrap;
}

@layer debater-visual-system {
  /* 统计值与 Worker 徽标同属状态信息，纸本中也使用相同的可读语义色。 */
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab p.text-xl.text-emerald-300 {
    color: #047857 !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab p.text-xl.text-amber-300 {
    color: var(--dv-gold) !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab p.text-xl.text-red-300 {
    color: var(--dv-danger) !important;
  }
}

/* 纸本底色下仍保留夜间浅色文字的两处状态区；只调实际警告和 badge 的语义前景。 */
@layer debater-visual-system {
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-argument-cache-tab [class~='bg-amber-500/10'][class~='text-amber-200'],
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-argument-cache-tab [class~='bg-amber-500/10'][class~='text-amber-200'] > [class~='text-amber-100/80'] {
    color: var(--dv-gold) !important;
  }

  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab [data-testid='knowledge-worker-readiness'] span.text-emerald-300 {
    color: #047857 !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab [data-testid='knowledge-worker-readiness'] span.text-amber-200 {
    color: var(--dv-gold) !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-knowledge-tab [data-testid='knowledge-worker-readiness'] span.text-red-300 {
    color: var(--dv-danger) !important;
  }

  /* 来源摘要保留蓝/紫区分；只替换纸本浅底上无法阅读的原浅色前景。 */
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-transcript-tab [class~='bg-blue-500/10'] :is(.text-blue-300, [class~='text-blue-200/80']) {
    color: #1e40af !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-transcript-tab [class~='bg-purple-500/10'] :is(.text-purple-300, [class~='text-purple-200/80']) {
    color: #6b21a8 !important;
  }

  /* 轮换计数与 badge 叠在不同浅底上，使用对应深色保证状态仍可辨。 */
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-llm-tab [aria-labelledby='key-rotation-title'] :is(.text-emerald-200, .text-emerald-300) {
    color: #065f46 !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-llm-tab [aria-labelledby='key-rotation-title'] :is(.text-amber-200, .text-amber-300) {
    color: #713f12 !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-llm-tab [aria-labelledby='key-rotation-title'] :is(.text-orange-200, .text-orange-300) {
    color: #7c2d12 !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-llm-tab [aria-labelledby='key-rotation-title'] :is(.text-red-200, .text-red-300) {
    color: #7f1d1d !important;
  }
  html[data-debater-visual='unified'][data-debater-tone='paper'] app-admin-logs-tab table tbody td.text-cyan-300 {
    color: #155e75 !important;
  }

  /* 既有三处实心朱红入口固定为 text-black；双主题只换前景，不改链接与背景。 */
  html[data-debater-visual='unified'] app-admin-transcript-tab table td a[href='#/admin/ai-review'].bg-primary-500,
  html[data-debater-visual='unified'] app-admin-settings-tab a[href='#/admin/formats'].bg-primary-500,
  html[data-debater-visual='unified'] app-admin-settings-tab a[href='#/admin/elo'].bg-primary-500 {
    color: #fffdf9 !important;
  }
}

/* 已发布导航 overlay 的附属说明是直接 grid item，需避开 22px 序号列。 */
@media (max-width: 640px) {
  html[data-debater-visual='unified'] app-admin-navigation-tab .managed-row[data-navigation-key='debaterMbti'] > .managed-help {
    grid-column: 2 / -1;
    grid-row: 2;
    min-width: 0;
    white-space: normal;
  }
}

/* 赛事局部布局修复；只匹配已有组件及 DOM 类，不依赖重新编译模板。 */
app-tournament-detail-page .schedule-header,
app-tournament-detail-page .schedule-header > div {
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
}
app-tournament-detail-page .schedule-tab .round-column {
  width: 280px !important;
  min-width: 0 !important;
  flex: 0 0 280px !important;
}
app-tournament-detail-page .schedule-tab .match-card {
  width: 100% !important;
  min-width: 0 !important;
  overflow-wrap: anywhere;
}
app-tournament-detail-page .match-card .team-row {
  min-width: 0;
  gap: 0.75rem;
}
app-tournament-detail-page .match-card .team-info {
  min-width: 0 !important;
  flex: 1;
}
app-tournament-detail-page .match-card .team-info > img,
app-tournament-detail-page .match-card .team-info > div,
app-tournament-detail-page .match-card .team-score,
app-tournament-detail-page .team-card .team-avatar,
app-tournament-detail-page .team-header > img {
  flex-shrink: 0 !important;
}
app-tournament-detail-page .team-card .team-rank {
  width: 3rem !important;
  height: 3rem !important;
  flex-shrink: 0 !important;
  font-size: 0.75rem !important;
  white-space: nowrap;
}
app-tournament-discover-card .broadcast-card__schedule span {
  min-width: 0;
  overflow-wrap: anywhere;
}
app-tournament-discover-card .broadcast-card--list .broadcast-card__button {
  grid-template-columns: minmax(230px, 31%) minmax(0, 1fr) !important;
}

/* 弹窗头部、标签和正文各承担自己的收缩/滚动，长标题不挤走关闭按钮。 */
app-tournament-detail-modal .modal-container {
  max-height: min(90vh, calc(100dvh - 2rem)) !important;
  background: var(--bg-secondary, #0f172a) !important;
}
app-tournament-detail-modal .modal-header {
  gap: 0.75rem;
  flex-shrink: 0;
}
app-tournament-detail-modal .header-left,
app-tournament-detail-modal .header-info {
  min-width: 0;
}
app-tournament-detail-modal .header-left { flex: 1; }
app-tournament-detail-modal .tournament-icon,
app-tournament-detail-modal .header-right { flex-shrink: 0; }
app-tournament-detail-modal .header-title {
  overflow-wrap: anywhere;
  line-height: 1.45 !important;
  color: var(--text-primary, #f8fafc) !important;
}
app-tournament-detail-modal .header-badges { flex-wrap: wrap; }
app-tournament-detail-modal .modal-tabs {
  flex-shrink: 0;
  overflow-x: auto;
}
app-tournament-detail-modal .tab-item {
  flex: 0 0 auto;
  white-space: nowrap;
}
app-tournament-detail-modal .modal-content {
  min-height: 0;
  overflow-x: hidden;
}

/* 固定每轮的列宽才能让队名省略和连接线位置同时成立。 */
app-tournament-bracket-tab .bracket-pane,
app-tournament-bracket-tab .bracket-scroll { min-width: 0; max-width: 100%; }
app-tournament-bracket-tab .bracket-round {
  width: 196px !important;
  min-width: 0 !important;
  flex: 0 0 196px !important;
}
app-tournament-bracket-tab .match-wrapper {
  min-width: 0;
  padding-right: 24px;
  box-sizing: border-box;
}
app-tournament-bracket-tab .bracket-match {
  width: 172px !important;
  min-width: 0 !important;
  background: var(--bg-card, #172033) !important;
  border-color: var(--border-color, #334155);
}
app-tournament-bracket-tab .team-name { min-width: 0; }
app-tournament-bracket-tab .team-seed,
app-tournament-bracket-tab .team-score { flex-shrink: 0; }
app-tournament-bracket-tab .match-team,
app-tournament-bracket-tab .team-score,
app-tournament-bracket-tab .toggle-btn:hover { color: var(--text-primary, #f1f5f9) !important; }
app-tournament-bracket-tab .round-name,
app-tournament-bracket-tab .match-team.winner { color: var(--accent-primary, #d4af37) !important; }
app-tournament-bracket-tab .round-count,
app-tournament-bracket-tab .team-seed,
app-tournament-bracket-tab .toggle-btn { color: var(--text-secondary, #94a3b8) !important; }
app-tournament-bracket-tab .toggle-btn.active { color: #fff !important; }
app-tournament-bracket-tab .team-seed { background: var(--bg-tertiary, #273244) !important; }
app-tournament-bracket-tab .view-toggle { background: var(--bg-card, #172033) !important; }
app-tournament-bracket-tab .round-header { border-color: var(--border-color, #334155) !important; }
app-tournament-bracket-tab .match-divider { background: var(--border-color, #334155) !important; }
app-tournament-bracket-tab .connector-h { right: 0 !important; width: 24px !important; }
app-tournament-bracket-tab .connector-v { right: 0 !important; }
app-tournament-bracket-tab .list-view { display: grid; gap: 0.75rem; }
app-tournament-bracket-tab .match-list-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  color: var(--text-primary, #f8fafc);
  border: 1px solid var(--border-color, #334155);
  border-radius: 0.5rem;
}
app-tournament-bracket-tab .match-info {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
app-tournament-bracket-tab .match-info .team-name { white-space: normal; overflow-wrap: anywhere; }
app-tournament-bracket-tab .match-info .team-name:last-child { text-align: right; }
app-tournament-bracket-tab .match-round,
app-tournament-bracket-tab .match-status { font-size: 0.75rem; color: var(--text-secondary, #94a3b8); }
app-tournament-bracket-tab .match-info .score,
app-tournament-bracket-tab .match-info .vs { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* 房间号可能为 UUID；手机上双方席位各自至少需要一整行空间。 */
app-battle-room .font-mono.text-2xl { overflow-wrap: anywhere; word-break: break-all; }
app-battle-room .text-center.mb-8 > .flex.justify-center { flex-wrap: wrap; }
app-battle-room .max-w-4xl > .grid > div { min-width: 0; }
app-battle-room .grid.grid-cols-2 > div { min-width: 0; overflow-wrap: anywhere; }
app-lobby-room-card .group > .flex.items-center.justify-between.mb-3 {
  flex-wrap: wrap;
  gap: 0.5rem;
}
app-lobby-room-card .group > .flex.items-center.justify-between.mb-3 > .flex {
  min-width: 0;
  flex-wrap: wrap;
}
app-lobby-room-card .group > .flex.items-center.justify-between.mb-3 > .font-mono {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-all;
}
app-lobby-room-card .mb-3 > .flex.gap-2 { flex-wrap: wrap; }

@media (max-width: 767px) {
  app-battle-room .max-w-4xl > .grid.gap-6.mb-8 { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (max-width: 680px) {
  app-tournament-discover-card .broadcast-card--list .broadcast-card__button { display: flex !important; }
}
@media (max-width: 540px) {
  app-tournament-detail-modal .modal-header { flex-wrap: wrap; padding: 1rem !important; }
  app-tournament-detail-modal .header-left { flex-basis: 100%; gap: 0.75rem; }
  app-tournament-detail-modal .header-right { margin-left: auto; }
  app-tournament-detail-modal .modal-tabs { padding-inline: 1rem !important; }
  app-tournament-detail-modal .modal-content { padding: 1rem !important; }
  app-tournament-bracket-tab .match-list-item { grid-template-columns: minmax(0, 1fr) auto; }
  app-tournament-bracket-tab .match-info { grid-row: 2; grid-column: 1 / -1; }
}

/* 观赛侧栏的手机 fixed inset-0 把关闭区放进主导航后方，并盖住播放器。
   回到当前 flex 页面的正常文档流；hidden 类和原关闭事件仍决定是否展示。 */
@media (max-width: 1023px) {
  app-tournament-watch .sidebar-section.fixed {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    width: 100% !important;
    max-height: none;
  }
  app-tournament-watch .player-section.pb-32 {
    min-width: 0;
    padding-bottom: 0 !important;
  }
  app-tournament-watch .sidebar-header,
  app-tournament-watch .sidebar-tabs {
    flex-shrink: 0;
  }
  app-tournament-watch .sidebar-header > button {
    min-width: 44px;
    min-height: 44px;
    flex-shrink: 0;
  }
}

/* 主题层的 important 将画布文字也映射成白天深墨色；在同层限定黑色画布修正。
   白天侧栏、赛事信息与弹幕输入区继续使用原本的主题颜色。 */
@layer debater-visual-system {
  html[data-debater-visual='unified'] app-tournament-watch .video-container {
    color: #f8fafc !important;
    background-color: #000 !important;
    color-scheme: dark;
  }
  html[data-debater-visual='unified'] app-tournament-watch .video-container :is(
    .text-white, .control-btn, .control-btn svg, .controls-row, .progress-time
  ) {
    color: #f8fafc !important;
  }
  html[data-debater-visual='unified'] app-tournament-watch .video-container :is(.text-slate-400, .text-slate-300) {
    color: #cbd5e1 !important;
  }
  html[data-debater-visual='unified'] app-tournament-watch .video-container .player-controls .control-btn:not(.bg-purple-500) {
    color: #f8fafc !important;
    background-color: rgb(15 23 42 / 72%) !important;
    border-color: rgb(255 255 255 / 24%) !important;
  }
  html[data-debater-visual='unified'] app-tournament-watch .video-container .player-controls .control-btn.bg-purple-500 {
    color: #fff !important;
    background-color: var(--dv-action, #b63c35) !important;
  }
}

/* AI 报告数值由两个完整短语组成；按既有空格断行，避免把“通过”拆成孤字。 */
app-tournament-management-page .to-overview .to-metrics > div:last-child dd {
  overflow-wrap: normal !important;
  word-break: keep-all;
  line-height: 1.45;
}

/* 原生完整对阵手机已有 72px 导航避让，桌面缺失；只补同一顶部基准。 */
@media (min-width: 768px) {
  app-tournament-bracket main.bracket-page {
    padding-top: 72px !important;
  }
}

/* 创建容器原为 p-6（24px）；只在原顶部内边距上补既有的 72px 导航空间。 */
app-tournament-create > .container {
  padding-top: calc(72px + 24px) !important;
}

/* 手机控制区换行后高于半个画面；保留画面 16:9，让控制区占自己的文档流空间。
   仅匹配非全屏 aspect-video，桌面与全屏继续使用原覆盖式播放器。 */
@media (max-width: 767px) {
  app-tournament-watch .video-container.aspect-video {
    aspect-ratio: auto !important;
  }
  app-tournament-watch .video-container.aspect-video > :is(.video-element, .live-placeholder, .replay-placeholder) {
    width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9;
    min-height: 0;
  }
  app-tournament-watch .video-container.aspect-video > .video-element:not(.hidden) {
    display: block;
  }
  /* 仅音频模式的视频仍由 hidden 控制，空画面的原有比例由布局占位保留。 */
  app-tournament-watch .video-container.aspect-video:has(> .video-element.hidden)::before {
    content: '';
    display: block;
    aspect-ratio: 16 / 9;
  }
  app-tournament-watch .video-container.aspect-video > .player-controls {
    position: static !important;
    inset: auto !important;
    width: 100%;
    height: auto;
    opacity: 1 !important;
  }
  app-tournament-watch .video-container.aspect-video > .danmaku-layer {
    inset: 0 0 auto !important;
    width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9;
  }
}

/* 空回放显示真实空状态，避免模拟弹幕堆叠遮字；直播和视频保留原弹幕开关。 */
app-tournament-watch .video-container:has(> .replay-placeholder) > .danmaku-layer {
  display: none !important;
}

/* 当前生产公开画像：端点固定列总宽251px，窄屏正文更窄时会将量表挤出容器。 */
@layer debater-visual-system {
  /* 次级测试入口原为透明底，亮色壁纸穿过白字；用现有主题表面保证日夜可读。 */
  #debater-mbti-root .dt-hub .dt-test-action:not(.dm-primary) {
    background: var(--ft-bg-card, #171411) !important;
    color: var(--ft-text-primary, #f5efe6) !important;
    border-color: var(--ft-border, #53483c) !important;
  }

  #debater-mbti-root .dt-hub .dt-test-action:not(.dm-primary):is(:hover, :focus-visible) {
    border-color: var(--ft-claret, var(--dv-accent)) !important;
  }

  /* 理由量表正文列需能收缩；新插入的0/100端点与跨列轨道占用同一宽度。 */
  app-judge-profile-result .result-wrap:not(.jp-reading) .proof-item {
    grid-template-columns: 30px minmax(0, 1fr) !important;
    min-width: 0;
  }

  app-judge-profile-result .result-wrap:not(.jp-reading) .proof-copy {
    grid-template-columns: minmax(0, 1fr) max-content !important;
    min-width: 0;
  }

  app-judge-profile-result .result-wrap:not(.jp-reading) .proof-copy > .jp-spectrum-ends {
    grid-column: 1 / -1 !important;
    min-width: 0;
  }

  /* 白天文字已切为深灰，半透明深灰面板也需同步使用纸色表面。 */
  html.light-mode app-my-criteria [class~="bg-gray-800/50"] {
    background: var(--dv-surface, var(--ft-bg-card)) !important;
    border-color: var(--dv-line, var(--ft-border)) !important;
  }

  /* 白天统计底色已切到纸色，数字仍沿用夜间浅金。 */
  html.light-mode app-home .home-shell .hero-stat > strong {
    color: var(--dv-gold, #806024) !important;
  }

  @media (max-width: 480px) {
    html body .jp-compact #jp-modifiers .modifier-scale {
      grid-template-columns: minmax(0, 1fr) minmax(40px, .8fr) minmax(0, 1fr) !important;
      min-width: 0;
    }

    html body .jp-compact #jp-modifiers .modifier-scale > span:not(.modifier-track) {
      min-width: 0;
      white-space: normal !important;
      overflow-wrap: anywhere;
    }
  }
}

/* 观赛侧栏关闭后保留恢复入口；正常文档流不遮播放器或评论控件。 */
app-tournament-watch :is(.site-layout-watch-sidebar-reopen, .watch-sidebar-reopen) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  flex-shrink: 0;
  max-width: calc(100% - 24px);
  min-height: 44px;
  margin: 12px;
  padding: 10px 16px;
  border: 1px solid var(--dv-line, #4b4035);
  border-radius: 8px;
  background: var(--dv-surface, #211c18);
  color: var(--dv-text, #f6f1e8);
  font: inherit;
  line-height: 1.4;
  white-space: normal;
  cursor: pointer;
}
app-tournament-watch .site-layout-watch-sidebar-reopen[hidden] {
  display: none !important;
}
app-tournament-watch :is(.site-layout-watch-sidebar-reopen, .watch-sidebar-reopen):hover {
  background: var(--dv-raised, #2c251f);
}
app-tournament-watch :is(.site-layout-watch-sidebar-reopen, .watch-sidebar-reopen):focus-visible {
  outline: 2px solid var(--dv-accent, #ef8475);
  outline-offset: 3px;
}
