/* ============================================================================
   tokyo.axiom.yoga — ranking page (T261020-07 追加 19)
   The leaderboard table is ~422px wide at a 390px viewport. Because <body> carries
   overflow-x:hidden, that did not produce a scrollbar — it silently pushed the whole
   document to 422px, which stretched the fixed header and clipped every paragraph on
   the page. Let the table scroll inside its own box instead.
   ========================================================================== */

/* a Chinese proper noun kept inside an otherwise localised Hall-of-Fame sentence */
.cn-tag{
  display:inline-block; margin-left:6px; padding:1px 5px; border-radius:2px;
  font-size:8.5px; letter-spacing:.14em; vertical-align:1px;
  border:1px solid rgba(201,162,74,.45); color:#c9a24a;
}

/* 分项 tab + 总览仪表盘（T261020-07） */
.rk-tabs{
  display:flex; flex-wrap:wrap; gap:8px; max-width:var(--maxw);
  margin:0 auto; padding:0 var(--pad) clamp(18px,3vh,28px);
}
.rk-tabs a{
  padding:9px 14px; border:1px solid var(--line); border-radius:2px;
  font-size:11.5px; letter-spacing:.12em; color:var(--bone-dim);
  transition:color .3s, border-color .3s, background .3s;
}
.rk-tabs a:hover{ color:var(--bone); border-color:rgba(223,231,224,.45); }
.rk-tabs a[aria-current="page"]{ color:var(--ink); background:var(--bone); border-color:var(--bone); }

.rk-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,2vw,20px); margin:0 0 clamp(20px,3vh,32px); }
.rk-card{
  position:relative; display:block; padding:clamp(16px,2.2vw,22px);
  border:1px solid var(--line); border-radius:3px; text-decoration:none;
  background:linear-gradient(180deg, rgba(223,231,224,.04), rgba(223,231,224,.01));
  transition:transform .35s cubic-bezier(.22,1,.36,1), border-color .35s;
}
.rk-card:hover{ transform:translate3d(0,-3px,0); border-color:rgba(223,231,224,.34); }
.rk-rank{ display:block; font-size:9.5px; letter-spacing:.24em; color:var(--vermilion,#e0231c); margin-bottom:8px; }
.rk-card b{ display:block; font-size:17px; font-weight:400; color:var(--bone); letter-spacing:.04em; }
.rk-meta{ display:block; margin-top:6px; font-size:11px; color:var(--muted); }

.rk-charts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2.4vw,26px); }
.rk-chart{ border:1px solid var(--line); border-radius:3px; padding:clamp(12px,1.8vw,18px); background:rgba(223,231,224,.012); }
.rk-chart-t{ margin:0 0 10px; font-size:11px; letter-spacing:.16em; color:var(--muted); text-transform:uppercase; }
.rk-cv{ position:relative; height:clamp(160px,22vh,220px); }

@media (max-width:760px){
  .rk-cards{ grid-template-columns:1fr; }
  .rk-charts{ grid-template-columns:1fr; }
}

/* 表格列对齐：.rt 默认 auto 布局，th 的小字与 td 的数字宽度不同 ⇒ 表头与表体错位。
   这里固定布局并用 colgroup 定宽，列宽只由样式决定，不再被内容拉扯。 */
.rk-tbl{ table-layout:fixed; }
.rk-tbl col.c-rank{ width:64px; }
.rk-tbl th, .rk-tbl td{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ============ 荣耀殿堂 2.0 ============ */
.hof2{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.8vw,20px);
}
.hof2-c{
  position:relative; display:flex; flex-direction:column; justify-content:space-between;
  gap:14px; padding:clamp(18px,2.2vw,26px);
  border:1px solid var(--line); border-radius:3px;
  background:linear-gradient(180deg, rgba(223,231,224,.035), rgba(223,231,224,.008));
  transition:transform .4s cubic-bezier(.22,1,.36,1), border-color .4s, background .4s;
}
.hof2-c:hover{ transform:translate3d(0,-4px,0); border-color:rgba(223,231,224,.32); }
/* 稀有度：左沿一道竖线，1–5 级由浅到朱红 */
.hof2-c::before{
  content:''; position:absolute; left:0; top:14%; bottom:14%; width:2px; border-radius:2px;
  background:rgba(223,231,224,.20);
}
.hof2-c[data-r="3"]::before{ background:rgba(201,162,74,.55); }
.hof2-c[data-r="4"]::before{ background:rgba(201,162,74,.85); }
.hof2-c[data-r="5"]::before{ background:var(--vermilion); }
/* 首条：整行大卡，字更大、有朱红晕 */
.hof2-c.is-feat{
  grid-column:1 / -1; padding:clamp(24px,3vw,38px);
  background:
    radial-gradient(70% 120% at 100% 0%, rgba(224,35,28,.13), transparent 62%),
    linear-gradient(180deg, rgba(223,231,224,.05), rgba(223,231,224,.01));
}
.hof2-c header{ display:flex; align-items:center; gap:10px; }
.hof2-cat{
  font-size:9px; letter-spacing:.2em; text-transform:uppercase;
  padding:4px 9px; border:1px solid rgba(223,231,224,.22); border-radius:2px; color:var(--bone-dim);
}
.hof2-owner{ font-size:10px; letter-spacing:.14em; color:var(--muted); }
.hof2-tx{ margin:0; font-size:14px; line-height:1.75; color:var(--bone); }
.hof2-c.is-feat .hof2-tx{ font-size:clamp(17px,1.6vw,22px); line-height:1.6; letter-spacing:.01em; }
.hof2-c footer{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hof2-date{ font-size:10.5px; letter-spacing:.12em; color:var(--muted); font-variant-numeric:tabular-nums; }
.hof2-rar{ display:flex; gap:3px; }
.hof2-rar i{ width:4px; height:4px; border-radius:50%; background:rgba(223,231,224,.35); display:block; }
.hof2-c[data-r="3"] .hof2-rar i, .hof2-c[data-r="4"] .hof2-rar i{ background:rgba(201,162,74,.8); }
.hof2-c[data-r="5"] .hof2-rar i{ background:var(--vermilion); }
@media (max-width:900px){ .hof2{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .hof2{ grid-template-columns:1fr; } }

/* 分页（荣耀殿堂） */
.rk-pg{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:clamp(20px,3vh,32px); }
.rk-pg a, .rk-pg > span{
  min-width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 10px; border:1px solid var(--line); border-radius:2px;
  font-size:11.5px; letter-spacing:.1em; color:var(--bone-dim); text-decoration:none;
  transition:color .3s, border-color .3s, background .3s;
}
.rk-pg a:hover{ color:var(--bone); border-color:rgba(223,231,224,.45); }
.rk-pg > span.is-on{ color:var(--ink); background:var(--bone); border-color:var(--bone); }
.rk-pg > span.is-off{ opacity:.3; }

/* ============ 榜单折叠（v2.5） ==========================================
   默认只露前 50 行；其余行带 .is-fold，点一次按钮展开到全部，再点收起。
   按钮由 PHP 渲染（label 走 i18n 的 data-open / data-close），JS 只切类。
   无 JS 时停在 50 行 —— 本站导航/光标/图表同样依赖 JS，口径一致。 */
.rk-grid.rk-folded .rk-grid-r.is-fold{ display:none; }

.rk-fold{ display:flex; justify-content:center; margin:clamp(14px,2.4vh,24px) 0 0; }
.rk-fold-btn{
  padding:10px 22px; border:1px solid var(--line); border-radius:2px; background:none;
  font:inherit; font-size:11.5px; letter-spacing:.14em; color:var(--bone-dim);
  cursor:pointer; transition:color .3s, border-color .3s, background .3s;
}
.rk-fold-btn:hover{ color:var(--bone); border-color:rgba(223,231,224,.45); }
.rk-fold-btn:focus-visible{ outline:1px solid var(--bone); outline-offset:3px; }
.rk-fold-btn[aria-expanded="true"]{ color:var(--ink); background:var(--bone); border-color:var(--bone); }

/* 金币榜：数值用等宽数字 + 金铜色，和「金铢」区分开（两套货币，颜色也不重样） */
.rk-grid .coin-v{ font-variant-numeric:tabular-nums; letter-spacing:.01em; color:var(--gold); }

/* 总览 5 图时（v2.5.1）：最后一张通栏，避免 2+2+1 的孤行 */
.rk-charts > .rk-chart:last-child:nth-child(odd){ grid-column:1 / -1; }
@media (max-width:760px){ .rk-charts > .rk-chart:last-child:nth-child(odd){ grid-column:auto; } }

/* ---- v3.1 我的排名：一行提示 + 我那一行的左侧朱红标记 ---- */
.rk-me{
  display:flex; align-items:baseline; gap:10px; max-width:var(--maxw);
  margin:0 auto clamp(10px,1.6vh,16px); padding:0 var(--pad);
  font-size:12px; color:var(--bone-dim);
}
.rk-me-k{ font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.rk-me b{ font-weight:400; color:var(--gold); font-variant-numeric:tabular-nums; }
.rk-me b.is-out{ color:var(--muted); }
.rk-grid-r.is-me{ box-shadow:inset 2px 0 0 var(--vermilion); background:rgba(224,35,28,.045); }
.rk-grid-r.is-me .nm{ color:var(--bone); }
.rk-grid-r.is-me .num{ color:var(--vermilion); padding-left:6px; }   /* 让序号躲开左沿那条 2px 朱红 */
