/* ══════════════════════════════════════════════════════════════════
   BHT.CSS — BSU 万圣试炼 (Halloween Trials)
   设计风格：米白与橄榄绿配色 · 泼墨武侠风 · 克制精致 · 轻快活力
   ══════════════════════════════════════════════════════════════════ */

:root {
  /* ─── 色彩体系 (米白底色 + 橄榄绿/竹青主色 + 浓淡水墨) ─── */
  --bg-primary: #FAF8F5;          /* 宣纸米白基底 */
  --bg-secondary: #F4EFEA;        /* 温润米黄辅底 */
  --bg-card: #FFFFFF;             /* 纯白卡片 */
  --bg-card-subtle: #FAF7F2;      /* 浅米灰微质感 */

  /* 橄榄绿与翠竹层级 */
  --olive-dark: #2F3B22;          /* 沉稳深橄榄 / 墨绿 */
  --olive-primary: #4A5D35;       /* 核心橄榄绿 */
  --olive-vibrant: #5D7442;       /* 活跃青翠绿 */
  --olive-light: #7E975F;         /* 嫩草竹青 */
  --olive-subtle: #EBF0E4;        /* 极浅竹叶洗 */
  --olive-border: rgba(74, 93, 53, 0.18);
  --olive-glow: rgba(93, 116, 66, 0.22);

  /* 水墨深浅层级 (墨分五色) */
  --ink-deep: #1A1C19;            /* 焦墨 · 极深标题 */
  --ink-primary: #2B2E2A;         /* 浓墨 · 正文字体 */
  --ink-secondary: #585C54;       /* 重墨 · 副标题/说明 */
  --ink-muted: #5F655C;           /* 淡墨 · 注释/时间 (对比度优化 ≥4.5:1) */
  --ink-wash: rgba(30, 35, 25, 0.04); /* 泼墨轻烟 */

  /* 印章与状态点缀 */
  --seal-vermilion: #B83A2C;      /* 朱砂红印章 */
  --seal-vermilion-bg: rgba(184, 58, 44, 0.08);
  --gold-antique: #A68032;        /* 榜首古金 */
  --gold-bg: rgba(166, 128, 50, 0.1);

  /* 状态色体系 */
  --status-success-text: #2C6641;
  --status-success-bg: #E8F5EC;
  --status-success-border: #A3D8B4;

  --status-active-text: #486128;
  --status-active-bg: #F0F6E8;
  --status-active-border: #B7D98E;

  --status-standby-text: #8A641A;
  --status-standby-bg: #FCF5E5;
  --status-standby-border: #E8CF92;

  /* ─── 字体系统 ─── */
  --font-serif: "Noto Serif SC", "Songti SC", "Source Han Serif SC", STSong, Georgia, serif;
  --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", monospace;
  /* 榜单数据专用：玩家名 / 数字 / 英文 ID 一律走系统无衬线字体 */
  --font-data: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* ─── 几何与阴影 ─── */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 9999px;
  --shadow-sm: 0 2px 8px rgba(47, 59, 34, 0.04);
  --shadow-md: 0 6px 20px rgba(47, 59, 34, 0.07);
  --shadow-lg: 0 16px 36px rgba(47, 59, 34, 0.09);
  --shadow-lift: 0 10px 28px rgba(74, 93, 53, 0.15);
}

/* ─── Reset & Base ─── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background-color: var(--bg-primary);
  color: var(--ink-primary);
  font-family: var(--font-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  position: relative;
  background-image: 
    radial-gradient(circle at 10% 15%, rgba(93, 116, 66, 0.05) 0%, transparent 40%),
    radial-gradient(circle at 90% 85%, rgba(74, 93, 53, 0.04) 0%, transparent 50%),
    linear-gradient(to bottom, #FAF8F5 0%, #F5F0E8 100%);
  background-attachment: fixed;
}

/* 宣纸墨韵微噪点叠加 */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
  opacity: 0.8;
  z-index: 999;
}

.container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ═══════════════════════════════════
   TOP NAVIGATION BAR (试炼令 · 航标)
   ═══════════════════════════════════ */
.bht-navbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250, 248, 245, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--olive-border);
  transition: all 0.3s ease;
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--ink-deep);
}

.brand-seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--seal-vermilion);
  color: #FFF;
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(184, 58, 44, 0.25);
  letter-spacing: -1px;
}

.brand-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--ink-deep);
}

.brand-sub {
  font-size: 11px;
  font-family: var(--font-mono);
  color: var(--olive-primary);
  background: var(--olive-subtle);
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  font-weight: 600;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.nav-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 1rem;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-secondary);
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-pill);
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: var(--shadow-sm);
}

.nav-link-btn:hover {
  color: var(--olive-primary);
  border-color: var(--olive-primary);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.nav-link-btn.highlight {
  background: var(--olive-subtle);
  color: var(--olive-primary);
  border-color: var(--olive-light);
  font-weight: 600;
}

/* ─── 移动端导航：≤520 两行，521–767 紧凑单行 ─── */
@media (max-width: 520px) {
  .nav-container {
    height: auto;
    min-height: 56px;
    flex-wrap: wrap;
    row-gap: 6px;
    padding-block: 8px;
    align-items: center;
  }

  .nav-brand {
    flex: 0 1 auto;
    min-width: 0;
    gap: 10px;
  }

  .brand-title {
    font-size: 16px;
    line-height: 1.25;
    white-space: nowrap;
  }

  .brand-sub {
    display: none;
  }

  .nav-links {
    flex: 1 1 100%;
    gap: 6px;
  }

  .nav-link-btn {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    padding: 0.4rem 0.35rem;
    font-size: 12px;
    white-space: nowrap;
  }
}

@media (min-width: 521px) and (max-width: 767px) {
  .nav-container {
    height: 64px;
  }

  .brand-sub {
    display: none;
  }

  .brand-title {
    font-size: 16px;
    white-space: nowrap;
  }

  .nav-link-btn {
    white-space: nowrap;
    font-size: 12px;
    padding: 0.4rem 0.7rem;
  }
}

/* ═══════════════════════════════════
   HERO SECTION (泼墨论剑台)
   ═══════════════════════════════════ */
.hero-section {
  position: relative;
  padding: 4.5rem 0 3rem;
  overflow: hidden;
  border-bottom: 1px dashed rgba(74, 93, 53, 0.15);
}

/* 泼墨动态画布背景 */
.ink-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 1;
  z-index: 0;
}

.hero-content {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 1040px;
  margin: 0 auto;
}

/* 武侠感印章标签 */
.hero-tag-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.seal-tag {
  background: var(--seal-vermilion);
  color: #FFF;
  font-family: var(--font-serif);
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 3px;
  letter-spacing: 1px;
}

.hero-subtag {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 1.5px;
  color: var(--olive-primary);
  text-transform: uppercase;
  font-weight: 600;
}

.hero-title {
  font-family: var(--font-serif);
  font-size: 44px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--ink-deep);
  margin-bottom: 1rem;
  letter-spacing: 1px;
}

.hero-title .highlight-brush {
  position: relative;
  color: var(--olive-primary);
  display: inline-block;
}

.hero-title .highlight-brush::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: -4px;
  right: -4px;
  height: 12px;
  background: rgba(126, 151, 95, 0.22);
  z-index: -1;
  border-radius: 4px;
  transform: rotate(-1deg);
}

.hero-desc {
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink-secondary);
  max-width: 640px;
  margin: 0 auto;
  font-weight: 400;
}

/* ─── 试炼概览 · 三组数据格 ─── */
.hero-stats-block {
  margin-top: 2.5rem;
}

.hero-stats-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  margin-bottom: 1.1rem;
}

.stats-heading-line {
  width: clamp(28px, 8vw, 56px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(126, 151, 95, 0.5));
}

.stats-heading-line:last-child {
  background: linear-gradient(90deg, rgba(126, 151, 95, 0.5), transparent);
}

.stats-heading-text {
  font-family: var(--font-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.4em;
  margin-right: -0.4em;
  color: var(--olive-light);
  white-space: nowrap;
}

.hero-stats-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  text-align: left;
}

@media (min-width: 600px) {
  .hero-stats-row {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.85rem;
  }
}

@media (min-width: 960px) {
  .hero-stats-row {
    grid-template-columns: repeat(4, 1fr);
    gap: 0.85rem;
  }
}

.stat-pill {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 1.15rem 1rem 1rem;
  background:
    radial-gradient(120% 110% at 100% 0%, rgba(126, 151, 95, 0.06) 0%, transparent 58%),
    var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.28s cubic-bezier(0.25, 1, 0.5, 1),
              box-shadow 0.28s ease,
              border-color 0.28s ease;
}

a.stat-pill {
  cursor: pointer;
}

/* 卡片左上角一撇墨痕 */
.stat-pill::before {
  content: "";
  position: absolute;
  top: 0;
  left: 1.25rem;
  width: 26px;
  height: 2px;
  border-radius: 0 0 2px 2px;
  background: var(--olive-light);
  opacity: 0.6;
  transition: width 0.3s ease, opacity 0.3s ease, background 0.3s ease;
}

.stat-pill:hover {
  transform: translateY(-3px);
  border-color: rgba(126, 151, 95, 0.5);
  box-shadow: 0 12px 28px rgba(47, 59, 34, 0.09);
}

.stat-pill:hover::before {
  width: 48px;
  opacity: 1;
}

.stat-pill-link:hover {
  border-color: rgba(184, 134, 11, 0.5);
  box-shadow: 0 12px 28px rgba(184, 134, 11, 0.12);
}

.stat-pill-link:hover .stat-pill-index {
  background: var(--gold-antique);
  border-color: var(--gold-antique);
  color: #FFF;
}

.stat-pill-link:hover::before {
  background: var(--gold-antique);
}

.stat-pill-arrow {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--gold-antique);
  transition: transform 0.25s ease;
}

.stat-pill-link:hover .stat-pill-arrow {
  transform: translateX(4px);
}

.stat-pill-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.9rem;
}

.stat-pill-index {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(126, 151, 95, 0.45);
  border-radius: 3px;
  color: var(--olive-primary);
  font-family: var(--font-serif);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.stat-pill:hover .stat-pill-index {
  background: var(--olive-primary);
  border-color: var(--olive-primary);
  color: #FFF;
}

.stat-pill-label {
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--ink-secondary);
  line-height: 1.2;
  white-space: nowrap;
}

.stat-pill-value {
  display: flex;
  align-items: baseline;
  font-family: var(--font-mono);
  color: var(--ink-deep);
  line-height: 1;
  margin-bottom: 0.95rem;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.stat-value-num {
  font-size: clamp(1.65rem, 2.2vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.stat-value-op {
  align-self: center;
  margin: 0 0.42em;
  font-size: 13px;
  font-weight: 500;
  color: rgba(74, 93, 53, 0.55);
}

/* 「主榜 / 潜龙」之间的墨线分席 */
.stat-value-divider {
  align-self: stretch;
  width: 1px;
  margin: 0.08em 0.4em;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(126, 151, 95, 0.55) 22%,
    rgba(126, 151, 95, 0.55) 78%,
    transparent 100%
  );
}

.stat-value-unit {
  margin-left: 0.3em;
  font-size: 13px;
  font-weight: 600;
  color: var(--olive-primary);
}

.stat-value-note {
  align-self: center;
  margin-left: 0.4rem;
  padding: 2px 6px;
  border: 1px solid rgba(126, 151, 95, 0.3);
  border-radius: var(--radius-pill);
  background: var(--olive-subtle);
  color: var(--olive-primary);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}

.stat-pill-foot {
  width: 100%;
  margin-top: auto;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(74, 93, 53, 0.16);
  font-family: var(--font-sans);
  font-size: 11.5px;
  line-height: 1.55;
  letter-spacing: 0.02em;
  color: #6F756A;
}

/* 移动端：改为「标题—数值」横向卡片，更省纵向空间 */
@media (max-width: 719px) {
  .stat-pill {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 0.9rem;
    padding: 0.95rem 1.1rem;
  }

  .stat-pill-head {
    margin-bottom: 0;
  }

  .stat-pill-value {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    margin-bottom: 0;
  }

  .stat-value-num {
    font-size: clamp(1.75rem, 3vw + 1rem, 2.25rem);
  }

  .stat-value-unit,
  .stat-value-op {
    font-size: 12px;
  }

  .stat-pill-foot {
    grid-column: 1 / -1;
    margin-top: 0.6rem;
    padding-top: 0.55rem;
  }
}

@media (max-width: 359px) {
  .stat-pill {
    grid-template-columns: 1fr;
  }

  .stat-pill-value {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    margin-top: 0.5rem;
  }

  .stat-pill-foot {
    grid-row: 3;
  }
}

/* ═══════════════════════════════════
   TRACK NAVIGATOR (赛道论剑台)
   ═══════════════════════════════════ */
.track-section {
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
}

.section-head {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}

@media (min-width: 768px) {
  .section-head {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.section-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.section-calligraphy-mark {
  width: 4px;
  height: 22px;
  background: var(--olive-primary);
  border-radius: 2px;
}

.section-title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 700;
  color: var(--ink-deep);
  letter-spacing: 0.5px;
}

.section-hint {
  font-size: 13px;
  color: var(--ink-muted);
}

/* 赛道 Tab 切换栏 (单行流光排列，自适应绝不换行断裂) */
.track-tabs-bar {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.35rem;
  margin-bottom: 1.5rem;
}

.track-tabs-bar::-webkit-scrollbar {
  display: none;
}

.track-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.38rem 0.72rem;
  border-radius: var(--radius-pill);
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-secondary);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  box-shadow: var(--shadow-sm);
  white-space: nowrap;
  flex-shrink: 0;
}

.track-tab-btn:hover {
  background: #FFF;
  color: var(--olive-primary);
  border-color: var(--olive-light);
  transform: translateY(-1px);
}

.track-tab-btn.active {
  background: var(--olive-primary);
  color: #FFF;
  border-color: var(--olive-primary);
  box-shadow: 0 4px 14px rgba(74, 93, 53, 0.28);
  font-weight: 600;
}

.track-tab-btn .tab-count {
  font-family: var(--font-mono);
  font-size: 11px;
  background: rgba(0, 0, 0, 0.06);
  padding: 1px 6px;
  border-radius: 999px;
}

.track-tab-btn.active .tab-count {
  background: rgba(255, 255, 255, 0.25);
  color: #FFF;
}

/* 搜索与工具栏 */
.toolbar-wrap {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}

@media (min-width: 640px) {
  .toolbar-wrap {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.search-box {
  position: relative;
  width: 100%;
  max-width: 320px;
}

.search-input {
  width: 100%;
  padding: 0.55rem 1rem 0.55rem 2.4rem;
  font-size: 13px;
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-pill);
  color: var(--ink-deep);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-shadow: var(--shadow-sm);
}

.search-input:focus {
  border-color: var(--olive-primary);
  box-shadow: 0 0 0 3px rgba(93, 116, 66, 0.15);
}

.search-icon {
  position: absolute;
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-muted);
  font-size: 13px;
  pointer-events: none;
}

.sync-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 12px;
  color: var(--ink-secondary);
  font-family: var(--font-mono);
  background: var(--bg-card);
  padding: 0.4rem 0.85rem;
  border-radius: var(--radius-pill);
  border: 1px solid var(--olive-border);
}

.sync-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--olive-vibrant);
  box-shadow: 0 0 8px var(--olive-vibrant);
  animation: pulse-dot 2s infinite ease-in-out;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.15); }
}

/* ═══════════════════════════════════
   TOP 3 PODIUM (三甲豪杰 · 试炼领跑)
   ═══════════════════════════════════ */
.podium-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

@media (min-width: 768px) {
  .podium-grid {
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
  }
}

.podium-card {
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  position: relative;
  box-shadow: var(--shadow-sm);
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow: hidden;
}

.podium-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lift);
}

/* 状元榜首 · 特殊翡翠古金质感 */
.podium-card.rank-1 {
  border-color: #CDB370;
  background: linear-gradient(175deg, #FFFFFF 60%, #FAF5E8 100%);
  box-shadow: 0 8px 24px rgba(166, 128, 50, 0.12);
}

.podium-card.rank-1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #A68032, #E3C87D, #A68032);
}

/* 榜眼 */
.podium-card.rank-2 {
  border-color: #B5BFAB;
  background: linear-gradient(175deg, #FFFFFF 65%, #F4F7F0 100%);
}

.podium-card.rank-2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #6B7F59, #A2B591, #6B7F59);
}

/* 探花 */
.podium-card.rank-3 {
  border-color: #D1C5B4;
  background: linear-gradient(175deg, #FFFFFF 70%, #F8F4ED 100%);
}

.podium-card.rank-3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #A3876B, #C7B099, #A3876B);
}

.podium-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.podium-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  letter-spacing: 0.02em;
}

/* 三甲底色统一调淡，避免抢戏 */
.rank-1 .podium-badge {
  background: #FDFAF1;
  color: #9A7628;
  border: 1px solid #EFE2C2;
}

.rank-2 .podium-badge {
  background: #F5F8F2;
  color: #4F6440;
  border: 1px solid #DCE6D3;
}

.rank-3 .podium-badge {
  background: #FBF8F3;
  color: #80674F;
  border: 1px solid #E9DFD2;
}

.podium-track {
  font-size: 11px;
  font-family: var(--font-sans);
  color: var(--ink-muted);
  background: var(--bg-secondary);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
}

.podium-user {
  margin-bottom: 0;
}

.podium-name {
  font-family: var(--font-data);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink-deep);
  margin-bottom: 4px;
  overflow-wrap: anywhere;
  letter-spacing: -0.01em;
}

.podium-title {
  font-family: var(--font-data);
  font-size: 12px;
  color: var(--olive-primary);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  line-height: 1.5;
}

.podium-id {
  font-family: var(--font-data);
  font-size: 12px;
  color: var(--ink-muted);
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

/* 奖金标签：夹在 ID 与数据之间，弱化为小徽章 */
.podium-prize {
  margin-top: 10px;
}

.podium-prize-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  background: #FFF9EC;
  border: 1px solid #F2E6C9;
  color: #A68032;
  font-family: var(--font-data);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.podium-prize-tag.is-empty {
  background: transparent;
  border-color: transparent;
  color: #B4B4B4;
  font-weight: 400;
  padding-left: 0;
}

.podium-score-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 0;
  border-top: none;
}

.podium-score-label {
  font-family: var(--font-data);
  font-size: 12px;
  color: var(--ink-muted);
  font-weight: 400;
}

.podium-score-value-wrap {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
}

.podium-score-value {
  font-family: var(--font-data);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink-deep);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.podium-score-unit {
  font-size: 12px;
  color: #9A9F96;
  font-weight: 500;
  margin-left: 0;
}

/* ═══════════════════════════════════
   LEADERBOARD TABLE (试炼全景总榜)
   ═══════════════════════════════════ */
.table-card {
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  margin-bottom: 3.5rem;
}

.bht-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.bht-table th {
  background: var(--bg-card-subtle);
  padding: 1rem 1.2rem;
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-secondary);
  border-bottom: 1px solid var(--olive-border);
  letter-spacing: 0.5px;
}

.bht-table td {
  padding: 1.1rem 1.2rem;
  font-size: 14px;
  border-bottom: 1px solid rgba(74, 93, 53, 0.08);
  color: var(--ink-primary);
  transition: background 0.15s ease;
}

.bht-table tbody tr:hover td {
  background: rgba(93, 116, 66, 0.04);
}

.bht-table tbody tr:last-child td {
  border-bottom: none;
}

/* 排名徽标 */
.rank-num {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
}

.rank-top-1 {
  background: #FCF5E5;
  color: #926E1E;
  border: 1px solid #E4CD96;
}

.rank-top-2 {
  background: #EFF4EB;
  color: #435A33;
  border: 1px solid #C1D4B5;
}

.rank-top-3 {
  background: #F9F3EA;
  color: #7D6146;
  border: 1px solid #DDCFBF;
}

/* 选手信息单元格 */
.player-cell {
  display: flex;
  flex-direction: column;
}

.player-name {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink-deep);
}

.player-title {
  font-size: 12px;
  color: var(--olive-primary);
  margin-top: 1px;
}

.player-id-mono {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--ink-muted);
}

/* 赛道胶囊 */
.track-badge {
  display: inline-block;
  padding: 3px 9px;
  font-size: 12px;
  border-radius: var(--radius-pill);
  background: var(--olive-subtle);
  color: var(--olive-primary);
  font-weight: 500;
}

/* 试炼状态徽章 (清晰状态色) */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 500;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
}

.status-success {
  background: var(--status-success-bg);
  color: var(--status-success-text);
  border-color: var(--status-success-border);
}

.status-active {
  background: var(--status-active-bg);
  color: var(--status-active-text);
  border-color: var(--status-active-border);
}

.status-standby {
  background: var(--status-standby-bg);
  color: var(--status-standby-text);
  border-color: var(--status-standby-border);
}

/* 分数单元格 */
.score-cell {
  font-family: var(--font-mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-deep);
}

.score-unit {
  font-size: 12px;
  font-weight: 400;
  color: var(--olive-primary);
  margin-left: 2px;
}

/* ═══════════════════════════════════
   GROUPED LEADERBOARD BLOCKS (A / B / 潜龙榜)
   ═══════════════════════════════════ */
.leaderboard-blocks {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-bottom: 3.5rem;
}

.lb-block {
  --lb-accent: #C93B55;
  --lb-accent-soft: rgba(255, 99, 132, 0.1);
  --lb-accent-line: rgba(255, 99, 132, 0.32);
  --lb-th-bg: #FBF9F5;
  --lb-row-alt: #FDFBF9;
  --lb-row-hover: #F8F4ED;
  position: relative;
  background: var(--bg-card);
  border: 1px solid rgba(74, 93, 53, 0.14);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.lb-block::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--lb-accent), transparent 72%);
  opacity: 0.9;
}

.lb-block-a {
  --lb-accent: #C93B55;
  --lb-accent-soft: rgba(255, 99, 132, 0.1);
  --lb-accent-line: rgba(255, 99, 132, 0.32);
  --lb-th-bg: #FBF7F8;
  --lb-row-alt: #FEFBFC;
  --lb-row-hover: #FBF3F5;
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(255, 99, 132, 0.045), transparent 52%),
    var(--bg-card);
}

.lb-block-b {
  --lb-accent: #2F8B8B;
  --lb-accent-soft: rgba(75, 192, 192, 0.1);
  --lb-accent-line: rgba(75, 192, 192, 0.34);
  --lb-th-bg: #F7FBFB;
  --lb-row-alt: #FBFDFD;
  --lb-row-hover: #F2F9F9;
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(75, 192, 192, 0.05), transparent 52%),
    var(--bg-card);
}

.lb-block-rookie {
  --lb-accent: #3D7A2E;
  --lb-accent-soft: #EAF4E3;
  --lb-accent-line: rgba(61, 122, 46, 0.28);
  --lb-th-bg: #F4FAEF;
  --lb-row-alt: #FAFCF7;
  --lb-row-hover: #F2F8EC;
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(82, 196, 26, 0.055), transparent 52%),
    linear-gradient(180deg, #FBFDF8 0%, #FFFFFF 38%);
}

.lb-block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.25rem 1.5rem 1.15rem;
  border-bottom: 1px solid rgba(74, 93, 53, 0.1);
}

.lb-block-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
}

.lb-block-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--lb-accent-soft);
  border: 1px solid var(--lb-accent-line);
  font-size: 21px;
  line-height: 1;
}

.lb-block-title-line {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.lb-block-title {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink-deep);
  letter-spacing: 0.02em;
}

.lb-focus-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  font-family: var(--font-sans);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  background: var(--lb-accent-soft);
  color: var(--lb-accent);
  border: 1px solid var(--lb-accent-line);
}

.lb-block-sub {
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-muted);
  letter-spacing: 0.01em;
}

.lb-block-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.lb-block-count {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-muted);
  background: var(--bg-card-subtle);
  border: 1px dashed rgba(74, 93, 53, 0.16);
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

/* ─── Block Table ─── */
.lb-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(74, 93, 53, 0.25) transparent;
}

.lb-table-wrap::-webkit-scrollbar {
  height: 7px;
}

.lb-table-wrap::-webkit-scrollbar-thumb {
  background: rgba(74, 93, 53, 0.22);
  border-radius: 999px;
}

.lb-table {
  width: 100%;
  min-width: 700px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  text-align: left;
}

.lb-table th {
  padding: 0.8rem 1.35rem;
  background: var(--lb-th-bg);
  color: #7A8076;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  white-space: nowrap;
  border-bottom: 1px solid rgba(74, 93, 53, 0.1);
}

.lb-table td {
  padding: 0.95rem 1.35rem;
  vertical-align: middle;
  border-bottom: 1px solid rgba(74, 93, 53, 0.075);
  transition: background 0.16s ease;
}

.lb-table tbody tr:nth-child(even) td {
  background: var(--lb-row-alt);
}

.lb-table tbody tr:hover td {
  background: var(--lb-row-hover);
}

.lb-table tbody tr.lb-track-start td {
  box-shadow: inset 0 1px 0 rgba(74, 93, 53, 0.13);
}

.lb-table tbody tr:last-child td {
  border-bottom: none;
}

.lb-th-track { width: 170px; }
.lb-th-player { width: auto; }
.lb-th-score { width: 125px; text-align: right; }
.lb-th-status { width: 110px; }
.lb-th-bonus { width: 120px; text-align: right; }

.lb-cell-score,
.lb-cell-bonus {
  text-align: right;
}

.lb-cell-score,
.lb-cell-bonus,
.lb-cell-status,
.lb-cell-track {
  white-space: nowrap;
}

/* 赛道胶囊 */
.lb-track-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  max-width: 100%;
  padding: 5px 12px;
  border-radius: var(--radius-pill);
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lb-pill-a {
  background: rgba(255, 99, 132, 0.1);
  color: #C93B55;
}

.lb-pill-b {
  background: rgba(75, 192, 192, 0.1);
  color: #2F8B8B;
}

.lb-pill-rookie {
  background: #EAF4E3;
  color: #3D7A2E;
}

.lb-track-icon {
  font-size: 0.9em;
  line-height: 1;
}

/* 侠士 */
.lb-player {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  min-width: 0;
}

.lb-player-main {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  flex-wrap: wrap;
  min-width: 0;
}

.lb-player-name {
  font-family: var(--font-data);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ink-deep);
  overflow-wrap: anywhere;
}

.lb-player-id {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  color: #888;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}

.lb-player-title {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 1px 8px;
  border: 1px solid rgba(74, 93, 53, 0.1);
  border-radius: var(--radius-pill);
  background: #F7F5F0;
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #888;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 数值 */
.lb-score-main {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 3px;
}

.lb-score-value {
  font-family: var(--font-data);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--ink-deep);
  font-variant-numeric: tabular-nums;
}

.lb-score-unit {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink-muted);
}

.lb-attack-count {
  margin-top: 2px;
  font-family: var(--font-data);
  font-size: 11px;
  line-height: 1.3;
  color: #888;
  font-variant-numeric: tabular-nums;
}

/* 达标状态 */
.lb-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: var(--radius-pill);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}

.lb-status-met {
  background: var(--status-success-bg);
  border: 1px solid var(--status-success-border);
  color: var(--status-success-text);
}

.lb-status-unmet {
  background: #FDF0ED;
  border: 1px solid #F0C2B8;
  color: #B23A2C;
}

/* 奖金标签 */
.lb-bonus {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  padding: 3px 10px;
  border-radius: 8px;
  background: #FCF5E5;
  border: 1px solid #E4CD96;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  color: #8A651A;
  white-space: nowrap;
}

.lb-bonus-empty {
  padding: 0;
  border-color: transparent;
  background: transparent;
  color: var(--ink-muted);
  font-weight: 400;
}

/* 空状态 */
.lb-empty {
  padding: 3.5rem 1.5rem;
  border: 1px dashed rgba(74, 93, 53, 0.2);
  border-radius: 16px;
  background: var(--bg-card);
  text-align: center;
  box-shadow: var(--shadow-sm);
}

.lb-empty-mark {
  font-size: 32px;
  margin-bottom: 0.6rem;
}

.lb-empty-title {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-deep);
}

.lb-empty-hint {
  margin-top: 4px;
  font-size: 13px;
  color: var(--ink-muted);
}

/* ─── 响应式 ─── */
@media (max-width: 767px) {
  .leaderboard-blocks {
    gap: 1.15rem;
    margin-bottom: 2.5rem;
  }

  .lb-block-head {
    padding: 1rem 1.05rem 0.95rem;
    align-items: flex-start;
  }

  .lb-block-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 18px;
  }

  .lb-block-title {
    font-size: 17px;
  }

  .lb-block-sub {
    font-size: 11.5px;
  }

  .lb-block-count {
    font-size: 10.5px;
  }

  .lb-table {
    min-width: 760px;
  }

  .lb-table th {
    padding: 0.7rem 0.95rem;
  }

  .lb-table td {
    padding: 0.85rem 0.95rem;
  }

  .lb-th-track { width: 170px; }
  .lb-th-score { width: 125px; }
  .lb-th-status { width: 110px; }
  .lb-th-bonus { width: 115px; }

  .lb-track-pill {
    padding: 4px 10px;
    font-size: 14px;
  }

  .lb-player-name {
    font-size: 14px;
  }

  .lb-score-value {
    font-size: 15px;
  }

  .lb-bonus {
    font-size: 12px;
  }
}

/* 移动端：表格行转为区块内堆叠卡片，避免横向滚动 */
@media (max-width: 767px) {
  .lb-block-count {
    display: none;
  }

  .lb-table-wrap {
    overflow: visible;
  }

  .lb-table {
    min-width: 0;
    width: 100%;
    display: block;
    table-layout: auto;
  }

  .lb-table thead {
    display: none;
  }

  .lb-table tbody {
    display: block;
  }

  .lb-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "track bonus"
      "player player"
      "score score";
    align-items: center;
    gap: 0.35rem 0.75rem;
    padding: 0.95rem 1.05rem;
    background: var(--bg-card);
    border-bottom: 1px solid rgba(74, 93, 53, 0.08);
  }

  .lb-block-b .lb-table tr {
    grid-template-areas:
      "track bonus"
      "player player"
      "score status";
  }

  .lb-table tbody tr:nth-child(even) {
    background: var(--lb-row-alt);
  }

  .lb-table tbody tr:hover {
    background: var(--lb-row-hover);
  }

  .lb-table tbody tr:last-child {
    border-bottom: none;
  }

  .lb-table td {
    padding: 0;
    border: none;
    background: transparent !important;
    white-space: normal;
    text-align: left;
  }

  .lb-cell-track {
    grid-area: track;
    min-width: 0;
  }

  .lb-cell-player {
    grid-area: player;
  }

  .lb-cell-score {
    grid-area: score;
  }

  .lb-cell-status {
    grid-area: status;
    justify-self: end;
    align-self: center;
  }

  .lb-cell-bonus {
    grid-area: bonus;
    justify-self: end;
  }

  .lb-table tbody tr.lb-track-start {
    box-shadow: inset 0 1px 0 rgba(74, 93, 53, 0.13);
  }

  .lb-table tbody tr.lb-track-start td {
    box-shadow: none;
  }

  .lb-player {
    gap: 2px;
  }

  .lb-player-main {
    gap: 0.45rem;
  }

  .lb-score-main {
    justify-content: flex-start;
  }

  .lb-attack-count {
    margin-top: 1px;
  }

  .lb-cell-score,
  .lb-cell-bonus {
    text-align: left;
  }

  .lb-bonus {
    font-size: 12px;
    padding: 2px 9px;
  }
}

/* ═══════════════════════════════════
   TRACK CARD LEADERBOARD (按赛道卡片 · 各赛道前3名)
   ═══════════════════════════════════ */
.cl-group {
  --cl-accent: #C93B55;
  --cl-accent-soft: rgba(255, 99, 132, 0.1);
  --cl-accent-line: rgba(255, 99, 132, 0.28);
  position: relative;
  background: var(--bg-card);
  border: 1px solid #eae7df;
  border-radius: 18px;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.cl-group::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--cl-accent), transparent 72%);
}

.cl-group-a {
  --cl-accent: #C93B55;
  --cl-accent-soft: rgba(255, 99, 132, 0.1);
  --cl-accent-line: rgba(255, 99, 132, 0.28);
}

.cl-group-b {
  --cl-accent: #2F8B8B;
  --cl-accent-soft: rgba(75, 192, 192, 0.1);
  --cl-accent-line: rgba(75, 192, 192, 0.3);
}

.cl-group-rookie {
  --cl-accent: #3D7A2E;
  --cl-accent-soft: #EAF4E3;
  --cl-accent-line: rgba(61, 122, 46, 0.25);
  background: linear-gradient(180deg, #FBFDF8 0%, var(--bg-card) 34%);
}

.cl-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.35rem 1.5rem;
  border-bottom: 1px solid #eee;
}

.cl-group-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
}

.cl-group-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--cl-accent-soft);
  border: 1px solid var(--cl-accent-line);
  font-size: 21px;
  line-height: 1;
}

.cl-group-title {
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink-deep);
  letter-spacing: 0.02em;
}

.cl-group-sub {
  margin-top: 3px;
  font-size: 12.5px;
  line-height: 1.55;
  color: #999;
}

.cl-group-count {
  flex: none;
  padding: 4px 10px;
  border: 1px solid #eee;
  border-radius: var(--radius-pill);
  background: #F7F5F0;
  color: #999;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}

.cl-track-list {
  display: flex;
  flex-direction: column;
}

.cl-track {
  padding: 1.35rem 1.5rem 1rem;
  border-bottom: 1px solid #eee;
}

.cl-track:last-child {
  border-bottom: none;
}

.cl-track-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.cl-track-info {
  min-width: 0;
}

.cl-track-title {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.cl-track-icon {
  font-size: 20px;
  line-height: 1;
}

.cl-track-name {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  letter-spacing: 0.01em;
}

.cl-track-rule {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.55;
  color: #999;
}

.cl-track-metric {
  flex: none;
  padding-top: 4px;
  color: #999;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.cl-rows {
  margin-top: 0.3rem;
}

.cl-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
}

.cl-row:last-child {
  border-bottom: none;
}

.cl-row-left {
  flex: 1;
  min-width: 0;
}

.cl-player-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
}

.cl-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 27px;
  margin-right: 7px;
  font-size: 20px;
  line-height: 1;
}

.cl-rank-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #f0f0f0;
  color: #999;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
}

.cl-player-name {
  min-width: 0;
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  overflow-wrap: anywhere;
}

.cl-player-title {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin-left: 8px;
  padding: 2px 6px;
  border-radius: 4px;
  background: #f0f0f0;
  color: #666;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cl-player-meta {
  margin-top: 4px;
  color: #999;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.5;
}

.cl-row-right {
  flex: none;
  text-align: right;
}

.cl-score-line {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
}

.cl-score {
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #d9534f;
  font-variant-numeric: tabular-nums;
}

.cl-unit {
  font-family: var(--font-sans);
  font-size: 12px;
  color: #999;
}

.cl-bonus {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  margin-top: 6px;
  padding: 4px 10px;
  border-radius: 12px;
  background: #fff9e6;
  color: #b8860b;
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.cl-bonus.is-empty {
  padding: 4px 0;
  background: transparent;
  color: #bbb;
}

.cl-empty {
  padding: 3.5rem 1.5rem;
  border: 1px dashed rgba(74, 93, 53, 0.2);
  border-radius: 16px;
  background: var(--bg-card);
  text-align: center;
  box-shadow: var(--shadow-sm);
}

.cl-empty-mark {
  font-size: 32px;
  margin-bottom: 0.6rem;
}

.cl-empty-title {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-deep);
}

.cl-empty-hint {
  margin-top: 4px;
  font-size: 13px;
  color: var(--ink-muted);
}

/* 移动端 */
@media (max-width: 767px) {
  /* 总览时压缩顶部赛道说明卡，把首屏留给榜单 */
  .track-detail-card.detail-overview {
    padding: 1rem 1.1rem;
  }

  .track-detail-card.detail-overview .detail-rule-desc {
    display: none;
  }

  .track-detail-card.detail-overview .detail-top-row {
    gap: 0.6rem;
  }

  .track-detail-card.detail-overview .detail-pool-badge {
    padding: 3px 10px;
    font-size: 11.5px;
  }

  .cl-group-head {
    padding: 1rem 1.05rem;
    align-items: flex-start;
  }

  .cl-group-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 18px;
  }

  .cl-group-title {
    font-size: 18px;
  }

  .cl-group-sub {
    font-size: 11.5px;
  }

  .cl-group-count {
    display: none;
  }

  .cl-track {
    padding: 1.1rem 1.05rem 0.85rem;
  }

  .cl-track-name {
    font-size: 18px;
  }

  .cl-track-rule {
    font-size: 11.5px;
  }

  .cl-track-metric {
    padding-top: 3px;
    font-size: 11px;
  }

  .cl-row {
    gap: 0.75rem;
    padding: 12px 0;
  }

  .cl-player-name {
    font-size: 18px;
  }

  .cl-score {
    font-size: 18px;
  }

  .cl-empty {
    padding: 2.75rem 1.1rem;
  }
}

@media (max-width: 380px) {
  .cl-player-name {
    font-size: 16px;
  }

  .cl-track-name {
    font-size: 17px;
  }

  .cl-score {
    font-size: 17px;
  }
}

/* ═══════════════════════════════════
   TOTAL OVERVIEW GRID (仅总榜 · 每赛道独立卡片)
   ═══════════════════════════════════ */
.cg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
  gap: 24px;
  margin-bottom: 3.5rem;
}

.cg-group-head {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.8rem;
  padding-top: 1.5rem;
  border-top: 1px solid #eee;
}

.cg-grid > .cg-group-head:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.cg-group-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: var(--cg-accent-soft, #F7F5F0);
  border: 1px solid var(--cg-accent-line, #eee);
  font-size: 20px;
  line-height: 1;
}

.cg-group-a {
  --cg-accent-soft: rgba(255, 99, 132, 0.1);
  --cg-accent-line: rgba(255, 99, 132, 0.26);
}

.cg-group-b {
  --cg-accent-soft: rgba(75, 192, 192, 0.1);
  --cg-accent-line: rgba(75, 192, 192, 0.28);
}

.cg-group-rookie {
  --cg-accent-soft: #EAF4E3;
  --cg-accent-line: rgba(61, 122, 46, 0.24);
}

.cg-group-title {
  font-family: var(--font-serif);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink-deep);
  letter-spacing: 0.02em;
}

.cg-group-sub {
  margin-top: 2px;
  font-size: 12.5px;
  line-height: 1.5;
  color: #999;
}

.cg-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px;
  background: var(--bg-card);
  border: 1px solid #eee;
  border-radius: 12px;
  box-shadow: 0 5px 16px rgba(47, 59, 34, 0.06);
}

.cg-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.cg-card-info {
  min-width: 0;
}

.cg-card-title {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.cg-card-icon {
  flex: none;
  font-size: 18px;
  line-height: 1;
}

.cg-card-name {
  font-family: var(--font-data);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
  color: #333;
  overflow-wrap: anywhere;
}

.cg-card-rule {
  margin-top: 3px;
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.5;
  color: #6B6B6B;
}

.cg-pool-tag {
  flex: none;
  padding: 2px 8px;
  border: 1px solid #eee;
  border-radius: var(--radius-pill);
  background: #F7F5F0;
  color: #6B6B6B;
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}

.cg-rows {
  margin-top: 0.3rem;
}

.cg-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed #eee;
}

.cg-row:last-child {
  border-bottom: none;
}

.cg-row-left {
  flex: 1;
  min-width: 0;
}

.cg-player-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
}

.cg-rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 20px;
  margin-right: 4px;
  font-size: 16px;
  line-height: 1;
}

.cg-rank-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #f0f0f0;
  color: #999;
  font-family: var(--font-data);
  font-size: 10px;
  font-weight: 700;
}

.cg-name {
  min-width: 0;
  font-family: var(--font-data);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: #333;
  overflow-wrap: anywhere;
}

.cg-title {
  margin-left: 4px;
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: #6B6B6B;
}

.cg-meta {
  margin-top: 3px;
  font-family: var(--font-data);
  font-size: 12px;
  line-height: 1.5;
  color: #6B6B6B;
  font-variant-numeric: tabular-nums;
}

.cg-row-right {
  flex: none;
  text-align: right;
}

.cg-score-line {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 6px;
}

.cg-score {
  font-family: var(--font-data);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #B03A2E;
  font-variant-numeric: tabular-nums;
}

.cg-unit {
  font-family: var(--font-data);
  font-size: 12px;
  color: #6B6B6B;
}

.cg-bonus {
  display: inline-block;
  margin-top: 5px;
  padding: 2px 8px;
  border-radius: 10px;
  background: #fff7e6;
  color: #8A6100;
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.cg-bonus.is-empty {
  background: transparent;
  color: #bbb;
  padding: 2px 0;
}

/* 表格区恢复后补上的侠龄字段 */
.lb-player-age {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  color: #888;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .cg-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 2.5rem;
  }

  .cg-group-head {
    margin-top: 1.4rem;
    padding-top: 1.2rem;
  }

  .cg-group-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 18px;
  }

  .cg-group-title {
    font-size: 18px;
  }

  .cg-group-sub {
    font-size: 11.5px;
  }

  .cg-card {
    padding: 24px;
  }

  .cg-card-name {
    font-size: 16px;
  }

  .cg-name {
    font-size: 15px;
  }
}

/* ═══════════════════════════════════
   TRACK RANK LIST (第4名以后紧凑列表 + 悬浮我的排名)
   ═══════════════════════════════════ */
.track-board-wrap {
  position: relative;
}

.track-board-wrap .podium-grid {
  margin-bottom: 1.2rem;
}

.track-rank-card {
  margin-top: 0;
  padding: 24px;
  background: var(--bg-card);
  border: 1px solid #eee;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(47, 59, 34, 0.06);
  overflow: hidden;
}

.track-rank-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0 0 14px;
  border-bottom: 1px solid #f2f2f2;
}

.track-rank-head-left {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.track-rank-title {
  font-family: var(--font-data);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: #2F3B22;
  letter-spacing: 0;
}

.track-rank-total {
  font-size: 12px;
  color: #7A8471;
}

.track-rank-total strong {
  font-family: var(--font-data);
  color: #4A5D35;
  font-weight: 600;
}


.track-rank-sub {
  margin-top: 3px;
  font-size: 12px;
  color: #999;
}

.track-rank-metric {
  flex: none;
  padding-top: 3px;
  color: #999;
  font-size: 11px;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.track-rank-list {
  padding: 0;
}

/* 列表项：Grid 严格对齐，主行（名次 + 姓名/图标）+ 副行（称号 · ID · 侠龄） */
.rank-row {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto 64px;
  column-gap: 12px;
  align-items: center;
  min-height: 0;
  padding: 16px 0;
  border-bottom: 1px solid #f0f0f0;
}

.track-rank-list .rank-row:last-child {
  border-bottom: none;
}

.rank-row:hover {
  background: #FBFAF7;
}

.rank-no {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  width: auto;
  text-align: left;
  font-family: var(--font-data);
  font-size: 13px;
  font-weight: 500;
  color: #9CA3AF;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}


.rank-player {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.rank-player-main {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.rank-name {
  font-family: var(--font-data);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: #1F2328;
  overflow-wrap: anywhere;
}

.rank-player-sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px 6px;
  min-width: 0;
}

.rank-title {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  color: #9CA3AF;
  line-height: 1.5;
}

.rank-meta {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 400;
  color: #9CA3AF;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.rank-status {
  font-family: var(--font-data);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  color: #B23A2C;
  background: #FDF0ED;
  border: 1px solid #F0C2B8;
  border-radius: 4px;
  padding: 0 5px;
}

.rank-score-line {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 3px;
  min-width: 0;
}

.rank-score {
  font-family: var(--font-data);
  font-size: 15px;
  font-weight: 700;
  color: #d9534f;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}

.rank-unit {
  font-family: var(--font-data);
  font-size: 11px;
  font-weight: 400;
  color: #9CA3AF;
}

.rank-bonus-cell {
  grid-column: 4;
  grid-row: 1;
  justify-self: end;
  display: flex;
  justify-content: flex-end;
  width: 64px;
}

.rank-bonus {
  display: inline-block;
  text-align: right;
  font-family: var(--font-data);
  font-size: 11px;
  font-weight: 600;
  color: #B8860B;
  background: #FFF7E6;
  border-radius: 999px;
  padding: 2px 8px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  line-height: 1.5;
}

.rank-bonus.is-empty {
  background: transparent;
  color: #C4C4C4;
  padding: 2px 0;
  font-weight: 400;
}

/* 赛道榜单视图切换器 (宋韵国风) */
.track-rank-card .page-size-selector {
  display: inline-flex;
  align-items: center;
  background: rgba(47, 59, 34, 0.05);
  border: 1px solid rgba(47, 59, 34, 0.15);
  border-radius: 9999px;
  padding: 2px 4px;
  gap: 3px;
}

.track-rank-card .page-size-label {
  font-size: 11px;
  color: #7A8471;
  padding-left: 6px;
}

.track-rank-card .page-size-btn {
  background: transparent;
  border: none;
  color: #5F655C;
  font-size: 11px;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 9999px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: var(--font-data);
}

.track-rank-card .page-size-btn:hover {
  color: #2F3B22;
  background: rgba(47, 59, 34, 0.08);
}

.track-rank-card .page-size-btn.active {
  background: #4A5D35;
  color: #FFFFFF;
  font-weight: 600;
  box-shadow: 0 2px 6px rgba(47, 59, 34, 0.25);
}

/* 分页控件容器 */
.rank-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 18px 0 6px;
  border-top: 1px dashed #eee;
  margin-top: 8px;
}

.rank-pagination .page-btn {
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font-data);
  border-radius: 9999px;
  background: #FAF8F5;
  color: #4A5D35;
  border: 1px solid rgba(74, 93, 53, 0.2);
  cursor: pointer;
  transition: all 0.2s ease;
}

.rank-pagination .page-btn:hover:not(:disabled) {
  background: #4A5D35;
  color: #FFFFFF;
  border-color: #4A5D35;
}

.rank-pagination .page-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  border-color: #E5E7EB;
  color: #9CA3AF;
  background: #F9FAFB;
}

.rank-pagination .page-current {
  font-family: var(--font-data);
  font-size: 12px;
  color: #7A8471;
  font-variant-numeric: tabular-nums;
}

/* 我的当前排名：sticky 底部 */
.my-rank-bar {
  position: sticky;
  bottom: 0;
  z-index: 25;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  padding: 10px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  background: linear-gradient(90deg, #2F3B22, #4A5D35);
  color: #F6F1E4;
  box-shadow: 0 10px 28px rgba(31, 40, 22, 0.28);
}

.my-rank-bar.is-clickable {
  cursor: pointer;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, border-color 0.25s ease;
}

.my-rank-bar.is-clickable:hover {
  transform: translateY(-2px);
  border-color: rgba(232, 200, 122, 0.65);
  box-shadow: 0 12px 32px rgba(31, 40, 22, 0.42), 0 0 14px rgba(232, 200, 122, 0.25);
}

.my-rank-icon {
  font-size: 14px;
  margin-right: -2px;
}

.my-rank-nav-hint {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  color: #E8C87A;
  background: rgba(232, 200, 122, 0.16);
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(232, 200, 122, 0.35);
  transition: all 0.2s ease;
  margin-left: 4px;
}

.my-rank-bar:hover .my-rank-nav-hint {
  background: rgba(232, 200, 122, 0.32);
  transform: translateX(2px);
}

/* 金色流光高亮呼吸动画 (定位导航专用) */
@keyframes rowGoldenPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.85);
    background-color: rgba(212, 175, 55, 0.22);
  }
  35% {
    box-shadow: 0 0 24px 8px rgba(212, 175, 55, 0.65);
    background-color: rgba(212, 175, 55, 0.32);
  }
  70% {
    box-shadow: 0 0 14px 4px rgba(212, 175, 55, 0.4);
    background-color: rgba(212, 175, 55, 0.18);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(212, 175, 55, 0);
    background-color: transparent;
  }
}

.row-highlight-active {
  animation: rowGoldenPulse 2.8s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  z-index: 10;
  position: relative;
  border-radius: 8px;
}


.my-rank-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  flex-wrap: wrap;
}

.my-rank-label {
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(246, 241, 228, 0.72);
}

.my-rank-place {
  font-size: 14px;
  font-weight: 600;
  color: #FFF;
}

.my-rank-place strong {
  font-family: var(--font-data);
  font-size: 18px;
  font-weight: 700;
  color: #E8C87A;
}

.my-rank-sep {
  width: 1px;
  height: 14px;
  background: rgba(255, 255, 255, 0.25);
}

.my-rank-data {
  font-family: var(--font-data);
  font-size: 12px;
  color: #E8D9B5;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
  .track-rank-card {
    padding: 24px;
    border-radius: 12px;
  }

  .track-rank-head {
    padding: 0 0 10px;
  }

  .track-rank-list,
  .rank-extended {
    padding: 0;
  }

  .rank-row {
    grid-template-columns: 32px minmax(0, 1fr) auto 56px;
    column-gap: 8px;
    padding: 16px 0;
  }

  .rank-no {
    width: auto;
    font-size: 12px;
  }

  .rank-name {
    font-size: 14px;
  }

  .rank-title,
  .rank-meta {
    font-size: 11px;
  }

  .rank-score {
    font-size: 14px;
  }

  .rank-bonus-cell {
    width: 56px;
  }

  .rank-bonus {
    font-size: 10.5px;
    padding: 2px 6px;
  }

  .rank-score-line {
    min-width: 0;
  }

  .my-rank-bar {
    bottom: 0;
    padding: 8px 12px;
    border-radius: 10px;
  }

  .my-rank-inner {
    gap: 8px;
  }

  .my-rank-label {
    font-size: 11px;
  }

  .my-rank-place {
    font-size: 13px;
  }

  .my-rank-place strong {
    font-size: 16px;
  }

  .my-rank-data {
    font-size: 11px;
  }
}

/* ═══════════════════════════════════
   IDENTITY (当前浏览者 / 我的角色)
   ═══════════════════════════════════ */
.section-head-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.identity-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 38px;
  padding: 0.5rem 0.9rem;
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-pill);
  background: var(--bg-card);
  color: var(--ink-secondary);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.identity-chip:hover {
  color: var(--olive-primary);
  border-color: var(--olive-light);
  transform: translateY(-1px);
}

.identity-chip.is-set {
  background: var(--olive-subtle);
  border-color: var(--olive-light);
  color: var(--olive-primary);
  font-weight: 600;
}

.identity-chip-id {
  color: var(--ink-muted);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
}

body.identity-open {
  overflow: hidden;
}

.identity-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.identity-modal[hidden] {
  display: none;
}

.identity-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 28, 25, 0.46);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.identity-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(520px, 100%);
  max-height: min(82vh, 700px);
  overflow: hidden;
  background: #FFFDF9;
  border: 1px solid rgba(74, 93, 53, 0.18);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(20, 25, 15, 0.32);
}

.identity-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.3rem 1.4rem 0.9rem;
  border-bottom: 1px solid #eee;
}

.identity-title {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink-deep);
}

.identity-sub {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.5;
  color: #999;
}

.identity-close {
  flex: none;
  width: 36px;
  height: 36px;
  border: 1px solid #eee;
  border-radius: 50%;
  background: #fff;
  color: #888;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.identity-close:hover {
  background: #F7F5F0;
  color: var(--ink-deep);
}

.identity-body {
  padding: 1rem 1.4rem 1.3rem;
  overflow: auto;
}

.identity-search {
  width: 100%;
  padding: 0.65rem 0.9rem;
  border: 1px solid #e5e2da;
  border-radius: 10px;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 13px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.identity-search:focus {
  border-color: var(--olive-light);
  box-shadow: 0 0 0 3px rgba(93, 116, 66, 0.12);
}

.identity-list {
  max-height: 300px;
  margin-top: 0.75rem;
  overflow: auto;
  border: 1px solid #eee;
  border-radius: 10px;
  background: #fff;
}

.identity-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.65rem 0.8rem;
  border: 0;
  border-bottom: 1px solid #f2f2f2;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.identity-item:last-child {
  border-bottom: none;
}

.identity-item:hover {
  background: #FAF8F3;
}

.identity-item.is-current {
  background: #F1F5EA;
}

.identity-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--olive-subtle);
  color: var(--olive-primary);
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
}

.identity-item-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.identity-item-name {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  color: #333;
}

.identity-item-id {
  font-family: var(--font-mono);
  font-size: 11px;
  color: #999;
}

.identity-item-title {
  margin-left: auto;
  max-width: 42%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  color: #999;
}

.identity-empty {
  padding: 1.2rem 0.8rem;
  color: #999;
  font-size: 12px;
  text-align: center;
}

.identity-manual {
  display: flex;
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.identity-manual-input {
  flex: 1;
  min-width: 0;
  padding: 0.55rem 0.8rem;
  border: 1px solid #e5e2da;
  border-radius: 8px;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 13px;
  outline: none;
}

.identity-manual-input:focus {
  border-color: var(--olive-light);
  box-shadow: 0 0 0 3px rgba(93, 116, 66, 0.12);
}

.identity-manual-input.is-invalid {
  border-color: #d9534f;
  box-shadow: 0 0 0 3px rgba(217, 83, 79, 0.12);
}

.identity-save {
  flex: none;
  padding: 0.55rem 1rem;
  border: 1px solid var(--olive-primary);
  border-radius: 8px;
  background: var(--olive-primary);
  color: #FFF;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.identity-save:hover {
  background: var(--olive-dark);
  border-color: var(--olive-dark);
}

.identity-hint {
  margin-top: 0.7rem;
  color: #aaa;
  font-size: 11px;
  line-height: 1.5;
}

.identity-hint code {
  padding: 1px 4px;
  border-radius: 3px;
  background: var(--olive-subtle);
  color: var(--olive-primary);
  font-family: var(--font-mono);
  font-size: 10.5px;
}

.my-rank-inner.is-unset {
  gap: 10px;
}

.my-rank-setup {
  padding: 4px 12px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--radius-pill);
  background: #E8C87A;
  color: #2F3B22;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.my-rank-setup:hover {
  background: #F1D797;
}

@media (max-width: 767px) {
  .section-head-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .identity-chip {
    font-size: 11.5px;
    padding: 0.38rem 0.8rem;
  }

  .identity-panel {
    width: 100%;
    max-height: 88vh;
    border-radius: 14px;
  }

  .identity-head {
    padding: 1rem 1.1rem 0.8rem;
  }

  .identity-body {
    padding: 0.9rem 1.1rem 1.1rem;
  }

  .identity-item-title {
    max-width: 36%;
  }

  .my-rank-inner.is-unset {
    gap: 8px;
  }
}

/* ═══════════════════════════════════
   RULES & FAQ SECTION (试炼通告 / 细则)
   ═══════════════════════════════════ */
.rules-section {
  padding: 3rem 0 4rem;
  border-top: 1px dashed rgba(74, 93, 53, 0.15);
  scroll-margin-top: 140px;
}

@media (max-width: 767px) {
  .rules-section {
    scroll-margin-top: 110px;
  }
}

.rules-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

@media (min-width: 768px) {
  .rules-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.rule-card {
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}

.rule-icon {
  font-size: 24px;
  margin-bottom: 0.75rem;
}

.rule-title {
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink-deep);
  margin-bottom: 0.5rem;
}

.rule-desc {
  font-size: 13px;
  color: var(--ink-secondary);
  line-height: 1.7;
}

/* ═══════════════════════════════════
   FOOTER (试炼墨印尾栏)
   ═══════════════════════════════════ */
.bht-footer {
  padding: 3.5rem 0 2.5rem;
  background: var(--bg-secondary);
  border-top: 1px solid var(--olive-border);
  text-align: center;
}

.footer-quote {
  font-family: var(--font-serif);
  font-size: 18px;
  color: var(--ink-deep);
  letter-spacing: 2px;
  margin-bottom: 0.75rem;
}

.footer-sub {
  font-size: 13px;
  color: var(--ink-muted);
  margin-bottom: 1.5rem;
}

.footer-stamp {
  display: inline-block;
  border: 2px solid var(--seal-vermilion);
  color: var(--seal-vermilion);
  font-family: var(--font-serif);
  padding: 4px 12px;
  font-size: 12px;
  letter-spacing: 2px;
  border-radius: 4px;
  margin-bottom: 1.5rem;
  transform: rotate(-1.5deg);
}

.footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  font-size: 13px;
}

.footer-links a {
  color: var(--olive-primary);
  text-decoration: none;
}

.footer-links a:hover {
  text-decoration: underline;
}

/* ═══════════════════════════════════
   BHT TRACK NAVIGATION & GROUP TABS
   ═══════════════════════════════════ */
.track-navigation-wrap {
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

/* 一级组别切换 */
.group-tabs-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.group-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 1.25rem;
  border-radius: var(--radius-pill);
  background: var(--bg-card);
  border: 1.5px solid var(--olive-border);
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink-secondary);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.25, 1, 0.5, 1);
  box-shadow: var(--shadow-sm);
}

.group-tab-btn:hover {
  border-color: var(--olive-primary);
  color: var(--olive-primary);
  transform: translateY(-1px);
}

.group-tab-btn.active {
  background: var(--olive-dark);
  color: #FFF;
  border-color: var(--olive-dark);
  box-shadow: 0 4px 16px rgba(47, 59, 34, 0.25);
}

.group-badge {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: rgba(0, 0, 0, 0.06);
}

.group-tab-btn.active .group-badge {
  background: rgba(255, 255, 255, 0.2);
  color: #FFF;
}

@media (max-width: 767px) {
  .track-tabs-bar {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }

  .track-tabs-bar::-webkit-scrollbar {
    display: none;
  }

  .track-tab-btn {
    flex: none;
  }
}

@media (max-width: 680px) {
  .group-tabs-bar {
    gap: 0.45rem;
  }

  .group-tab-btn {
    padding: 0.55rem 0.8rem;
    font-size: 13px;
    gap: 0.35rem;
  }

  .group-badge {
    display: none;
  }
}

/* 赛道详细档案卡片 (Track Detail Banner) */
.track-detail-card {
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.75rem;
  margin-bottom: 2rem;
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
}

.track-detail-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--olive-primary), #A68032, var(--olive-light));
}

.detail-top-row {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(74, 93, 53, 0.1);
}

@media (min-width: 768px) {
  .detail-top-row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.detail-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.detail-track-name {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink-deep);
}

.detail-group-pill {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
}

.detail-group-pill.group-A {
  background: rgba(184, 58, 44, 0.1);
  color: var(--seal-vermilion);
  border: 1px solid rgba(184, 58, 44, 0.25);
}

.detail-group-pill.group-B {
  background: var(--olive-subtle);
  color: var(--olive-primary);
  border: 1px solid var(--olive-border);
}

.detail-pool-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  color: #926E1E;
  background: #FCF5E5;
  border: 1px solid #E4CD96;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
}

.detail-rule-desc {
  font-size: 13.5px;
  color: var(--ink-secondary);
  line-height: 1.6;
}

.detail-threshold-alert {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.6rem;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  background: #FFF1F0;
  border: 1px solid #FFA39E;
  color: #CF1322;
  font-size: 12.5px;
  font-weight: 600;
}

.detail-ladder-wrap {
  margin-top: 0.75rem;
}

.detail-ladder-title {
  font-size: 12px;
  font-family: var(--font-serif);
  color: var(--ink-muted);
  margin-bottom: 0.5rem;
}

.detail-ladder-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.tier-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  background: var(--bg-card-subtle);
  border: 1px solid rgba(74, 93, 53, 0.12);
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink-primary);
}

.tier-item.t-1 {
  background: #FCF5E5;
  border-color: #E4CD96;
  color: #926E1E;
  font-weight: 700;
}

.tier-item.t-2 {
  background: #EFF4EB;
  border-color: #C1D4B5;
  color: #435A33;
  font-weight: 700;
}

.tier-item.t-3 {
  background: #F9F3EA;
  border-color: #DDCFBF;
  color: #7D6146;
  font-weight: 700;
}

/* 赏金单元格 */
.prize-cell-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
}

.prize-cell-gold {
  background: #FCF5E5;
  color: #926E1E;
  border: 1px solid #E4CD96;
  box-shadow: 0 0 8px rgba(166, 128, 50, 0.12);
}

.prize-cell-silver {
  background: #EFF4EB;
  color: #435A33;
  border: 1px solid #C1D4B5;
}

.prize-cell-bronze {
  background: #F9F3EA;
  color: #7D6146;
  border: 1px solid #DDCFBF;
}

.prize-cell-award {
  background: rgba(93, 116, 66, 0.08);
  color: var(--olive-primary);
  border: 1px solid var(--olive-border);
}

.prize-cell-none {
  color: var(--ink-muted);
  font-size: 12px;
}

/* 门槛达标提示标签 */
.threshold-verified {
  font-size: 11px;
  color: #2C6641;
  background: #E8F5EC;
  border: 1px solid #A3D8B4;
  padding: 2px 6px;
  border-radius: 4px;
  margin-top: 2px;
  display: inline-block;
}

.threshold-unmet {
  font-size: 11px;
  color: #CF1322;
  background: #FFF1F0;
  border: 1px solid #FFA39E;
  padding: 2px 6px;
  border-radius: 4px;
  margin-top: 2px;
  display: inline-block;
  font-weight: 600;
}

/* ═══════════════════════════════════
   BHT GROUPS RULES GRID (A/B两组全貌)
   ═══════════════════════════════════ */
.bht-groups-rules-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 860px) {
  .bht-groups-rules-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1140px) {
  .bht-groups-rules-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .group-rule-header {
    min-height: 120px;
  }
}

.group-rule-card {
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}

.group-rule-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.group-a-card {
  border-top: 4px solid #B83A2C;
}

.group-b-card {
  border-top: 4px solid var(--olive-primary);
}

.group-rule-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px dashed var(--olive-border);
}

.group-rule-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.group-rule-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.group-icon {
  font-size: 26px;
}

.group-rule-title {
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 700;
  color: var(--ink-deep);
}

.group-rule-sub {
  font-size: 12px;
  color: var(--ink-muted);
  margin-top: 2px;
}

.pool-tag {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  flex-shrink: 0;
}

.pool-a-tag {
  background: rgba(184, 58, 44, 0.1);
  color: var(--seal-vermilion);
  border: 1px solid rgba(184, 58, 44, 0.3);
}

.pool-b-tag {
  background: var(--olive-subtle);
  color: var(--olive-primary);
  border: 1px solid var(--olive-border);
}

.rule-tracks-heading {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink-deep);
  margin-bottom: 0.75rem;
}

.track-spec-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.track-spec-list li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 13px;
  padding: 0.5rem 0.65rem;
  border-radius: var(--radius-sm);
  background: var(--bg-card-subtle);
  border-left: 3px solid var(--olive-primary);
}

.group-a-card .track-spec-list li {
  border-left-color: var(--seal-vermilion);
}

.spec-name {
  font-family: var(--font-serif);
  font-weight: 700;
  color: var(--ink-deep);
}

.spec-desc {
  color: var(--ink-secondary);
  font-size: 12.5px;
}

.spec-desc code {
  font-family: var(--font-mono);
  background: rgba(0, 0, 0, 0.05);
  padding: 1px 4px;
  border-radius: 3px;
  color: var(--olive-dark);
}

.threshold-notice-box {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 1rem;
  background: #FFF2E8;
  border-left: 3px solid #FA541C;
  border-radius: var(--radius-sm);
  margin-bottom: 1.25rem;
}

.threshold-notice-box .notice-icon {
  font-size: 16px;
  line-height: 1.4;
}

.threshold-notice-box .notice-content {
  font-size: 12.5px;
  color: #D4380D;
  line-height: 1.6;
}

.prize-ladder-box {
  padding-top: 1rem;
  border-top: 1px dashed var(--olive-border);
}

.ladder-title {
  font-size: 12px;
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--ink-secondary);
  margin-bottom: 0.5rem;
}

.ladder-tags-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ladder-badge {
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--bg-card-subtle);
  border: 1px solid var(--olive-border);
  color: var(--ink-secondary);
}

.ladder-badge.l-gold {
  background: #FCF5E5;
  border-color: #E4CD96;
  color: #926E1E;
  font-weight: 700;
}

.ladder-badge.l-silver {
  background: #EFF4EB;
  border-color: #C1D4B5;
  color: #435A33;
  font-weight: 700;
}

.ladder-badge.l-bronze {
  background: #F9F3EA;
  border-color: #DDCFBF;
  color: #7D6146;
  font-weight: 700;
}


/* ═══════════════════════════════════
   BHT ROOKIE TOGGLE & NEWBIE STYLES
   ═══════════════════════════════════ */

/* 同类赛道下：豪杰总榜与潜龙榜切换栏 */
.rookie-toggle-wrap {
  margin-top: 0.75rem;
  margin-bottom: 1.75rem;
  padding: 0.85rem 1.25rem;
  background: linear-gradient(135deg, rgba(82, 196, 26, 0.07) 0%, rgba(74, 93, 53, 0.05) 100%);
  border: 1.5px dashed #A3D188;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  animation: fadeIn 0.3s ease;
}

.rookie-segmented-control {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  width: 100%;
}

.rookie-toggle-hint {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-serif);
  font-size: 13.5px;
  font-weight: 700;
  color: #274916;
  letter-spacing: 0.02em;
}

.rookie-toggle-buttons {
  display: inline-flex;
  background: var(--bg-card);
  padding: 4px;
  border-radius: 30px;
  border: 1px solid var(--olive-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  gap: 5px;
  flex-wrap: wrap;
}

.rookie-subtab {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 6px 16px;
  border-radius: 24px;
  border: none;
  background: transparent;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-secondary);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.rookie-subtab:hover {
  color: var(--ink-deep);
  background: rgba(74, 93, 53, 0.08);
}

.rookie-subtab.active {
  background: var(--olive-primary);
  color: #FFFFFF;
  box-shadow: 0 3px 10px rgba(74, 93, 53, 0.28);
}

.rookie-subtab.active .subtab-tag {
  background: rgba(255, 255, 255, 0.25);
  color: #FFFFFF;
}

.subtab-icon {
  font-size: 14px;
}

.subtab-title {
  letter-spacing: 0.02em;
}

.subtab-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 1px 7px;
  border-radius: 10px;
  background: var(--bg-card-subtle);
  color: var(--ink-muted);
  font-weight: 500;
}

/* 侠龄徽章 (Age Badges) */
.age-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-family: var(--font-mono);
  font-size: 12px;
  padding: 2px 7px;
  border-radius: 6px;
  background: var(--bg-card-subtle);
  border: 1px solid var(--olive-border);
  color: var(--ink-secondary);
}

.age-badge.rookie {
  background: #EAF4E3;
  color: #274916;
  border-color: #B7DE9F;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(82, 196, 26, 0.1);
}

/* 潜龙榜卡片与标签 */
.group-rookie-card {
  border-top: 4px solid #52C41A;
  background: linear-gradient(180deg, rgba(82, 196, 26, 0.035) 0%, var(--bg-card) 45%);
}

.group-rookie-card .track-spec-list li {
  border-left-color: #52C41A;
}

.pool-rookie-tag {
  background: #EAF4E3;
  color: #274916;
  border: 1px solid #B7DE9F;
}

/* ═══════════════════════════════════
   BONUS REWARDS (天命加码)
   ═══════════════════════════════════ */
.bonus-section {
  padding: 3rem 0 4rem;
  border-top: 1px dashed rgba(74, 93, 53, 0.15);
  scroll-margin-top: 90px;
}

.bonus-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.bonus-section .section-calligraphy-mark {
  background: var(--gold-antique, #B8860B);
}

.bonus-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.bonus-summary-chip {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid #E8D9B8;
  background: #FFFCF5;
  color: #8A641A;
}

.bonus-summary-chip.is-red {
  background: #FDF0ED;
  border-color: #F0C2B8;
  color: #B23A2C;
}

.bonus-summary-chip.is-olive {
  background: #F4F8F1;
  border-color: #DCE6D3;
  color: #4F6440;
}

.bonus-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 960px) {
  .bonus-grid {
    grid-template-columns: 1.08fr 0.92fr;
    align-items: stretch;
  }
}

.bonus-card {
  display: flex;
  flex-direction: column;
  background: var(--bg-card);
  border: 1px solid #eee;
  border-radius: 16px;
  padding: 24px;
  box-shadow: var(--shadow-sm);
}

.bonus-chain-card {
  border-top: 4px solid var(--gold-antique, #B8860B);
}

.bonus-lottery-card {
  border-top: 4px solid var(--seal-vermilion, #C93B55);
}

.bonus-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.bonus-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--gold-bg, rgba(184, 134, 11, 0.1));
  font-size: 18px;
}

.bonus-lottery-card .bonus-card-icon {
  background: var(--seal-vermilion-bg, rgba(201, 59, 85, 0.1));
}

.bonus-card-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink-deep);
}

.bonus-card-sub {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ink-muted);
  margin-top: 3px;
}

.bonus-pool-tag {
  flex: none;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid #E8D9B8;
  color: #8A641A;
  background: #FFFCF5;
  white-space: nowrap;
}

.bonus-lottery-card .bonus-pool-tag {
  border-color: #F0C2B8;
  color: #B23A2C;
  background: #FDF0ED;
}

.bonus-jump-link {
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--olive-primary);
  font-size: 11px;
  cursor: pointer;
}

.bonus-jump-link:hover {
  text-decoration: underline;
}

/* 9.2 数字签 */
.chain-tier-list {
  border-top: 1px solid #F1E8D6;
}

.chain-tier {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid #F3EBDD;
}

.chain-tier:last-child {
  border-bottom: none;
}

.chain-tier-prize {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--gold-antique, #B8860B);
  line-height: 1.4;
}

.chain-tier-prize strong {
  display: block;
  font-size: 16px;
}

.chain-tier-label {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: #A3906E;
}

.chain-number-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.chain-number-list li {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  padding: 4px 9px;
  border-radius: 7px;
  background: #FFFCF5;
  border: 1px solid #EFE3CC;
  color: var(--ink-deep);
  font-variant-numeric: tabular-nums;
}

.chain-tier-top .chain-number-list li {
  font-size: 16px;
  background: #FFF8E8;
  border-color: #E8D3A6;
  color: #7A5A18;
}

.chain-tier-low .chain-number-list li {
  font-size: 13px;
  background: #FAF9F5;
}

.bonus-note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-muted);
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

/* 9.3 抽奖节点 */
.lottery-block + .lottery-block {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed #EADFD3;
}

.lottery-block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 10px;
}

.lottery-block-title {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink-deep);
}

.lottery-pool {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  color: #B23A2C;
  background: #FDF0ED;
  border: 1px solid #F0C2B8;
}

.red-packet-rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  padding: 12px 0 0;
}

.red-packet-rail::before {
  content: "";
  position: absolute;
  left: 5%;
  right: 5%;
  top: 17px;
  height: 2px;
  background: #E8D8D0;
  z-index: 0;
}

.rail-progress-line {
  position: absolute;
  left: 5%;
  top: 17px;
  height: 2px;
  background: linear-gradient(90deg, #B3382C, #D4902C);
  z-index: 0;
  transition: width 0.6s ease;
  max-width: 90%;
  pointer-events: none;
}

.rail-node {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  cursor: default;
}

.rail-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #FDF0ED;
  border: 2px solid #D97A6A;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  line-height: 1;
  transition: all 0.3s ease;
}

.rail-node-final .rail-dot {
  background: #FFF9EC;
  border-color: var(--gold-antique, #B8860B);
  box-shadow: 0 0 0 3px rgba(166, 128, 50, 0.12);
}

.rail-label {
  font-family: var(--font-mono);
  font-size: 10px;
  color: #9A7A6E;
}

/* 节点状态：已达成 */
.rail-node.is-reached .rail-dot {
  background: #B3382C;
  border-color: #8E2818;
  color: #FFFFFF;
  box-shadow: 0 0 8px rgba(179, 56, 44, 0.45);
}

.rail-node.is-reached .rail-label {
  color: #8E2818;
  font-weight: 700;
}

.rail-badge-done {
  font-size: 8px;
  line-height: 1;
  color: #27672D;
  background: #EBF3EA;
  border: 1px solid #C4E2C2;
  padding: 1px 3px;
  border-radius: 3px;
}

/* 节点状态：当前攻坚中 */
.rail-node.is-current .rail-dot {
  background: #FFF3E0;
  border-color: #E65100;
  box-shadow: 0 0 0 3px rgba(230, 81, 0, 0.25);
  animation: railPulseGlow 1.8s infinite ease-in-out;
}

.rail-node.is-current .rail-label {
  color: #D84315;
  font-weight: 700;
}

.rail-badge-curr {
  font-size: 8px;
  line-height: 1;
  color: #E65100;
  background: #FFF3E0;
  border: 1px solid #FFCC80;
  padding: 1px 3px;
  border-radius: 3px;
  font-weight: 600;
}

/* 节点状态：未解锁 */
.rail-node.is-locked .rail-dot {
  background: #F4EFEB;
  border-color: #D6CBC4;
}

.rail-node.is-locked .rail-label {
  color: #A39690;
}

@keyframes railPulseGlow {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 2px rgba(230, 81, 0, 0.2);
  }
  50% {
    transform: scale(1.18);
    box-shadow: 0 0 0 5px rgba(230, 81, 0, 0.35);
  }
}

/* Chain 进度条与状态卡片 */
.chain-progress-card {
  background: #FAF7F2;
  border: 1px solid #E6D8CA;
  border-radius: 8px;
  padding: 10px 14px;
  margin: 10px 0 12px;
}

.chain-progress-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.chain-current-stats {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}

.chain-fire {
  font-size: 14px;
}

.chain-stat-label {
  font-size: 12px;
  color: #6E5F58;
  font-weight: 600;
}

.chain-stat-val {
  font-family: var(--font-mono);
  font-size: 17px;
  font-weight: 800;
  color: #8E2818;
  letter-spacing: -0.3px;
}

.chain-stat-target {
  font-family: var(--font-mono);
  font-size: 11px;
  color: #9C8C85;
}

.chain-stat-pct {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  color: #B3382C;
  background: #FCECE8;
  border: 1px solid #F5C6BC;
  padding: 1px 6px;
  border-radius: 4px;
}

.chain-meta-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.chain-update-tag {
  font-size: 10.5px;
  color: #8C7C75;
  background: rgba(0, 0, 0, 0.03);
  padding: 2px 7px;
  border-radius: 4px;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.chain-status-pill {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.chain-status-pill.is-active {
  background: #EBF3EA;
  color: #27672D;
  border: 1px solid #B8DCB7;
}

.chain-status-pill.is-completed {
  background: #FFF9EC;
  color: #9E6700;
  border: 1px solid #E8CD8A;
}

.chain-status-pill.is-idle {
  background: #F0ECE9;
  color: #7D6E68;
  border: 1px solid #D6CBC5;
}

.pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #27672D;
  animation: dotPulse 1.2s infinite;
}

@keyframes dotPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.85); }
}

.chain-meter-track {
  height: 7px;
  background: #E8E0D7;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
}

.chain-meter-fill {
  height: 100%;
  background: linear-gradient(90deg, #D97A6A, #B3382C 75%, #D4902C 100%);
  border-radius: 4px;
  transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 0 6px rgba(179, 56, 44, 0.3);
}

@media (max-width: 480px) {
  .red-packet-rail {
    grid-template-columns: repeat(5, 1fr);
    row-gap: 12px;
  }

  .red-packet-rail::before,
  .rail-progress-line {
    display: none;
  }
}

/* 9.4 抽奖奖项 */
.lottery-tier-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.lottery-tier {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border-radius: 8px;
  background: var(--bg-card-subtle);
}

.lottery-tier.tier-special {
  background: #FFF9EC;
  border: 1px solid #E8D3A6;
}

.lottery-tier.tier-first {
  background: #F5F8F2;
  border: 1px solid #DCE6D3;
}

.lottery-tier.tier-second {
  background: #FBF8F3;
  border: 1px solid #E9DFD2;
}

.lottery-tier-name {
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 700;
}

.lottery-tier-count {
  font-size: 12px;
  color: var(--ink-muted);
}

.lottery-tier-amount {
  font-family: var(--font-data, var(--font-mono));
  font-size: 14px;
  font-weight: 700;
  color: var(--seal-vermilion);
  font-variant-numeric: tabular-nums;
}

/* 9.5 获奖名录 */
.bonus-winners {
  margin-top: 1.5rem;
  padding: 24px;
  background: #FAF8F3;
  border: 1px solid #eee;
  border-radius: 16px;
}

.bonus-winners-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.bonus-winners-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 700;
  color: var(--ink-deep);
}

.bonus-winners-sub {
  margin-top: 3px;
  font-size: 12px;
  color: var(--ink-muted);
}

.bonus-winners-refresh {
  padding: 5px 12px;
  border: 1px solid var(--olive-border);
  border-radius: 999px;
  background: var(--bg-card);
  color: var(--olive-primary);
  font-size: 12px;
  cursor: pointer;
}

.bonus-winners-refresh:disabled {
  opacity: 0.5;
  cursor: wait;
}

.bonus-winner-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 14px 0;
}

.bonus-winner-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border: 1px solid var(--olive-border);
  border-radius: 999px;
  background: var(--bg-card);
  color: var(--ink-secondary);
  font-size: 12px;
  cursor: pointer;
}

.bonus-winner-tab.is-active {
  background: var(--olive-primary);
  border-color: var(--olive-primary);
  color: #FFF;
}

.bonus-winner-tab span {
  font-family: var(--font-mono);
  font-size: 10px;
  opacity: 0.75;
}

.bonus-winner-group {
  border-bottom: 1px solid #EAE6DD;
}

.bonus-winner-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 11px 0;
  cursor: pointer;
  list-style: none;
  font-size: 13px;
}

.bonus-winner-group summary::-webkit-details-marker {
  display: none;
}

.bonus-group-main {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.bonus-group-main strong {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--ink-deep);
}

.bonus-group-main span {
  font-size: 11px;
  color: var(--ink-muted);
}

.bonus-group-count {
  flex: none;
  font-family: var(--font-data, var(--font-mono));
  font-size: 11px;
  color: var(--ink-muted);
}

.bonus-winner-list {
  padding: 0 0 8px 12px;
}

.bonus-winner-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px dashed #EFEAE0;
}

.bonus-winner-player {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.bonus-winner-name {
  font-family: var(--font-data, var(--font-sans));
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-deep);
  overflow-wrap: anywhere;
}

.bonus-winner-id {
  font-family: var(--font-data, var(--font-mono));
  font-size: 11px;
  color: #9CA3AF;
}

.bonus-winner-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-data, var(--font-mono));
  font-size: 11px;
  color: #9CA3AF;
  white-space: nowrap;
}

.bonus-winner-status {
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 10px;
  border: 1px solid transparent;
}

.bonus-winner-status.is-paid {
  color: var(--status-success-text, #274916);
  background: var(--status-success-bg, #EAF4E3);
  border-color: var(--status-success-border, #B7DE9F);
}

.bonus-winner-status.is-pending {
  color: var(--status-standby-text, #8C6D1F);
  background: var(--status-standby-bg, #FFF7E6);
  border-color: var(--status-standby-border, #FFE58F);
}

.bonus-winner-random {
  font-family: var(--font-mono);
  color: var(--gold-antique, #B8860B);
}

.bonus-winners-empty,
.bonus-winners-loading,
.bonus-winners-error {
  padding: 24px 0;
  text-align: center;
  font-size: 12px;
  color: var(--ink-muted);
}

.bonus-group-empty {
  padding: 8px 0;
  font-size: 12px;
  color: #B4B4B4;
}

/* 9.6 移动端 */
@media (max-width: 640px) {
  .bonus-card,
  .bonus-winners {
    padding: 20px;
  }

  .bonus-winner-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .bonus-winner-meta {
    white-space: normal;
  }

  .chain-tier {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 8px;
  }
}

/* 9.7 Hero 入口条 */
.bonus-teaser {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 1rem;
  padding: 8px 16px;
  border: 1px solid #E8D9B8;
  border-radius: 999px;
  background: linear-gradient(90deg, #FFFCF5, #FBF4E4);
  color: var(--ink-secondary);
  font-size: 12px;
  text-decoration: none;
  transition: border-color 0.2s, transform 0.2s;
}

.bonus-teaser:hover {
  border-color: var(--gold-antique, #B8860B);
  transform: translateY(-1px);
}

.bonus-teaser-main strong {
  color: var(--gold-antique, #B8860B);
  font-family: var(--font-mono);
}

.bonus-teaser-sub {
  color: var(--ink-muted);
}

.bonus-teaser-arrow {
  color: var(--gold-antique, #B8860B);
}

/* ═══════════════════════════════════
   VIEW TABS (三卷一级切换栏)
   ═══════════════════════════════════ */
.view-scroll-anchor {
  display: block;
  height: 0;
  width: 0;
  margin: 0;
  padding: 0;
  visibility: hidden;
  pointer-events: none;
}

.view-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  margin-bottom: 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--olive-border);
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
}

.view-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  padding: 12px 14px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink-secondary);
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.view-tab:hover {
  background: var(--olive-subtle);
  color: var(--olive-primary);
}

.view-tab.is-active {
  background: var(--olive-primary);
  color: #FFF;
}

.view-tab-badge {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.06);
  color: inherit;
  white-space: nowrap;
}

.view-tab.is-active .view-tab-badge {
  background: rgba(255, 255, 255, 0.2);
  color: #FFF;
}

.view-tabs {
  scroll-margin-top: 76px;
}

.view-panel {
  scroll-margin-top: 136px;
}

.view-panel[hidden] {
  display: none !important;
}

#view-bonus .bonus-section {
  border-top: 0;
  padding-top: 0;
}

@media (min-width: 768px) {
  .view-tabs {
    position: sticky;
    top: 64px;
    z-index: 90;
    background: rgba(250, 248, 245, 0.94);
    backdrop-filter: blur(12px);
  }
}

@media (max-width: 640px) {
  .view-tab {
    padding: 10px 6px;
    font-size: 13px;
    gap: 4px;
  }

  .view-tab-badge {
    display: none;
  }
}

/* ═══════════════════════════════════
   SPONSORS (同门共襄)
   ═══════════════════════════════════ */
.sponsor-section {
  padding: 0 0 4rem;
  scroll-margin-top: 90px;
}

.sponsor-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.sponsor-section .section-calligraphy-mark {
  background: var(--gold-antique, #B8860B);
}

.sponsor-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.sponsor-summary-chip {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid #E8D9B8;
  background: #FFFCF5;
  color: #8A641A;
}

.sponsor-summary-chip.is-olive {
  background: #F4F8F1;
  border-color: #DCE6D3;
  color: #4F6440;
}

.sponsor-summary-chip.is-muted {
  background: #FAF8F5;
  border-color: #E8E4DC;
  color: #7A7265;
}

.sponsor-tier-group + .sponsor-tier-group {
  margin-top: 1.75rem;
}

.sponsor-tier-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0.85rem;
}

.sponsor-tier-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: none;
}

.sponsor-tier-title {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-deep);
}

.sponsor-tier-count {
  font-family: var(--font-data);
  font-size: 11px;
  color: var(--ink-muted);
}

.sponsor-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
  gap: 1rem;
}

.sponsor-card {
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: var(--bg-card);
  border: 1px solid #eee;
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

.sponsor-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

/* 右侧大头像与印章插槽 (气派 76px 规格) */
.sponsor-avatar-spot {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sponsor-avatar-spot .player-avatar-wrap.size-lg {
  width: 76px;
  height: 76px;
  border-radius: 16px;
  border: 2px solid rgba(212, 175, 55, 0.55);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14), inset 0 0 10px rgba(212, 175, 55, 0.25);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease, border-color 0.25s ease;
}

.sponsor-avatar-spot .player-avatar-wrap.size-lg:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 10px 24px rgba(212, 175, 55, 0.4), inset 0 0 12px rgba(212, 175, 55, 0.35);
  border-color: rgba(212, 175, 55, 0.9);
}

.sponsor-seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: none;
  border: 1px solid var(--olive-border);
  border-radius: 10px;
  background: var(--bg-card-subtle);
  font-family: var(--font-serif);
  font-size: 16px;
  color: var(--olive-primary);
}

.sponsor-seal.sponsor-seal-lg {
  width: 76px;
  height: 76px;
  border-radius: 16px;
  font-size: 32px;
  font-weight: 700;
  border: 2px solid var(--olive-border);
  background: var(--bg-card-subtle);
  color: var(--olive-primary);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}

.sponsor-seal.sponsor-seal-lg:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 10px 24px rgba(107, 127, 89, 0.3);
}

.sponsor-identity {
  min-width: 0;
  flex: 1;
}

.sponsor-name-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.sponsor-name {
  font-family: var(--font-data, var(--font-sans));
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--ink-deep);
  letter-spacing: -0.01em;
}

.sponsor-id {
  display: block;
  margin-top: 4px;
  font-family: var(--font-mono, var(--font-data));
  font-size: 12px;
  color: #9CA3AF;
  letter-spacing: 0.02em;
}

.sponsor-tier-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}

.sponsor-item-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 12px;
}

.sponsor-item-tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #F7F5F0;
  border: 1px solid #E8E2D6;
  color: #7A6B55;
  line-height: 1.4;
}

.sponsor-item-tag.is-amount {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 700;
  color: #996515;
  background: linear-gradient(135deg, rgba(255, 248, 230, 0.95), rgba(254, 243, 199, 0.9));
  border: 1px solid rgba(212, 175, 55, 0.45);
  box-shadow: 0 1px 4px rgba(212, 175, 55, 0.15);
  letter-spacing: 0.02em;
}

.sponsor-item-tag.is-amount .amount-icon {
  font-size: 12px;
  margin-right: 2px;
}

.sponsor-item-tag.is-amount.is-hidden {
  font-weight: 500;
  color: var(--ink-muted);
  background: #F7F5F0;
  border-color: #E8E2D6;
  box-shadow: none;
}

.sponsor-allocation {
  margin-top: 2px;
  padding-top: 10px;
  border-top: 1px dashed #EFEAE0;
}

.sponsor-label {
  display: inline-block;
  margin-bottom: 3px;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--ink-muted);
}

.sponsor-allocation p {
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-secondary);
  white-space: pre-line;
}

.sponsor-message {
  margin-top: 12px;
  padding-left: 10px;
  border-left: 2px solid rgba(166, 128, 50, 0.35);
  font-family: var(--font-serif);
  font-size: 13px;
  line-height: 1.8;
  color: var(--ink-secondary);
  white-space: pre-line;
}

.sponsor-empty {
  padding: 48px 16px;
  text-align: center;
  font-size: 13px;
  color: var(--ink-muted);
  background: var(--bg-card-subtle);
  border: 1px dashed var(--olive-border);
  border-radius: 16px;
}

/* 等级色彩体系 */
.tier-torch .sponsor-tier-dot,
.sponsor-tier-badge.tier-torch {
  background: #FDF0ED;
  border-color: #F0C2B8;
  color: #B23A2C;
}

.tier-kindling .sponsor-tier-dot,
.sponsor-tier-badge.tier-kindling {
  background: #FFF9EC;
  border-color: #E8D3A6;
  color: #8A641A;
}

.tier-spark .sponsor-tier-dot,
.sponsor-tier-badge.tier-spark {
  background: #F4F8F1;
  border-color: #DCE6D3;
  color: #4F6440;
}

.tier-glimmer .sponsor-tier-dot,
.sponsor-tier-badge.tier-glimmer {
  background: #F5F5F5;
  border-color: #E2E2E2;
  color: #7A7A7A;
}

.sponsor-tier-dot.tier-torch { background: #B23A2C; border: 0; }
.sponsor-tier-dot.tier-kindling { background: #A68032; border: 0; }
.sponsor-tier-dot.tier-spark { background: #5D7442; border: 0; }
.sponsor-tier-dot.tier-glimmer { background: #A8A8A8; border: 0; }

/* ══════════════════════════════════════════════
   PLAYER AVATARS (国风金纹印章头像系统)
   ══════════════════════════════════════════════ */
.player-avatar-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: middle;
  background: linear-gradient(135deg, #1C1917, #0C0A09);
  border: 1px solid rgba(197, 160, 89, 0.45);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12), inset 0 0 4px rgba(197, 160, 89, 0.15);
  overflow: hidden;
  user-select: none;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease, box-shadow 0.25s ease;
}

.player-avatar-wrap:hover {
  transform: translateY(-1px) scale(1.05);
  border-color: rgba(212, 175, 55, 0.85);
  box-shadow: 0 4px 12px rgba(197, 160, 89, 0.25), inset 0 0 6px rgba(212, 175, 55, 0.25);
}

/* 尺寸体系 */
.player-avatar-wrap.size-sm {
  width: 26px;
  height: 26px;
  border-radius: 6px;
}

.player-avatar-wrap.size-md {
  width: 34px;
  height: 34px;
  border-radius: 8px;
}

.player-avatar-wrap.size-lg {
  width: 54px;
  height: 54px;
  border-radius: 12px;
  border: 1.5px solid rgba(212, 175, 55, 0.7);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2), inset 0 0 8px rgba(212, 175, 55, 0.25);
}

.player-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
  transition: transform 0.3s ease;
}

.player-avatar-wrap:hover .player-avatar-img {
  transform: scale(1.06);
}

/* 国风水墨印章兜底 */
.player-avatar-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(178, 58, 44, 0.12), rgba(138, 100, 26, 0.15));
  color: #C5A059;
  font-family: var(--font-song), "Noto Serif SC", serif;
  font-weight: 700;
  border-radius: inherit;
  letter-spacing: 0;
}

.player-avatar-wrap.size-sm .player-avatar-fallback {
  font-size: 12px;
}

.player-avatar-wrap.size-md .player-avatar-fallback {
  font-size: 15px;
}

.player-avatar-wrap.size-lg .player-avatar-fallback {
  font-size: 22px;
  color: #D4AF37;
}

/* 页面内排版微调 */
.rank-player-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lb-player-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.cg-player-line {
  display: flex;
  align-items: center;
  gap: 6px;
}

.podium-user {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.podium-avatar-wrap {
  margin-bottom: 12px;
  display: flex;
  justify-content: center;
}

/* ══════════════════════════════════════════════
   三甲领奖台尊享大头像 (76px ~ 82px)
   ══════════════════════════════════════════════ */
.podium-card .podium-avatar-wrap .player-avatar-wrap {
  width: 76px;
  height: 76px;
  border-radius: 18px;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}

@media (min-width: 768px) {
  .podium-card .podium-avatar-wrap .player-avatar-wrap {
    width: 82px;
    height: 82px;
    border-radius: 20px;
  }
}

.podium-card .podium-avatar-wrap .player-avatar-wrap:hover {
  transform: translateY(-2px) scale(1.06);
}

/* 状元榜首 · 尊贵金冠流光 */
.podium-card.rank-1 .podium-avatar-wrap .player-avatar-wrap {
  border: 2.5px solid #D4AF37;
  box-shadow: 0 8px 24px rgba(166, 128, 50, 0.3), inset 0 0 10px rgba(212, 175, 55, 0.35);
}

/* 榜眼 · 幽微青翡流光 */
.podium-card.rank-2 .podium-avatar-wrap .player-avatar-wrap {
  border: 2.5px solid #8FA67A;
  box-shadow: 0 8px 24px rgba(107, 127, 89, 0.25), inset 0 0 10px rgba(143, 166, 122, 0.3);
}

/* 探花 · 铜印墨韵流光 */
.podium-card.rank-3 .podium-avatar-wrap .player-avatar-wrap {
  border: 2.5px solid #C4A482;
  box-shadow: 0 8px 24px rgba(163, 135, 107, 0.25), inset 0 0 10px rgba(196, 164, 130, 0.3);
}

.podium-card .podium-avatar-wrap .player-avatar-fallback {
  font-size: 36px;
  font-weight: 800;
  font-family: var(--font-song), "Noto Serif SC", serif;
  color: #D4AF37;
  background: linear-gradient(135deg, rgba(28, 26, 23, 0.95), rgba(12, 10, 9, 0.98));
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.podium-card.rank-1 .podium-avatar-wrap .player-avatar-fallback {
  color: #E3C87D;
}
.podium-card.rank-2 .podium-avatar-wrap .player-avatar-fallback {
  color: #A2B591;
}
.podium-card.rank-3 .podium-avatar-wrap .player-avatar-fallback {
  color: #C7B099;
}

/* 身份胶囊中的头像微调 */
.identity-chip .player-avatar-wrap {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border-color: var(--olive-light);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.identity-chip .player-avatar-fallback {
  font-size: 11px;
  color: var(--olive-primary);
}

.identity-chip-default-icon {
  font-size: 13px;
  line-height: 1;
}

.identity-chip-name {
  font-weight: 600;
}

/* 角色弹窗候选人项中的头像 */
.identity-item .player-avatar-wrap {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border-color: var(--olive-border);
}

.bonus-winner-player {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sponsor-identity-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ─── 赛道标签横滑提示与吸附 (FIX-04) ─── */
.track-tabs-hint {
  display: none;
}

@media (max-width: 767px) {
  .track-tabs-hint {
    display: block;
    margin: -0.9rem 0 1rem;
    font-size: 11px;
    line-height: 1.4;
    color: #6B6B6B;
    text-align: right;
  }

  .track-tabs-bar {
    scroll-snap-type: x proximity;
  }

  .track-tab-btn {
    scroll-snap-align: start;
  }
}
