/* ============ 赛马榜 ============ */
.race-board {
  background: rgba(0, 0, 0, 0.6);
  overflow: hidden;
  transition: all 0.5s;
}
.mode-wu .race-board { border-top: 4px solid var(--wu-red); border-bottom: 4px solid var(--wu-red); }
.mode-wen .race-board {
  border-radius: 12px;
  border: 1px solid var(--wen-silver);
  box-shadow: inset 0 0 30px rgba(30, 144, 255, 0.1);
}

.race-head {
  padding: 10px 14px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 2px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: 'Bebas Neue', sans-serif;
}
.mode-wu .race-head { background: var(--wu-red); color: var(--text-light); }
.mode-wen .race-head { background: rgba(30, 144, 255, 0.2); color: var(--wen-silver); font-family: 'Cinzel', serif; }
.race-reward { font-size: 10px; font-weight: 400; opacity: 0.85; letter-spacing: 1px; }

.race-list { max-height: 280px; overflow-y: auto; }
.race-list::-webkit-scrollbar { width: 6px; }
.mode-wu .race-list::-webkit-scrollbar-thumb { background: var(--wu-red); }
.mode-wen .race-list::-webkit-scrollbar-thumb { background: var(--wen-silver); }

.race-row {
  display: grid;
  grid-template-columns: 36px 1fr 60px 50px 24px;
  gap: 10px;
  padding: 10px 14px;
  align-items: center;
  font-size: 13px;
  transition: background 0.3s;
}
.mode-wu .race-row { border-top: 1px solid rgba(230, 0, 18, 0.2); }
.mode-wen .race-row { border-top: 1px solid rgba(192, 216, 255, 0.15); }
.race-row:first-child { border-top: none; }

.mode-wu .race-row.current {
  animation: rowSlamDown 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
  background: rgba(245, 197, 24, 0.18);
}
@keyframes rowSlamDown {
  0% { transform: translateY(-50px); opacity: 0; }
  60% { transform: translateY(8px); }
  100% { transform: translateY(0); opacity: 1; }
}
.mode-wen .race-row.current {
  animation: rowFloat 0.9s cubic-bezier(0.4, 0, 0.2, 1);
  background: rgba(192, 216, 255, 0.12);
}
@keyframes rowFloat {
  0% { transform: translateY(20px); opacity: 0; filter: blur(4px); }
  100% { transform: translateY(0); opacity: 1; filter: blur(0); }
}

.race-rk { font-family: 'Bebas Neue', monospace; font-weight: 900; font-size: 14px; text-align: center; }
.race-rk.first {
  font-size: 22px; color: #FFD700;
  text-shadow: 0 0 10px #FFD700;
  animation: goldShine 2s ease-in-out infinite;
}
@keyframes goldShine {
  0%, 100% { text-shadow: 0 0 10px #FFD700; }
  50% { text-shadow: 0 0 20px #FFD700, 0 0 30px #FFD700; }
}
.race-rk.second { font-size: 18px; color: #C0C0C0; }
.race-rk.third { font-size: 18px; color: #CD7F32; }

.race-name { font-weight: 900; font-size: 13px; }
.race-author { font-size: 10px; color: var(--text-mute); margin-top: 2px; font-family: 'Bebas Neue', sans-serif; letter-spacing: 1px; }
.mode-wen .race-author { font-family: 'Cinzel', serif; }
.race-score { font-family: 'Bebas Neue', monospace; text-align: right; font-weight: 900; font-size: 18px; text-shadow: 1px 1px 0 #000; }

.race-tag {
  font-size: 9px;
  padding: 3px 6px;
  text-align: center;
  font-weight: 900;
  letter-spacing: 1px;
}
.tag-w { background: var(--wen-silver); color: var(--wen-blue-dark); border-radius: 999px; }
.tag-m { background: var(--wu-red); color: var(--text-light); clip-path: polygon(8% 0, 100% 8%, 92% 100%, 0 92%); }

.race-del {
  background: transparent;
  border: none;
  color: var(--text-mute);
  cursor: pointer;
  font-size: 16px;
  opacity: 0.4;
}
.race-del:hover { opacity: 1; color: var(--wu-red); }

.race-empty {
  padding: 30px 16px;
  text-align: center;
  color: var(--text-mute);
  font-size: 11px;
  letter-spacing: 3px;
  font-family: 'Bebas Neue', sans-serif;
}
.mode-wen .race-empty { font-family: 'Cinzel', serif; }

