body {
  min-height: 100vh;
  background: #061527;
  color: #eaf1f6;
}

.ranking-page {
  width: min(1180px, calc(100% - 32px));
  min-height: calc(100vh - 180px);
  margin: 96px auto 62px;
  padding: 28px;
  border: 1px solid rgba(133, 161, 187, .28);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(14, 40, 63, .96), rgba(5, 20, 35, .98));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .34);
}

.ranking-header,
.region-bar {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
}

.ranking-header {
  padding: 0 0 22px;
  border-bottom: 1px solid rgba(145, 174, 199, .22);
}

.ranking-eyebrow,
.updated {
  margin: 0;
  color: #9fb8cf;
  font: 700 .69rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ranking-header h1 {
  margin: 7px 0 0;
  color: #f5f0e4;
  font: 700 clamp(2rem, 4vw, 3rem)/1 Cinzel, Georgia, serif;
  letter-spacing: .02em;
}

.ranking-intro {
  max-width: 600px;
  margin: 10px 0 0;
  color: #b8cad9;
  font: .93rem/1.5 system-ui, sans-serif;
}

.ranking-mark {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
  padding: 7px 11px 7px 7px;
  border: 1px solid rgba(232, 189, 85, .62);
  border-radius: 6px;
  background: rgba(232, 189, 85, .08);
  color: #ffe2a0;
  font: 700 .63rem/1.18 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .09em;
}

.ranking-mark img { display: block; border-radius: 4px; }
.ranking-console { margin-top: 22px; }

.region-bar {
  align-items: center;
  padding: 0 0 15px;
}

.regions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.regions button {
  padding: 9px 13px;
  border: 1px solid #526b82;
  border-radius: 5px;
  background: #0a1a2a;
  color: #cbdae5;
  cursor: pointer;
  font: 700 .76rem system-ui, sans-serif;
}

.regions button:hover,
.regions button:focus-visible {
  border-color: #e8bd55;
  color: #ffe4a4;
  outline: none;
}

.regions button.active {
  border-color: #e8bd55;
  background: #e8bd55;
  color: #15130e;
}

.updated { max-width: 330px; text-align: right; letter-spacing: .045em; }

.table-wrap {
  overflow-x: auto;
  border: 1px solid rgba(133, 161, 187, .28);
  border-radius: 8px;
  background: rgba(3, 15, 27, .44);
}

.players {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  font-family: system-ui, sans-serif;
}

.players th {
  padding: 12px 15px;
  border-bottom: 1px solid rgba(232, 189, 85, .55);
  background: rgba(232, 189, 85, .12);
  color: #ffe1a0;
  font: 700 .69rem ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .09em;
  text-align: left;
  text-transform: uppercase;
}

.players td {
  padding: 12px 15px;
  border-bottom: 1px solid rgba(133, 161, 187, .17);
  color: #d8e4ec;
  font-size: .88rem;
}

.players tbody tr:last-child td { border-bottom: 0; }
.players tbody tr:hover { background: rgba(232, 189, 85, .07); }
.rank { width: 96px; font: 700 .83rem ui-monospace, SFMono-Regular, Consolas, monospace !important; color: #b6cada !important; }
.rank span { margin-right: 2px; color: #7891a6; }
.rank.podium { color: #ffe39d !important; }
.rank.podium-1 { color: #ffe66d !important; }
.rank.podium-2 { color: #d8e0e7 !important; }
.rank.podium-3 { color: #d9a776 !important; }
.player-name { color: #f1f5f6 !important; font-weight: 700; }
.team { color: #f0ca77 !important; font-weight: 700; }
.country { color: #afc4d4 !important; font: .75rem ui-monospace, SFMono-Regular, Consolas, monospace !important; }
.flag { width: 24px; height: 16px; margin-right: 8px; vertical-align: -3px; border: 1px solid rgba(220, 233, 242, .24); }

@media (max-width: 720px) {
  .ranking-page { width: calc(100% - 20px); margin-top: 82px; padding: 19px 14px; }
  .ranking-header, .region-bar { align-items: flex-start; flex-direction: column; gap: 16px; }
  .ranking-mark { position: absolute; top: 93px; right: 24px; }
  .ranking-mark span { display: none; }
  .ranking-mark img { width: 32px; height: 32px; }
  .updated { max-width: none; text-align: left; }
  .players th, .players td { padding: 11px 12px; }
}