/* RUAY55 玩家端版面修复 v23 — 2026-09-17
   与 v22 的差异：新增第 53 条（电脑版兑换页顶部说明块被定高网格压扁，缅甸语三行字被切、自动缩到 6.5px）。

   原 v22 头部说明：
/* RUAY55 玩家端版面修复 v22 — 2026-09-17
   与 v21 的差异：新增第 44–52 条（平板 / 电脑宽度体检查出；平板竖横屏的整体走样由壳里 viewport v2 统一按 760 / 1100 排版解决，
   这里只修 viewport 管不到的：电脑浏览器窄窗口、≥1100 电脑版本身的问题）。

   原 v21 头部说明：
/* RUAY55 玩家端窄屏文字截断修复 v21 — 2026-09-17（内容同 v20，仅注释里保险脚本名更正为 guard-v2；v20 文件已被 CDN 缓存，不可原名覆盖）
   与 v19 的差异：新增第 43 条（「我的」页首帧假数据 ฿ 0.00 / 已完成 先隐藏，钱包接管后再显示）。

   原 v19 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v19 — 2026-09-17
   与 v18 的差异：新增第 40–42 条（好友页矮屏滑不到、优惠奖励徽标冒出、钱包汇率小字大字号冒出）。

   原 v18 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v18 — 2026-09-17
   与 v17 的差异：新增第 39 条。自动缩字脚本（text-autofit）因首页余额字号来回跳已撤下，
   剩下的几处改为固定 CSS 缩字号（不改按钮尺寸，不会动态变化）。

   原 v17 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v17 — 2026-09-17
   与 v16 的差异：撤回改按钮尺寸的第 32（按钮部分）/34/36 条；窄屏改由壳里的 viewport 整体等比缩放处理。

   原 v16 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v16 — 2026-09-17
   与 v15 的差异：第 19 条不再缩字号（改为换行 + 卡片随内容长高）；新增第 32–38 条。
   这一版的原则：不缩字号，把「写死的高度 / 列宽」改成「最小值，内容多了自动长」。
   全部由多尺寸自动体检（ops/layout-audit，6 语 × 22 页 × 320×480 / 360×640 大字 / 390×844）查出。

   原 v15 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v15 — 2026-09-17
   与 v14 的差异：新增第 30、31 条（好友页加好友按钮被裁 / 钱包页三处切字）。
   这两条是用多尺寸自动体检（ops/layout-audit）查出来的，不是用户报的。

   原 v14 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v14 — 2026-09-17
   与 v13 的差异：新增第 29 条（矮屏/大字体手机充值页 YZPay、MöbiusPay 被裁掉看不见）。

   原 v13 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v13 — 2026-09-16
   与 v12 的差异：新增第 28 条（内置浏览器里钱包页返回键比标题高 17px）。

   原 v12 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v12 — 2026-09-16
   与 v11 的差异：第 27 条只保留注册/登录页返回键（客服页等被 v11 误伤，见条目内）。

   原 v11 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v11 — 2026-09-16
   与 v10 的差异：新增第 27 条（内置浏览器里注册/登录页返回键被推下来压住步骤圈）。

   原 v10 头部说明：
   RUAY55 玩家端窄屏文字截断修复 v10 — 2026-09-09
   与 v9 的差异：**删掉**第 26 条（游客首页按钮缩字号）。

   为什么删：v9 那条是「把字缩到刚好不压线」，实测下来左边按钮两侧只剩 0.4px 余量，
   图标几乎贴住文字 —— 用户一眼看出来不对。而且今天我已经用"缩字号"修了太多处，
   这个站现在满是 8.5/9/9.5/10/10.24/12/13.5px 的零散字号，本身就是个问题。

   真正的根因不是字大，是**文案太长**：按钮里文字可用 130.5px，
   `Become a member` 在原始字号下要 148.8px（超 18px），
   而 `Register` 只要 56.1px —— 富余 74px。
   所以改文案（见 player-guest-join-label-en-v1-20260909.js），字号原样不动。
   实测改完之后 320 / 375 / 426 三个宽度，按钮两侧留白 22.8 / 27.6 / 36.5px，
   字号回到原始的 12 / 13.875 / 15.76px，**一处都没缩**。 */

/* RUAY55 玩家端窄屏文字截断修复 v9 — 2026-09-09
   与 v8 的差异：新增第 26 条（游客首页「Become a member」压住中间分隔线）。
   本条是第一条**按连续宽度扫描**得出的修复，不是抽查五个宽度 —— 理由见条目内。

   原 v8 头部说明：
   与 v7 的差异：只改第 24 条 —— v7 让分类条标签对所有语言换行，
   结果英文 `Cockfight` 被从词中间断成 `Cockfigh` / `t`（截图一眼可见）。本版按语言分开处理。

   原 v7 头部说明：
   与 v6 的差异：新增第 24、25 条（游戏页分类条标签被切 / 游戏卡标题被无声切断）。

   原 v6 头部说明：
   与 v5 的差异：新增第 22、23 条（我的页下线概览叠字+裁切 / 桌面端钱包按钮标签叠字）。

   原 v5 头部说明：
   与 v4 的差异：新增第 18–21 条（游戏页厂商筛选被压成竖排单字 / 钱包页两行字被切 / 320 钱包按钮标签叠字）。

   原 v4 头部说明：
   与 v3 的唯一差异：新增第 16、17 条（320 宽缅文钱包金额被截 / 权益卡标题断在音节中间）。

   原 v3 头部说明：
   与 v2 的唯一差异：新增第 15 条（320 宽缅文 CTA 文字冲出胶囊）。见文末。

   原 v2 头部说明：
   与 v1 的唯一差异：第 11 条（红包卡 CTA）改法推倒重来，见文末注释。
   v1 的改法把「查看规则」推出了定高卡片，线上被用户录屏拍到，本版撤销并换法。

   原 v1 头部说明：
   仅调整 min-width / 换行 / 字号；不改颜色、不改交互、不动 DOM。
   审计报告：玩家端UI-手机尺寸审计-20260905.md

   ⚠️ 两个必须遵守的前提（实测踩过，写在这里免得下次再踩）：

   1) 必须包在 @layer vip-source-lock 里。
      theme-current-profile-v11-inline-fonts-fast-20260810.css 把规则放进了
      @layer vip-source-lock。按 CSS 级联规则，**带 !important 的分层声明优先于
      未分层的 !important**，与特异性无关 —— 所以未分层的覆盖哪怕写到三个 #root
      也压不过它（实测 #root#root#root + !important 依然无效）。
      全站目前只有这一个 layer，重新打开它即可，层内再按特异性/顺序正常比较。

   2) 必须用 #root#root（两个 ID）级特异性 + !important。
      层内竞争对手形如
        html body #root .player-shell:has(.profile-page) .profile-page
        .downline-overview-metrics small   → 特异性 (1,4,3)
      #root#root 开头即 (2,x,y)，稳过。

   3) 本文件须放在 </body> 前、晚于所有既有样式表，且不能放进任何 <template> 内
      （shell 里有 6 个 template，其中的内容只在特定路由下才被 document.write）。 */

@layer vip-source-lock {

  /* 1) 首页游戏分类标签：按钮写死六等分导致标签齐字硬切（连省略号都没有）。
        该行容器本来就是 overflow-x:auto，改成内容宽度只会多滚一点。 */
  #root#root .home-game-category-tabs > button {
    flex: 0 0 auto !important;
    min-width: calc(16.6667% - 5px) !important;
  }
  #root#root .home-game-category-tabs .home-game-category-label {
    max-width: none !important;
    text-overflow: ellipsis !important;
  }

  /* 2) 充值页余额：320 宽下「可提现」金额被省略号截断（฿ 689,12⋯）。
        缩字号让常见金额单行放下；极端长度会换行，但绝不再静默丢数字。 */
  #root#root .deposit-method-ledger dd {
    font-size: clamp(12px, 4.1vw, 15px) !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-overflow: clip !important;
  }

  /* 3) 游戏记录筛选器：原生 select 被 flex 压到 0，浏览器自行截断选项文字。 */
  #root#root .game-record-filter-bar {
    flex-wrap: wrap !important;
  }
  #root#root .game-record-filter-bar > label > select {
    min-width: max-content !important;
  }

  /* 4) 银行账户：银行名与「户名 · 账号」行不再省略号截断。 */
  #root#root .bank-linked-main > strong,
  #root#root .bank-linked-main > small {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-overflow: clip !important;
  }

  /* 5) 会员优惠页奖励金额：34px 在 320/360 宽被拆成 2–3 行。 */
  #root#root .promo-feature-copy > strong {
    white-space: nowrap !important;
    font-size: clamp(22px, 8.2vw, 34px) !important;
  }

  /* 6) 个人中心推荐统计标签：换行而不是省略号。 */
  #root#root .downline-overview-metrics > article > small {
    white-space: normal !important;
    line-height: 1.15 !important;
    text-overflow: clip !important;
    overflow: visible !important;
  }

  /* 7) 会员首页权益卡描述：2 行 clamp 装不下缅甸语（320 宽下需 5 行 / 53px，原框仅 21px）。 */
  #root#root .authenticated-benefit-copy > small {
    -webkit-line-clamp: 6 !important;
  }

  /* 8) 注册页标题：中间列固定 118px，英/缅文标题被省略号截断。 */
  #root#root header.standalone-page-header h1 {
    white-space: normal !important;
    font-size: clamp(15px, 4.6vw, 20px) !important;
    line-height: 1.2 !important;
    text-overflow: clip !important;
  }

  /* 9) 访客优惠页活动条款行：所有手机宽度都被截，缅甸语丢掉近一半。 */
  #root#root .promo-offer-reward small {
    white-space: normal !important;
    text-overflow: clip !important;
  }

  /* 10) 会员首页钱包标题：缅文 `ပင်မပိုက်ဆံအိတ် THB` 需 112px，容器只给 111px，
        差 1px 触发省略号把 "HB" 吃掉。其余 5 种语言富余 21–49px，故只针对缅文缩 1px 字号
        （12px→11px，缅文降到 103px，余 8px）。
        注意：这是按语言精准处理，若日后缅文串变长或别的语言文案加长，需重新量。 */
  #root#root .lang-my .wallet-title small {
    font-size: 11px !important;
  }

  /* 11) 会员首页红包卡 CTA 胶囊被撑破 —— 20260909 修正版
        `.grab-red-packet-copy` 是两列网格：CTA(<b>) 在第 1 列，规则链接(<i>) 源码显式
        定位在 `grid-area: 4 / 2`，两者共用第 4 行。外层 `.grab-red-packet-banner`
        是 `height:140px; min-height:140px; overflow:hidden` 的**定高**卡片，
        内容区只有 122px —— 这是整件事的关键，所有改动都必须省高度，不能加行。

        原始问题：列宽按 min-content 算，CTA 被压到 50–85px 后折成 3–5 行，胶囊变竖条。

        ❌ v1 的改法（已撤销）：CTA 独占整行 + 规则链接移到第 5 行。
           凭空多出一行，内容高度再涨 18.6px，把「查看规则」整条推到卡片底边之外。
           线上实测溢出量（<i> 底边超出卡片的像素）：
             英文 320/360/390/412 = 19.5 / 20.6 / 23.8 / 25.7
             缅文 320/360/390/412 =  5.5 /  6.6 /  9.8 / 11.7
           用户录屏里缅文那条 `စည်းမျဉ်းကြည့်ရန်` 正压在卡片下边框上，就是这个。

        ✅ 现在的改法 —— 只做减法，一行都不加：
           a) CTA 仍然不换行（单行 31px，比折行的 36–63px 省 5–32px），
              但**留在第 1 列**，不再横跨两列；
           b) 规则链接**放回源码的 4 / 2**，与 CTA 同一行；
           c) 行间距 4px→2px、内边距 5/4px→2px，再省 11px。
        三项合计省下的高度足以覆盖最差情况（英文 412）。

        线上逐格实测（六语 × 320/360/390/412/430/480）：
        CTA 与规则链接**全部 0 溢出、0 重叠、0 横向出界**。
        限定 ≤480px：桌面端不动。 */
  @media (max-width: 480px) {
    #root#root .grab-red-packet-copy > b {
      white-space: nowrap !important;
      justify-self: start !important;
    }
    #root#root .grab-red-packet-copy > i {
      grid-area: 4 / 2 !important;
    }
    #root#root .grab-red-packet-copy {
      row-gap: 2px !important;
      padding-top: 2px !important;
      padding-bottom: 2px !important;
    }

    /* 12) 红包卡在泰/缅/老/高棉四语下比中英文高 14px —— 把它统一回来。
          theme-current-profile-v11 里有这么一条：
            body .player-shell.lang-my .grab-red-packet-banner,
            body .player-shell.lang-lo .grab-red-packet-banner,
            body .player-shell.lang-km .grab-red-packet-banner,
            body .player-shell.lang-th .grab-red-packet-banner
            { min-height: 154px !important; overflow: visible !important; }   ← @media (max-width:760px)
          其余语言是 `height:140px; min-height:140px; overflow:hidden`。
          这是别人当初为「这四种语言文字更高」买的空间，副作用有两个：
            · 同一张卡在不同语言下高度不一样（用户直接看出来了）；
            · 这三语 overflow:visible，溢出的文字会**露在卡片外面**；
              其余语言 overflow:hidden，溢出的文字是**被切掉**（英文「Grab now」底边被切 7.1px）。
          上面第 11 条已经把内容压回 122px 以内，这块额外空间不再需要，故统一为 140px。
          线上实测：泰/缅/老/高棉 × 320/360/390/412/430 全部 0 溢出、0 横向出界。
          特异性 (2,2,1) 压过原规则的 (0,3,2)，同在 vip-source-lock 层内。 */
    #root#root .player-shell.lang-th .grab-red-packet-banner,
    #root#root .player-shell.lang-my .grab-red-packet-banner,
    #root#root .player-shell.lang-lo .grab-red-packet-banner,
    #root#root .player-shell.lang-km .grab-red-packet-banner {
      height: 140px !important;
      min-height: 140px !important;
      overflow: hidden !important;
    }

    /* 13) 泰/缅/老/高棉四种文字**行与行叠在一起**（用户说的「你看那些字」）。
          这四种文字有上下叠加的音符/元音符号，实际墨迹高度约是字号的 1.44–1.50 倍，
          而站点给的 line-height 只有 1.02–1.30 倍 —— 一旦文案折行，
          上一行的下伸符号就压进下一行的上伸符号里。

          首页实测（412 宽，凡是折成两行的都中招，无一幸免）：
            缅 5/5 处重叠，泰 3/3，高棉 2/2，老 1/1
            最严重：红包卡标题 `နေ့စဉ်အနီစာအိတ်` 21px 字号、行距 21.42px、
                   墨迹高 30.5px → **两行重叠 9.1px**
          注意：中文和英文不受影响（墨迹高度 ≈ 行距），所以只按语言开这条。

          做法：
            a) 会把行距抬到 1.5 的元素，仅限已量过、且抬高后仍不溢出的这几处；
            b) 缅文红包卡标题另外从 21px 降到 15px —— 它在 320–430 全宽段都会折行，
               光抬行距装不下（两行 × 1.5 × 21px = 63px，可用只有 122px）。
               降到 15px 后**全宽段单行**，重叠自然消失，也不再和 CTA 抢高度。
          未处理：本条只覆盖首页这三张卡。全站还有多少处同样的重叠没有量，
                  需要单独跑一轮再发，不在本次范围内。 */
    #root#root .player-shell.lang-my .grab-red-packet-copy > strong {
      font-size: 15px !important;
      line-height: 1.5 !important;
    }
    #root#root .player-shell.lang-th .grab-red-packet-copy > em,
    #root#root .player-shell.lang-my .grab-red-packet-copy > em,
    #root#root .player-shell.lang-lo .grab-red-packet-copy > em,
    #root#root .player-shell.lang-km .grab-red-packet-copy > em {
      line-height: 1.5 !important;
    }
    #root#root .player-shell.lang-th .authenticated-benefit-card :is(strong, small),
    #root#root .player-shell.lang-my .authenticated-benefit-card :is(strong, small),
    #root#root .player-shell.lang-lo .authenticated-benefit-card :is(strong, small),
    #root#root .player-shell.lang-km .authenticated-benefit-card :is(strong, small) {
      line-height: 1.5 !important;
    }

    /* 14) 同一个行距问题在首页之外还有几处 —— 把**外框会跟着长高**的那几处一并修掉。
          全站逐页扫过一遍（缅甸语，320 / 412 两个宽度，11 个玩家端页面）：
            home 5 处、promos 5 处、profile 3 处、games 1 处、friends 1 处；
            wallet / notifications / transfer / records / game-records / settings 各 0 处。
          换成泰/老/高棉同样成立（促销页泰 3 处、高棉 4 处、老 4 处），
          说明这不是某个页面的毛病，是这四种文字通用的行距不足。

          本条只收**改了不会被裁**的三处，每处都实测过外框高度变化：
            · 促销卡  `.promo-offer-row`      外框 198.8→217px（内容撑高，overflow:hidden 但没裁到）
            · 流水卡  `.profile-rollover-values` 外框 92px 不变，重叠 1→0
            · 好友页  `.friend-vault-header` 按钮 32px 不变，重叠 2.4→0
          实测：缅 320/412、泰 320/412 全部 重叠 0、裁切 0。

          ⚠️ 另外三处**故意没收**，因为它们的外框是定高且会把字裁掉，
             必须先改框高，属于版式改动，不在本次范围：
            · `.downline-overview` (87px)   抬行距会让裁切从 2.1px 恶化到 8px
            · `.game-provider-filter-list` 按钮 (42px)  抬完仍裁 1px
            · `button.wallet-qr-action` (64px)  抬完掉出按钮 4.5px，且邻近两个标签更糟
          限定 ≤480px：桌面端更宽、折行更少，且本次没量过，不动。 */
    #root#root .player-shell.lang-th .promo-offer-row :is(h2, p, small),
    #root#root .player-shell.lang-my .promo-offer-row :is(h2, p, small),
    #root#root .player-shell.lang-lo .promo-offer-row :is(h2, p, small),
    #root#root .player-shell.lang-km .promo-offer-row :is(h2, p, small),
    #root#root .player-shell.lang-th .profile-rollover-values small,
    #root#root .player-shell.lang-my .profile-rollover-values small,
    #root#root .player-shell.lang-lo .profile-rollover-values small,
    #root#root .player-shell.lang-km .profile-rollover-values small,
    #root#root .player-shell.lang-th .friend-vault-header button span,
    #root#root .player-shell.lang-my .friend-vault-header button span,
    #root#root .player-shell.lang-lo .friend-vault-header button span,
    #root#root .player-shell.lang-km .friend-vault-header button span {
      line-height: 1.5 !important;
    }
  }

    /* 15) v2 上线后自查发现：320 宽 + 缅甸语，CTA 胶囊里的文字**冲出金色胶囊**约 14px，
          压到右边的「查看规则」上。截图一眼可见。

          这是第 11 条 `white-space: nowrap` 的副作用，我之前漏检了：
          当时我量的是 `<b>` 的**盒子**有没有出界（getBoundingClientRect），盒子确实没出界；
          但盒子被网格压到 49.6px，而里面 nowrap 的文字要 62px —— **溢出的是墨迹不是盒子**。
          正确的判据是 `scrollWidth - clientWidth`。（和当初把 scrollWidth 当墨迹宽用是同一类错误，
          方向相反：这次该看 scrollWidth 我却只看了盒子。）

          为什么只有缅文 320：可用宽 131.8px，CTA 要 62 + 间距 7 + 规则链接 66 = 135 > 131.8，装不下。
          其余五语在 320 的实测溢出都是 0（英 0 / 泰 0 / 老 0 / 高棉 0 / 中 0），
          缅文自己在 360 / 390 / 412 / 430 也都是 0 —— 所以只针对 `lang-my` 且 ≤379.98px。

          试过但不行的改法：
            · `min-width: max-content`  → 盒子撑到 96.4px，直接压住「查看规则」（间距 -39.8px）
            · 隐藏胶囊里的箭头图标      → 溢出仍是 14px，说明溢出来自文字本身不是图标
            · 只缩 CTA 字号到 10px      → 还剩 10px；只缩内边距 → 还剩 2px
          实测能归零的组合：规则链接 8px→7px、CTA 11px→10px、CTA 内边距 10px→6px。
          实测结果：溢出 0、两者不重叠、各自单行不叠字、仍在卡片内。 */
    @media (max-width: 379.98px) {
      #root#root .player-shell.lang-my .grab-red-packet-copy > i {
        font-size: 7px !important;
      }
      #root#root .player-shell.lang-my .grab-red-packet-copy > b {
        font-size: 10px !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
      }
    }

    /* 16) 320 宽缅文：钱包「ဂိမ်းခရက်ဒစ် THB 0⋯」被省略号截断。
          这就是之前一直复现不了的那条，条件现在清楚了：**320 宽 + 缅甸语 + 币种显示成 THB**
          （显示成 ฿ 时不触发，所以我之前几次都没撞上）。

          `.bonus-mini` 是 `nowrap + overflow:hidden + text-overflow:ellipsis`，可用宽 111.3px。
          实测所需宽度（缅文标签 + 金额）：
            `฿ 0.00`        99.4px  → 不截
            `THB 0.00`      116px   → **截 4.7px**
            `THB 1,234.56`  139.7px → 截 28.4px
          缩字号救不了：9px 时 `THB 1,234.56` 仍要 114.3px > 111.3。

          改法：允许换行（`white-space:normal` + `text-overflow:clip`），最多占两行。
          钱包卡是 90px 定高 + overflow:hidden，实测内容列底部距卡底 **14.2px**，
          第二行需要 13.2px —— 装得下。用 `max-width:70px` 强制换成两行实测，
          内容列溢出卡片 **0px**。这样无论金额多大都不会再吞数字。 */
    @media (max-width: 379.98px) {
      #root#root .player-shell.lang-my .bonus-mini {
        white-space: normal !important;
        text-overflow: clip !important;
      }
    }

    /* 17) 320 宽缅文：权益卡标题断在音节中间 —— `ကစားသမာ` / `း` / `အကျိုးခံစာ` / `းခွင့်`，
          第二行只有一个孤零零的 `း`（声调符号被拆离它的辅音）。

          根因是 `overflow-wrap: anywhere`：缅文没有空格，整串算一个「词」，
          而 `anywhere` 允许在**任意位置**断开，包括音节内部。
          卡片文字列在 320 宽下只有 62px，所以断了 4 行。

          试过但不行的改法（都实测过）：
            · `overflow-wrap: break-word` → 断行位置完全没变（词仍然放不下，照样任意断）
            · 只把 `overflow-wrap` 改回 `normal` → 断行干净了（2 行、无孤字），
              但最长音节 80.5px > 列宽 62px，**横向溢出 18.5px**
            · 把图标从 38px 缩到 26–30px 腾宽 → 列宽最多到 76px，仍溢出 4.5px
          能同时满足「不拆音节 + 不横向溢出」的只有再缩字号：
            12px→9px 时两行宽 46.8 / 60.3，都在 62px 内，横向溢出 0。

          限定 **≤339.98px**：实测 360 / 375 宽下断行本来就是干净的（无孤字），
          没必要在那里也缩字号。390 以上更不受影响。
          实测结果：孤字行 0、横向溢出 0、两张卡仍**等高**（95px），文字不出卡。 */
    @media (max-width: 339.98px) {
      #root#root .player-shell.lang-my .authenticated-benefit-card :is(strong, small) {
        overflow-wrap: normal !important;
      }
      #root#root .player-shell.lang-my .authenticated-benefit-card strong {
        font-size: 9px !important;
      }
    }

  /* 18) 【全语言、全宽度】游戏页「Providers」筛选行被压成**竖排单字**，整行读不了。
        22 个按钮全部 `flex: 0 1 auto; min-width: 0`，抢一行被压到 **22px 宽**；
        左右内边距各 10px，**内容区实际只剩 2px**，于是每个字母各占一行
        （截图里是 `A/l/l`、`o/g/a/M/i` 这样竖着排）。
        实测 320 / 412 / 430 三个宽度、中英缅四语一致：22 个按钮里 **21 个文字被截**。

        这一行本来就是 `overflow-x: auto`（横向可滚），压根不需要压缩：
        改成按内容取宽度即可，滚动条替它承担长度。
        实测：截断 21 → **0**，按钮宽 22px → 41.3–194.7px，行高仍是 42px，
        列表 scrollWidth 652 → 3469（横滚变长，符合预期）。
        这条**不分语言**，因为英文同样中招。 */
  #root#root .game-provider-filter-list > button {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
  }

  /* 19) 【全语言】钱包页汇率小字 `.wallet-vip-total-rate-note` 被**无声切掉**。
        它是 `nowrap + overflow:hidden + text-overflow:clip` —— 没有省略号，直接吞字。
        实测 412 宽下需要 342px，容器只有 232.8px：
          英文 `Includes THB cash conversion · Current rate 33.00 = 1 USD` → 切 **110px**
          缅文 `THB ငွေသားပြောင်းလဲမှု ပါဝင်သည် · လက်ရှိနှုန်း…`        → 切 **109px**
          高棉 → 切 2.4px；泰文文案短，不切。
        换行救不了：它的高度被钉死 18px，换行后第二行落在盒子外 8.5px（照样看不见）。
        改法是缩字号 + 把右侧预留从 86px 放宽到 40px（那块是王冠水印，本来就压着字）：
          12px → 9px、`max-width: calc(100% - 40px)` → 容器 278.8px，实测**溢出 0**。
        （单缩字号到 8px 也能归零，但 9px 更好读，故取放宽预留这条。） */
  /* 【v16 改】上面「换行救不了」是因为只放开了文字、没放开高度。v16 把小字本身的 18px 和
        卡片 .wallet-vip-cash 的定高一起改成随内容长（第 32 条），换行就能看见了，
        所以撤掉缩字号，回到主题原字号，放不下就折成两行。 */
  #root#root .wallet-vip-total-rate-note {
    max-width: calc(100% - 40px) !important;
    white-space: normal !important;
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.4 !important;
    overflow: visible !important;
  }

  /* 20) 【全语言】钱包页底部 `.auto-convert-note strong` 同样被无声切掉。
        缅文 `ပြည့်လျှင် ငွေသားအဖြစ် အလိုအလျောက်ပြောင်းမည်` 需 306px，容器 254.8px → 切 **51px**
        （截图里两端带竖线断口的那一行）。英/泰/高棉文案短，不切。
        它外层不是定高，允许换行即可：实测换行后两行、切 0，
        所在卡片高度 255.4px **不变**，文字未出卡。 */
  #root#root .auto-convert-note strong {
    white-space: normal !important;
  }

  /* 21) 320 宽下钱包三个操作按钮的标签叠字（高棉最重：`មជ្ឈមណ្ឌល QR` 叠 4.1px，
        泰/缅/老约 1px）。按钮定高 64px，内容区 55px，图标 31px + 标签两行。
        单缩字号没用（行距是固定 px，不随字号走）：10→9→8px，叠字 4.1→3.6→3.7px。
        单抬行距会把标签顶出按钮 4.5px，而且旁边两个反而更糟（1px→4px）。
        能同时归零的组合：**图标 31→22px + 标签 10→9px + 行距 1.5**，
        腾出的 9px 正好装下抬高后的两行。
        实测缅、高棉两语三个按钮：叠字全部 **0**，无裁切、无横向出界，按钮仍是 64px。
        只在 ≤339.98px 生效 —— 360 以上本来就不叠。 */
  @media (max-width: 339.98px) {
    #root#root .player-shell.lang-th .wallet-actions > button > :first-child,
    #root#root .player-shell.lang-my .wallet-actions > button > :first-child,
    #root#root .player-shell.lang-lo .wallet-actions > button > :first-child,
    #root#root .player-shell.lang-km .wallet-actions > button > :first-child {
      width: 22px !important;
      min-width: 22px !important;
      height: 22px !important;
    }
    #root#root .player-shell.lang-th .wallet-action-label,
    #root#root .player-shell.lang-my .wallet-action-label,
    #root#root .player-shell.lang-lo .wallet-action-label,
    #root#root .player-shell.lang-km .wallet-action-label {
      font-size: 9px !important;
      line-height: 1.5 !important;
    }
  }

  /* 22) 我的页「下线概览」四语叠字 2px + 裁切 2.1px。
        **上一轮我说"必须改整页栅格"，那个判断是错的。**
        当时我给 `.downline-overview` 加 `height:auto` 没生效，就归因于父级
        `.profile-page` 的 `grid-template-rows` 把这一行钉死 87px —— 钉死是事实，
        但结论不对：87px 里其实有富余，只是被内边距和固定行高吃掉了，
        **不用动栅格，把富余抠出来就够。**

        87px 里原本的分配：外层上下内边距 10+10、标题行 23px、
        标题行下外边距 3px、指标区 45px（`article` 也被写死 45px）。
        抠出来的空间：外层内边距 10/10 → 6/4（省 10px）、标题行外边距 3 → 0（省 3px）、
        `article`/指标区高度改回 auto、左右内边距 6 → 0（腾宽，让 3 行文案少折一行）、
        数字 `strong` 15px → 13px 且行距 1.05（省约 5px）。
        腾出的空间用来把说明文字 `small` 的行距抬到 1.45（缅文墨迹刚好需要这个比例）。

        线上实测（缅 320/390/412/430 + 泰 320 + 高棉 320）：
        **叠字 2 → 0，裁切 2.1 → 0，横向出界 0，区块仍是 87px（栅格一行没改）。** */
  @media (max-width: 480px) {
    #root#root .player-shell.lang-th .downline-overview,
  #root#root .player-shell.lang-my .downline-overview,
  #root#root .player-shell.lang-lo .downline-overview,
  #root#root .player-shell.lang-km .downline-overview {
      padding-top: 6px !important;
      padding-bottom: 4px !important;
    }
    #root#root .player-shell.lang-th .downline-overview > .section-row,
  #root#root .player-shell.lang-my .downline-overview > .section-row,
  #root#root .player-shell.lang-lo .downline-overview > .section-row,
  #root#root .player-shell.lang-km .downline-overview > .section-row {
      margin-bottom: 0 !important;
    }
    #root#root .player-shell.lang-th .downline-overview-metrics,
  #root#root .player-shell.lang-my .downline-overview-metrics,
  #root#root .player-shell.lang-lo .downline-overview-metrics,
  #root#root .player-shell.lang-km .downline-overview-metrics {
      height: auto !important;
    }
    #root#root .player-shell.lang-th .downline-overview-metrics > article,
  #root#root .player-shell.lang-my .downline-overview-metrics > article,
  #root#root .player-shell.lang-lo .downline-overview-metrics > article,
  #root#root .player-shell.lang-km .downline-overview-metrics > article {
      height: auto !important;
      min-height: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
    #root#root .player-shell.lang-th .downline-overview-metrics > article > strong,
  #root#root .player-shell.lang-my .downline-overview-metrics > article > strong,
  #root#root .player-shell.lang-lo .downline-overview-metrics > article > strong,
  #root#root .player-shell.lang-km .downline-overview-metrics > article > strong {
      font-size: 13px !important;
      line-height: 1.05 !important;
    }
    #root#root .player-shell.lang-th .downline-overview-metrics > article > small,
  #root#root .player-shell.lang-my .downline-overview-metrics > article > small,
  #root#root .player-shell.lang-lo .downline-overview-metrics > article > small,
  #root#root .player-shell.lang-km .downline-overview-metrics > article > small {
      line-height: 1.45 !important;
    }
  }

  /* 23) 桌面端（>480px）也扫了一遍 —— 之前所有规则都锁在 ≤480px，桌面从没量过。
        缅甸语 1280 宽逐页扫描结果：优惠页 0 处、我的页 0 处、游戏页 0 处、
        厂商筛选也正常（桌面不走那个压缩布局），**只有首页钱包的三个操作按钮标签叠字 2.8px**。
        （所以桌面整体比手机干净得多，这条是唯一一处。）

        它和手机版不是同一个元素：桌面走 `.wallet-action-label-stacked > span`，
        高棉语则直接在 `.wallet-action-label` 上，所以两个都要覆盖。
        试过 `white-space: nowrap` → 叠字归零但高棉「មជ្ឈមណ្ឌល QR」横向冲出按钮 6.2px；
        只抬行距 1.45 → 叠字剩 0.1px，但标签往下多探 3.7px。
        取 **10px + 行距 1.45**：存款/取款标签变回**单行**、叠字 0、
        且**不再往按钮下方探出**（原本就探出 3.7px，现在是 0）；
        高棉 QR 仍两行但叠字 0、探出 5px、无横向出界。 */
  @media (min-width: 481px) {
    #root#root .player-shell.lang-th .wallet-action-label,
  #root#root .player-shell.lang-my .wallet-action-label,
  #root#root .player-shell.lang-lo .wallet-action-label,
  #root#root .player-shell.lang-km .wallet-action-label,
  #root#root .player-shell.lang-th .wallet-action-label > span,
  #root#root .player-shell.lang-my .wallet-action-label > span,
  #root#root .player-shell.lang-lo .wallet-action-label > span,
  #root#root .player-shell.lang-km .wallet-action-label > span {
      font-size: 10px !important;
      line-height: 1.45 !important;
    }
  }

  /* 24) 游戏页「分类条」标签被切 —— v7 的改法有副作用，本版按语言分开。
        分类条是 grid，6 列 × 45.66px 写死，标签可视宽只有 39.7px，
        原本 `nowrap + text-overflow: clip`（没有省略号，直接切）：
          泰文 `แนะนำสำหรับคุณ` 切 34px、缅文切 23px、英文 `Cockfight` 切 9px —— 不分语言。

        ❌ v7 的改法：对**所有语言**允许换行。泰缅确实好了，但英文出事：
           这里继承了 `overflow-wrap: anywhere`，`Cockfight` 被从词中间断成
           `Cockfigh` / `t` 两行。拉丁文可以按词换行，但只有一个词时就只能从中间断。

        ✅ 本版按文字系统分开：
           · 所有语言先把字号从 11px 压到 **8.5px**。实测最长的英文标签
             `Cockfight` 在 8.5px 下需 39.6px ≤ 可视宽 39.7px —— **一行放得下，不用换行也不用切**。
           · 泰/缅/老/高棉再叠加换行 + 1.45 行距：这四种文字没有空格，
             再怎么缩也塞不进一行（泰文 8.5px 仍需 ~57px），必须换行；
             而换行就会叠字，所以配 1.45 行距。
        实测（英/泰/缅 × 320）：切 0、叠字 0（泰缅 0.2px，亚像素）、不探出按钮、
        英文全部单行不断词、分类条总高仍是 168px。 */
  @media (max-width: 480px) {
    #root#root .category-strip > button > span {
      font-size: 8.5px !important;
      white-space: nowrap !important;
      text-overflow: ellipsis !important;
    }
    #root#root .player-shell.lang-th .category-strip > button > span,
    #root#root .player-shell.lang-my .category-strip > button > span,
    #root#root .player-shell.lang-lo .category-strip > button > span,
    #root#root .player-shell.lang-km .category-strip > button > span {
      white-space: normal !important;
      line-height: 1.45 !important;
    }
  }

  /* 25) 游戏卡标题被**无声切断** —— 这条影响面最大，而且不分语言。
        `article.game-card .game-meta strong` 是 `nowrap + text-overflow: clip`。
        320 宽下卡片 94.7px、meta 左右内边距各 12px，标题可视宽只有 **64px**。
        抽样 80 张：**71 张被切**，最狠的 `Honey Trap of Diao…` 切掉 75px，
        而且因为是 clip 不是 ellipsis，**玩家看不出来名字被切了**。

        三处一起改（都实测过）：
          a) meta 左右内边距 12px → 6px（腾 12px）
          b) 标题外面那层 div 加 `min-width:0; flex:1 1 auto`
             —— 不加这个，flex 子项的 min-content 下限会顶住，腾出来的宽用不上
             （实测只改 a 的话可视宽仍是 64px，加了 b 才涨到 80.7px）
          c) `text-overflow: ellipsis` —— 装不下的至少要看得出来被切了
        实测（英/泰/缅 × 320）：可视宽 64 → **80.7px**，被切 71 → 57 张、
        最大切幅 75 → 63px，且全部带省略号；**卡片高度 97.1px 不变**。

        说明：这条**没有把所有名字都变完整** —— 三列布局下不可能。
        它做的是「多露 16.7px + 切了要看得出来」。要彻底解决得改成两列或让标题折行，
        那是版式决定，不在本次范围。 */
  @media (max-width: 480px) {
    #root#root .game-card .game-meta {
      padding-left: 6px !important;
      padding-right: 6px !important;
    }
    #root#root .game-card .game-meta > div {
      min-width: 0 !important;
      flex: 1 1 auto !important;
    }
    #root#root .game-card .game-meta strong {
      text-overflow: ellipsis !important;
      min-width: 0 !important;
    }
  }


  /* 27) 注册页（及登录页、游客工具页、客服页）左上角返回键，在 App 内置浏览器里被推到标题下面，
        正好压住步骤条的「1」。用户实测：Google Chrome 打开正常，Telegram 等内置浏览器打开就压。

        根因：四个旧样式表（guest-navigation-back-unified-v1/v2、
        guest-navigation-register-ios-scroll-v3、register-success-polish-v4）都写了
          top: calc(env(safe-area-inset-top) + 11px) !important;
        · Chrome：页面不画到状态栏下面，安全区报 0 → top = 11px，正常。
        · 内置浏览器（页面声明了 viewport-fit=cover）：会把手机状态栏高度（约 40px+）当安全区报上来，
          但它的网页区域其实本来就在自家标题栏下面，根本没被遮挡 →
          只有返回键被多推了一截，同一行的标题和语言按钮都没动，于是按钮掉出 58px 高的标题栏，压住下一行。

        为什么只改返回键、不给整个标题栏加安全区：标题和语言按钮从来没加过安全区，
        返回键应该和它们用同一个坐标系；否则在内置浏览器里整个标题栏都会凭空多出一截空白。

        实测（360 宽，用一条同等优先级的规则模拟 46px 安全区）：
          修前 返回键 top 57px、底边 91px（标题栏只有 58px 高）→ 掉进步骤行
          修后 返回键 top 11px、中心 28px，语言按钮中心 27px → 同一水平线
          Chrome（安全区 0）修前修后都是 11px，不受影响。
        写在 vip-source-lock 层里：旧规则都是未分层的 !important，分层的 !important 必然压过它们。
        不加 #root 前缀：客服页返回键在 #root 外的浮层里，加了就匹配不到。 */
  /* ⚠️ 2026-09-16 v12 收窄：v11 把下面第 2–4 类也一起钉到 11px，结果客服页返回键冒出标题栏
        （用户截图：Chrome 里客服中心返回键偏高）。那几类原本由更具体的规则垂直居中
        （top: calc(env() + 28px) 配合 translateY(-16px)，中心 28px），11px 把中心拉到 11px，
        按钮顶边到了 -5px。它们没有经过实测就被我顺手加进来了 —— 这是错的。
        现在只保留实测过、确实会被推出标题栏的注册/登录页返回键。 */
  html body .login-action-screen .standalone-page-header > .standalone-back-button {
    top: 11px !important;
  }

  /* 28) 钱包页（?action=wallet-page）返回键，在内置浏览器里比标题高 17px。

        怎么查出来的：第 27 条之后，把线上所有含 env(safe-area-inset-top) 的规则（218 条）
        复制一份、把 env 换成 46px 追加到页面末尾，模拟「内置浏览器把状态栏当安全区」，
        逐页量返回键中心和同一行标题中心的差。结果：
          充值 / 提现 / 银行 / 实名 / 二维码中心 / 兑换 / 推荐中心 / 红包 / 游戏记录 / 代理中心 / 客服
            → 整个标题栏一起下移，返回键与标题始终同一水平线（差 0），不用改；
          设置页 → 不受安全区影响；
          **钱包页 → 标题栏从 68px 长到 102px，标题居中跟着下移到 50.5px，
            返回键却还钉在 top:14px（中心 34px），高出 17px。**

        钱包页标题栏是 grid + align-items:center，标题本来就垂直居中；返回键是 absolute + 固定 top。
        改法：返回键也按标题栏垂直居中（top:50% + translateY(-50%)）。
        实测：模拟条件下 返回键中心 50.5px = 标题 50.5px；正常条件下 33.5px（原 34px，差 0.5px）。 */
  html body .wallet-vip-topbar > .wallet-vip-back {
    top: 50% !important;
    transform: translateY(-50%) !important;
  }

  /* 29) 充值页选通道那一步，部分手机上 YZPay、MöbiusPay 两行「消失」，只剩「银行充值 — 维护中」，
        等于玩家没有可用的充值方式。用户拍来的三星浏览器照片（2026-09-17）。

        不是浏览器太旧、也不是脚本没跑：两行都生成了，是被裁掉的。
        · `.deposit-page > .player-action-page-content` 是定高网格（calc(100dvh − 56px − 安全区)），行高是 auto；
        · 内容超过一屏时，auto 行按「最小内容」收缩，而通道框 `.deposit-method-actions` 是
          overflow:hidden + min-height:92px，它的最小内容就等于 92px ——
          于是三行 276px 的通道框被压成 92px，只露出第一行「银行」，后两行被裁；
        · 提示框同样被压，字一大就冒出框外（照片里「บันทึกประวัติ」出框）。
        只在「内容超过一屏」时发作：屏幕矮（三星浏览器上下都有工具栏）、或系统字体调大的手机才中招，
        正常手机一屏装得下，所以大多数人看不到。和 funding-page-fixes 修过的充值表单页是同一个病，那次没覆盖到这一页。

        改法：网格行按内容取高（grid-auto-rows:max-content），多出来的交给本来就有的 overflow-y:auto 去滚。
        实测（360 宽）：
          520 高  通道框 92 → 277px，YZPay / MöbiusPay 不再被裁，页面可滚 698 > 464
          520 高 + 整页放大 1.3 倍（模拟字体调大） 通道框 120 → 360px，全部不裁
          780 高（一屏装得下）修前修后逐项一致 */
  html body .player-action-shell .deposit-page > .player-action-page-content {
    grid-auto-rows: max-content !important;
  }

  /* 30) 好友页底部「输入玩家ID ｜ 扫码 ｜ 添加好友」一行，在 ≤370px 宽的手机上两个按钮被裁掉、也滑不到。
        体检结果：泰/缅/高棉/老/英五语在 320×480 全部中招（裁 48–49px），360×640 大字也中招。
        原因：theme 里 @media(max-width:370px) 给输入框写了 grid-column:1/-1（独占一整行），
        把两个按钮挤到第二行；但同一行又被另一条规则钉死 height:44px + overflow:hidden（三列单行布局），
        第二行整个被切掉。两条规则各自的设计互相矛盾。
        改法：输入框回到第一列，恢复三列单行的设计（输入框 1fr ｜ 扫码 65px ｜ 添加 69px）。
        实测 320×480 泰文：一行 44px 高，两个按钮完整、字不切，体检 0 问题。 */
  html body #root .friends-page .friend-vault-add-row > label {
    grid-column: auto !important;
  }

  /* 31) 钱包页（?action=wallet-page）三处，体检在 320×480 与 360×640 大字下查出：
        a) 「剩余流水 ยอดเทิร์นคงเหลือ ฿0.00」标签被无声切掉 13–24px（nowrap + overflow:hidden，无省略号）
           → 标签允许换行，金额本身保持不换行。换行只在放不下时发生、优先按词断（break-word），
             不用 anywhere —— 缅文会被 anywhere 拆开声调符号。
        b) 右上角币种按钮里的「THB」冒出自身盒子 3–16px：flex 把文字格压窄了
           → 文字不收缩，按钮内间距 10px → 6px 腾位置。
        c) 流水记录标题（如「โอนให้: PLAYER091998972」）无省略号直接切 → 加省略号。
        实测：泰 320×480 / 360×640 大字 / 390 / 430，缅、高棉 320×480 —— 这三处全部清零，未引入新问题。 */
  html body #root .balance-stats.balance-amount-grid > span {
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  html body #root .balance-stats.balance-amount-grid > span > strong {
    white-space: nowrap !important;
  }
  html body #root .wallet-vip-currency {
    gap: 6px !important;
  }
  html body #root .wallet-vip-currency > b {
    flex-shrink: 0 !important;
  }
  html body #root .wallet-ledger-copy > strong {
    text-overflow: ellipsis !important;
  }

  /* 32) 钱包页现金卡：height 写死 + overflow:hidden，汇率小字换行后被切（见第 19 条）；「Game credit」冒出格子。
        → 卡片与资产行随内容长（原高度仍是最小值），资产名允许换行。
        【v17 改】v16 这里还把「币种 ｜ Withdraw ｜ Deposit」的按钮列宽改成按文字宽、窄屏去图标 ——
        用户明确不要改按钮尺寸（治标）。v17 起窄屏手机整体等比缩放到 390 排版（壳里的 viewport 脚本），
        按钮保持原尺寸，放不下只在按钮里缩字号。 */
  html body #root#root .wallet-vip-cash,
  html body #root#root .wallet-vip-asset-meta,
  html body #root#root .wallet-vip-asset-details {
    height: auto !important;
  }
  html body #root#root .wallet-vip-asset-details > span > small {
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  /* 33) 实名页（?action=kyc-status）。
        a) 「实名 / 银行 / 账号 / 手机」四行：标签列写死 78px（窄屏 70px）且不换行，
           英文「Mobile number」要 98px，直接压在右边的号码上（390 宽叠 20px、320 宽叠 28px）；
           泰文「เลขบัญชีธนาคาร」、缅文同样叠。
           → 标签列改成「按内容宽，最多 45%」，超出就换行；行高随内容长。
        b) 「验证的用途」卡：卡片 height 写死 204px、每行写死 50px + overflow:hidden，
           窄屏说明文字折成两行后被切（全部 6 种语言，320 与 390 宽都中招，最多切 32px）。
           → 卡片与每行改成随内容长，每行至少仍是 50px。
        实测英文 320 / 390：清零。 */
  html body #root#root .identity-tool-page .identity-detail-row {
    height: auto !important;
    grid-template-columns: 38px fit-content(45%) minmax(0, 1fr) !important;
  }
  html body #root#root .identity-tool-page .identity-detail-row small {
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
  html body #root#root .identity-tool-page .identity-purpose-card {
    height: auto !important;
  }
  html body #root#root .identity-tool-page .identity-purpose-list {
    grid-template-rows: none !important;
    grid-auto-rows: minmax(50px, auto) !important;
  }
  html body #root#root .identity-tool-page .identity-purpose-list > div {
    height: auto !important;
  }

  /* 34) 转账页金额框右侧的币种下拉：格子 76px，下拉框自己却写死 120px（picker-v3），右边 44px 连同上下箭头被切掉。
        【v17】v16 把格子加宽到 120px —— 改了布局，撤回。改成下拉框在 76px 格子里放下：
        宽度跟格子走，字号 16→14px，左右内边距收窄，箭头图标缩小贴右。 */
  html body #root#root .transfer-entry-field .input-with-suffix > select.member-transfer-currency-picker-v1 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: none !important;
    font-size: 14px !important;
    padding: 0 22px 0 4px !important;
    background-position: right 6px center !important;
    background-size: 13px 18px !important;
  }

  /* 35) 银行页顶部说明「Only your linked bank details…」不换行 + overflow:hidden，无省略号直接吞字
        （英文 320 切 6px、缅文切 29px）。它所在的行高度本来就随内容，放开换行即可。实测英文 320：清零。 */
  html body #root#root .bank-template-summary > div > span {
    white-space: normal !important;
  }

  /* 36) 【v17 撤回】v16 把「我的」页三个标签按文字重新分配宽度（改按钮尺寸，用户不要）；
        整体缩放后 320/360 手机按 390 排版，390 下原宽度不溢出。 */

  /* 37) 红包页顶部横幅：height 写死 116px + overflow:hidden，英文说明三行放不下，被切 42px。
        → 随内容长（至少仍 116px）。实测英文 320：清零。 */
  html body #root#root .red-packet-page-hero {
    height: auto !important;
  }

  /* 38) 客服页（/player-support）还没选问题类型时，整块是 overflow:hidden，
        「选择你需要的帮助」引导的下半截在矮屏上被切掉，而且**滑不动**。
        按内容算，可视高度低于约 610px 的手机都会中招（iPhone SE 去掉地址栏约 548px）。
        → 这一块允许上下滑；引导那一行在高屏上照旧撑满（内容多时按内容高）；
          底部快捷按钮贴底不动。只作用在未开始会话的状态（support-session-pending）。
        实测 320×480：可以滑到底、快捷按钮一直在底部；390×844：布局与改前逐像素一致（快捷按钮 top 789 不变）。 */
  html body .support-chat.standalone.support-session-pending {
    overflow-y: auto !important;
    overscroll-behavior: contain;
    grid-template-rows: auto auto minmax(max-content, 1fr) auto auto auto auto !important;
  }
  html body .support-chat.standalone.support-session-pending > .chat-quick {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 3 !important;
    background: inherit;
  }

  /* 39) 撤下自动缩字后，按 390 排版（整体缩放后所有窄屏手机都是这个宽度）仍放不下的几处，固定缩字号：
        a) 转账页快捷金额「1,000 / 5,000」：22px 在 57px 格子里被拆成「1,00 / 0」→ 14px 且不换行（6 种语言都中招）
        b) 转账页「Transferable now」19px 被拆词 → 16px
        c) 钱包页「Withdraw」15px 被切 5px → 13px（Deposit 同一行一起缩，保持一致）
        d) 英文「Scan to transfer」按钮 transfer 被拆词 → 13px
        e) 英文钱包「Withdrawable」标签 10px 被拆成「Withdraw / able」→ 9px（下面的金额字号不变）
        实测英文 390×585 / 430×932、缅文 390×585 / 390×844 / 430×932：全部清零。 */
  html body #root#root .transfer-quick-amounts > button {
    font-size: 14px !important;
    white-space: nowrap !important;
  }
  html body #root#root .transfer-balance-inline > span {
    font-size: 16px !important;
  }
  html body #root#root .wallet-vip-actions button {
    font-size: 13px !important;
  }
  html body #root#root .player-shell.lang-en .transfer-entry-modal button.subtle-button {
    font-size: 13px !important;
  }
  html body #root#root .player-shell.lang-en .balance-stats.balance-amount-grid > span {
    font-size: 9px !important;
  }

  /* 40) 好友页是「整屏固定」设计：html/body/main 都 overflow:hidden，页面里四块定高（45+221+325+82≈716px）。
        高屏放得下；小屏手机整体缩放到 390 宽后可视高只有 585px（320×480 机型），底部「添加好友 / 扫码添加」
        被切掉且滑不动（6 种语言都中招；大字号 390×693 同样）。
        → 好友页内容超出时允许上下滑。高屏（390×844、430×932）scrollHeight==clientHeight，不会出现滚动，外观不变。
        实测 390×585：问题 22→0，滑到底添加栏完整可见；390×693 大字：13→0。 */
  html body #root#root .content-page.friends-page {
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  /* 41) 优惠页奖励文字里的「剩余 N 次」徽标不换行，大字号下冒出格子 4–6px（泰/缅/高棉）→ 允许换行。 */
  html body #root#root .promo-offer-reward .wcw-badge {
    white-space: normal !important;
  }

  /* 42) 钱包页汇率小字：现金卡是 6 行网格，第 3 行写死 18px（wallet-inner-only-fix-v10），
        小字本身写 height:auto 也会被网格行撑回 18px；大字号时两行文字冒出 11–16px 压到下面的金额。
        → 只把第 3 行改成「至少 18px，放不下就长」。只作用在带汇率小字的 6 行布局（:has），其他写法不动。
        实测 390×844 / 430×932 / 390×585 卡片高度不变（328 / 350 / 328px），390×693 大字号问题清零。 */
  html body #root#root .wallet-page article.balance-card.cash.wallet-vip-card.wallet-vip-cash:has(> .wallet-vip-total-rate-note) {
    grid-template-rows: 42px 22px minmax(18px, auto) 56px 54px 58px !important;
  }

  /* 43) 「我的」页首帧假数据（玩家录屏）：主包先画 现金/奖金/可提现 = ฿ 0.00、总资产 0.00 USD、
        流水状态「已完成」、流水进度 100%、流水金额 ฿ 0.00，约 0.2–1 秒后钱包数据到了才跳成真实值。
        钱包脚本接管后会给金额打 data-ruay55-wallet-owner="profile-cash-v1"（与首页 v12 同一套思路：按接管标记判断，
        不能按「有没有数字」判断，假 0.00 也是数字）。
        → 接管标记出现前，这几处 visibility:hidden（占位保留，布局不跳）；出现后立即显示。
        保险：player-profile-first-paint-guard-v2 在 6 秒仍无标记时给 <html> 打 data-ruay55-profile-fp-timeout，这条随即失效、照常显示
        （主题对这些元素写了 animation:none!important，CSS 延时兜底无效，所以用脚本）。
        不支持 :has 的旧浏览器整条规则不生效，行为同改前。 */
  html:not([data-ruay55-profile-fp-timeout]) body #root .profile-page:not(:has([data-ruay55-wallet-owner="profile-cash-v1"])) :is(
    .profile-balance-status strong,
    .profile-wallet-heading strong,
    .profile-turnover-title > span,
    .profile-turnover-ring,
    .profile-rollover-values strong
  ) {
    visibility: hidden !important;
  }


  /* 44) 顶栏右侧按钮组在 761–900px 被一条 max-width:224px 卡死，里面币种 72 + 语言 128 + 头像 43 + 间距 ≈ 255px，
        头像菜单被推出屏幕右边约 17–31px 切掉。≤760 另有 max-width:none 所以手机不中招。
        平板已由 viewport v2 改按 760 排版避开；这条兜住电脑浏览器窗口拉到这个宽度的情况。 */
  @media (min-width: 760.02px) and (max-width: 900px) {
    html body #root#root .player-shell .top-actions {
      max-width: none !important;
    }
  }

  /* 45) 电脑版首页钱包卡（≥901px）标题和三个按钮左右并排，卡片只有 350 / 410px 宽，余额文字只剩 86 / 146px：
        THB 2,006.20（25px）在 901–1279px 压到「THB 充值」按钮上 22–54px，余额更多位时 1280 以上也压。
        卡片高度跟轮播图一样（200–530px），竖向空间充足 → 余额在上、按钮在下。
        按钮保持原来的 210px 一组（每个约 65px），不加宽。 */
  @media (min-width: 901px) {
    html body #root#root .app-shell.player-shell .hero-grid > .wallet-summary {
      grid-template-columns: minmax(0, 1fr) !important;
      grid-template-rows: auto auto !important;
      align-content: center !important;
      row-gap: 14px !important;
    }
    html body #root#root .app-shell.player-shell .hero-grid > .wallet-summary > .wallet-title {
      grid-column: 1 !important;
      grid-row: 1 !important;
      min-width: 0 !important;
    }
    html body #root#root .app-shell.player-shell .hero-grid > .wallet-summary > .wallet-actions {
      grid-column: 1 !important;
      grid-row: 2 !important;
      justify-self: start !important;
      width: 210px !important;
      max-width: 100% !important;
    }
  }

  /* 46) 设置页标题栏写成 width:100vw + margin-left:calc((100vw - 100%) / -2) 铺满整个窗口（手机版做法），
        电脑版左边有 232px 侧边栏，于是标题栏左移到侧栏底下，「返回我的」按钮被侧栏盖住（1180–1440px 完全看不到）。
        → 有侧边栏时（≥901px）标题栏只占设置页自己的宽度。 */
  @media (min-width: 901px) {
    html body #root#root .player-shell .settings-page .page-heading {
      width: auto !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
    }
  }

  /* 47) 兑换页金额框：两列（输入框 | 币种 USD）只写在 ≤580px 里，更宽时退成一列，USD 掉到输入框下面被 overflow:hidden 切掉看不见
        （平板、电脑、手机横屏都中招，6 种语言）。→ >580px 也用「输入框 + 58px 币种」两列（≤580 原规则不动）。 */
  @media (min-width: 580.02px) {
    html body #root#root .player-action-shell .exchange-tool-page .funding-input {
      grid-template-columns: minmax(0, 1fr) 58px !important;
    }
  }


  /* 48) 游戏页分类标签（Popular / For you / Slots…）在 ≥1100px 电脑版被 player-profile-desktop-theme-v2 的
        「所有按钮 min-width:0」允许压扁，英文 / 泰文等长词被压成每行两三个字母（Pop|ular、Car|ds），1100–1280px 最明显。
        → 标签不压缩（保持文字本来的宽度、单行），一行放不下就换到第二行。不改标签本身尺寸。 */
  @media (min-width: 901px) {
    html body #root#root .player-shell .category-strip {
      flex-wrap: wrap !important;
      row-gap: 8px !important;
    }
    html body #root#root .player-shell .category-strip > button {
      flex: 0 0 auto !important;
    }
    html body #root#root .player-shell .category-strip > button > span {
      white-space: nowrap !important;
    }
  }

  /* 49) 优惠页右栏「其他优惠」列表：电脑版这一栏只有约 320px，但每行写死「50px 图标 | 标题 | 至少 150px 奖励 | 22px 箭头」，
        标题只剩 18px 宽，英文 Lucky / Wheel / First deposit bonus 被逐词拆行（1100px 最明显）。
        → 901–1279px 用手机同一套列宽（42 | 标题 | 至少 94 | 16），标题约 89px。≥1280 栏宽够，保持原样。 */
  @media (min-width: 901px) and (max-width: 1279.98px) {
    html body #root#root :is(.player-shell, .guest-shell) .promotions-redesign .promo-offer-row {
      grid-template-columns: 42px minmax(0, 1fr) minmax(94px, .75fr) 16px !important;
    }
  }

  /* 50) 游戏卡名字：481–900px（平板按 760 排版、手机横屏）卡片约 150–237px 宽，但名字和「返利」标签左右挤一行，
        英文「Own rebate reward 0.5%」标签占掉 115px，名字只剩 92px：721 张卡里 217 张名字被无声切掉，
        自动缩字已缩到 8.5px 仍放不下。→ 名字单独一行、标签换到下一行，名字加省略号兜底。
        实测 760px：被切 217→4 张（带省略号），名字恢复 12px，卡片 185→210px 高（内容自然撑高，不溢出）。
        ≤480 仍用第 25 条（三列小卡，名字与标签同行）。 */
  @media (min-width: 480.02px) and (max-width: 900px) {
    #root#root .game-card .game-meta {
      flex-wrap: wrap !important;
      row-gap: 4px !important;
    }
    #root#root .game-card .game-meta > div {
      min-width: 0 !important;
      flex: 1 1 100% !important;
    }
    #root#root .game-card .game-meta strong {
      text-overflow: ellipsis !important;
      min-width: 0 !important;
    }
  }

  /* 51) 代理中心顶部「15% → 40%」：581–900px 被通用「工具页图标方块 58×58」规则套中（≤580 与 ≥901 各有专门样式，中间没有），
        文字在 58px 方块里折成三行、冒出方块 16px。→ 单行、13px、高度随内容。方块宽度不变。 */
  @media (min-width: 580.02px) and (max-width: 900px) {
    html body .player-action-shell .agent-center-hero > span {
      height: auto !important;
      min-height: 58px !important;
      white-space: nowrap !important;
      font-size: 13px !important;
    }
  }


  /* 52) 推荐中心电脑版两栏写死最小宽度 minmax(420px) + minmax(640px) + 间距 22 = 1082px，
        1100–1177px 窗口里内容区只有 1004–1081px，整页右边 78px 被切掉（「直属分支」、流水金额、底部按钮都缺一截）。
        平板横屏按 1100 排版后正好落在这里。→ 1100–1199px 两栏按比例分，不设最小宽度；实测 1100px 右侧溢出 78→0。 */
  @media (min-width: 1100px) and (max-width: 1199.98px) {
    html body #root#root .referral-tool-page > .player-action-page-content {
      grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr) !important;
    }
  }


  /* 53) 兑换页顶部「USD → THB」说明块：内容区是定高网格（712px），说明块 overflow:hidden + min-height:0，
        内容一多网格就把它压扁到 44px（同「定高 grid 压扁 overflow:hidden 子块」）。缅甸语三行字：自动缩字缩到 6.5 / 7.5px 仍切掉最后一行。
        >580px 全部宽度都这样（6 语中缅甸语最明显）。→ 说明块至少按内容高。实测 1366×768 缅甸语 44→72px、字号恢复 9/17/10.5px，
        中文英文 82px 不变，确认按钮仍在屏内（744 < 768）。 */
  @media (min-width: 580.02px) {
    html body #root#root .player-action-shell .exchange-tool-page .tool-hero.exchange {
      min-height: max-content !important;
    }
  }

}
