.lobby-links { flex-wrap:wrap; gap:8px 14px; }
.lobby-links #open-leaderboard { color:var(--ui-accent); font-weight:600; }
.private-room-field { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0; padding:14px 16px; border:1px solid var(--ui-line); border-radius:15px; background:var(--ui-surface-soft); cursor:pointer; }
.private-room-field span { display:flex; flex-direction:column; font-weight:600; }
.private-room-field small { margin-top:3px; color:var(--ui-muted); font-size:11px; font-weight:400; }
.private-room-field input { width:23px; height:23px; flex:0 0 23px; accent-color:var(--ui-accent); }
.leaderboard-dialog { --rank-gutter:24px; width:min(560px,calc(100% - 24px)); }
.leaderboard-dialog .dialog-heading h2 { font-family:var(--ui-font); font-weight:600; }
.leaderboard-dialog .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.leaderboard-filters { flex:0 0 auto; padding:0 var(--rank-gutter) 12px; border-bottom:1px solid var(--ui-line); }
.leaderboard-kinds { display:flex; gap:6px; padding:4px; border-radius:14px; background:var(--ui-surface-soft); }
.leaderboard-kinds button { flex:1; border:0; background:none; min-height:40px; border-radius:11px; font-size:13px; color:var(--ui-muted); }
.leaderboard-kinds button[aria-pressed='true'] { background:var(--ui-surface); color:var(--ui-ink); box-shadow:0 2px 7px #18372b12; font-weight:600; }
.leaderboard-date-row { display:flex; align-items:center; justify-content:center; gap:6px; margin:12px 0; }
.leaderboard-date-row .icon-button { width:36px; height:38px; padding:9px; flex:none; border-radius:10px; }
.rank-date-field { min-width:0; width:155px; }
#rank-date { width:100%; min-width:0; padding:8px 10px; height:40px; font-family:var(--ui-font); font-size:13px; text-align:center; border-radius:10px; background:var(--ui-surface); color:var(--ui-ink); }
#rank-today { min-height:38px; padding:4px 9px; font-size:12px; white-space:nowrap; flex:none; }
.leaderboard-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.leaderboard-date-row[hidden] { display:none !important; }
.leaderboard-metrics button { min-height:61px; padding:9px; border:1px solid var(--ui-line); border-radius:14px; background:var(--ui-surface); color:var(--ui-muted); font-size:15px; font-weight:600; }
.leaderboard-metrics button span { display:block; font-size:10px; font-weight:400; margin-top:3px; }
.leaderboard-metrics button[aria-pressed='true'] { border-color:var(--ui-accent); background:var(--ui-surface-soft); color:var(--ui-accent); box-shadow:inset 0 0 0 1px var(--ui-accent); }
#leaderboard-scroll { min-height:0; padding:0 var(--rank-gutter) 12px; }
.rank-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 10px; padding:16px 0 8px; font-size:11px; color:var(--ui-muted); }
.rank-summary strong { font-size:12px; color:var(--ui-ink); font-weight:500; }
.rank-list { list-style:none; margin:0; padding:0; }
.rank-row { display:grid; grid-template-columns:23px 42px minmax(0,1fr) auto; gap:10px; align-items:center; min-height:80px; border-bottom:1px solid var(--ui-line); padding:12px 5px; }
.rank-position { font-size:16px; font-weight:600; color:var(--ui-muted); text-align:center; font-variant-numeric:tabular-nums; }
.rank-row[data-rank='1'] { background:linear-gradient(105deg,#bf934919,transparent); border-radius:14px; }
.rank-row[data-rank='1'] .rank-position { color:#aa7837; font-size:22px; }
.rank-row[data-rank='2'] .rank-position { color:var(--ui-accent); }
.rank-row[data-rank='3'] .rank-position { color:var(--ui-gold); }
.rank-avatar { position:relative; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--ui-surface-soft); border:1px solid var(--ui-line); overflow:hidden; color:var(--ui-accent); font-size:18px; }
.rank-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rank-profile { min-width:0; display:flex; flex-direction:column; gap:3px; }
.rank-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:600; }
.rank-record { font-size:10px; color:var(--ui-muted); }
.rank-score { min-width:58px; text-align:right; white-space:nowrap; }
.rank-score strong { display:block; font-size:19px; font-weight:600; color:var(--ui-accent); font-variant-numeric:tabular-nums; }
.rank-score small { display:block; font-size:10px; color:var(--ui-muted); }
.leaderboard-dialog[data-board='losses'] .rank-score strong { color:var(--ui-muted); }
.rank-empty { padding:26px 15px; text-align:center; color:var(--ui-muted); }
.rank-empty > span { display:grid; place-items:center; width:50px; height:50px; margin:0 auto 12px; border:1px solid var(--ui-line); border-radius:50%; color:var(--ui-accent); font-size:23px; background:var(--ui-surface-soft); }
.rank-empty h3 { font-size:15px; font-weight:500; color:var(--ui-ink); margin:0 0 6px; }
.rank-empty p { font-size:12px; margin:0; }
.rank-loading { display:flex; min-height:170px; align-items:center; justify-content:center; flex-wrap:wrap; align-content:center; gap:7px; color:var(--ui-muted); }
.rank-loading i { width:7px; height:7px; border-radius:50%; background:var(--ui-accent); animation:rank-breathe 1.1s ease-in-out infinite alternate; }
.rank-loading i:nth-child(2) { animation-delay:.15s; }.rank-loading i:nth-child(3) { animation-delay:.3s; }
.rank-loading span { flex-basis:100%; text-align:center; font-size:12px; margin-top:5px; }
@keyframes rank-breathe { to { opacity:.3; transform:translateY(-3px); } }
.rank-error { padding:18px 5px; text-align:center; }.rank-error p { color:var(--ui-muted); font-size:12px; }.rank-error button { font-size:12px; min-height:40px; }
.leaderboard-footer { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:3px 12px; border-top:1px solid var(--ui-line); padding:7px var(--rank-gutter) 16px; color:var(--ui-muted); font-size:10px; }
.leaderboard-footer .text-button { min-height:34px; font-size:11px; }.leaderboard-footer p { flex-basis:100%; margin:0; font-size:10px; line-height:1.55; }
@media(max-width:600px) { .leaderboard-dialog { --rank-gutter:20px; } }
@media(max-width:420px) { .leaderboard-dialog .dialog-heading { padding-bottom:12px; }.rank-row { grid-template-columns:20px 36px minmax(0,1fr) auto; gap:7px; padding:11px 2px; }.rank-avatar { width:36px; height:36px; }.rank-name { font-size:12px; }.rank-score strong { font-size:17px; } }
@media(prefers-reduced-motion:reduce) { .rank-loading i { animation:none; } }
@media(max-height:560px) {
  .leaderboard-dialog { --rank-gutter:18px; }
  .leaderboard-dialog .dialog-heading { margin-bottom:0; padding-top:12px; padding-bottom:6px; }
  .leaderboard-dialog .dialog-heading .eyebrow { display:none; }
  .leaderboard-dialog .dialog-heading h2 { font-size:20px; }
  .leaderboard-kinds button { min-height:32px; }
  .leaderboard-date-row { margin:5px 0; }
  .leaderboard-metrics button { min-height:37px; padding:6px; font-size:13px; }
  .leaderboard-metrics button span { display:none; }
  .leaderboard-filters { padding-bottom:6px; }
  .leaderboard-footer p { display:none; }
  .leaderboard-footer { padding-bottom:6px; }
  .rank-summary { padding-top:8px; padding-bottom:5px; }
  .rank-row { min-height:64px; padding-top:8px; padding-bottom:8px; }
}

/* Consistent geometry for the date navigator and every ranked row. */
.leaderboard-dialog { --rank-score-width:100px; }
.leaderboard-dialog > .dialog-heading { padding-left:var(--rank-gutter); padding-right:var(--rank-gutter); }
.leaderboard-date-row { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:8px; }
.rank-date-nav { grid-column:2; display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:center; gap:6px; width:100%; max-width:255px; justify-self:center; }
.leaderboard-date-row .icon-button { width:44px; height:44px; min-height:44px; padding:11px; }
.rank-date-nav .rank-date-field { display:block; width:auto; min-width:0; }
#rank-date { display:block; width:100%; min-width:0; max-width:100%; height:44px; min-height:44px; max-height:44px; padding:0 6px; line-height:normal; }
#rank-today { grid-column:3; width:44px; height:44px; min-height:44px; padding:0; border:1px solid var(--ui-line); border-radius:10px; background:var(--ui-surface); }
.rank-row { grid-template-columns:23px 42px minmax(0,1fr) var(--rank-score-width); padding-left:0; padding-right:0; }
.rank-score { width:100%; min-width:0; }
.rank-score strong, .rank-record { font-variant-numeric:tabular-nums; }
.rank-summary > span { max-width:100%; margin-left:auto; text-align:right; overflow-wrap:anywhere; }
.leaderboard-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
#rank-updated { min-width:0; line-height:1.5; }
.leaderboard-footer #rank-refresh { height:44px; min-height:44px; padding:0 4px; justify-self:end; white-space:nowrap; }
.leaderboard-footer p { grid-column:1 / -1; }
@media(max-width:420px) {
  .leaderboard-dialog { --rank-score-width:88px; }
  .rank-row { grid-template-columns:20px 36px minmax(0,1fr) var(--rank-score-width); }
  #rank-date { font-size:12px; }
}

@media(max-width:360px) {
  .leaderboard-date-row { grid-template-columns:minmax(0,1fr) 44px; }
  .rank-date-nav { grid-column:1; }
  #rank-today { grid-column:2; }
}
/* Keep the previous four-child markup usable during an atomic asset rollout. */
.leaderboard-date-row:not(:has(.rank-date-nav)) { display:flex; justify-content:center; }

/* Mobile WebKit top-aligns the native date value even when its border is 44px.
   The visible value uses the same centered layout as the arrows; the real date
   input retains the full touch target, picker, limits and keyboard semantics.
   Scope to the new markup so already-open clients remain usable on rollout. */
.rank-date-field:has(.rank-date-display) { position:relative; display:grid; place-items:center; height:44px; border:1px solid var(--ui-line); border-radius:10px; background:var(--ui-surface); }
.rank-date-display { pointer-events:none; color:var(--ui-ink); font:500 13px/20px var(--ui-font); font-variant-numeric:tabular-nums; white-space:nowrap; }
.rank-date-field:has(.rank-date-display) #rank-date { position:absolute; inset:-1px; width:calc(100% + 2px); max-width:none; margin:0; opacity:0; font-size:16px; cursor:pointer; }
.rank-date-field:has(.rank-date-display):focus-within { outline:3px solid #80aa8e; outline-offset:3px; }
@media(max-width:420px) { .rank-date-display { font-size:12px; } }

/* The controls share one quiet surface; records get the vertical space. */
.leaderboard-dialog { --rank-gutter: 20px; --rank-score-width: 100px; }
.leaderboard-dialog > .dialog-heading { padding-top: 17px; padding-bottom: 12px; }
.leaderboard-dialog > .dialog-heading .eyebrow { margin-bottom: 3px; font-size: 10px; }
.leaderboard-dialog > .dialog-heading h2 { font-size: 21px; line-height: 1.35; }
.leaderboard-filters { padding-top: 10px; padding-bottom: 10px; }
.leaderboard-kinds { padding: 3px; border-radius: 12px; }
.leaderboard-kinds button { min-height: 38px; border-radius: 10px; }
.leaderboard-date-row { margin: 8px 0; }
.leaderboard-metrics { gap: 7px; }
.leaderboard-metrics button { min-height: 42px; padding: 7px 10px; border-color: transparent; border-radius: 10px; background: var(--ui-surface-soft); font-size: 13px; }
.leaderboard-metrics button span { display: none; }
.leaderboard-metrics button[aria-pressed='true'] { background: var(--ui-accent); color: var(--ui-on-accent,#fff); border-color: transparent; box-shadow: none; }
.rank-summary { padding-top: 12px; padding-bottom: 7px; }
.rank-row { min-height: 66px; padding-top: 10px; padding-bottom: 10px; grid-template-columns: 22px 36px minmax(0,1fr) var(--rank-score-width); gap: 8px; }
.rank-avatar { width: 36px; height: 36px; }
.rank-row[data-rank='1'] { background: linear-gradient(105deg,#bf934911,transparent); border-radius: 10px; }
.rank-row[data-rank='1'] .rank-position { font-size: 20px; }
.rank-name { font-size: 12px; }
.rank-score strong { font-size: 17px; }
.rank-record, .rank-score small { font-size: 10px; }
.leaderboard-footer { padding-top: 3px; padding-bottom: 11px; }
.leaderboard-footer p { font-size: 9px; line-height: 1.5; }
.leaderboard-footer #rank-refresh { height: 44px; min-height: 44px; }
@media (max-width: 380px) {
  .leaderboard-dialog { --rank-gutter: 16px; --rank-score-width: 88px; }
  .rank-row { grid-template-columns: 19px 32px minmax(0,1fr) var(--rank-score-width); gap: 7px; }
  .rank-avatar { width: 32px; height: 32px; }
  .rank-score strong { font-size: 16px; }
}
@media (max-height: 660px) {
  .leaderboard-dialog > .dialog-heading { padding-top: 12px; padding-bottom: 9px; }
  .leaderboard-dialog > .dialog-heading .eyebrow { display: none; }
  .leaderboard-filters { padding-top: 7px; padding-bottom: 7px; }
  .leaderboard-date-row { margin: 6px 0; }
  .rank-row { min-height: 60px; padding-top: 8px; padding-bottom: 8px; }
  .leaderboard-footer p { display: none; }
  .leaderboard-footer { padding-bottom: 5px; }
}

@media(max-width:420px) { .leaderboard-dialog { --rank-score-width:88px; } }
