/* ===== 响应式：移动端 / 桌面端 ===== */

/* 移动端 ≤768px */
@media (max-width: 768px) {
  :root { --topbar-h: 52px; }
  .sidebar, .sidebar-toggle { display: none; }
  .desktop-tabs { display: none; }
  .topbar .cc-btn { display: flex; }
  .bottom-tabs { display: flex; }
  .layout { height: calc(100vh - var(--topbar-h)); }
  .main-scroll { padding: 12px; }

  /* 统计格 */
  .stats { gap: 8px; }
  .stat { padding: 12px 8px; }
  .stat .val { font-size: 20px; }

  /* 数据行 */
  .data-row { gap: 8px; padding: 10px 12px; }
  .data-row .rank { width: 28px; font-size: 14px; }
  .data-row .title { font-size: 13px; line-height: 1.3; }
  .data-row .my-score { font-size: 16px; }

  /* 排名行 */
  .rank-row { gap: 8px; padding: 10px 12px; }
  .rank-row .rank { width: 32px; font-size: 14px; }
  .rank-row .r-score { font-size: 16px; }

  /* 领奖台 */
  .podium { gap: 8px; padding: 10px 0; }
  .pod .bar { width: 48px; }
  .pod:nth-child(2) .bar { height: 48px; }
  .pod:nth-child(1) .bar { height: 32px; }
  .pod:nth-child(3) .bar { height: 38px; }

  /* 卡片 */
  .card-hd { padding: 12px 16px 8px; font-size: 14px; }
  .card-bd { padding: 0 16px 12px; }

  /* 数据组 */
  .data-group { padding: 8px 12px; font-size: 12px; }

  /* 空状态 */
  .empty-box { min-height: 40vh; }
  .empty-box .inner { padding: 36px 28px; }
  .empty-box .icon { font-size: 40px; }

  /* 图表 */
  .chart-bar-wrap { height: 120px; gap: 4px; }
  .chart-pie { width: 110px; height: 110px; }
  .chart-pie-wrap { gap: 12px; }
  .chart-hbar-name { width: 44px; font-size: 10px; }
}

/* 桌面端 ≥1200px */
@media (min-width: 1200px) {
  :root { --sidebar-w: 300px; }
  .main-scroll { padding: 24px 32px; }
  .data-row .scores { gap: 16px; }
  .rank-row .r-score { min-width: 60px; }
  .rank-row .r-time { min-width: 80px; }
}