.table-wrap { overflow: visible; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); }
@media (max-width: 899px) { .table-wrap { overflow-x: auto; } .toplist thead th { position: static; } }
.toplist { width: 100%; font-size: 15px; background: transparent; border: 0; }
.toplist thead th { position: sticky; top: 68px; z-index: 5; background: var(--surface); border-radius: 0; height: 40px; text-align: left; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); padding: 0 var(--space-3); border-bottom: 1px solid var(--border-strong); }
.toplist td { height: 44px; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border); vertical-align: middle; }
.toplist tbody tr:last-child td { border-bottom: 0; }
.toplist tbody tr:hover td { background: var(--surface-subtle); }
.toplist .col-rank { width: 70px; color: var(--text-muted); text-align: right; }
.toplist .col-athlete { min-width: 220px; font-weight: 500; }
.toplist .col-athlete a { color: var(--text); }
.toplist .col-country { width: 100px; }
.toplist .col-mark { width: 110px; font-weight: 700; font-size: 16px; }
.toplist .col-wind, .toplist .col-age, .toplist .col-score { width: 80px; color: var(--text-muted); }
.toplist .col-date { width: 130px; color: var(--text-muted); white-space: nowrap; }
.toplist .col-venue { min-width: 200px; color: var(--text-muted); }
.toplist tr.is-podium .col-rank { color: var(--text); font-weight: 700; }
.athlete-link--unresolved { color: var(--text-muted); }
.toplist--compact .col-athlete { min-width: 160px; }
@media (max-width: 639px) {
  .table-wrap { overflow: visible; }
  .toplist, .toplist tbody, .toplist tr, .toplist td { display: block; }
  .toplist thead { display: none; }
  .toplist tr { display: grid; grid-template-columns: 40px auto auto 1fr; grid-template-areas: "rank athlete athlete mark" "rank country wind date" "rank venue venue venue"; padding: var(--space-3); border-bottom: 1px solid var(--border); column-gap: var(--space-2); row-gap: 2px; align-items: baseline; }
  .toplist td { height: auto; padding: 0; border: 0; width: auto; min-width: 0; }
  .toplist .col-athlete, .toplist .col-venue, .toplist .col-rank, .toplist .col-country, .toplist .col-mark, .toplist .col-wind, .toplist .col-date { width: auto; min-width: 0; }
  .toplist .col-rank { grid-area: rank; text-align: left; font-size: 16px; font-weight: 600; }
  .toplist .col-athlete { grid-area: athlete; font-size: 16px; }
  .toplist .col-mark { grid-area: mark; text-align: right; font-size: 18px; }
  .toplist .col-country { grid-area: country; font-size: 14px; }
  .toplist .col-wind { grid-area: wind; font-size: 14px; }
  .toplist .col-date { grid-area: date; font-size: 14px; white-space: normal; }
  .toplist .col-venue { grid-area: venue; font-size: 14px; }
  .toplist .col-age, .toplist .col-score { display: none; }
  .toplist--athlete tr { grid-template-columns: auto auto 1fr; grid-template-areas: "athlete athlete mark" "country wind date" "venue venue venue"; }
  .toplist--compact tr { grid-template-columns: 40px 1fr auto; grid-template-areas: "rank athlete mark" "rank date date"; }
}
