.leaderboard-menu-link { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 47px; padding: 10px 18px; color: #785018; background: #fff4d9; border: 1px solid #e9c676; border-radius: 13px; font: inherit; font-size: .88rem; font-weight: 750; cursor: pointer; }
.leaderboard-menu-link:hover { background: #ffe7a5; border-color: #d59d30; }
.final-leaderboard-link { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 45px; margin-top: 19px; padding: 11px 15px; color: #ffe2a1; background: #ffcb4d12; border: 1px solid #ffdb7066; border-radius: 12px; font: inherit; font-size: .84rem; font-weight: 750; cursor: pointer; }
.final-leaderboard-link:hover { background: #ffcb4d25; }
.leaderboard-dialog {
  --lb-paper: #fffdf8; --lb-ink: #18395d; --lb-muted: #59738c; --lb-line: #d2e2ec; --lb-row: #f0f7fc;
  width: min(920px,calc(100vw - 36px)); max-height: min(90svh,960px); margin: auto; padding: 0;
  color: var(--lb-ink); background: var(--lb-paper); border: 1px solid var(--lb-line); border-radius: 24px;
  box-shadow: 0 30px 110px #061c5580; font-family: 'Segoe UI',system-ui,sans-serif; overflow-y: auto;
}
.leaderboard-dialog::backdrop { background: #092448bb; backdrop-filter: blur(7px); }
.leaderboard-dialog [hidden] { display: none !important; }
.leaderboard-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 28px; background: var(--lb-paper); border-bottom: 1px solid var(--lb-line); }
.leaderboard-eyebrow { margin: 0 0 3px; color: #b36919; font-size: .62rem; font-weight: 850; letter-spacing: .14em; }
.leaderboard-header h2 { margin: 0; color: var(--lb-ink); font-size: 1.7rem; line-height: 1.15; letter-spacing: -.035em; }
.leaderboard-header-actions { display: flex; align-items: center; gap: 12px; }
.leaderboard-close { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; color: var(--lb-ink); background: var(--lb-row); border: 1px solid var(--lb-line); border-radius: 50%; font: inherit; font-size: 1.5rem; cursor: pointer; }
.leaderboard-close:hover { border-color: #e1ab45; }
.leaderboard-body { padding: 24px 28px 28px; }
.leaderboard-intro { display: flex; align-items: center; gap: 20px; padding: 23px 25px; color: #fff; background: radial-gradient(circle at 90% 20%,#46779f,transparent 70%),#173e70; border-radius: 18px; }
.leaderboard-trophy { flex-shrink: 0; font-size: 3.3rem; line-height: 1; filter: drop-shadow(0 5px 7px #061c5533); }
.leaderboard-intro h3 { margin: 0 0 7px; color: #ffe2a1; font-size: 1.14rem; line-height: 1.3; }
.leaderboard-intro p { margin: 0; color: #e2effc; font-size: .81rem; line-height: 1.65; }
.leaderboard-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 17px 0 26px; }
.leaderboard-stats > div { padding: 14px 17px; background: var(--lb-row); border: 1px solid var(--lb-line); border-radius: 13px; }
.leaderboard-stats span { display: block; color: var(--lb-muted); font-size: .72rem; }
.leaderboard-stats strong { display: block; margin-top: 4px; color: var(--lb-ink); font-size: 1.35rem; font-weight: 850; line-height: 1.2; }
.leaderboard-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.leaderboard-list-heading h3 { margin: 0; color: var(--lb-ink); font-size: .9rem; font-weight: 750; }
.leaderboard-refresh { display: flex; align-items: center; gap: 6px; min-height: 35px; padding: 6px 11px; color: var(--lb-muted); background: var(--lb-paper); border: 1px solid var(--lb-line); border-radius: 9px; font: inherit; font-size: .74rem; font-weight: 650; cursor: pointer; }
.leaderboard-refresh:hover { border-color: #79a6cb; }
.leaderboard-refresh > span { font-size: 1.05rem; }
.leaderboard-status { padding: 36px 20px; border: 1px dashed var(--lb-line); border-radius: 14px; color: var(--lb-muted); background: var(--lb-row); text-align: center; font-size: .88rem; line-height: 1.8; }
.leaderboard-columns, .leaderboard-entry { display: grid; grid-template-columns: 42px minmax(0,1fr) 145px 115px; align-items: center; gap: 15px; }
.leaderboard-columns { padding: 8px 16px 10px; color: var(--lb-muted); font-size: .68rem; font-weight: 700; }
.leaderboard-columns > :last-child { text-align: right; }
.leaderboard-list { margin: 0; padding: 0; list-style: none; }
.leaderboard-entry { margin-bottom: 9px; padding: 16px; color: var(--lb-ink); background: var(--lb-row); border: 1px solid var(--lb-line); border-radius: 13px; }
.leaderboard-entry:first-child { border-color: #d9b865; box-shadow: inset 3px 0 #e8b640; }
.leaderboard-entry.leaderboard-current { border-color: #5d9bc4; background: #e6f3fa; }
.leaderboard-position { font-size: 1.7rem; font-weight: 800; text-align: center; }
.leaderboard-entry:nth-child(n+4) .leaderboard-position { color: var(--lb-muted); font-size: .82rem; }
.leaderboard-player { min-width: 0; }
.leaderboard-names { color: var(--lb-ink); font-size: .92rem; font-weight: 800; line-height: 1.5; overflow-wrap: anywhere; }
.leaderboard-bot { display: inline-block; margin-left: 6px; padding: 1px 6px; color: #21618c; background: #cce5f5; border-radius: 5px; font-size: .56rem; font-weight: 700; vertical-align: middle; }
.leaderboard-entry-note { display: block; margin-top: 3px; color: #967026; font-size: .68rem; font-weight: 650; }
.leaderboard-date { display: block; color: var(--lb-muted); font-size: .77rem; }
.leaderboard-date small { display: block; margin-top: 4px; color: var(--lb-muted); font-size: .69rem; }
.leaderboard-points { color: #1d598d; text-align: right; font-size: 1.03rem; font-weight: 850; }
.leaderboard-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--lb-line); }
.leaderboard-pagination button { min-height: 38px; padding: 8px 12px; color: var(--lb-ink); background: var(--lb-row); border: 1px solid var(--lb-line); border-radius: 9px; font: inherit; font-size: .75rem; font-weight: 650; cursor: pointer; }
.leaderboard-pagination button:disabled { opacity: .45; cursor: default; }
.leaderboard-pagination span { color: var(--lb-muted); font-size: .74rem; text-align: center; }
.leaderboard-dialog button:focus-visible, .leaderboard-menu-link:focus-visible, .final-leaderboard-link:focus-visible { outline: 3px solid #f4a638; outline-offset: 3px; }
html[data-theme="dark"] .leaderboard-menu-link { color: #ffdfa0; background: #413525; border-color: #937142; }
html[data-theme="dark"] .leaderboard-menu-link:hover { background: #55432b; }
html[data-theme="dark"] .leaderboard-dialog { --lb-paper: #15263d; --lb-ink: #e5efff; --lb-muted: #b0c7e1; --lb-line: #425f7f; --lb-row: #203752; }
html[data-theme="dark"] .leaderboard-eyebrow, html[data-theme="dark"] .leaderboard-entry-note { color: #ffd28a; }
html[data-theme="dark"] .leaderboard-points { color: #9bd0ff; }
html[data-theme="dark"] .leaderboard-entry.leaderboard-current { background: #254867; }
@media (max-width: 680px) {
  .leaderboard-dialog { width: calc(100vw - 20px); max-height: 94svh; border-radius: 18px; }
  .leaderboard-header { padding: 16px 18px; gap: 12px; }
  .leaderboard-header h2 { font-size: 1.4rem; }
  .leaderboard-eyebrow { font-size: .54rem; }
  .leaderboard-header-actions { gap: 8px; }
  .leaderboard-header .theme-label, .leaderboard-header .theme-toggle-track { display: none; }
  .leaderboard-header .theme-toggle { width: 40px; padding: 7px; }
  .leaderboard-body { padding: 18px 16px 22px; }
  .leaderboard-intro { padding: 18px; gap: 12px; align-items: flex-start; }
  .leaderboard-trophy { font-size: 2rem; }
  .leaderboard-intro h3 { font-size: 1rem; }
  .leaderboard-intro p { font-size: .75rem; }
  .leaderboard-stats { gap: 9px; margin-bottom: 20px; }
  .leaderboard-stats > div { padding: 12px; }
  .leaderboard-stats strong { font-size: 1.2rem; }
  .leaderboard-columns { display: none; }
  .leaderboard-entry { grid-template-columns: 29px minmax(0,1fr) auto; gap: 5px 10px; padding: 13px 12px; }
  .leaderboard-position { grid-column: 1; grid-row: 1 / 3; font-size: 1.45rem; }
  .leaderboard-player { grid-column: 2; grid-row: 1; }
  .leaderboard-names { font-size: .83rem; }
  .leaderboard-date { grid-column: 2; grid-row: 2; font-size: .69rem; }
  .leaderboard-date small { display: inline; margin-left: 7px; font-size: .64rem; }
  .leaderboard-points { grid-column: 3; grid-row: 1 / 3; font-size: .86rem; }
  .leaderboard-pagination { gap: 8px; }
  .leaderboard-pagination button { padding: 8px; font-size: .68rem; }
  .leaderboard-pagination span { font-size: .67rem; }
}
