/* 第1份视觉方案：三榜并列；窄屏分类切换，复用赛事昼夜令牌。 */
.tjr-root, .tlb-root {
  --tjr-text: var(--tv-text, var(--ft-text, #f6f1e8));
  --tjr-muted: var(--tv-muted, var(--ft-muted, #bdb3a5));
  --tjr-panel: var(--tv-panel, var(--ft-paper, #211c18));
  --tjr-line: var(--tv-line, var(--ft-rule, #4b4035));
  --tjr-accent: var(--tv-accent, var(--ft-brand, #ef8a80));
  --tjr-soft: var(--tv-soft, var(--ft-bg-tint, #2c251f));
  color: var(--tjr-text); min-width: 0; max-width: 100%;
}
.tjr-root { padding: 24px; margin-bottom: 24px; border: 1px solid var(--tjr-line); border-radius: 8px; background: var(--tjr-panel); }
.tjr-heading, .tlb-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.tjr-heading { flex-wrap: wrap; }
.tjr-heading .tjr-rules { margin: 0; }
.tjr-heading .tjr-rules[open] { flex-basis: 100%; }
.tjr-group-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.tjr-group-heading h3, .tjr-group-heading .tjr-rules { margin: 0; }
.tjr-group-heading .tjr-rules[open] { flex-basis: 100%; }
.tjr-root h2 { margin: 0; font-size: 23px; line-height: 1.4; color: var(--tjr-text); }
.tjr-refresh { min-height: 44px; padding: 9px 14px; border: 1px solid var(--tjr-line); border-radius: 6px; background: transparent; color: var(--tjr-text); font: inherit; font-size: 14px; cursor: pointer; flex-shrink: 0; }
.tjr-refresh:hover { background: var(--tjr-soft); border-color: var(--tjr-accent); }
.tjr-refresh:disabled { cursor: wait; opacity: .65; }
.tjr-refresh:focus-visible, .tjr-row-summary:focus-visible, .tjr-rules summary:focus-visible, .tlb-category:focus-visible { outline: 3px solid var(--tjr-accent); outline-offset: 3px; }
.tjr-intro, .tjr-footnote, .tjr-group-count { color: var(--tjr-muted); line-height: 1.65; font-size: 14px; margin: 8px 0 16px; }
.tjr-rules { color: var(--tjr-muted); font-size: 14px; line-height: 1.7; margin-bottom: 16px; }
.tjr-rules summary { cursor: pointer; width: fit-content; min-height: 44px; align-content: center; color: var(--tjr-text); }
.tjr-rules p { margin: 8px 0 16px; }
.tjr-list, .tlb-vote-list { list-style: none; padding: 0; margin: 0; }
.tjr-group + .tjr-group { margin-top: 24px; }
.tjr-group h3 { font-size: 17px; line-height: 1.5; margin: 0 0 8px; color: var(--tjr-text); }
.tjr-group-count { margin: 10px 0 0; }
.tjr-row, .tlb-vote-row { min-width: 0; border-top: 1px solid var(--tjr-line); }
.tjr-row-summary { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 6px 0; box-sizing: border-box; min-height: 44px; cursor: pointer; list-style: none; }
.tjr-row-summary::-webkit-details-marker { display: none; }
.tjr-row-summary:hover .tlb-disclosure-label { color: var(--tjr-accent); }
.tjr-rank { color: var(--tjr-muted); font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.tjr-row:nth-child(-n+3) .tjr-rank, .tlb-vote-row:nth-child(-n+3) .tjr-rank { color: var(--tjr-accent); }
.tjr-person, .tlb-vote-identity { min-width: 0; overflow-wrap: anywhere; }
.tjr-name { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.tjr-name strong { font-size: 15px; line-height: 1.5; color: var(--tjr-text); overflow-wrap: anywhere; }
.tlb-disclosure-label { color: var(--tjr-muted); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.tjr-kind { padding: 0 4px; font-size: 11px; color: var(--tjr-muted); border: 1px solid var(--tjr-line); border-radius: 3px; }
.tjr-samples { font-size: 13px; color: var(--tjr-muted); margin: 2px 0 0; line-height: 1.5; overflow-wrap: anywhere; }
.tjr-score { display: flex; align-items: baseline; gap: 3px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tjr-score strong { font-size: 22px; font-weight: 700; color: var(--tjr-text); }
.tjr-score span { font-size: 12px; color: var(--tjr-muted); }
.tjr-footnote { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--tjr-line); }
.tjr-empty { color: var(--tjr-muted); font-size: 14px; line-height: 1.8; margin: 20px 0; }
.tlb-expanded-detail { margin: 0 0 12px 36px; padding: 8px 0; color: var(--tjr-muted); }
.tlb-expanded-detail .tjr-samples, .tjr-samples.tlb-expanded-detail { font-size: 14px; line-height: 1.65; }
.tlb-heading { margin-bottom: 28px; }
.tlb-heading h2 { margin: 0; font-size: 28px; line-height: 1.4; color: var(--tjr-text); }
.tlb-heading .tjr-intro { margin-bottom: 0; }
.tlb-event-label { font-size: 14px; line-height: 1.6; color: var(--tjr-accent); margin: 0 0 8px; }
.tlb-board-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
/* 赛事视觉总表把 .tjr-root 当卡片；本页以细分隔线恢复连续纸面。 */
html body #tournament-rankings.tlb-root .tjr-root { border: 0 !important; border-radius: 0 !important; background: transparent !important; padding: 0 24px; margin: 0; box-shadow: none !important; }
html body #tournament-rankings.tlb-root .tjr-root:first-child { padding-left: 0; }
html body #tournament-rankings.tlb-root .tjr-root:last-child { padding-right: 0; }
html body #tournament-rankings.tlb-root .tjr-root + .tjr-root { border-left: 1px solid var(--tjr-line) !important; }
html body #tournament-rankings.tlb-root h2 { font-size: 23px !important; line-height: 1.45 !important; min-height: 44px; }
html body #tournament-rankings.tlb-root .tlb-heading h2 { font-size: 28px !important; }
html body #tournament-rankings.tlb-root h3 { font-size: 17px !important; line-height: 1.5 !important; }
#tournament-rankings .tjr-root > .tjr-intro { min-height: 46px; margin-bottom: 16px; }
#tournament-rankings .tjr-rules summary { min-height: 44px; }
#tournament-rankings .tlb-vote-row:nth-child(n+9) .tlb-vote-source:not([open]) .tjr-row-summary .tjr-samples { display: none; }
#tournament-rankings .tlb-vote-row .tjr-score strong { font-size: 20px; }
#tournament-rankings .tlb-vote-row .tjr-row-summary { align-items: start; }
#tournament-rankings .tjr-group[data-judge-kind="ai"] { margin-top: 24px; }
#tournament-rankings .tlb-board-grid > .tjr-root > .tjr-refresh { border: 0; color: var(--tjr-accent); padding-left: 0; margin-top: 6px; }
.tlb-categories { display: none; }
.tlb-category { min-height: 44px; font: inherit; font-size: 14px; color: var(--tjr-muted); border: 0; border-radius: 5px; background: transparent; padding: 8px; cursor: pointer; }
.tlb-category[aria-pressed="true"] { color: var(--tjr-text); background: var(--tv-active, var(--tjr-soft)); font-weight: 700; }
.tlb-route app-tournament-detail-page > .tournament-detail-page > main.tab-content > :not(#tournament-rankings) { display: none !important; }
.tlb-route .tab-nav .tab-item:not(#tournament-rankings-tab) .active-indicator { display: none; }
.tlb-route .tab-nav .tab-item:not(#tournament-rankings-tab) { color: var(--ft-muted, #8f8f8f) !important; background: transparent !important; }
#tournament-rankings-tab[aria-selected="true"] { color: var(--ft-accent, #ca3d35); border-bottom: 2px solid currentColor; }
#tournament-rankings-tab { min-height: 44px; }
.tlb-votes-moved .tpv-ranking { display: none; }
.tlb-votes-moved .tpv-layout { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1099px) {
  .tlb-board-grid { grid-template-columns: minmax(0, 1fr); }
  .tlb-categories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; border: 1px solid var(--tjr-line); border-radius: 7px; padding: 3px; margin-bottom: 24px; }
  #tournament-rankings .tlb-board-grid > .tjr-root { display: none; }
  #tournament-rankings[data-category="people"] #tournament-best-votes,
  #tournament-rankings[data-category="judges"] #tournament-judge-ranking,
  #tournament-rankings[data-category="teams"] #tournament-team-votes { display: block; }
  html body #tournament-rankings.tlb-root .tlb-board-grid > .tjr-root { border: 0 !important; padding: 0; }
  #tournament-rankings .tjr-root > .tjr-intro { min-height: 0; }
  #tournament-judge-ranking > .tjr-heading, #tournament-judge-ranking > .tjr-intro { display: none; }
}
@media (max-width: 600px) {
  .tlb-heading { gap: 10px; margin-bottom: 20px; align-items: start; }
  .tlb-heading .tjr-refresh { padding: 8px; font-size: 12px; }
  .tlb-heading .tjr-intro { font-size: 13px; }
  .tlb-heading { display: block; position: relative; }
  .tlb-heading > .tjr-refresh { position: absolute; top: 32px; right: 0; }
  .tlb-heading h2 { padding-right: 90px; }
  .tlb-heading .tjr-intro { display: none; }
  .tlb-event-label { font-size: 13px; }
  html body #tournament-rankings.tlb-root .tlb-heading h2 { font-size: 26px !important; }
  html body #tournament-rankings.tlb-root h2 { font-size: 22px !important; }
  .tjr-row-summary { gap: 8px; grid-template-columns: 24px minmax(0, 1fr) auto; padding: 6px 0; }
  .tjr-score strong { font-size: 23px; }
  .tjr-root { padding: 16px; }
  .tjr-samples { font-size: 13px; }
}
