/* RANK-UI 排位版新增界面：模式选择、更新公告、段位徽章、双榜页签 */
.mode-dialog,.patch-dialog{border:none;border-radius:22px;padding:0;max-width:min(560px,92vw);
 width:min(560px,92vw);background:#fffdf6;color:#2c2a26;box-shadow:0 24px 60px rgba(20,40,50,.35)}
.mode-dialog::backdrop,.patch-dialog::backdrop{background:rgba(12,32,40,.55)}
.mode-dialog header,.patch-dialog header{padding:18px 20px 8px;text-align:center}
.mode-dialog h2,.patch-dialog h2{margin:2px 0 4px;font-size:22px}
.mode-dialog header p,.patch-dialog header p{margin:0;font-size:13px;color:#6d7a80}
.mode-choices{display:grid;gap:12px;padding:6px 18px 18px}
.mode-card{display:block;width:100%;text-align:left;border:2px solid #e2ded2;border-radius:16px;
 background:#fff;padding:14px 16px;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}
.mode-card:hover,.mode-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(30,60,70,.14)}
.mode-card[data-mode="ranked"]{border-color:#ffd07a;background:linear-gradient(180deg,#fffaf0,#fff3dc)}
.mode-card[data-mode="classic"].is-active,.mode-card[data-mode="ranked"].is-active{border-color:#37b3a4}
.mode-card b{display:block;font-size:18px;margin-bottom:2px}
.mode-card .mode-tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;
 background:#eef6f5;color:#2f7f76;margin-left:6px;vertical-align:middle}
.mode-card ul{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.65;color:#4b5560}
.mode-card li::marker{color:#37b3a4}
.mode-card li b{display:inline;font-size:inherit}
.mode-foot{padding:0 20px 18px;font-size:12px;color:#77848a;text-align:center}
.patch-list{margin:0;padding:4px 22px 10px 40px;font-size:14px;line-height:1.8}
.patch-list li::marker{color:#f0a12b}
.patch-badge{display:inline-block;background:#ffe6b0;color:#8a5a12;font-size:11px;padding:2px 8px;
 border-radius:999px;margin-left:6px}
.board-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px}
.board-tabs{grid-template-columns:1fr 1fr 1fr}
.range-tabs{display:flex;gap:6px;margin:0 0 10px}
.range-tabs button{flex:1;border:1px solid #dfe6e2;background:#fff;border-radius:10px;padding:6px 8px;
 font-size:12.5px;font-weight:700;color:#5c6a71;cursor:pointer}
.range-tabs button.active{background:#eef8f6;border-color:#37b3a4;color:#1f6b62}
.skin-tabs{display:flex;gap:6px;margin:0 0 10px}
.skin-tabs.hidden{display:none}
.skin-tabs button{flex:1;border:1px solid #dfe6e2;background:#fff;border-radius:10px;padding:6px 8px;
 font-size:12.5px;font-weight:700;color:#5c6a71;cursor:pointer}
.skin-tabs button.active{background:#fff5e6;border-color:#e6a020;color:#8a5a12}
/* 排位榜里并列的两段：萝卜榜 / 老凯榜 */
#leaderboardList .board-title{display:flex;justify-content:space-between;align-items:baseline;
 gap:8px;margin:12px 0 4px;padding-bottom:4px;border-bottom:2px solid #d9e7dd}
#leaderboardList .board-title:first-child{margin-top:2px}
#leaderboardList .board-title b{font-size:14px;color:#1f6b62}
#leaderboardList .board-title small{font-size:11px;color:#7b858a}
#leaderboardList .board-sub{list-style:none;margin:0 0 6px;padding:0}
#leaderboardList .tier-mini{display:inline-flex;align-items:center;font-style:normal;font-size:10px;
 font-weight:700;color:#fff;padding:1px 6px;border-radius:999px;opacity:.92;white-space:nowrap;
 box-shadow:0 0 0 1.5px #fff}
/* 我的数据面板 */
.stats-panel{display:flex;flex-direction:column;gap:10px}
.stats-panel .daily-card{border:2px solid #f0d9a8;background:linear-gradient(180deg,#fffaf0,#fff3dc);
 border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.stats-panel .daily-head{display:flex;justify-content:space-between;align-items:baseline}
.stats-panel .daily-head b{font-size:14px;color:#8a5a12}
.stats-panel .daily-head small{color:#9a8b94;font-size:11px}
.stats-panel .daily-card>div{font-size:13px;font-weight:700;color:#5c4a2a}
.stats-panel .daily-card>small{font-size:11px;color:#8a7a63}
.stats-panel .daily-bar{height:8px;border-radius:99px;background:#efe3cb;overflow:hidden;margin:2px 0}
.stats-panel .daily-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#f0a12b,#ffd280)}
.stats-panel .daily-claim{align-self:flex-start;border:0;border-radius:10px;background:#2f9e8f;color:#fff;
 font-weight:800;padding:7px 14px;cursor:pointer;font:inherit;font-size:13px}
.stats-panel .daily-claim:disabled{background:#cfd8d5;color:#708582;cursor:default}
.stats-panel .daily-done{align-self:flex-start;font-size:12px;font-weight:800;color:#2f9e8f}
.stats-panel .stat-block{border:1px solid #e6e1d4;border-radius:14px;background:#fbfaf4;padding:10px 12px}
.stats-panel .stat-block>b{font-size:13.5px;color:#3d4b52}
.stats-panel .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-top:8px}
.stats-panel .stat-item{display:flex;justify-content:space-between;align-items:baseline;gap:6px;
 border-bottom:1px dashed #e3ded1;padding:3px 0}
.stats-panel .stat-item span{font-size:11.5px;color:#7b858a}
.stats-panel .stat-item strong{font-size:13px;color:#2c3a41;font-variant-numeric:tabular-nums}
.stats-panel .stat-item{display:grid;grid-template-columns:auto 1fr auto;gap:6px}
.stats-panel .stat-rank{font-style:normal;font-size:10.5px;font-weight:800;color:#7b858a;
 background:#eef0ee;border-radius:999px;padding:1px 7px;white-space:nowrap}
.stats-panel .stat-rank.stat-top{background:#ffe9b8;color:#8a5a12}
/* 综合名次卡 */
.stats-panel .overall-card{border:2px solid #cfe0dd;background:linear-gradient(180deg,#f4fbfa,#eaf5f3);
 border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:5px}
.stats-panel .overall-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.stats-panel .overall-head b{font-size:15px;color:#1f6b62}
.stats-panel .overall-head em{font-style:normal;font-size:12px;font-weight:800;color:#2f9e8f;
 background:#fff;border-radius:999px;padding:2px 9px}
.stats-panel .overall-top{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:11.5px;color:#5c6a71}
.stats-panel .overall-top em{font-style:normal;font-weight:700;color:#3d4b52}
.stats-panel .overall-top em.is-me,.stats-panel .top-list em.is-me{color:#c07a12}
.stats-panel .overall-top em.top3{color:#1f6b62}
.stats-panel .top-list em.top3{color:#1f6b62;font-weight:800}
.stats-panel .overall-top em.top3.is-me,.stats-panel .top-list em.top3.is-me{color:#c07a12}
.stats-panel .overall-card>small{font-size:10.5px;color:#7b858a;line-height:1.5}
/* 每项前两名 */
.stats-panel .top-list{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px dashed #e3ded1}
.stats-panel .top-list li{display:flex;gap:8px;align-items:baseline;padding:2px 0;font-size:11.5px}
.stats-panel .top-list li>span{flex-shrink:0;color:#7b858a;min-width:52px}
.stats-panel .top-list strong{display:flex;gap:10px;flex-wrap:wrap;font-weight:700;color:#3d4b52}
.stats-panel .top-list em{font-style:normal}
/* 更新公告（新版更长，可滚动）＋充值弹窗 */
.patch-dialog .patch-body{max-height:56dvh;overflow:auto;padding:4px 20px 8px}
.patch-dialog .patch-hero{background:linear-gradient(180deg,#fff8e6,#ffefc9);border:2px solid #f0d9a8;
 border-radius:14px;padding:10px 14px;margin-bottom:12px}
.patch-dialog .patch-hero h3{margin:0 0 6px;font-size:15px;color:#a5620d}
.patch-dialog .patch-hero ol{margin:0;padding-left:20px;font-size:13px;line-height:1.75;color:#5c4a2a}
.patch-dialog .patch-hero li::marker{color:#e6a020;font-weight:900}
.patch-dialog .patch-tip{margin:8px 0 0;font-size:12px;color:#8a5a12;font-weight:700}
.patch-dialog section>h3{margin:0 0 6px;font-size:14px;color:#3d4b52}
.patch-dialog .patch-list{margin:0;padding-left:20px;font-size:12.5px;line-height:1.75}
.topup-dialog{max-width:min(620px,94vw);width:min(620px,94vw)}
.topup-body{display:flex;gap:16px;align-items:center;padding:6px 20px 10px}
.topup-qr{width:min(200px,42vw);height:auto;border-radius:12px;border:2px solid #eee;background:#fff}
.topup-copy{flex:1;min-width:0}
.topup-warn{margin:0;font-size:14px;font-weight:700;color:#3d4b52;line-height:1.6}
.topup-no{margin:14px 0 0;font-size:38px;font-weight:900;color:#e02424;line-height:1.1;
 letter-spacing:.08em;text-shadow:0 2px 0 #ffd7d7}
@media (max-width:520px){
 .topup-body{flex-direction:column;align-items:stretch}
 .topup-qr{align-self:center;width:min(240px,70vw)}
 .topup-no{font-size:34px;text-align:center}
}
.stats-panel .map-best{list-style:none;margin:8px 0 0;padding:0}
.stats-panel .map-best li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;
 border-bottom:1px dashed #e3ded1;font-size:12.5px}
.stats-panel .map-best li strong{color:#2c3a41;font-variant-numeric:tabular-nums}
.stats-panel .ach-grid{display:grid;gap:6px;margin-top:8px}
.stats-panel .ach-item{border-radius:11px;padding:7px 10px;background:#eef0ee;opacity:.62;
 display:grid;grid-template-columns:1fr auto;gap:1px 8px;align-items:baseline}
.stats-panel .ach-item b{font-size:12.5px;color:#6d7a80;grid-column:1/2}
.stats-panel .ach-item small{font-size:11px;color:#8a949a;grid-column:1/2}
.stats-panel .ach-item em{font-style:normal;font-size:10.5px;font-weight:800;grid-row:1/3;
 grid-column:2/3;align-self:center;color:#9aa6ad}
.stats-panel .ach-item.owned{background:linear-gradient(180deg,#fff6e0,#ffe9b8);opacity:1;
 box-shadow:inset 0 0 0 2px #f3d79a}
.stats-panel .ach-item.owned b{color:#8a5a12}
.stats-panel .ach-item.owned em{color:#c07a12}
.stats-panel .season-block{border-color:#cfe0dd;background:#f2f8f7}
.stats-panel .season-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.stats-panel .season-head b{font-size:13.5px;color:#1f6b62}
.stats-panel .season-head small{font-size:10.5px;color:#7b858a}
.stats-panel .season-block>small{display:block;margin-top:4px;font-size:11px;color:#77848a;line-height:1.5}
.stats-panel .season-empty{color:#9aa6ad}
.stats-panel .season-titles{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.season-chip{display:inline-block;font-size:11px;font-weight:800;color:#fff;padding:3px 9px;
 border-radius:999px;box-shadow:0 0 0 2px #fff,0 2px 5px rgba(20,50,60,.18);white-space:nowrap}
.season-title-chip{background:#e8f4f2;color:#1f6b62}
.board-tabs button{border:2px solid #e2ded2;background:#fff;border-radius:14px;padding:9px 8px;
 font-size:15px;font-weight:600;color:#4b5560;cursor:pointer}
.board-tabs button.active{border-color:#37b3a4;background:#eef8f6;color:#1f6b62}
.board-tabs small{display:block;font-size:11px;font-weight:400;color:#7d8b91;margin-top:2px}
.my-rank-card{border:1px solid #e6e1d4;border-radius:16px;padding:12px 14px;margin:0 0 12px;background:#fbfaf4}
.my-rank-card .rc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.my-rank-card .rc-label{font-size:20px;font-weight:800}
.my-rank-card .rc-r{font-size:13px;color:#6d7a80}
.my-rank-card .rc-track{height:8px;border-radius:99px;background:#e8e4d8;overflow:hidden;margin-top:10px}
.my-rank-card .rc-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#37b3a4,#7fd6c4)}
.my-rank-card .rc-tip{font-size:12px;color:#77848a;margin-top:6px}
.my-rank-card .rc-head{font-size:12.5px;font-weight:800;color:#3d4b52;margin-bottom:6px}
.my-rank-card .rc-row{padding:6px 0}
.my-rank-card .rc-row + .rc-row{border-top:1px dashed #e3ded1}
.tier-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
 padding:2px 9px;border-radius:999px;color:#fff;white-space:nowrap}
/* 排位榜里的段位徽章：比 tier-chip 大一档，带白边和阴影，扫一眼就能认出 */
.tier-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:11px;
 color:#fff;white-space:nowrap;box-shadow:0 0 0 2px #fff,0 2px 6px rgba(20,50,60,.22);
 text-shadow:0 1px 1px rgba(0,0,0,.28)}
.tier-badge i{font-style:normal;font-size:10px;opacity:.9}
.tier-badge b{font-size:13.5px;font-weight:900;letter-spacing:.02em}
#leaderboardList .board-row{padding-left:9px;border-radius:8px}
#leaderboardList .board-who{align-items:center}
.title-chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;
 background:#fff0cf;color:#8a5a12;margin-left:5px;font-weight:700}
#leaderboardList .board-who{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
#leaderboardList .board-who i{font-style:normal;font-weight:700}
#leaderboardList .board-map{font-size:11px;color:#8a949a}
.rank-hud{position:fixed;left:14px;bottom:118px;z-index:6;background:rgba(20,42,50,.72);color:#fff;
 font-size:12px;padding:6px 11px;border-radius:999px;letter-spacing:.02em;pointer-events:none;
 backdrop-filter:blur(4px)}
.rank-hud b{color:#ffd980}
.rank-result{margin:10px 0 2px;padding:12px 14px;border-radius:16px;background:#fbfaf4;border:1px solid #e6e1d4;text-align:left}
.rank-result .rr-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.rank-result .rr-delta{font-size:26px;font-weight:900;line-height:1}
.rank-result .rr-delta.up{color:#1f9d8a}
.rank-result .rr-delta.down{color:#e05555}
.rank-result .rr-track{height:8px;border-radius:99px;background:#e8e4d8;overflow:hidden;margin:10px 0 6px}
.rank-result .rr-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#37b3a4,#7fd6c4)}
.rank-result .rr-note{font-size:12px;color:#77848a}
.rank-result .rr-title{margin-top:8px;font-size:13px;font-weight:800;color:#c07a12}
/* 排位结算明细：距离 / 金币 / 车顶 / 零失误 各得多少分 */
.rank-result .rr-parts{list-style:none;margin:9px 0 0;padding:0;display:grid;gap:2px}
.rank-result .rr-parts li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;
 padding:4px 6px;border-radius:8px;background:#f4f1e7}
.rank-result .rr-parts li span{font-size:12.5px;font-weight:700;color:#3d4b52}
.rank-result .rr-parts li small{font-size:11px;color:#7b858a}
.rank-result .rr-parts li b{font-size:13px;font-variant-numeric:tabular-nums;color:#1f9d8a}
.rank-result .rr-ms-list li{background:#fff4dd}
.rank-result .rr-ms-list li b{color:#c07a12}
.rank-result .rr-deduct-list li{background:#fdeeec}
.rank-result .rr-deduct-list li b{color:#e05555}
.rank-result .rr-parts li.rr-neg{background:#fdeeec}
.rank-result .rr-parts li.rr-neg b{color:#e05555}
.rank-result .rr-total{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;
 margin-top:6px;padding:6px 6px 4px;border-top:2px dashed #dcd6c4}
.rank-result .rr-total span{font-size:12.5px;font-weight:800;color:#3d4b52}
.rank-result .rr-total small{font-size:11px;color:#7b858a}
.rank-result .rr-total b{font-size:15px;font-weight:900;color:#2c3a41;font-variant-numeric:tabular-nums}
/* 首页段位徽章：固定在顶部、与「今日冒险」同一行放在它右侧。
   放在标题块下面会压到车站里的人物，所以彻底移出标题块（#menu 的直接子元素）。 */
.home-rank{position:absolute;top:8.7%;right:2.2%;left:auto;transform:none;margin:0;
 display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px;
 max-width:26%;padding:5px 8px;line-height:1.15;background:rgba(255,255,255,.95);
 border-radius:14px;box-shadow:0 3px 10px rgba(20,50,60,.2),inset 0 0 0 2px #fff;
 white-space:nowrap;overflow:hidden;z-index:5}
.home-rank .tier-chip{font-size:10.5px;padding:2px 8px}
.home-rank .tier-chip.is-empty{opacity:.85}
/* 左上角的「充值」入口：就两个字，红底白字 */
.topup-entry{position:absolute;top:9.2%;left:2.2%;z-index:6;display:inline-block;
 background:#e02424;color:#fff;border:3px solid #fff;border-radius:16px;padding:8px 22px;
 font-size:19px;font-weight:900;letter-spacing:.16em;line-height:1.2;cursor:pointer;
 box-shadow:0 4px 12px rgba(180,20,20,.4),inset 0 -3px rgba(0,0,0,.15);font-family:inherit}
.topup-entry:active{transform:translateY(1px)}
/* 玩法与加分说明：车站里只放一个按钮（占原来「地图条」那一行，高度不变），细节进弹窗 */
.rules-pill{box-sizing:border-box;width:100%;min-height:4.3dvh;display:flex;align-items:center;
 justify-content:center;gap:6px;padding:3px 10px;border-radius:12px;
 background:rgba(255,255,255,.94);border:2px solid #fff;border-bottom:3px solid #a9c6c4;
 color:#3d4b52;font-size:11px;font-weight:800;cursor:pointer;
 box-shadow:0 2px 6px rgba(20,50,60,.16)}
.rules-pill[data-mode="ranked"]{background:rgba(255,249,238,.96);border-bottom-color:#e0b877}
.rules-pill i{width:14px;height:14px;opacity:.6}
.rules-pill b{font-size:11px;font-weight:900;color:#1f6b62;white-space:nowrap}
.rules-pill[data-mode="ranked"] b{color:#a5620d}
.rules-pill span{color:#5c6a71;font-weight:600}
.rules-pill .rules-chev{color:#8a949a;font-weight:400}

/* 说明弹窗 */
.rules-dialog{border:none;border-radius:22px;padding:0;max-width:min(760px,94vw);width:min(760px,94vw);
 max-height:88dvh;background:#fffdf6;color:#2c2a26;box-shadow:0 24px 60px rgba(20,40,50,.35)}
.rules-dialog::backdrop{background:rgba(12,32,40,.55)}
.rules-dialog header{position:sticky;top:0;background:#388d83;color:#fff;padding:14px 20px}
.rules-dialog h2{margin:0;font-size:20px}
.rules-dialog header p{margin:2px 34px 0 0;font-size:12px;opacity:.9}
.rules-dialog #closeRules{position:absolute;right:12px;top:10px;background:transparent;border:0;
 color:#fff;font-size:26px;cursor:pointer}
.rules-body{padding:14px 20px 20px;overflow:auto;max-height:calc(88dvh - 70px)}
.rules-body h3{margin:16px 0 8px;font-size:15px;color:#1f6b62}
.rules-body h3:first-child{margin-top:0}
.rules-list{margin:0;padding-left:18px;font-size:13px;line-height:1.7;color:#3d4b52}
.rules-list b{color:#a5620d}
.rules-note{font-size:12px;color:#6d7a80;line-height:1.6;margin:8px 0 0}
.rules-self{margin-top:12px;padding:9px 12px;border-radius:10px;background:#eef8f6;font-size:13px;
 font-weight:700;color:#1f6b62}
.rules-modes{display:grid;grid-template-columns:auto 1fr 1fr;gap:1px;background:#e6e1d4;
 border:1px solid #e6e1d4;border-radius:10px;overflow:hidden;font-size:12px}
.rules-modes div{background:#fff;padding:7px 9px;line-height:1.5}
.rules-modes div.head{background:#f4f1e7;font-weight:800;color:#3d4b52}
.rules-modes div.ranked{background:#fffaf0}
/* 段位阶梯：一行一档（段位名 + 需要多少分），手机上也不会错行 */
.rules-lead{margin:0 0 8px;font-size:12.5px;line-height:1.65;color:#4b5560}
.rules-lead b{color:#a5620d}
.rules-detail{color:#8a949a;font-size:11.5px}
.rules-ladder{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rules-ladder li{display:flex;gap:10px;align-items:flex-start;padding:8px 11px;border-radius:10px;
 background:#fff;border:1px solid #e6e1d4}
.rules-ladder li:nth-child(n+6){background:#fffaf0;border-color:#f0dfba}
.rules-ladder .rl-no{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#eef8f6;
 color:#1f6b62;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center}
.rules-ladder .rl-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.rules-ladder .rl-body b{font-size:13.5px;color:#2c3a41;line-height:1.35}
.rules-ladder .rl-body b i{color:#b9c2c6;font-style:normal;padding:0 2px}
.rules-ladder .rl-body small{font-size:11.5px;line-height:1.45;color:#6d7a80}
@media (max-width:520px){
 .rules-modes{grid-template-columns:auto 1fr 1fr;font-size:11px}
 .rules-ladder .rl-body b{font-size:12.5px}
 .rules-ladder .rl-body small{font-size:11px}
}
.mode-ribbon small{display:block;font-size:11px;opacity:.85}
.rank-mode-badge{display:inline-block;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;
 background:#ffd980;color:#6b4508;margin-right:6px}
@media (max-width:520px){
 .rank-hud{bottom:104px;font-size:11px}
 .mode-card ul{font-size:12px}
}
