#open-leaderboard{position:absolute;left:140px;bottom:205px;pointer-events:auto;padding:7px 14px;background:#ffc84e;border:2px solid #235064;border-radius:12px;font-weight:900;color:#193f50;box-shadow:0 3px 0 #235064}
#leaderboard-modal{padding:0;border:3px solid #193f50;border-radius:24px;background:#fff8e8;color:#193f50;width:min(620px,calc(100vw - 24px));max-height:90dvh;box-shadow:0 12px 0 #193f5030,0 30px 100px #0005;overflow:auto;overscroll-behavior:contain;z-index:100}
#leaderboard-modal::backdrop{background:#102a40b3;backdrop-filter:blur(5px)}
.rank-sheet{padding:24px}.rank-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.rank-heading small{font-size:10px;font-weight:900;letter-spacing:1.2px;color:#8b623b}.rank-heading h2{margin:5px 0 20px;font-size:32px;letter-spacing:-1px;color:#193f50}.rank-heading #rank-close{width:40px;height:40px;flex:none;font-size:27px;line-height:1;background:#fff;border:2px solid #193f50;border-radius:12px;padding:0}
.rank-tabs{display:flex;gap:8px}.rank-tabs button{flex:1;border:2px solid #193f50;border-radius:13px;padding:12px;background:#fff;font-weight:900;color:#193f50}.rank-tabs [aria-pressed=true]{background:#ffc84e;box-shadow:0 3px 0 #193f50;transform:translateY(-2px)}
.rank-filters{display:flex;align-items:end;gap:8px;margin-top:18px}.rank-filters label{flex:1;min-width:0;font-size:11px;font-weight:800}.rank-filters select{display:block;width:100%;max-width:100%;margin-top:4px;border:1px solid #b6c3bc;border-radius:9px;padding:9px 5px;background:#fff;color:#193f50;font:inherit;font-size:14px}.rank-filters button{padding:10px 9px;border:1px solid #b6c3bc;background:#fff;border-radius:9px;color:#193f50;font-weight:800;white-space:nowrap}
#rank-rule,.rank-footer{font-size:11px;line-height:1.6;color:#62736e}#rank-rule{margin:15px 0 10px}.rank-mine{background:#193f50;color:#fff1b8;font-size:14px;font-weight:900;border-radius:12px;padding:13px}.rank-mine:empty{display:none}#rank-message{font-size:12px;color:#68786e;margin:13px 0}#rank-list{padding:0;margin:0;list-style:none}.rank-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 9px;border-bottom:1px solid #e6e0d0}.rank-place{font-size:19px;text-align:center}.rank-row strong{display:block;overflow-wrap:anywhere;font-size:15px}.rank-row small{display:block;font-size:11px;line-height:1.6;color:#66786e}.rank-row .rank-time{font-size:10px;color:#8a968d}.rank-points{text-align:right}.rank-points b{font-size:22px;letter-spacing:-.7px;white-space:nowrap}.rank-top{background:#ffedb9;border-radius:13px;margin-bottom:6px;border:1px solid #e8cc77}.rank-top-2{background:#eef0ef;border-color:#d0d9d6}.rank-top-3{background:#f5e1d1;border-color:#ddc0a5}.rank-row.is-me{outline:2px solid #199584;outline-offset:-2px}.rank-footer{margin-top:17px}#rank-more{display:block;margin:12px auto;background:#fff;border:2px solid #193f50;border-radius:12px;padding:10px 22px;font-weight:800;color:#193f50}
.rank-name-field{display:block;text-align:left;margin:15px 0}.rank-name-field span{display:block;font-size:13px;font-weight:800;color:#193f50}.rank-name-field input{box-sizing:border-box;display:block;width:100%;min-height:44px;margin:6px 0;border:2px solid #dbb157;border-radius:12px;padding:10px 12px;background:#fffaf0;color:#193f50;font-size:16px}.rank-name-field small{display:block;font-size:10px;color:#71766d}#rank-submit-status{font-size:12px;color:#28715c;line-height:1.5}#rank-result-button{width:100%;margin-top:8px;border:2px solid #193f50;background:#ffcf63;border-radius:12px;padding:12px;color:#193f50;font-weight:900}
#leaderboard-modal [hidden],#rank-result-button[hidden],#rank-submit-status[hidden]{display:none!important}#leaderboard-modal button:focus-visible,.rank-name-field input:focus-visible{outline:3px solid #209c89;outline-offset:3px}
@media(max-width:680px){#open-leaderboard{left:122px;font-size:12px}.rank-sheet{padding:18px 14px}.rank-heading h2{font-size:27px}.rank-row{gap:7px;padding:13px 6px;grid-template-columns:30px minmax(0,1fr) auto}.rank-points b{font-size:20px}.rank-row strong{font-size:14px}.rank-row small{font-size:10px}}
@media(max-height:680px) and (max-width:680px){#open-leaderboard{bottom:177px}}
