/* ============================================================
 * ⚔️ ĐẤU XẾP HẠNG 24G — rank.css  ·  PREMIUM GAME UI (S55, 24/08)
 * ============================================================
 * Chỉ chứa class có tiền tố .g24-rank-* / .rk-* / .g24-lb* → KHÔNG
 * đè lên style cũ của g24.css. Nạp SAU g24.css trong index.html.
 * Mọi màu lấy từ tokens.css (đỏ #E60012 + vàng kim + trắng kem).
 *
 * NGUYÊN TẮC (anh Tiền chốt 24/08):
 *   · Cảm giác "app game cao cấp", KHÔNG phải trang web vài nút đỏ.
 *   · Bo góc lớn · viền tinh tế · bóng nhiều lớp · highlight phản chiếu.
 *   · Animation chỉ chạy trên transform/opacity (mượt trên điện thoại),
 *     và TẮT SẠCH khi máy bật "giảm chuyển động".
 *   · Vùng chạm ≥ 48px. Không tràn ngang. Không bị bottom nav che.
 * ============================================================ */

/* ---------------- CỔNG VÀO Ở SẢNH (hub) ---------------- */
.g24-rank-banner{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:14px;
  margin:18px 0 4px;
  padding:15px 16px;
  border-radius:var(--game-radius-lg);
  background:
    radial-gradient(120% 140% at 88% 8%, rgba(255,214,102,.34) 0%, rgba(255,214,102,0) 55%),
    linear-gradient(110deg, #FF2A3C 0%, var(--g24-red) 34%, var(--g24-red-dark) 70%, var(--g24-red-deep) 100%);
  color:var(--g24-white);
  text-decoration:none;
  box-shadow:var(--game-shadow-deep), inset 0 1px 0 rgba(255,255,255,.26);
  border:2px solid rgba(255,214,102,.42);
  transition:transform var(--game-transition-fast), filter var(--game-transition-fast);
}
.g24-rank-banner::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg, transparent 38%, rgba(255,255,255,.30) 48%, transparent 58%);
  transform:translate3d(-140%,0,0);
  animation:rkShine 5.5s ease-in-out infinite;
}
.g24-rank-banner:hover{transform:translateY(-2px);filter:brightness(1.05)}
.g24-rank-banner:active{transform:translateY(1px) scale(.995)}
.g24-rank-banner__ic{font-size:30px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.34))}
.g24-rank-banner__txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.g24-rank-banner__txt b{
  font-family:var(--game-font-display);
  font-size:18px;font-weight:800;letter-spacing:.5px;
}
.g24-rank-banner__txt span{
  font-size:12.5px;opacity:.9;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.g24-rank-banner__go{font-size:26px;font-weight:800;color:var(--g24-gold);line-height:1}

/* ============================================================
 * KHUNG TRANG
 * ============================================================ */
.rk-page{
  display:flex;flex-direction:column;gap:14px;
  /* chặn tràn ngang tuyệt đối trên iPhone hẹp */
  max-width:100%;
}
.rk-page *{min-width:0}

/* nút quay lại — bản premium riêng cho màn này */
.rk-back{
  align-self:flex-start;
  display:inline-flex;align-items:center;gap:6px;
  min-height:40px;padding:8px 16px 8px 12px;
  border-radius:var(--game-radius-pill);
  background:linear-gradient(180deg,#FFFFFF,#FFF3E2);
  border:2px solid rgba(230,0,18,.16);
  box-shadow:var(--game-shadow-soft), inset 0 1px 0 #fff;
  color:var(--g24-red-dark);
  font-family:var(--game-font-ui);font-size:13.5px;font-weight:800;
  text-decoration:none;-webkit-tap-highlight-color:transparent;
  transition:transform var(--game-transition-fast), box-shadow var(--game-transition-fast);
}
.rk-back:active{transform:scale(.96)}

/* ---------------- TIÊU ĐỀ MÀN (màn kết quả / hàng chờ vẫn dùng) --------- */
.g24-rank-h1{
  font-family:var(--game-font-display);
  font-size:clamp(23px, 6vw, 32px);
  font-weight:800;letter-spacing:.5px;
  margin:8px 0 12px;
  color:var(--g24-red);
  text-shadow:0 2px 0 rgba(255,255,255,.92), 0 6px 18px rgba(230,0,18,.20);
}
.g24-rank-body{display:flex;flex-direction:column;gap:14px}

/* ============================================================
 * 1 · HERO "ĐẤU XẾP HẠNG"
 * ============================================================ */
.rk-hero{
  position:relative;overflow:hidden;isolation:isolate;
  border-radius:var(--game-radius-xl);
  padding:18px 16px 0;
  background:
    radial-gradient(90% 120% at 82% 0%, rgba(255,213,77,.42) 0%, rgba(255,213,77,0) 58%),
    radial-gradient(70% 100% at 6% 100%, rgba(255,90,90,.40) 0%, rgba(255,90,90,0) 60%),
    linear-gradient(158deg, #FF3244 0%, var(--g24-red) 32%, var(--g24-red-dark) 68%, #6E0A16 100%);
  border:2px solid rgba(255,214,102,.46);
  box-shadow:
    0 18px 38px rgba(122,15,28,.34),
    0 2px 0 rgba(255,255,255,.16) inset,
    0 -22px 44px rgba(0,0,0,.20) inset;
  color:var(--g24-white);
}
/* hạt sáng lấp lánh — vẽ bằng gradient, 0 phần tử DOM, 0 ảnh */
.rk-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.75;
  background:
    radial-gradient(2.5px 2.5px at 12% 26%, #FFE9A8 40%, transparent 42%),
    radial-gradient(2px 2px   at 30% 68%, #FFFFFF 40%, transparent 42%),
    radial-gradient(3px 3px   at 58% 16%, #FFD54D 40%, transparent 42%),
    radial-gradient(2px 2px   at 74% 78%, #FFFFFF 40%, transparent 42%),
    radial-gradient(2.5px 2.5px at 90% 40%, #FFE9A8 40%, transparent 42%),
    radial-gradient(2px 2px   at 44% 90%, #FFD54D 40%, transparent 42%);
  animation:rkTwinkle 3.6s ease-in-out infinite;
}
/* dải sáng chạy ngang */
.rk-hero::after{
  content:'';position:absolute;inset:-40% -10%;pointer-events:none;z-index:1;
  background:linear-gradient(102deg, transparent 40%, rgba(255,255,255,.26) 50%, transparent 60%);
  transform:translate3d(-120%,0,0);
  animation:rkShine 6s ease-in-out infinite;
}
.rk-hero__top{position:relative;z-index:2;display:flex;align-items:center;gap:12px;min-height:96px}
.rk-hero__ic{
  flex:0 0 auto;width:50px;height:50px;border-radius:50%;
  display:grid;place-items:center;
  background:radial-gradient(circle at 32% 28%, #FFF6D6, #FFD54D 45%, #D79A00 100%);
  box-shadow:0 6px 16px rgba(0,0,0,.30), inset 0 -3px 8px rgba(150,100,0,.45), inset 0 2px 3px #FFF9E3;
  animation:rkFloat 3.4s ease-in-out infinite;
}
.rk-hero__ic .g24-icon{stroke:#8F0011;fill:none;stroke-width:2.1;filter:drop-shadow(0 1px 0 rgba(255,255,255,.6))}
.rk-hero__tx{flex:1;min-width:0}
.rk-hero__ttl{
  font-family:var(--game-font-display);
  font-size:clamp(22px, 6.2vw, 32px);
  /* line-height PHẢI ≥1.15: chữ tô gradient bằng background-clip:text bị
     CẮT CỤT dấu tiếng Việt (Ấ, Ế) nếu dòng quá sát (QA 24/08). */
  font-weight:800;line-height:1.16;letter-spacing:.5px;margin:0;padding-top:2px;
  background:linear-gradient(180deg,#FFFDF2 0%,#FFE9A8 42%,#F5C518 72%,#D79A00 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 0 rgba(122,15,28,.55)) drop-shadow(0 4px 14px rgba(245,197,24,.45));
}
.rk-hero__sub{
  margin:5px 0 0;font-size:13px;font-weight:600;line-height:1.35;
  color:rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.rk-hero__ky{
  /* neo theo MÉP TRÊN: dải huy hiệu bậc nằm dưới đáy hero, nếu neo bottom
     thì linh vật đè lên chữ "32T/26B" (QA 24/08 đã dính). */
  position:absolute;right:-4px;top:6px;z-index:2;
  width:94px;height:auto;pointer-events:none;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.38));
  animation:rkIdle 4.2s ease-in-out infinite;
}
.rk-hero__top{padding-right:86px}

/* dải huy hiệu bậc nằm TRONG hero (gộp, đỡ 1 thẻ đỏ nữa) */
.rk-hero .g24-rank-crest{margin-top:14px}

/* ---------------- HUY HIỆU BẬC ---------------- */
.g24-rank-crest{
  position:relative;z-index:2;
  text-align:center;
  padding:13px 14px 14px;
  border-radius:var(--game-radius-lg) var(--game-radius-lg) 20px 20px;
  background:linear-gradient(180deg, rgba(0,0,0,.26), rgba(0,0,0,.34));
  border:1px solid rgba(255,255,255,.20);
  border-bottom:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
  color:var(--g24-white);
}
/* khi đứng MỘT MÌNH (chưa đăng nhập / lỗi) thì tự có thân đỏ */
.g24-rank-crest.is-off,
.g24-rank-crest.is-placement{
  border-radius:var(--game-radius-lg);
  border:2px solid rgba(255,214,102,.40);
  background:linear-gradient(160deg, var(--g24-red) 0%, var(--g24-red-dark) 55%, var(--g24-red-deep) 100%);
  box-shadow:var(--game-shadow-deep), inset 0 1px 0 rgba(255,255,255,.22);
}
.g24-rank-tier{
  font-family:var(--game-font-display);
  font-size:clamp(18px, 4.8vw, 24px);font-weight:800;letter-spacing:.4px;
  text-shadow:0 2px 6px rgba(0,0,0,.35);
}
.g24-rank-stars{
  margin-top:2px;font-size:19px;letter-spacing:3px;color:var(--g24-gold);
  text-shadow:var(--game-glow-gold);
}
.g24-rank-sub{margin-top:5px;font-size:12.5px;line-height:1.45;opacity:.92}
.g24-rank-crest[data-tier="silver"]  {background:linear-gradient(160deg,#9AA6B2,#5B6672)}
.g24-rank-crest[data-tier="gold"]    {background:linear-gradient(160deg,#F5C518,#B98800)}
.g24-rank-crest[data-tier="gold"] .g24-rank-tier,
.g24-rank-crest[data-tier="gold"] .g24-rank-sub{color:var(--g24-ink);text-shadow:none}
.g24-rank-crest[data-tier="platinum"]{background:linear-gradient(160deg,#7FD8D0,#2E7E86)}
.g24-rank-crest[data-tier="diamond"] {background:linear-gradient(160deg,#7FB6FF,#2A4FB0)}
.g24-rank-crest[data-tier="elite"]   {background:linear-gradient(160deg,#B98CFF,#5A2FA8)}
.g24-rank-crest[data-tier="master"]  {background:linear-gradient(160deg,#FF7A59,#B3260E)}
.g24-rank-crest[data-tier="warlord"] {
  background:linear-gradient(160deg,#FFD54D 0%,#E60012 45%,#3A0710 100%);
}

/* vạch tiến trình định hạng */
.g24-rank-vach{
  height:10px;margin:9px auto 0;max-width:260px;
  border-radius:var(--game-radius-pill);
  background:rgba(0,0,0,.30);
  box-shadow:var(--game-shadow-inner);
  overflow:hidden;
}
.g24-rank-vach__day{
  height:100%;border-radius:var(--game-radius-pill);
  background:linear-gradient(90deg,#FFE9A8,var(--g24-gold) 55%,#E0A800);
  box-shadow:0 0 10px rgba(245,197,24,.7);
  transition:width var(--game-transition-normal);
}

/* ============================================================
 * 2 · THẺ "SẼ ĐẤU" — bấm mở bảng chọn game + phạm vi
 * ============================================================ */
.rk-pick{
  display:flex;align-items:center;gap:10px;width:100%;
  min-height:52px;padding:10px 12px;
  border-radius:var(--game-radius-md);
  background:linear-gradient(180deg,#FFFFFF 0%,#FFF6E9 100%);
  border:2px solid var(--g24-gold);
  box-shadow:0 6px 16px rgba(200,155,0,.18), inset 0 1px 0 #fff;
  font-family:var(--game-font-ui);cursor:pointer;text-align:left;
  -webkit-tap-highlight-color:transparent;
  transition:transform var(--game-transition-fast), box-shadow var(--game-transition-fast);
}
.rk-pick:active{transform:scale(.985);box-shadow:0 3px 9px rgba(200,155,0,.24)}
.rk-pick__ic{font-size:21px;line-height:1;flex:0 0 auto}
.rk-pick__tx{
  flex:1;min-width:0;font-size:13.5px;color:var(--g24-muted-2);font-weight:600;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;
}
.rk-pick__tx b{color:var(--g24-red-dark);font-weight:800;font-size:14.5px}
.rk-pick__go{
  flex:0 0 auto;font-size:12px;font-weight:800;color:var(--g24-white);
  background:linear-gradient(180deg,var(--g24-red-light),var(--g24-red) 55%,var(--g24-red-dark));
  padding:7px 12px;border-radius:var(--game-radius-pill);
  box-shadow:0 3px 8px rgba(230,0,18,.32), inset 0 1px 0 rgba(255,255,255,.28);
  white-space:nowrap;
}
/* giữ class cũ để không vỡ mã cũ nếu còn dùng */
.g24-rank-datcho{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;font-size:13.5px}
.g24-rank-datcho__nhan{color:var(--g24-muted-2);font-weight:700}
.g24-rank-datcho__cham{color:var(--g24-gold-deep);font-weight:800}

/* ============================================================
 * 3 · BA THẺ HÀNH ĐỘNG  (ưu tiên số 1)
 * ============================================================ */
.rk-acts{display:flex;flex-direction:column;gap:12px}
.rk-acts__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
/* hai thẻ nhỏ cao bằng nhau, chừa đủ băng giữa cho tranh minh hoạ */
.rk-acts__row .rk-act{min-height:176px}

.rk-act{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;align-items:stretch;
  width:100%;min-height:132px;padding:14px 14px 13px;
  border-radius:var(--game-radius-lg);
  border:2px solid rgba(255,255,255,.30);
  color:var(--g24-white);
  font-family:var(--game-font-display);
  cursor:pointer;text-align:left;text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:transform var(--game-transition-fast), box-shadow var(--game-transition-fast), filter 160ms ease;
}
.rk-act:hover{transform:translateY(-3px) scale(1.02)}
.rk-act:active{transform:translateY(1px) scale(.985)}
.rk-act[disabled]{filter:grayscale(.72) brightness(.86);cursor:not-allowed;transform:none}
.rk-act__ttl{
  position:relative;z-index:3;
  font-size:19px;font-weight:800;letter-spacing:.4px;line-height:1.08;
  text-shadow:0 2px 4px rgba(0,0,0,.36);
}
.rk-act__sub{
  position:relative;z-index:3;margin-top:3px;
  font-family:var(--game-font-ui);
  font-size:12px;font-weight:600;line-height:1.3;color:rgba(255,255,255,.92);
  text-shadow:0 1px 3px rgba(0,0,0,.34);
}
.rk-act__cta{
  position:relative;z-index:3;margin-top:auto;align-self:stretch;
  display:flex;align-items:center;justify-content:center;gap:6px;
  min-height:42px;padding:0 12px;
  border-radius:var(--game-radius-pill);
  font-size:15px;font-weight:800;letter-spacing:.6px;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFF0CF 100%);
  color:var(--g24-red-dark);
  box-shadow:0 4px 0 rgba(0,0,0,.22), 0 8px 16px rgba(0,0,0,.24), inset 0 1px 0 #fff;
  overflow:hidden;
}
.rk-act__cta::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(102deg,transparent 42%,rgba(255,255,255,.85) 50%,transparent 58%);
  transform:translate3d(-130%,0,0);
  animation:rkShine 3.2s ease-in-out infinite;
}
.rk-act:active .rk-act__cta{box-shadow:0 1px 0 rgba(0,0,0,.22), inset 0 1px 0 #fff}
/* tranh minh hoạ trong thẻ */
.rk-act__art{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.rk-act__art img{
  position:absolute;bottom:-6px;height:82px;width:auto;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.36));
}
.rk-act__glow{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(70% 90% at 78% 12%, rgba(255,255,255,.34) 0%, transparent 60%);
}

/* 🔴 ĐẤU XẾP HẠNG — CTA quan trọng nhất, to nhất, đỏ + vàng kim */
.rk-act--ranked{
  min-height:158px;padding-right:118px;
  border-color:rgba(255,214,102,.62);
  background:
    radial-gradient(95% 120% at 88% 6%, rgba(255,213,77,.44) 0%, rgba(255,213,77,0) 58%),
    linear-gradient(150deg, #FF3244 0%, var(--g24-red) 34%, var(--g24-red-dark) 72%, #630A14 100%);
  box-shadow:
    0 14px 30px rgba(122,15,28,.38),
    0 0 0 1px rgba(255,214,102,.30),
    0 0 24px rgba(245,197,24,.28),
    inset 0 1px 0 rgba(255,255,255,.26);
  animation:rkGoldPulse 2.6s ease-in-out infinite;
}
.rk-act--ranked .rk-act__ttl{font-size:22px}
.rk-act--ranked .rk-act__cta{
  background:linear-gradient(180deg,#FFF3C4 0%,var(--g24-gold) 52%,#D79A00 100%);
  color:#6E0A16;min-height:46px;font-size:16px;
  box-shadow:0 5px 0 #9A6E00, 0 10px 20px rgba(200,155,0,.42), inset 0 1px 0 #FFFBE8;
}
.rk-act--ranked .rk-act__art img{right:-10px;height:120px}

/* 🔵 ĐẤU VỚI BẠN — sapphire */
.rk-act--friend{
  border-color:rgba(160,220,255,.52);
  background:
    radial-gradient(90% 110% at 78% 8%, rgba(120,220,255,.40) 0%, rgba(120,220,255,0) 60%),
    linear-gradient(155deg, #3C8BFF 0%, #1E63D8 38%, #0F3E9E 74%, #0A2765 100%);
  box-shadow:0 12px 26px rgba(10,39,101,.40), 0 0 20px rgba(60,139,255,.30), inset 0 1px 0 rgba(255,255,255,.28);
}
.rk-act--friend .rk-act__cta{
  background:linear-gradient(180deg,#EAF6FF 0%,#B9E2FF 100%);color:#0A2765;
  box-shadow:0 4px 0 #0A2765, 0 8px 16px rgba(10,39,101,.34), inset 0 1px 0 #fff;
}
.rk-act--friend .rk-act__art img.rk-ky-a{
  left:-12px;bottom:58px;height:74px;
  transform:scaleX(-1);
  filter:hue-rotate(186deg) saturate(1.3) drop-shadow(0 6px 10px rgba(0,0,0,.36));
}
.rk-act--friend .rk-act__art img.rk-ky-b{right:-12px;bottom:58px;height:74px}
.rk-act--friend .rk-vs{
  position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:2;
  font-family:var(--game-font-display);font-size:26px;font-weight:800;
  background:linear-gradient(180deg,#FFFDF2,#FFD54D 55%,#D79A00);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.55));
  animation:rkPop 2.4s ease-in-out infinite;
}

/* 🟣 VÀO PHÒNG — violet */
.rk-act--code{
  border-color:rgba(215,175,255,.52);
  background:
    radial-gradient(90% 110% at 76% 8%, rgba(206,150,255,.44) 0%, rgba(206,150,255,0) 60%),
    linear-gradient(155deg, #A45CF5 0%, #7B34D8 38%, #4B1D9E 76%, #2C0F63 100%);
  box-shadow:0 12px 26px rgba(44,15,99,.40), 0 0 20px rgba(164,92,245,.30), inset 0 1px 0 rgba(255,255,255,.28);
}
.rk-act--code .rk-act__cta{
  background:linear-gradient(180deg,#F6ECFF 0%,#DCC4FF 100%);color:#2C0F63;
  box-shadow:0 4px 0 #2C0F63, 0 8px 16px rgba(44,15,99,.34), inset 0 1px 0 #fff;
}
.rk-act--code .rk-shield{
  position:absolute;left:50%;bottom:62px;transform:translateX(-50%);z-index:2;
  width:66px;height:72px;display:grid;place-items:center;
  background:linear-gradient(180deg,#FFF3C4 0%,var(--g24-gold) 48%,#B98800 100%);
  clip-path:polygon(50% 0%,100% 16%,100% 62%,50% 100%,0% 62%,0% 16%);
  box-shadow:0 8px 18px rgba(0,0,0,.34);
  /* dùng keyframe RIÊNG có sẵn translateX(-50%) — nếu dùng rkFloat thì
     transform của animation sẽ xoá mất phần căn giữa. */
  animation:rkFloatX 3.8s ease-in-out infinite;
}
.rk-act--code .rk-shield .g24-icon{stroke:#4B1D9E;stroke-width:2.2;fill:none}

/* hiệu ứng gợn sóng khi chạm */
.rk-ripple{
  position:absolute;border-radius:50%;pointer-events:none;z-index:5;
  background:radial-gradient(circle, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 70%);
  transform:translate(-50%,-50%) scale(0);
  animation:rkRipple 620ms ease-out forwards;
}

/* nút chế độ kiểu CŨ (màn hàng chờ / dự phòng) — vẫn giữ cho khỏi vỡ */
.g24-rank-mode{
  width:100%;min-height:56px;border-radius:var(--game-radius-md);
  font-family:var(--game-font-display);font-size:15px;font-weight:800;
  background:linear-gradient(180deg,var(--g24-red-light),var(--g24-red) 50%,var(--g24-red-dark));
  color:#fff;border:2px solid rgba(255,214,102,.4);
  box-shadow:0 6px 16px rgba(230,0,18,.32), inset 0 1px 0 rgba(255,255,255,.24);
  cursor:pointer;
}
.g24-rank-mode--friend{
  background:linear-gradient(180deg,#3C8BFF,#1E63D8 50%,#0F3E9E);
  border-color:rgba(160,220,255,.45);
  box-shadow:0 6px 16px rgba(15,62,158,.34), inset 0 1px 0 rgba(255,255,255,.24);
}

/* ============================================================
 * 4 · THẺ THÔNG TIN KỲ KỲ AI
 * ============================================================ */
.rk-ai, .g24-rank-prog{
  position:relative;
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;
  border-radius:var(--game-radius-md);
  background:linear-gradient(180deg,#FFFDF6 0%,var(--g24-cream) 100%);
  border:2px solid var(--g24-gold);
  box-shadow:0 6px 16px rgba(200,155,0,.16), inset 0 1px 0 #fff;
  color:var(--g24-ink);
  font-size:13px;line-height:1.45;
}
.rk-ai__ic{
  flex:0 0 auto;width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;font-size:24px;
  background:linear-gradient(180deg,#FFFFFF,#FFEFC9);
  border:2px solid var(--g24-gold-soft);
  box-shadow:inset 0 2px 5px rgba(200,155,0,.20);
  animation:rkIdle 4.6s ease-in-out infinite;
}
.rk-ai__tx{flex:1;min-width:0}
.rk-ai__tx b{color:var(--g24-red-dark)}
.rk-ai__bac{
  display:inline-flex;align-items:center;gap:5px;margin-top:4px;
  padding:4px 10px;border-radius:var(--game-radius-pill);
  background:linear-gradient(180deg,#FFFFFF,#FFE9A8);
  border:1.5px solid var(--g24-gold-deep);
  font-weight:800;font-size:12.5px;color:var(--g24-ink);
}

/* ============================================================
 * 5 · BA THẺ THỐNG KÊ
 * ============================================================ */
.rk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.rk-stat{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:1px;
  padding:11px 9px 10px;
  border-radius:var(--game-radius-md);
  background:linear-gradient(180deg,#FFFFFF 0%,#FFF7EC 100%);
  border:2px solid rgba(230,0,18,.10);
  box-shadow:var(--game-shadow-soft), inset 0 1px 0 #fff;
  text-align:center;
}
.rk-stat::before{
  content:'';position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--g24-red-light),var(--g24-red));
}
.rk-stat--mmr::before{background:linear-gradient(90deg,#FFD54D,#D79A00)}
.rk-stat--match::before{background:linear-gradient(90deg,#3C8BFF,#0F3E9E)}
.rk-stat__ic{font-size:17px;line-height:1.2}
.rk-stat__k{font-size:10.5px;font-weight:700;color:var(--g24-muted-2);letter-spacing:.2px}
.rk-stat__v{
  font-family:var(--game-font-display);
  font-size:clamp(13px,3.9vw,17px);font-weight:800;color:var(--g24-ink);line-height:1.12;
  overflow-wrap:anywhere;
}
.rk-stat__s{font-size:10.5px;font-weight:700;color:var(--g24-red-dark);line-height:1.25}
.rk-stat--mmr .rk-stat__s{color:var(--g24-gold-deep)}
.rk-stat--match .rk-stat__s{color:#0F3E9E}

/* ============================================================
 * 6 · SECTION + FEED LỊCH SỬ + BXH
 * ============================================================ */
.rk-sec{
  border-radius:var(--game-radius-lg);
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFBF4 100%);
  border:2px solid rgba(230,0,18,.09);
  box-shadow:var(--game-shadow-soft);
  overflow:hidden;
}
.rk-sec__head{
  display:flex;align-items:center;gap:10px;
  padding:12px 13px 10px;
  border-bottom:1.5px solid var(--g24-cream);
}
.rk-sec__ttl{
  flex:1;min-width:0;margin:0;
  font-family:var(--game-font-display);
  font-size:16px;font-weight:800;color:var(--g24-ink);letter-spacing:.2px;
}
.rk-filter{
  flex:0 0 auto;max-width:52%;
  min-height:38px;padding:6px 30px 6px 12px;
  border-radius:var(--game-radius-pill);
  border:2px solid var(--g24-cream);
  background:
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23B3000E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center,
    linear-gradient(180deg,#FFFFFF,#FFF6E9);
  font-family:var(--game-font-ui);font-size:12.5px;font-weight:700;color:var(--g24-ink);
  -webkit-appearance:none;appearance:none;cursor:pointer;
  text-overflow:ellipsis;
}

.rk-feed{display:flex;flex-direction:column;background:transparent;border:none}
/* ⚠️ SỬA HỒI QUY S55→S56: hai lớp này còn được màn XẾP HẠNG
 * (screens/leaderboard.js) dùng ĐỘC LẬP, không nằm trong .rk-sec. Bản S55
 * xoá nền + viền của chúng → bảng mùa giải ở màn Xếp hạng trôi lơ lửng
 * trên nền, mất hẳn dáng thẻ. Nay: mặc định VẪN là thẻ; chỉ khi nằm
 * trong .rk-sec (đã là thẻ rồi) mới bỏ nền đi cho khỏi thẻ lồng thẻ. */
.g24-rank-hist, .g24-rank-board{
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,#FFFFFF,#FFFBF4);
  border:2px solid rgba(230,0,18,.09);
  border-radius:var(--game-radius-lg);
  box-shadow:var(--game-shadow-soft);
}
.rk-sec .g24-rank-hist, .rk-sec .g24-rank-board{
  background:transparent;border:none;border-radius:0;box-shadow:none;
}
.rk-fr{
  position:relative;
  display:flex;align-items:center;gap:10px;
  padding:10px 13px;
  border-bottom:1px solid var(--g24-cream);
  transition:background-color 150ms ease, transform var(--game-transition-fast);
  -webkit-tap-highlight-color:transparent;
}
.rk-fr:last-child{border-bottom:none}
.rk-fr:active{background:var(--g24-cream);transform:scale(.995)}
.rk-fr__no{
  flex:0 0 auto;width:28px;height:28px;border-radius:9px;
  display:grid;place-items:center;
  font-family:var(--game-font-display);font-size:13px;font-weight:800;
  background:var(--g24-cream);color:var(--g24-muted-2);
}
.rk-fr__no.is-1{background:linear-gradient(180deg,#FFE9A8,#E9B300);color:#5A3B00;box-shadow:0 2px 6px rgba(200,155,0,.4)}
.rk-fr__no.is-2{background:linear-gradient(180deg,#F2F4F7,#B9C2CC);color:#3A4550}
.rk-fr__no.is-3{background:linear-gradient(180deg,#F6D3B0,#C98449);color:#4A2A0C}
.rk-fr__ic{flex:0 0 auto;font-size:19px;line-height:1;width:24px;text-align:center}
.rk-fr__mid{flex:1;min-width:0}
.rk-fr__ten{
  font-size:13.5px;font-weight:800;color:var(--g24-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rk-fr__sub{
  font-size:11.5px;font-weight:600;color:var(--g24-muted-2);margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rk-fr__right{flex:0 0 auto;text-align:right;max-width:40%}
.rk-fr__delta{
  font-family:var(--game-font-display);
  font-size:14.5px;font-weight:800;white-space:nowrap;color:var(--g24-muted-2);
}
.rk-fr__delta.is-up{color:var(--g24-ok)}
.rk-fr__delta.is-down{color:var(--g24-red)}
.rk-fr__when{font-size:10.5px;font-weight:700;color:var(--g24-muted-2);margin-top:1px;white-space:nowrap}
.rk-fr.is-me{background:linear-gradient(90deg,var(--g24-gold-soft),transparent)}
.rk-fr.is-me .rk-fr__ten{color:var(--g24-red-dark)}
.rk-empty{padding:20px 14px;text-align:center;font-size:13px;color:var(--g24-muted-2)}

/* hàng cũ (màn kết quả vẫn dùng) */
.g24-rank-row{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:10px 13px;font-size:13.8px;
  border-bottom:1px solid var(--g24-cream);
}
.g24-rank-row:last-child{border-bottom:none}
.g24-rank-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g24-rank-row span:last-child{white-space:nowrap;font-weight:700;color:var(--g24-red-dark)}
.g24-rank-row.is-me{background:linear-gradient(90deg,var(--g24-gold-soft),transparent);font-weight:800}

/* khung xương khi đang tải */
.rk-skel{display:flex;flex-direction:column}
.rk-skel i{
  display:block;height:14px;margin:13px;border-radius:7px;
  background:linear-gradient(90deg,#F3E8DA 25%,#FFFFFF 42%,#F3E8DA 60%);
  background-size:280% 100%;
  animation:rkSkel 1.25s ease-in-out infinite;
}
.rk-skel i:nth-child(2){width:72%}
.rk-skel i:nth-child(3){width:56%}

/* ============================================================
 * 7 · BANNER LEO HẠNG
 * ============================================================ */
.rk-reward{
  position:relative;overflow:hidden;
  display:flex;align-items:center;gap:12px;
  padding:14px 14px;
  border-radius:var(--game-radius-lg);
  background:
    radial-gradient(90% 130% at 90% 10%, rgba(255,213,77,.40) 0%, rgba(255,213,77,0) 58%),
    linear-gradient(150deg, #FF3244 0%, var(--g24-red) 36%, var(--g24-red-dark) 78%, #630A14 100%);
  border:2px solid rgba(255,214,102,.45);
  box-shadow:var(--game-shadow-deep), inset 0 1px 0 rgba(255,255,255,.24);
  color:var(--g24-white);text-decoration:none;
  transition:transform var(--game-transition-fast);
}
.rk-reward:active{transform:scale(.985)}
.rk-reward__ky{width:56px;height:auto;flex:0 0 auto;filter:drop-shadow(0 5px 9px rgba(0,0,0,.35));animation:rkIdle 5s ease-in-out infinite}
.rk-reward__tx{flex:1;min-width:0}
.rk-reward__tx b{
  display:block;font-family:var(--game-font-display);
  font-size:16px;font-weight:800;color:var(--g24-gold-soft);
  text-shadow:0 2px 5px rgba(0,0,0,.35);
}
.rk-reward__tx span{display:block;margin-top:3px;font-size:12px;line-height:1.4;opacity:.92}
.rk-reward__cta{
  flex:0 0 auto;
  padding:9px 13px;border-radius:var(--game-radius-pill);
  background:linear-gradient(180deg,#FFF3C4,var(--g24-gold) 55%,#D79A00);
  color:#6E0A16;font-family:var(--game-font-display);font-size:12.5px;font-weight:800;
  box-shadow:0 4px 0 #9A6E00, 0 7px 14px rgba(200,155,0,.36);
  text-align:center;line-height:1.15;
}

/* ============================================================
 * 8 · BẢNG CHỌN GAME + PHẠM VI (bottom sheet)
 * ============================================================ */
.rk-sheet{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-end}
.rk-sheet[hidden]{display:none}
.rk-sheet__bg{
  position:absolute;inset:0;background:rgba(30,8,12,.55);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  animation:rkFade 220ms ease;
}
.rk-sheet__box{
  position:relative;width:100%;max-height:84vh;
  display:flex;flex-direction:column;
  border-radius:26px 26px 0 0;
  background:linear-gradient(180deg,#FFFFFF 0%,var(--g24-cream) 100%);
  box-shadow:0 -14px 40px rgba(43,20,25,.34);
  border-top:3px solid var(--g24-gold);
  padding-bottom:calc(12px + var(--safe-bottom));
  animation:rkSheetUp 300ms cubic-bezier(.22,.8,.36,1);
}
.rk-sheet__bar{
  width:44px;height:5px;border-radius:3px;margin:9px auto 2px;
  background:rgba(43,20,25,.18);flex:0 0 auto;
}
.rk-sheet__head{
  display:flex;align-items:center;gap:10px;padding:6px 16px 10px;flex:0 0 auto;
}
.rk-sheet__head h3{
  flex:1;margin:0;font-family:var(--game-font-display);
  font-size:17px;font-weight:800;color:var(--g24-ink);
}
.rk-sheet__x{
  width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;
  background:var(--g24-cream);color:var(--g24-muted-2);font-size:18px;font-weight:800;
  display:grid;place-items:center;
}
.rk-sheet__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 14px 8px}
.rk-sheet__done{
  flex:0 0 auto;margin:8px 14px 0;min-height:50px;border:none;cursor:pointer;
  border-radius:var(--game-radius-pill);
  background:linear-gradient(180deg,var(--g24-red-light),var(--g24-red) 50%,var(--g24-red-dark));
  color:#fff;font-family:var(--game-font-display);font-size:16px;font-weight:800;letter-spacing:.5px;
  box-shadow:0 5px 0 #7A0F1C, 0 10px 20px rgba(230,0,18,.34);
}
.rk-sheet__done:active{transform:translateY(3px);box-shadow:0 2px 0 #7A0F1C}

/* ---------------- CHIP CHỌN GAME / PHẠM VI ---------------- */
.g24-rank-scopes{display:flex;flex-direction:column;gap:4px}
.g24-rank-scopes__nhan{
  margin-top:12px;font-family:var(--game-font-display);
  font-size:13.5px;font-weight:800;color:var(--g24-muted-2);letter-spacing:.3px;
}
.g24-rank-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 2px;padding-top:8px}
.g24-rank-chip{
  position:relative;
  display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;
  min-height:48px;padding:8px 14px;
  border-radius:var(--game-radius-md);
  border:2px solid var(--g24-cream);
  background:linear-gradient(180deg,#FFFFFF,#FFF6E9);
  box-shadow:var(--game-shadow-soft), inset 0 1px 0 #fff;
  font-family:var(--game-font-ui);color:var(--g24-ink);
  cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:transform var(--game-transition-fast), box-shadow var(--game-transition-fast),
             background-color 150ms ease, border-color 150ms ease;
}
.g24-rank-chip:active{transform:scale(.96)}
.g24-rank-chip__ten{font-size:14px;font-weight:800;line-height:1.15}
.g24-rank-chip__so{font-size:11px;font-weight:700;color:var(--g24-muted-2)}
.g24-rank-chip.is-on{
  border-color:var(--g24-gold);
  background:linear-gradient(180deg,var(--g24-red-light),var(--g24-red) 52%,var(--g24-red-dark));
  color:#fff;
  box-shadow:0 6px 16px rgba(230,0,18,.34), inset 0 1px 0 rgba(255,255,255,.28);
}
.g24-rank-chip.is-on .g24-rank-chip__so{color:var(--g24-gold-soft)}
.g24-rank-chip.is-on::after{
  content:'✓';position:absolute;top:-7px;right:-7px;
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(180deg,#FFF3C4,var(--g24-gold) 55%,#D79A00);
  color:#6E0A16;font-size:13px;font-weight:800;
  display:grid;place-items:center;
  box-shadow:0 2px 6px rgba(0,0,0,.28);
}
.g24-rank-chip--game{min-height:48px}

/* ============================================================
 * 9 · GHI CHÚ / TRẠNG THÁI
 * ============================================================ */
.g24-rank-note{
  padding:12px 14px;border-radius:var(--game-radius-md);
  background:linear-gradient(180deg,#FFFDF6,var(--g24-cream));
  border:2px solid var(--g24-cream);
  box-shadow:inset 0 1px 0 #fff;
  font-size:13px;line-height:1.5;color:var(--g24-ink);
}
.g24-rank-note.is-warn{
  background:linear-gradient(180deg,#FFF3D6,#FFE9BC);
  border-color:var(--g24-gold);
  color:#5A3B00;font-weight:600;
}

/* ---------------- HÀNG CHỜ ---------------- */
.g24-rank-queue{
  position:relative;overflow:hidden;
  text-align:center;padding:32px 18px 26px;
  border-radius:var(--game-radius-xl);
  background:
    radial-gradient(80% 100% at 50% 0%, rgba(245,197,24,.20) 0%, transparent 60%),
    linear-gradient(170deg, var(--g24-navy) 0%, #0C1526 100%);
  color:var(--g24-white);
  box-shadow:var(--game-shadow-deep), inset 0 1px 0 rgba(255,255,255,.12);
  border:2px solid rgba(245,197,24,.24);
}
.g24-rank-queue__title{
  font-family:var(--game-font-display);
  font-size:clamp(20px, 5vw, 27px);font-weight:800;letter-spacing:.5px;
}
.g24-rank-queue__timer{
  font-family:var(--game-font-display);
  font-size:clamp(40px, 12vw, 62px);font-weight:800;
  color:var(--g24-gold);margin:8px 0 2px;
  font-variant-numeric:tabular-nums;text-shadow:var(--game-glow-gold);
}
.g24-rank-queue__info{font-size:13.5px;opacity:.85}
.g24-rank-queue__ai{
  margin-top:14px;font-size:13px;line-height:1.5;
  color:var(--g24-gold-soft);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(245,197,24,.35);
  border-radius:var(--game-radius-md);padding:10px 12px;
}
.g24-rank-queue__ai.is-warn{
  color:var(--g24-white);background:rgba(230,0,18,.22);border-color:rgba(255,120,120,.5);
}
.g24-rank-queue__title::before{
  content:'';display:block;width:34px;height:34px;margin:0 auto 12px;
  border:4px solid rgba(255,255,255,.22);
  border-top-color:var(--g24-gold);
  border-radius:50%;
  animation:g24RankSpin 900ms linear infinite;
}
@keyframes g24RankSpin{to{transform:rotate(360deg)}}

/* ---------------- KẾT QUẢ ---------------- */
.g24-rank-result{
  position:relative;overflow:hidden;
  text-align:center;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFF9F0 100%);
  border-radius:var(--game-radius-xl);
  border:2px solid rgba(230,0,18,.12);
  box-shadow:var(--game-shadow-deep), inset 0 1px 0 #fff;
  padding:26px 18px 22px;
  display:flex;flex-direction:column;gap:12px;align-items:stretch;
  animation:rkPopIn 380ms cubic-bezier(.22,.8,.36,1);
}
.g24-rank-result__title{
  font-family:var(--game-font-display);
  font-size:clamp(21px, 5.4vw, 30px);font-weight:800;color:var(--g24-red);
  text-shadow:0 2px 0 rgba(255,255,255,.9);
}
.g24-rank-delta{
  font-family:var(--game-font-display);
  font-size:clamp(34px, 10vw, 50px);font-weight:800;
  color:var(--g24-gold-deep);text-shadow:0 2px 0 rgba(255,255,255,.9);
}
.g24-rank-vs{
  display:flex;flex-direction:column;gap:6px;font-size:14px;
  background:var(--g24-cream);border-radius:var(--game-radius-md);padding:12px;
}
.g24-rank-result .g24-rank-sub{color:var(--g24-ink);opacity:.8}

/* ============================================================
 * 10 · KEYFRAMES  (chỉ transform/opacity — mượt trên điện thoại)
 * ============================================================ */
@keyframes rkShine{
  0%   {transform:translate3d(-130%,0,0)}
  55%  {transform:translate3d(130%,0,0)}
  100% {transform:translate3d(130%,0,0)}
}
@keyframes rkTwinkle{0%,100%{opacity:.35}50%{opacity:.95}}
@keyframes rkFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes rkFloatX{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}
@keyframes rkIdle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-1.6deg)}}
@keyframes rkPop{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.1)}}
@keyframes rkPopIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes rkFade{from{opacity:0}to{opacity:1}}
@keyframes rkSheetUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes rkRipple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}
@keyframes rkSkel{0%{background-position:180% 0}100%{background-position:-80% 0}}
@keyframes rkGoldPulse{
  0%,100%{box-shadow:0 14px 30px rgba(122,15,28,.38),0 0 0 1px rgba(255,214,102,.30),0 0 20px rgba(245,197,24,.22),inset 0 1px 0 rgba(255,255,255,.26)}
  50%    {box-shadow:0 16px 34px rgba(122,15,28,.42),0 0 0 1px rgba(255,214,102,.52),0 0 34px rgba(245,197,24,.46),inset 0 1px 0 rgba(255,255,255,.30)}
}

/* ============================================================
 * 11 · MÀN HÌNH NHỎ
 * ============================================================ */
@media (max-width:400px){
  .rk-hero__ky{width:88px}
  .rk-hero__top{padding-right:80px;min-height:88px}
  .rk-act{min-height:124px;padding:12px 12px 11px}
  .rk-act__ttl{font-size:17px}
  .rk-act--ranked{min-height:150px;padding-right:100px}
  .rk-act--ranked .rk-act__ttl{font-size:20px}
  .rk-act--ranked .rk-act__art img{height:104px}
  .rk-stat__k{font-size:10px}
  .rk-reward__ky{width:46px}
  .rk-reward__cta{padding:8px 10px;font-size:11.5px}
}
@media (max-width:340px){
  .rk-acts__row{grid-template-columns:1fr}
  .rk-act--friend .rk-act__art img,
  .rk-act--code .rk-shield{opacity:.55}
}
/* máy rộng: không kéo dãn thẻ ra quá to */
@media (min-width:768px){
  .rk-page{max-width:720px;margin:0 auto}
  .rk-hero__ky{width:132px}
  .rk-hero__top{padding-right:130px;min-height:112px}
}

/* ============================================================
 * 12 · GIẢM CHUYỂN ĐỘNG (accessibility) — tắt SẠCH mọi animation
 * ============================================================ */
@media (prefers-reduced-motion:reduce){
  .rk-hero::before,.rk-hero::after,.rk-hero__ic,.rk-hero__ky,
  .rk-act--ranked,.rk-act__cta::after,.rk-act--friend .rk-vs,
  .rk-act--code .rk-shield,.rk-ai__ic,.rk-reward__ky,
  .g24-rank-banner::after,.g24-rank-queue__title::before,
  .rk-skel i,.g24-rank-result,.rk-sheet__box,.rk-sheet__bg{
    animation:none!important;
  }
  .rk-act:hover{transform:none}
}
/* ============================================================
 * BẢNG XẾP HẠNG · 2 THẺ (V1.2)
 * ============================================================
 * 🏆 MÙA GIẢI là thẻ chính, mở ra đầu tiên.
 * ⭐ ĐIỂM TÍCH LUỸ giữ nguyên bảng cũ cho học sinh chỉ chơi một mình.
 */
.g24-lbtabs{
  display:flex;gap:8px;
  padding:5px;
  margin:6px 0 14px;
  background:var(--g24-cream);
  border-radius:var(--game-radius-pill);
  border:2px solid var(--g24-cream-line, #F0E2CE);
}
.g24-lbtabs__nut{
  flex:1;
  padding:11px 10px;
  border:none;border-radius:var(--game-radius-pill);
  background:transparent;
  font-family:var(--game-font-display);
  font-size:14px;font-weight:800;letter-spacing:.3px;
  color:var(--g24-muted-2);
  cursor:pointer;
  transition:background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}
.g24-lbtabs__nut:active{transform:scale(.97)}
.g24-lbtabs__nut.is-on{
  background:linear-gradient(180deg, var(--g24-red-light), var(--g24-red) 55%, var(--g24-red-dark));
  color:var(--g24-white);
  box-shadow:0 4px 12px rgba(230,0,18,.34);
  text-shadow:0 1px 0 rgba(0,0,0,.22);
}

/* dải tên mùa + đếm ngược 60 ngày */
.g24-lbmua{
  text-align:center;
  padding:16px 14px 14px;
  border-radius:var(--game-radius-lg);
  background:linear-gradient(160deg, var(--g24-navy) 0%, #0C1526 100%);
  color:var(--g24-white);
  box-shadow:var(--game-shadow-deep);
  margin-bottom:12px;
}
.g24-lbmua__ten{
  font-family:var(--game-font-display);
  font-size:clamp(17px, 4.6vw, 23px);
  font-weight:800;letter-spacing:.4px;
  color:var(--g24-gold);
  text-shadow:var(--game-glow-gold);
}
.g24-lbmua__han{margin-top:6px;font-size:12.5px;opacity:.85}

/* vị trí của chính mình */
.g24-lbtoi{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 16px;
  border-radius:var(--game-radius-md);
  background:linear-gradient(90deg, var(--g24-gold-soft), #FFFDF4);
  border:2px solid var(--g24-gold);
  margin-bottom:12px;
}
.g24-lbtoi__bac{
  font-family:var(--game-font-display);
  font-size:16.5px;font-weight:800;color:var(--g24-ink);
}
.g24-lbtoi__so{font-size:14px;font-weight:700;color:var(--g24-red-dark);white-space:nowrap}

@media (max-width:480px){
  .g24-lbtabs__nut{font-size:12.5px;padding:10px 6px}
  .g24-lbtoi{padding:11px 13px}
  .g24-lbtoi__bac{font-size:15px}
  .g24-lbtoi__so{font-size:13px}
}

/* ================================================================
 * S56 (24/08/2026) · ĐỒNG BỘ MÀN XẾP HẠNG với bộ Premium
 * ================================================================
 * Ba lớp dưới đây do CHÍNH file này định nghĩa gốc ở trên, nên bản
 * nâng cấp cũng phải nằm ở đây (không đặt sang g24.css).
 * ================================================================ */
.g24-lbtabs{
  padding:6px;border-radius:var(--game-radius-pill);
  background:linear-gradient(180deg,#FFFFFF,var(--g24-cream));
  border:2px solid var(--g24-gold);
  box-shadow:0 8px 20px rgba(200,155,0,.20), inset 0 1px 0 #fff;
  margin:0 0 14px;
}
.g24-lbtabs__nut{min-height:46px;font-size:13.5px;color:var(--g24-muted-2)}
.g24-lbtabs__nut.is-on{
  box-shadow:0 5px 14px rgba(230,0,18,.36), inset 0 1px 0 rgba(255,255,255,.3);
}
.g24-lbmua{
  position:relative;overflow:hidden;
  border-radius:var(--game-radius-xl);
  padding:18px 16px 15px;
  background:
    radial-gradient(85% 110% at 50% 0%, rgba(245,197,24,.22) 0%, transparent 62%),
    linear-gradient(165deg, var(--g24-navy) 0%, #0C1526 100%);
  border:2px solid rgba(245,197,24,.34);
  box-shadow:0 14px 32px rgba(12,21,38,.36), inset 0 1px 0 rgba(255,255,255,.14);
}
.g24-lbmua::after{
  content:'';position:absolute;inset:-40% -10%;pointer-events:none;
  background:linear-gradient(102deg,transparent 42%,rgba(255,255,255,.16) 50%,transparent 58%);
  transform:translate3d(-120%,0,0);
  animation:rkShine 7s ease-in-out infinite;
}
.g24-lbmua__ten{position:relative;z-index:2}
.g24-lbmua__han{position:relative;z-index:2}
.g24-lbtoi{
  border-radius:var(--game-radius-lg);
  padding:14px 16px;
  background:linear-gradient(120deg,#FFF3C4 0%,#FFFDF4 70%);
  border:2px solid var(--g24-gold);
  box-shadow:0 8px 20px rgba(200,155,0,.22), inset 0 1px 0 #fff;
}
.g24-lbtoi__bac{font-family:var(--game-font-display);font-size:17px}
/* nút "Vào Đấu Xếp Hạng" cuối thẻ mùa giải: chiếm hết bề ngang cho dễ bấm */
.g24-lbtabs~div>.g24-btn--primary{width:100%;min-height:52px;margin-top:12px}

@media (prefers-reduced-motion:reduce){
  .g24-lbmua::after{animation:none!important}
}

/* ================================================================
 * S57 (24/08/2026) · HUY HIỆU BẬC + BẢNG XẾP HẠNG + MÀN KẾT QUẢ
 * ================================================================
 * Dựng theo bộ ảnh anh Tiền gửi 24/08 (8 bậc ĐỒNG → CHIẾN TƯỚNG).
 * NỀN NAVY chỉ dùng cho KHU VỰC RANK (thẻ bậc · bảng xếp hạng ·
 * màn kết quả) — trang vẫn đỏ-kem 24G như cũ (anh Tiền chốt 24/08).
 * Ảnh huy hiệu ở games/assets/rank/, thiếu file thì rơi về emoji.
 * ================================================================ */
:root{
  --rk-navy-1:#152444;
  --rk-navy-2:#0A1229;
  --rk-navy-3:#050A18;
  --rk-vien:  rgba(255,214,102,.34);
}

/* ---------------- HUY HIỆU ---------------- */
.rk-badge{
  --sz:96px; --tier:#C8794A; --tier-sang:#F2BE90; --tier-toi:#6E3A1C;
  display:inline-grid;place-items:center;flex:0 0 auto;
  width:var(--sz);height:var(--sz);line-height:1;
  font-size:calc(var(--sz) * .78);          /* cỡ emoji khi thiếu ảnh */
}
.rk-badge img{
  width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))
         drop-shadow(0 0 12px color-mix(in srgb, var(--tier) 55%, transparent));
}
/* trình duyệt cũ chưa có color-mix → vẫn có bóng, chỉ mất hào quang màu */
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .rk-badge img{filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}
}
.rk-badge--sm{--sz:30px}
.rk-badge--sm img{filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.rk-badge.is-emoji img{display:none}
.rk-badge.is-bay img{animation:rkFloat 3.4s ease-in-out infinite}

/* ---------------- DÃY SAO ---------------- */
.rk-sao{display:inline-flex;align-items:center;gap:3px;line-height:1}
.rk-sao__1{
  font-style:normal;font-size:17px;color:rgba(255,255,255,.24);
  text-shadow:0 1px 1px rgba(0,0,0,.4);
}
.rk-sao__1.is-on{
  color:var(--g24-gold);
  text-shadow:0 0 10px rgba(245,197,24,.85), 0 1px 1px rgba(0,0,0,.4);
}
.rk-sao b{color:var(--g24-gold);font-size:15px}

/* ---------------- THẺ BẬC (RANK CARD) ---------------- */
.rk-card{
  --tier:#5AA8FF; --tier-toi:#1B4E9E;
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  padding:18px 16px 16px;
  border-radius:var(--game-radius-xl);
  background:
    radial-gradient(80% 70% at 50% 8%, color-mix(in srgb, var(--tier) 28%, transparent) 0%, transparent 62%),
    linear-gradient(168deg, var(--rk-navy-1) 0%, var(--rk-navy-2) 58%, var(--rk-navy-3) 100%);
  border:2px solid var(--rk-vien);
  box-shadow:0 16px 34px rgba(5,10,24,.42), inset 0 1px 0 rgba(255,255,255,.14);
  color:#fff;text-align:center;
}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .rk-card{background:linear-gradient(168deg, var(--rk-navy-1) 0%, var(--rk-navy-2) 58%, var(--rk-navy-3) 100%)}
}
/* vòng hào quang xoay chậm sau huy hiệu */
.rk-card__hao{
  position:absolute;left:50%;top:44px;transform:translate(-50%,-50%);
  width:200px;height:200px;border-radius:50%;pointer-events:none;z-index:0;
  background:conic-gradient(from 0deg, transparent 0deg, rgba(255,255,255,.10) 60deg,
             transparent 130deg, rgba(255,255,255,.08) 220deg, transparent 300deg);
  animation:rkQuay 14s linear infinite;
}
/* ⚠️ PHẢI loại trừ .rk-card__hao: luật này đứng SAU nên nếu quét cả nó thì
   position:absolute của vòng hào quang bị đè thành relative → nó chiếm chỗ
   thật 200×200px, đẩy nội dung xuống và để lại một khoảng trống to đùng
   ở đầu thẻ (QA 24/08 đã dính). */
.rk-card>:not(.rk-card__hao):not(.rk-card__hoi){position:relative;z-index:1}
.rk-card__nhan{
  font-family:var(--game-font-display);font-size:11px;font-weight:800;
  letter-spacing:2.4px;color:var(--g24-gold-soft);opacity:.9;
}
.rk-card__bac{
  font-family:var(--game-font-display);
  font-size:clamp(19px,5.2vw,25px);font-weight:800;letter-spacing:.6px;
  color:#fff;text-shadow:0 0 14px color-mix(in srgb, var(--tier) 70%, transparent), 0 2px 4px rgba(0,0,0,.5);
}
.rk-card__bac.is-dinh{color:var(--g24-gold)}
.rk-card__phu{font-size:12px;color:rgba(255,255,255,.78);line-height:1.45}
.rk-card__vach{
  width:min(260px,86%);height:10px;border-radius:var(--game-radius-pill);
  background:rgba(0,0,0,.42);box-shadow:var(--game-shadow-inner);overflow:hidden;
}
.rk-card__vach i{
  display:block;height:100%;border-radius:inherit;
  background:linear-gradient(90deg,#FFE9A8,var(--g24-gold) 55%,#E0A800);
  box-shadow:0 0 10px rgba(245,197,24,.8);
  transition:width var(--game-transition-normal);
}
.rk-card.is-gon{padding:14px 14px 12px;gap:5px}
.rk-card.is-gon .rk-card__bac{font-size:19px}
/* nút mở bảng 8 bậc, nằm góc thẻ */
.rk-card__hoi{
  position:absolute;top:10px;right:10px;z-index:2;
  width:30px;height:30px;border-radius:50%;cursor:pointer;
  border:1.5px solid rgba(255,214,102,.5);
  background:rgba(255,255,255,.08);color:var(--g24-gold-soft);
  font-size:14px;font-weight:800;display:grid;place-items:center;
  -webkit-tap-highlight-color:transparent;
}
.rk-card__hoi:active{transform:scale(.9)}

/* ---------------- BẢNG 8 BẬC ---------------- */
.rk-tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.rk-tiers__o{
  --tier:#C8794A;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:11px 8px 9px;border-radius:var(--game-radius-md);
  background:linear-gradient(170deg, var(--rk-navy-1), var(--rk-navy-3));
  border:2px solid rgba(255,255,255,.10);
  color:#fff;text-align:center;
}
.rk-tiers__o.is-toi{
  border-color:var(--g24-gold);
  box-shadow:0 0 0 3px rgba(245,197,24,.20), 0 8px 18px rgba(5,10,24,.4);
}
.rk-tiers__o b{font-family:var(--game-font-display);font-size:13px;letter-spacing:.3px}
.rk-tiers__o span{font-size:10.5px;color:rgba(255,255,255,.62);letter-spacing:1px}
@media (min-width:520px){ .rk-tiers{grid-template-columns:repeat(4,1fr)} }

/* ---------------- HÀNG BẢNG XẾP HẠNG CÓ HUY HIỆU ---------------- */
.rk-board{
  display:flex;flex-direction:column;gap:7px;
  padding:10px;border-radius:var(--game-radius-lg);
  background:linear-gradient(170deg, var(--rk-navy-1) 0%, var(--rk-navy-2) 70%, var(--rk-navy-3) 100%);
  border:2px solid var(--rk-vien);
  box-shadow:0 12px 28px rgba(5,10,24,.36), inset 0 1px 0 rgba(255,255,255,.12);
}
.rk-lbrow{
  display:flex;align-items:center;gap:9px;
  padding:8px 10px;border-radius:var(--game-radius-md);
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1.5px solid rgba(255,255,255,.08);
  color:#fff;
  transition:transform var(--game-transition-fast), border-color 150ms ease;
  -webkit-tap-highlight-color:transparent;
}
.rk-lbrow:active{transform:scale(.99)}
.rk-lbrow.is-me{
  background:linear-gradient(90deg, rgba(245,197,24,.26), rgba(245,197,24,.06));
  border-color:var(--g24-gold);
  box-shadow:0 0 0 1px rgba(245,197,24,.25), 0 6px 14px rgba(0,0,0,.3);
}
.rk-lbrow__no{
  flex:0 0 auto;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  font-family:var(--game-font-display);font-size:13px;font-weight:800;
  background:rgba(255,255,255,.10);color:rgba(255,255,255,.78);
}
.rk-lbrow__no.is-1{background:linear-gradient(180deg,#FFE9A8,#E9B300);color:#5A3B00;box-shadow:0 2px 8px rgba(233,179,0,.5)}
.rk-lbrow__no.is-2{background:linear-gradient(180deg,#F2F4F7,#B9C2CC);color:#3A4550}
.rk-lbrow__no.is-3{background:linear-gradient(180deg,#F6D3B0,#C98449);color:#4A2A0C}
/* vòng quanh avatar tô theo màu bậc (thay bộ "khung avatar" của ảnh mẫu —
   ảnh gốc vẽ 3 khung đặc ruột nên không lồng ảnh vào được) */
.rk-lbrow__av{
  flex:0 0 auto;position:relative;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--game-font-display);font-weight:800;font-size:14px;color:#fff;
  box-shadow:0 0 0 2px var(--tier,#C8794A), 0 0 10px color-mix(in srgb,var(--tier,#C8794A) 55%, transparent);
}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .rk-lbrow__av{box-shadow:0 0 0 2px var(--tier,#C8794A)}
}
.rk-lbrow__mid{flex:1;min-width:0}
.rk-lbrow__ten{
  font-size:13.5px;font-weight:800;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rk-lbrow__bac{
  display:flex;align-items:center;gap:4px;margin-top:2px;
  font-size:11px;font-weight:800;letter-spacing:.4px;color:var(--tier,#C8794A);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rk-lbrow__sao{
  flex:0 0 auto;display:flex;align-items:center;gap:4px;
  font-family:var(--game-font-display);font-size:15px;font-weight:800;color:var(--g24-gold);
  text-shadow:0 0 10px rgba(245,197,24,.55);
}
.rk-lbrow__sao i{font-style:normal;font-size:13px}

/* ---------------- MÀN KẾT QUẢ (dùng chung 7 game + trận rank) ------------ */
.rk-res{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:20px 16px 16px;
  border-radius:var(--game-radius-xl);
  background:
    radial-gradient(75% 60% at 50% 0%, rgba(245,197,24,.20) 0%, transparent 60%),
    linear-gradient(168deg, var(--rk-navy-1) 0%, var(--rk-navy-2) 60%, var(--rk-navy-3) 100%);
  border:2px solid var(--rk-vien);
  box-shadow:0 18px 38px rgba(5,10,24,.44), inset 0 1px 0 rgba(255,255,255,.14);
  color:#fff;text-align:center;
}
.rk-res::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.75;
  background:
    radial-gradient(2.5px 2.5px at 16% 22%, #FFE9A8 40%, transparent 42%),
    radial-gradient(2px 2px   at 78% 30%, #FFFFFF 40%, transparent 42%),
    radial-gradient(3px 3px   at 60% 12%, #FFD54D 40%, transparent 42%),
    radial-gradient(2px 2px   at 30% 76%, #FFFFFF 40%, transparent 42%);
  animation:rkTwinkle 3.6s ease-in-out infinite;
}
.rk-res>*{position:relative;z-index:1}
.rk-res.is-thua{
  background:
    radial-gradient(75% 60% at 50% 0%, rgba(230,0,18,.20) 0%, transparent 60%),
    linear-gradient(168deg,#2A1420 0%,#1A0C16 60%,#0B0509 100%);
  border-color:rgba(255,120,120,.3);
}
.rk-res__ttl{
  font-family:var(--game-font-display);
  font-size:clamp(21px,5.6vw,29px);font-weight:800;letter-spacing:.5px;line-height:1.18;padding-top:2px;
  background:linear-gradient(180deg,#FFFDF2 0%,#FFE9A8 44%,#F5C518 74%,#D79A00 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.55));
}
.rk-res.is-thua .rk-res__ttl{
  background:linear-gradient(180deg,#FFF0F0 0%,#FFC9C9 50%,#FF7A7A 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.rk-res__diem{
  font-family:var(--game-font-display);
  font-size:clamp(34px,10vw,48px);font-weight:800;line-height:1.05;color:#fff;
  text-shadow:0 0 18px rgba(245,197,24,.6), 0 3px 6px rgba(0,0,0,.5);
  font-variant-numeric:tabular-nums;
}
.rk-res__nhan{font-size:11.5px;letter-spacing:1.6px;font-weight:800;color:var(--g24-gold-soft);opacity:.85}
.rk-res__sao{display:flex;gap:8px;justify-content:center;font-size:30px;line-height:1}
.rk-res__sao i{font-style:normal;color:rgba(255,255,255,.2);text-shadow:0 2px 3px rgba(0,0,0,.4)}
.rk-res__sao i.is-on{
  color:var(--g24-gold);text-shadow:0 0 16px rgba(245,197,24,.9);
  animation:rkSaoBung .5s cubic-bezier(.22,.8,.36,1) both;
}
.rk-res__sao i.is-on:nth-child(2){animation-delay:.16s}
.rk-res__sao i.is-on:nth-child(3){animation-delay:.32s}
.rk-res__thuong{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:2px}
.rk-res__thuong span{
  padding:6px 12px;border-radius:var(--game-radius-pill);
  background:rgba(255,255,255,.10);border:1.5px solid rgba(255,214,102,.32);
  font-size:12.5px;font-weight:800;color:var(--g24-gold-soft);
}
.rk-res__delta{
  font-family:var(--game-font-display);font-size:26px;font-weight:800;
  color:var(--g24-gold);text-shadow:0 0 14px rgba(245,197,24,.7);
}
.rk-res__delta.is-tru{color:#FF8A8A;text-shadow:0 0 14px rgba(255,90,90,.6)}
.rk-res__ky{width:96px;height:auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.5))}
.rk-res__ky.is-vui{animation:rkIdle 3.6s ease-in-out infinite}
.rk-res .rk-lbrow{width:100%}

/* ---------------- THĂNG HẠNG ---------------- */
.rk-up{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:4px;padding:12px 10px;width:100%;
  border-radius:var(--game-radius-lg);
  background:linear-gradient(180deg, rgba(245,197,24,.20), rgba(245,197,24,.06));
  border:2px solid var(--g24-gold);
}
.rk-up__no{opacity:.55;filter:grayscale(.35)}
.rk-up__mui{
  font-size:20px;color:var(--g24-gold);letter-spacing:-2px;
  animation:rkChay 1.2s ease-in-out infinite;
}
.rk-up__moi{animation:rkBung .7s cubic-bezier(.22,.8,.36,1) both}
.rk-up__chu{
  width:100%;margin-top:8px;text-align:center;
  font-family:var(--game-font-display);font-size:15px;font-weight:800;letter-spacing:.6px;
  color:var(--g24-gold);text-shadow:0 0 14px rgba(245,197,24,.7);
}

@keyframes rkQuay{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes rkSaoBung{
  0%{transform:scale(.3) rotate(-25deg);opacity:0}
  60%{transform:scale(1.25) rotate(6deg);opacity:1}
  100%{transform:none;opacity:1}
}
@keyframes rkBung{
  0%{transform:scale(.4);opacity:0;filter:brightness(2.4)}
  60%{transform:scale(1.18);opacity:1}
  100%{transform:none;filter:none}
}
@keyframes rkChay{0%,100%{transform:translateX(-3px);opacity:.6}50%{transform:translateX(3px);opacity:1}}

@media (prefers-reduced-motion:reduce){
  .rk-card__hao,.rk-badge.is-bay img,.rk-res::before,
  .rk-res__sao i.is-on,.rk-up__mui,.rk-up__moi,.rk-res__ky.is-vui{
    animation:none!important;
  }
}

/* ghi chú / dòng phụ trong màn kết quả */
.rk-res__ghi{
  font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.82);max-width:44ch;
}
/* dải "bậc hiện tại" nhỏ dưới tiêu đề màn kết ván */
.rk-res__bac{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px 12px 5px 6px;border-radius:var(--game-radius-pill);
  background:rgba(255,255,255,.09);border:1.5px solid rgba(255,214,102,.3);
}
.rk-res__bac b{
  font-family:var(--game-font-display);font-size:12.5px;font-weight:800;
  letter-spacing:.5px;color:var(--g24-gold-soft);
}
/* nút trong màn kết quả: rộng, dễ bấm bằng một tay */
.rk-res .g24-btn{width:100%;min-height:50px;margin-top:6px}
/* thẻ kết quả nằm trong khung trắng của plugin → bỏ nền trắng cũ đi */
.g24-rank-result.rk-res{padding:20px 16px 16px}

/* .rk-board nằm TRONG .rk-sec (màn ⚔️ Đấu hạng): bỏ viền + bo góc riêng,
   để thẻ trắng bên ngoài lo phần khung. .rk-sec đã có overflow:hidden. */
.rk-sec .rk-board{border:none;box-shadow:none;border-radius:0;padding:10px}
/* khung xương lúc tải nằm trên nền navy → đổi sang tông sáng mờ */
.rk-board .rk-skel i{
  background:linear-gradient(90deg, rgba(255,255,255,.07) 25%, rgba(255,255,255,.18) 42%, rgba(255,255,255,.07) 60%);
  background-size:280% 100%;
}
/* dòng bậc trên hàng ĐANG LÀ MÌNH: nền vàng nên chữ màu bậc bị chìm */
.rk-lbrow.is-me .rk-lbrow__bac{color:#FFF3C4;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.rk-lbrow.is-me .rk-lbrow__ten{color:#fff}

/* ---- S58: bảng 10 bậc — ghi chú luật ---- */
.rk-tiers__canh{
  display:block;margin-top:3px;font-style:normal;
  font-size:9.5px;font-weight:800;letter-spacing:.3px;
  color:#FFC2B4;
}
.rk-tiers__luat{
  margin-top:12px;padding:11px 13px;
  border-radius:var(--game-radius-md);
  background:linear-gradient(180deg,#FFFDF6,var(--g24-cream));
  border:2px solid var(--g24-gold);
  font-size:12.5px;line-height:1.55;color:var(--g24-ink);
}
