/* ══════════════════════════════════════════════════════════════════════
   BUILD 128
   ① 骰宝:左边那一栏(骰盅 + 近 100 场柱状)拿走,台面占满整个宽度;
      摇盅 / 开盅在台面正中间盖一层 90% 不透明的幕,开完 4 秒收起
   ② 台面上「我押 1,500 · 4」的注数做成小角标,不再跟金额粘在一起
   ③ 弹珠台:新的台面 / 赔率条(见 plinko.js)
   ══════════════════════════════════════════════════════════════════════ */

/* ── ① 骰宝 ─────────────────────────────────────────────────── */
#app .lsgrid.sbg.sbfull{position:relative;grid-template-columns:minmax(0,1fr)}
#app .sbwrap .sbfull .sbboard{padding:6px 8px}
#app .sbwrap .sbfull .sbband{grid-template-columns:15px minmax(0,1fr);gap:4px}
#app .sbwrap .sbfull .sbbl{font-size:8.5px}
#app .sbwrap .sbfull .sbcells{gap:4px}
#app .sbwrap .sbfull .sbspot b{font-size:15px}
#app .sbwrap .sbfull .sbspot b.lg{font-size:20px}
#app .sbwrap .sbfull .sbspot i{font-size:9px}
#app .sbwrap .sbfull .sbspot i.sub{font-size:8.5px}
#app .sbwrap .sbfull .sbspot.sum b{font-size:16px}

/* 正中间那层幕:平时收着,摇盅 / 开盅时淡进来 */
#app .sbwrap .sbover{position:absolute;inset:0;z-index:20;display:grid;place-items:center;border-radius:14px;
  background:radial-gradient(60% 70% at 50% 50%,rgba(14,52,40,.9),rgba(4,10,16,.9) 75%);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility 0s linear .35s}
#app .sbwrap .sbover.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s ease,visibility 0s}
#app .sbwrap .sbover .sbstage{position:relative;width:min(70%,440px);height:auto;min-height:0;padding:14px 18px 16px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:22px;
  border:1px solid rgba(212,175,55,.45);
  background:radial-gradient(80% 90% at 50% 25%,rgba(70,190,130,.22),transparent 70%),linear-gradient(180deg,rgba(14,56,42,.95),rgba(6,22,17,.96));
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 18px 40px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);
  transform:scale(.94);transition:transform .35s cubic-bezier(.2,.9,.3,1.2)}
#app .sbwrap .sbover.on .sbstage{transform:none}
#app .sbwrap .sbover .sbplate{position:relative;width:100%;height:118px;flex:0 0 auto;margin:0;display:grid;place-items:center}
#app .sbwrap .sbover .sbstage.hasres .sbplate{margin:0}
#app .sbwrap .sbover .sbdice{gap:12px}
#app .sbwrap .sbover .sbdie{width:58px;height:58px}
#app .sbwrap .sbover .sbdie svg{width:58px;height:58px}
#app .sbwrap .sbover .sbcup{width:196px;height:116px;margin:-60px 0 0 -98px}
#app .sbwrap .sbover .sbcup i{top:15px;width:50px;height:13px;margin-left:-25px}
#app .sbwrap .sbover .sbstage.result .sbcup{transform:translateY(-130px) rotate(-8deg)}
#app .sbwrap .sbover .sbsum{margin:0;min-height:28px}
#app .sbwrap .sbover .sbsum b{font-size:22px}
#app .sbwrap .sbover .sbsum i{font-size:12px;padding:3px 10px}
/* 结算:幕里面一条,放在点数下面(不压骰子) */
#app .sbwrap .sbover .sbres{position:relative;left:auto;right:auto;top:auto;width:100%;max-width:360px;justify-content:center;
  padding:8px 14px;background:rgba(6,8,18,.7)}
#app .sbwrap .sbover .sbres b{font-size:20px}
#app .sbwrap .sbover .sbres em{font-size:11px}
#app .sbwrap .sbover .sbres i{flex:0 1 auto}
@media (max-height:400px){
  #app .sbwrap .sbover .sbplate{height:96px}
  #app .sbwrap .sbover .sbdie,#app .sbwrap .sbover .sbdie svg{width:48px;height:48px}
  #app .sbwrap .sbover .sbcup{width:164px;height:96px;margin:-50px 0 0 -82px}
  #app .sbwrap .sbover .sbstage.result .sbcup{transform:translateY(-110px) rotate(-8deg)}
  #app .sbwrap .sbover .sbstage{padding:10px 14px 12px;gap:6px}
}
@media (prefers-reduced-motion:reduce){#app .sbwrap .sbover,#app .sbwrap .sbover .sbstage{transition:none}}

/* 幕收起后,底栏的提示换成这一场的结果 */
#app .sbwrap .dkhint[data-res="win"]{color:#5ff5b1;opacity:1}
#app .sbwrap .dkhint[data-res="lose"]{color:#ff7a90;opacity:1}
#app .sbwrap .dkhint[data-res="push"]{color:var(--muted);opacity:1}

/* ── ② 「我押」后面的注数角标 ──────────────────────────────── */
#app .lstotal small{display:inline-block;margin-left:5px;padding:0 5px;border-radius:99px;vertical-align:1px;
  font-size:8.5px;line-height:1.5;color:#2a1d05;background:rgba(255,209,102,.85)}
html[data-lang^="zh"] #app .lstotal small::after{content:" 注"}

/* 摇的时候骰子藏在盅里(之前会从盅边露出来) */
#app .sbwrap .sbover .sbstage.rolling .sbdie,#app .sbwrap .sbover .sbstage.betting .sbdie{visibility:hidden}
#app .sbwrap .sbover .sbstage.rolling .sbsum{display:none}

/* ── ③ 弹珠台(照业界的样子:深蓝板、白钉子、红 → 橙 → 金的格子,下面一块控制面板)── */
#app .pkwrap{gap:8px}
#app .pkscene.pk2{width:min(96vw,460px);height:auto;aspect-ratio:1/.86;border-radius:18px;
  border:1px solid rgba(255,255,255,.1);
  background:radial-gradient(90% 60% at 50% 0%,#1d3a52 0%,#10263a 55%,#0b1b2b 100%)}
#app .pkscene.pk2::after{display:none}
#app .pkscene.pk2 .pkbins{left:0;right:0;bottom:7px;height:25px;gap:2px}
#app .pkscene.pk2 .pkbin{position:relative;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:-.03em;color:#1a0a00;
  background:var(--c);box-shadow:inset 0 -3px 0 var(--cd),0 2px 0 rgba(0,0,0,.35);cursor:pointer;transition:filter .15s}
#app .pkscene.pk2 .pkbins[data-n="14"] .pkbin,#app .pkscene.pk2 .pkbins[data-n="15"] .pkbin{font-size:9px}
#app .pkscene.pk2 .pkbins[data-n="16"] .pkbin:not(.w4),#app .pkscene.pk2 .pkbins[data-n="17"] .pkbin:not(.w4){font-size:8.5px;letter-spacing:-.02em;border-radius:4px}
#app .pkscene.pk2 .pkbins .pkbin.w4{font-size:7px;letter-spacing:-.06em;padding:0}
#app .pkscene.pk2 .pkbin.hit{animation:pkhit2 .4s cubic-bezier(.2,1.4,.3,1) both;filter:brightness(1.25)}
@keyframes pkhit2{0%{transform:translateY(0)}35%{transform:translateY(5px)}100%{transform:none}}
#app .pkscene.pk2 .pkrecent{right:8px;top:10px;gap:4px}
#app .pkscene.pk2 .pkrecent b{min-width:44px;padding:3px 6px;border-radius:6px;font-size:10.5px;font-weight:800;color:#1a0a00;
  background:var(--c);box-shadow:inset 0 -2px 0 var(--cd),0 2px 4px rgba(0,0,0,.4)}
#app .pkscene.pk2 .pkrecent b:first-child{animation:pkrin .3s ease-out both}
@keyframes pkrin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
#app .pkscene.pk2 .pkfloat{bottom:38px}
#app .pktip{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);max-width:92%;padding:6px 10px;border-radius:10px;
  font-family:var(--num);font-size:11px;white-space:nowrap;color:#fff;background:rgba(6,12,22,.92);border:1px solid rgba(255,255,255,.15);
  opacity:0;pointer-events:none;transition:opacity .2s}
#app .pktip.on{opacity:1}

/* 控制面板 */
#app .pkpanel{width:min(96vw,460px);display:flex;flex-direction:column;gap:9px;padding:10px;border-radius:18px;
  border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,#132b40,#0d1f30)}
#app .pkmode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:rgba(0,0,0,.28)}
#app .pkmode button{padding:8px 0;border-radius:9px;font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.06em;color:var(--dim);background:transparent}
#app .pkmode button.on{color:#fff;background:#2a4a66;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
#app .pkpanel .scprices{width:auto;margin:0}
#app .pkrow{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:6px}
#app .pkrow .lbl{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.06em;color:var(--dim)}
#app .pkrow.hide{display:none}
#app .pkseg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;border-radius:11px;background:rgba(0,0,0,.28)}
#app .pkseg button{min-width:0;padding:8px 0;border-radius:8px;font-family:var(--num);font-weight:800;font-size:13px;color:var(--muted);background:rgba(255,255,255,.04)}
#app .pkseg.n9 button{font-size:12px;padding:8px 0}
#app .pkseg button.on{color:#1a0a00;background:linear-gradient(180deg,#ffd35a,#f0a312);box-shadow:inset 0 -2px 0 #a46400}
#app .pkseg button.locked:not(.on){opacity:.45}
#app .pkseg button:disabled{opacity:.45}
#app .pkwrap .pkbar{width:min(96vw,460px)}
#app .pkwrap .pkbar .scbtn.pkdrop{width:100%;min-height:54px;font-size:19px;margin:0}
#app .pkwrap .resdock{width:min(96vw,460px)}
#app .pkpanel .pkstat{display:none}
#app .pkmoderow .pkmode{padding:3px;border-radius:11px}
#app .pkmoderow .pkmode button{padding:7px 0;font-size:12.5px}
#app .pkpt{width:min(96vw,460px)}
#app .pkpt-g{grid-template-columns:repeat(3,1fr)}

/* ── ④ 押的筹码摆在注区正中间(老板:「下注筹码的时候筹码要放在下注地方的正中间,轮盘也是」)────────
   原来是角上一个小金标签;现在是一枚真的圆筹码(外圈白色嵌条),压在格子正中央 —— 跟真台子上把筹码推到注区中间一样。
   还没确认的:同一枚筹码半透明 + 金色虚线圈在呼吸;确认以后变实心。 */
#app .bcspot .my,#app .sbwrap .sbspot .my,#app .fswrap .fscell .my,#app .fswrap .fspair .my,#app .rlwrap .rls .rlchip,#app .rlwrap .rlgrid .rls .rlchip,#app .rlwrap .rlzero .rls .rlchip,#app .rlwrap .rls.o .rlchip {
  position:absolute;left:50%;top:50%;right:auto;bottom:auto;
  width:var(--chip,28px);height:var(--chip,28px);min-width:0;padding:0;margin:0;border-radius:50%;
  display:grid;place-items:center;box-sizing:border-box;
  transform:translate(-50%,-50%) scale(1);
  font-family:var(--num);font-weight:800;font-size:calc(var(--chip,28px) * .33);line-height:1;letter-spacing:-.03em;
  color:#3a2600;text-shadow:0 1px 0 rgba(255,255,255,.45);text-decoration:none;
  border:0;
  background:
    radial-gradient(circle,#ffe596 0 47%,#c99416 48% 53%,transparent 54%),
    repeating-conic-gradient(from 8deg,#fffdf4 0 14deg,#e0a82a 14deg 45deg);
  box-shadow:0 0 0 1.2px #6b4a08,0 3px 6px rgba(0,0,0,.6),inset 0 -2px 3px rgba(0,0,0,.25);
  z-index:7;pointer-events:none;animation:chipdrop .22s cubic-bezier(.2,.9,.3,1.4) both}
#app .bcspot .my:empty,#app .sbwrap .sbspot .my:empty,#app .fswrap .fscell .my:empty,#app .fswrap .fspair .my:empty {display:none}
@keyframes chipdrop{from{transform:translate(-50%,-80%) scale(.6);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
/* 轮盘:没押的格子筹码收着 */
#app .rlwrap .rls:not(.has):not(.staged) .rlchip{opacity:0;transform:translate(-50%,-50%) scale(.4);animation:none}
#app .rlwrap .rls.has .rlchip,#app .rlwrap .rls.staged .rlchip{opacity:1}
/* 没确认:半透明 + 虚线圈 */
#app .bcspot .my.pend,#app .sbwrap .sbspot .my.pend,#app .fswrap .fscell .my.pend,#app .fswrap .fspair .my.pend,#app .rlwrap .rls.staged:not(.has) .rlchip {
  color:#3a2600;border:0;outline:1.5px dashed rgba(255,209,102,.95);outline-offset:2px;opacity:.82;
  background:
    radial-gradient(circle,#ffe596 0 47%,#c99416 48% 53%,transparent 54%),
    repeating-conic-gradient(from 8deg,#fffdf4 0 14deg,#e0a82a 14deg 45deg);
  animation:chipdrop .22s cubic-bezier(.2,.9,.3,1.4) both,chippend 1.4s ease-in-out .22s infinite}
@keyframes chippend{0%,100%{outline-color:rgba(255,209,102,.95)}50%{outline-color:rgba(255,209,102,.35)}}
@media(prefers-reduced-motion:reduce){#app .bcspot .my,#app .sbwrap .sbspot .my,#app .fswrap .fscell .my,#app .fswrap .fspair .my,#app .rlwrap .rls .rlchip {animation:none}}
/* 各游戏的筹码大小(格子大的筹码大) */
#app .bcspot{--chip:34px}
#app .bcspot.sm,#app .bcspot.pp,#app .bcspot.bp{--chip:28px}
#app .sbwrap .sbspot{--chip:26px}
#app .sbwrap .sbspot.cb,#app .sbwrap .sbspot.sum{--chip:24px}
#app .fswrap .fscell{--chip:32px}
#app .fswrap .fspair{--chip:24px}

#app .rlwrap .rls{--chip:28px}
#app .rlwrap .rls.in{--chip:24px}
#app .rlwrap .rls.o{--chip:26px}
/* 轮盘号码格:筹码在中间,号码不再往旁边让(号码字底下压一圈暗影,筹码盖上去也看得出是几号)*/
#app .rlwrap .rls.has:not(.in):not(.o) > span{transform:none}
/* 号码格 / 0 格:BUILD 127 那条「缩到右下角」的规则权重更高,这里压回正中间 */
#app .rlwrap .rlgrid .rls.has .rlchip,#app .rlwrap .rlzero .rls.has .rlchip,
#app .rlwrap .rlgrid .rls.staged .rlchip,#app .rlwrap .rlzero .rls.staged .rlchip{left:50%;top:50%;right:auto;bottom:auto;
  width:var(--chip,24px);height:var(--chip,24px);font-size:calc(var(--chip,24px) * .33);transform:translate(-50%,-50%) scale(1)}
#app .rlwrap .rls.o.has .rlchip,#app .rlwrap .rls.o.staged .rlchip{transform:translate(-50%,-50%) scale(1)}
#app .rlwrap .rls.in.has .rlchip,#app .rlwrap .rls.in.staged .rlchip{transform:translate(-50%,-50%) scale(1)}
/* 百家乐:筹码在正中间,注区名字往上让,不被筹码盖住 */
#app .bcspot .sl{transition:transform .2s cubic-bezier(.2,.9,.3,1.2)}
#app .bcspot.mine .sl,#app .bcspot.staged .sl{transform:translateY(calc(var(--chip,34px) * -.72)) scale(.9)}

/* ── ⑤ 企鹅冲刺:不再是冰块碎、掉水里 —— 雪橇从冰道上面冲下来把企鹅撞飞 ──────────────── */
#app .pq .lane .cracks,#app .pq .lane .splash{display:none !important}
#app .pq .lane .sled{position:absolute;left:50%;top:-40%;width:60%;aspect-ratio:.6;margin-left:-30%;z-index:7;pointer-events:none;opacity:0}
#app .pq .lane .sled svg{display:block;width:100%;height:100%;filter:drop-shadow(0 6px 6px rgba(0,40,80,.35))}
/* 撞人的那一条:从上面冲到底下(线性,0.57 秒正好冲过企鹅站的那一格) */
#app .pq .lane.boom .sled{opacity:1;animation:pqsled .9s linear .12s both}
@keyframes pqsled{0%{top:-40%}100%{top:120%}}
/* 冲过去留下两道滑痕 */
#app .pq .lane .tracks{position:absolute;left:50%;top:0;bottom:0;width:48%;margin-left:-24%;z-index:1;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent 0 6%,rgba(255,255,255,.75) 6% 12%,transparent 12% 88%,rgba(255,255,255,.75) 88% 94%,transparent 94%);
  transform-origin:top;transform:scaleY(0)}
#app .pq .lane.boom .tracks{opacity:.9;animation:pqtracks .9s linear .12s both}
@keyframes pqtracks{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* 撞上那一下:星形爆点 */
#app .pq .lane .bang{position:absolute;left:50%;top:52%;width:86%;aspect-ratio:1;transform:translate(-50%,-50%) scale(0);z-index:8;pointer-events:none;opacity:0}
#app .pq .lane .bang svg{display:block;width:100%;height:100%}
#app .pq .lane.boom .bang{animation:pqbang .55s cubic-bezier(.2,1.5,.4,1) .55s both}
@keyframes pqbang{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-20deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(8deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3) rotate(14deg)}}
/* 被撞的那一格:不再是冰窟窿,红圈一闪 */
#app .pq .lane.boom .spot{animation:pqspothit .6s ease-out .55s both;background:radial-gradient(circle at 45% 40%,rgba(255,120,120,.5),rgba(200,30,50,.45));border-style:solid;border-color:#fff}
@keyframes pqspothit{0%{box-shadow:0 0 0 0 rgba(255,60,80,.9)}100%{box-shadow:0 0 0 18px rgba(255,60,80,0)}}
/* 企鹅:0.55 秒被撞,先压扁一下,再打着转飞出冰道 */
#app .pq .penguin.crash .pgbody .pgsvg{animation:pqknock 1.15s cubic-bezier(.25,.7,.4,1) .55s both}
@keyframes pqknock{0%{transform:none;opacity:1}
  12%{transform:translate(0,8px) scale(1.18,.78)}
  100%{transform:translate(46px,230px) rotate(620deg) scale(.55);opacity:0}}
/* 结算后摊开:本来有雪橇的那几格,顶上停着一辆(告诉玩家雪橇会从哪儿冲下来) */
#app .pq .lane.trap:not(.boom) .sled{opacity:.9;top:15%;width:42%;margin-left:-21%;animation:pqpark .35s ease-out both}
@keyframes pqpark{from{opacity:0;transform:translateY(-14px)}to{opacity:.9;transform:none}}
@media (prefers-reduced-motion:reduce){
  #app .pq .lane.boom .sled{animation:none;top:62%}
  #app .pq .lane.boom .tracks{animation:none;transform:none}
  #app .pq .penguin.crash .pgbody .pgsvg{animation:none;opacity:.35}
}
#app .pq .penguin.crash{z-index:9}

/* ── ⑥ 飞机:输赢都写多少钱 ───────────────────────────────── */
#app .avtoast.lose{background:linear-gradient(180deg,#7a1020,#4d0812);border-color:#ff4d61}
#app .avtoast.lose .w{background:#ff4d61;color:#fff}
#app .avtoast.push .w{background:#9ea0a6;color:#141518}
/* 每块板右上角:上局 ±多少 */
#app .avlast{position:absolute;right:40px;top:9px;display:none;align-items:baseline;gap:5px;padding:2px 9px;border-radius:99px;
  font:800 12.5px/1.4 var(--num);font-variant-numeric:tabular-nums;background:#141518;border:1px solid #2c2d31}
#app .avlast i{font:600 9.5px/1 var(--display);font-style:normal;color:#9ea0a6;letter-spacing:.04em}
#app .avlast.on{display:inline-flex;animation:avlastin .3s ease-out both}
#app .avlast.win{color:#3fd35e;border-color:rgba(63,211,94,.45)}
#app .avlast.lose{color:#ff4d61;border-color:rgba(255,77,97,.45)}
#app .avlast.push{color:#c9ccd3}
@keyframes avlastin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
/* 飞走时弹「输了」那条:「飞走了!」红字往下挪一点,不被压住 */
#app .avscene[data-phase="crashed"] .avflew{top:calc(50% - clamp(46px,13vw,62px))}

/* ── ⑦ 顶栏的开奖记录:最新的在最左边,一行放不下的时候从右边(最旧的)截掉 ——
   之前是靠右排,放不下就从左边截,刚开出的那个号被阶段条 / 倒计时压住(老板:「挡住了上次开的号码」) */
#app .lstop .rlhist,#app .lstop .fshist,#app .lstop .sbhist{justify-content:flex-start;padding-left:4px;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}
#app .lstop .rlhist > *,#app .lstop .fshist > *,#app .lstop .sbhist > *{flex-shrink:0}
#app .lstop .lsphase{position:relative;z-index:2}

/* ── ⑧ 轮盘底栏重排(老板:「左下角下注做成这样 撤回 清除 确认,不用跟完别人的,你重新做排版」;
      右下角「热门 / 冷门」照参考图)──────────────────────────────────────────── */
#app .rlwrap .lsrail.rlrail{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;padding:5px 8px 6px}
#app .rlwrap .rlrhide{display:none !important}
#app .rlrleft{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0}
#app .rlrmid{display:flex;align-items:center;gap:10px;min-width:0;height:15px;padding:0 6px;overflow:hidden;white-space:nowrap}
#app .rlrmid .lstotal{display:inline-flex;align-items:baseline;gap:4px;font-size:10.5px;color:var(--lsgold)}
#app .rlrmid .lstotal b{font:800 13px/1 var(--num);color:#ffd166}
#app .rlrmid .lstotal small{margin-left:0}
#app .rlrmid .lspend{font-size:10px}
#app .rlrmid .lspool{font-size:9.5px;color:var(--dim)}
#app .rlrmid .dkhint{margin:0 0 0 auto;font-size:9.5px;width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* 一条胶囊:左边筹码,右边四个键 */
#app .rlbar{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 5px 4px 6px;border-radius:999px;
  background:linear-gradient(180deg,#12204a,#0a1332);border:1px solid rgba(96,146,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 4px 12px rgba(0,0,0,.4)}
#app .rlwrap .rlbar .scprices{flex:0 0 auto;gap:5px}
#app .rlwrap .rlbar .scprices .lbl{display:none}
#app .rlwrap .rlbar .scprices .chipbtn{width:34px;height:34px}
#app .rlacts{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:1fr 1fr 1fr 1.7fr;gap:5px}
#app .rlact{all:unset;box-sizing:border-box;cursor:pointer;height:36px;min-width:0;border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:linear-gradient(180deg,#8d93a6,#6c7287);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 2px 0 rgba(0,0,0,.35);
  font:700 10px/1.1 var(--display);letter-spacing:.04em;white-space:nowrap;transition:transform .1s,filter .15s,opacity .15s}
#app .rlact svg{width:15px;height:15px;display:block}
#app .rlact span{overflow:hidden;text-overflow:ellipsis;max-width:100%}
#app .rlact:active:not(:disabled){transform:translateY(1px)}
#app .rlact:disabled{opacity:.42;cursor:default;filter:saturate(.5)}
#app .rlact.ok{border-radius:10px 999px 999px 10px;background:linear-gradient(180deg,#ffd84f,#f4b400);color:#2a1d05;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 2px 0 #8a6200;font-size:11px}
#app .rlact.ok:disabled{opacity:.5}
#app .rlact.ok.hot{animation:rlokpulse 1.3s ease-in-out infinite}
@keyframes rlokpulse{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 2px 0 #8a6200,0 0 0 0 rgba(255,210,63,.55)}50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 2px 0 #8a6200,0 0 0 6px rgba(255,210,63,0)}}
/* 热门 / 冷门 */
#app .rlwrap .rlhc{width:198px;flex:0 0 auto;display:flex;flex-direction:column;gap:3px;margin:0;padding:3px 6px 5px;border-radius:10px;
  background:#0b0f2c;border:1px solid rgba(255,255,255,.08);box-shadow:none;overflow:hidden}
#app .rlhch{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;height:14px;width:100%}
#app .rlhch b{font:700 10.5px/1 var(--display);color:#fff;letter-spacing:.06em}
#app .rlhch .chev{position:absolute;right:3px;top:2px;width:6px;height:6px;border-right:2px solid #4c8dff;border-bottom:2px solid #4c8dff;transform:rotate(45deg);transition:transform .2s}
#app .rlhc.shut .rlhch .chev{transform:rotate(-135deg);top:5px}
#app .rlhc.shut .rlhcrow{display:none}
#app .rlhc > i.dim{font-style:normal;font-size:9.5px;color:var(--dim);text-align:center;padding:6px 0}
#app .rlwrap .rlhc .rlhcrow{display:grid;grid-template-columns:15px repeat(5,minmax(0,1fr));gap:3px;align-items:center;padding:2px 4px;border-radius:7px;border:1.5px solid;background:rgba(0,0,0,.25)}
#app .rlwrap .rlhc .rlhcrow.hot{border-color:#c0283f}
#app .rlwrap .rlhc .rlhcrow.cold{border-color:#2d64d0}
#app .rlhcrow .ic{display:grid;place-items:center}
#app .rlhcrow .ic svg{width:13px;height:15px;display:block}
#app .rlwrap .rlhc .rlhcrow > b{all:unset;display:flex;flex-direction:column;min-width:0;border-radius:3px;overflow:hidden;text-align:center;font-variant-numeric:tabular-nums}
#app .rlwrap .rlhc .rlhcrow > b em{display:block;font:800 10.5px/1.2 var(--num);font-style:normal;color:#fff;background:#07080c}
#app .rlwrap .rlhc .rlhcrow > b u{display:block;text-decoration:none;font:600 8.5px/1.25 var(--num);color:rgba(255,255,255,.7);background:#4a4b52}
#app .rlwrap .rlhc .rlhcrow > b.c-red em{background:#e2402f}
#app .rlwrap .rlhc .rlhcrow > b.c-red u{background:#8c1c1e;color:#ffb3a8}
#app .rlwrap .rlhc .rlhcrow > b.c-green em{background:#1f9d6a}
#app .rlwrap .rlhc .rlhcrow > b.c-green u{background:#0f5a3c;color:#b7f1d6}
/* 顶栏:刚开出的那个号描一圈金边 */
#app .lstop .rlhist > b:first-of-type{box-shadow:0 0 0 2px #ffd166,0 0 10px rgba(255,209,102,.5)}
#app .rlrmid .rltotal{flex-direction:row;align-items:baseline;margin-left:0;line-height:1;gap:5px;color:var(--lsgold)}
#app .rlrmid .rltotal small{font-size:9.5px}

/* ── ⑨ 轮盘:上面顶栏往上压、下面底栏往下压、一打 / 1:1 两排再压扁 —— 空间都让给轮盘和号码(老板 BUILD 129 后)── */
#app .rlwrap{gap:4px;padding:4px 8px 5px}
#app .rlwrap .lstop{height:24px;gap:6px}
#app .rlwrap .lstop .lstb{height:22px;padding:0 9px;font-size:10.5px}
#app .rlwrap .lstop .lsphase .ph{padding:2px 9px;font-size:10.5px}
#app .rlwrap .lstop .lsphase b{font-size:15px}
#app .rlwrap .lstop .lsname{font-size:15px}
#app .rlwrap .lstop .lsbal2{height:22px}
#app .rlwrap .lstop .rlhist b{min-width:19px;height:19px;line-height:19px;font-size:9.5px}
#app .lsgrid.rlg{padding:5px 8px 5px 6px}
#app .rlwrap .rlboard{grid-template-rows:minmax(0,5.6fr) minmax(0,.7fr) minmax(0,.7fr);padding-top:2px;padding-bottom:2px}
#app .rlwrap .rldoz .rls,#app .rlwrap .rleven .rls{font-size:clamp(9.5px,2.5vh,12px)}
#app .rlwrap .rls.o.r > span,#app .rlwrap .rls.o.b > span{width:24px;height:13px}
/* 底栏:「热门 / 冷门」的标题和上面那行小字对齐,两排号码对齐下注胶囊 —— 整条底栏矮一截 */
#app .rlwrap .lsrail.rlrail{padding:3px 8px 4px;gap:8px}
#app .rlrleft{gap:2px}
#app .rlrmid{height:13px}
#app .rlbar{padding:3px 4px 3px 5px}
#app .rlwrap .rlbar .scprices .chipbtn{width:31px;height:31px}
#app .rlact{height:32px}
#app .rlact svg{width:13px;height:13px}
#app .rlwrap .rlhc{gap:2px;padding:1px 6px 3px}
#app .rlhch{height:13px}
#app .rlwrap .rlhc .rlhcrow{padding:1px 3px;border-width:1px;border-radius:6px}
#app .rlwrap .rlhc .rlhcrow > b em{font-size:10px;line-height:1.12}
#app .rlwrap .rlhc .rlhcrow > b u{font-size:8px;line-height:1.15}

/* ── ⑩ 弹珠台 BUILD 129:筹码挪到「落球」上面(老板:「筹码被挡住了」—— 以前在吸底的落球键下面,被键和它的底色压住)── */
#app .pkwrap .pkchips{width:min(96vw,460px);padding:6px 8px;border-radius:14px;background:linear-gradient(180deg,#132b40,#0d1f30);border:1px solid rgba(255,255,255,.09)}
#app .pkwrap .pkchips .scprices{width:auto;margin:0;flex-wrap:nowrap;justify-content:space-between;gap:4px}
#app .pkwrap .pkchips .scprices .lbl{font-size:11px;color:var(--dim);margin-right:2px}
#app .pkwrap .pkbar::before{top:-8px;bottom:calc(-10px - var(--safeb))}
#app .pkscene.pk2{aspect-ratio:1/.8}

/* ── ⑪ 轮盘内围注的点:以前是 24px 的虚线大圈,叠在号码上、0 旁边五个叠成一团,看着像号码被圈起来(老板:「是不是有什么误导」)。
      现在按得到的范围不变(24px 透明),看得到的只是压在分界线上的一颗小白点;押了 / 摆了的时候筹码照样盖在那一点上。 */
#app .rlwrap .rls.in,#app .rlwrap .rls.in.t,#app .rlwrap .rls.in.x,#app .rlwrap .rls.in.q{background:transparent;border:0;box-shadow:none}
#app .rlwrap .rls.in::after{content:'' !important;position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;
  background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.6);box-shadow:0 0 0 1px rgba(0,0,0,.18);opacity:1;line-height:0;font-size:0}
#app .rlwrap .rls.in.t::after,#app .rlwrap .rls.in.q::after{background:rgba(255,230,160,.3);border-color:rgba(255,230,160,.75)}
#app .rlwrap .rls.in:hover::after,#app .rlwrap .rls.in:focus-visible::after{background:rgba(255,255,255,.7)}
#app .rlwrap .rls.in.has::after,#app .rlwrap .rls.in.staged::after{opacity:0}

/* ── ⑫ 鱼虾蟹:输赢多少写得清清楚楚(老板 BUILD 129 后)─────────────────── */
#app .lsgrid.fsg{position:relative}
#app .fsbig{position:absolute;inset:0;z-index:30;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .3s}
#app .fsbig.on{opacity:1;pointer-events:auto}
#app .fsbigc{min-width:240px;max-width:min(440px,70%);padding:12px 18px 14px;border-radius:18px;text-align:center;
  background:rgba(12,10,8,.9);border:2px solid #7a7a7a;box-shadow:0 18px 40px rgba(0,0,0,.6);transform:scale(.9);transition:transform .35s cubic-bezier(.2,1.3,.3,1)}
#app .fsbig.on .fsbigc{transform:none}
#app .fsbigc > em{display:inline-block;font:800 13px/1 var(--display);font-style:normal;letter-spacing:.1em;padding:5px 12px;border-radius:99px;background:#555;color:#fff}
#app .fsbigc > b{display:block;margin:8px 0 2px;font:800 44px/1 var(--num);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#app .fsbigc > small{display:block;font:600 12px/1.3 var(--num);color:rgba(255,255,255,.75)}
#app .fsbigc ul{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed rgba(255,255,255,.2);display:flex;flex-direction:column;gap:4px;max-height:120px;overflow:auto}
#app .fsbigc li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;font:600 12px/1.25 var(--num);color:#fff;text-align:left}
#app .fsbigc li i{font-style:normal;color:rgba(255,255,255,.55);font-size:11px}
#app .fsbigc li b{font-weight:800}
#app .fsbigc li.w b{color:#5ff5b1}#app .fsbigc li.l b{color:#ff7a8a}#app .fsbigc li.p b{color:#ccc}
#app .fsbigc.win{border-color:#2fbf71;background:linear-gradient(180deg,rgba(10,50,30,.94),rgba(6,24,15,.94))}
#app .fsbigc.win > em{background:#2fbf71;color:#06220f}#app .fsbigc.win > b{color:#6dffb2}
#app .fsbigc.lose{border-color:#d7263d;background:linear-gradient(180deg,rgba(60,8,14,.94),rgba(28,4,8,.94))}
#app .fsbigc.lose > em{background:#d7263d}#app .fsbigc.lose > b{color:#ff7a8a}
#app .fsbigc.push > b{color:#e6e6e6}
/* 每个押了的格子:结算时标「+赢 / −输」 */
#app .fswrap [data-net]::after{content:attr(data-net);position:absolute;left:50%;bottom:4px;transform:translateX(-50%);z-index:8;padding:1px 7px;border-radius:99px;
  font:800 11px/1.35 var(--num);white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.45);pointer-events:none}
#app .fswrap [data-netk="w"]::after{background:#1fa463;color:#fff}
#app .fswrap [data-netk="l"]::after{background:#c8283c;color:#fff}
#app .fswrap [data-netk="p"]::after{background:#666;color:#fff}
#app .fswrap .dkhint[data-res="win"]{color:#5ff5b1;opacity:1;font-weight:800}
#app .fswrap .dkhint[data-res="lose"]{color:#ff7a90;opacity:1;font-weight:800}
