#modal[data-kind='leaderboard'] { width:min(640px,calc(100vw - 28px)); }
.ranking-tabs { display:flex; gap:8px; margin:0 0 18px; }
.ranking-tabs button { flex:1; min-height:42px; padding:8px 12px; border:1px solid var(--line); background:var(--panel-deep); color:var(--muted); font-size:14px; }
.ranking-tabs button[aria-selected='true'] { color:var(--gold); border-color:var(--gold); background:var(--panel-raised); }
.ranking-tabs button:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.ranking-meta { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:13px; padding-bottom:18px; }
.ranking-columns,.ranking-row { display:grid; grid-template-columns:46px minmax(0,1fr) 54px 54px; gap:12px; align-items:center; }
.ranking-columns { color:var(--muted); font-size:13px; padding:10px 12px; border-bottom:2px solid var(--line); }
.ranking-row { padding:16px 12px; border-bottom:1px solid var(--line-soft); font-size:16px; }
.ranking-row>strong { min-width:0; overflow-wrap:anywhere; font-weight:500; }
.ranking-row>strong small { margin-left:7px; font-size:12px; color:var(--gold); }
.ranking-row>span:nth-last-child(-n+2),.ranking-columns>span:nth-last-child(-n+2) { text-align:right; font-variant-numeric:tabular-nums; }
.ranking-place { color:var(--gold); }
.ranking-self { background:var(--panel-raised); box-shadow:inset 3px 0 var(--gold); }
.ranking-list { max-height:55vh; overflow-y:auto; }
.ranking-mine { margin-top:18px; border-top:2px solid var(--line); }
.ranking-empty { padding:35px 8px; text-align:center; display:grid; gap:16px; }
.ranking-empty>span { font-size:44px; color:var(--gold); }
.ranking-empty>strong { font-size:20px; font-weight:500; }
.ranking-empty p,.ranking-error { color:var(--muted); font-size:14px; line-height:1.7; }
.settings-target-only { grid-template-columns:1fr; }
.friend-room-choices { display:flex; gap:10px; margin:20px 0 16px; }
.friend-room-choices button { flex:1; }
.friend-variant-label { display:grid; gap:8px; color:var(--muted); font-size:14px; }
@media(max-width:480px) { .ranking-columns,.ranking-row { grid-template-columns:34px minmax(0,1fr) 40px 40px; gap:8px; padding-inline:8px; }.ranking-row { font-size:15px; } }
