/* 公共皮肤只统一色彩；页面网格、输入留白及图标各自保有布局职责。 */
/* 排名筛选新增“评分尺度”后仍沿用五列模板，导致搜索及按钮被挤窄。 */
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;
    }
  }

/* 赛事局部布局修复；只匹配已有组件及 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; }
}

/* 当前生产公开画像：端点固定列总宽251px，窄屏正文更窄时会将量表挤出容器。 */
@layer debater-visual-system {
  @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;
    }
  }
}
