/* ============ Arena 电子桌游区 · 统一牌桌 HUD 版（js/games/stadium.js · js/views/stadium.js） ============
   骨架是 css/table-hud.css 的 .th（尺寸全是 dp，整页 zoom = k）：
     Z0 顶栏：一行英文 + (i) · 6 个游戏标签（百家乐三桌一组 · 轮盘 · 骰宝 · 21 点）· 时钟 / 声音 / 抽屉 / 离开
     Z1 巨幕 188：荷官镜头 · 当前游戏的路单 / 走势 · Arena Jackpot（LED 墙，像素网格）
     Z2 终端台面：电子台布（平面、无木边、触屏玻璃反光）；倒计时 / 结果条在正上方正中，你的位置在底边正中；21 点主注圈在你正前方
     Z3 rail：终端 credits + 纸币器 / COLLECT · 筹码 · 撤销 / 清除 / 重复（21 点决定期 加倍 · 分牌 · 停牌 · 要牌）
     Z4 抽屉：6 个游戏的状态
   字号只用 --fs-l / --fs-m / --fs-s（24 / 15 / 12）；台布上只用 tx-1 / tx-2 / --print。 */

#stdScreen > .content{margin-top:0;padding:0;position:relative;overflow:hidden;flex:1;min-height:0;}

/* ---------- Z0：游戏标签 ---------- */
#stdScreen .th-lim{flex:none;}
.std-tabs{flex:0 1 auto;display:flex;align-items:center;gap:8px;margin-left:6px;min-width:0;overflow:hidden;}
.std-tabs .tg{display:flex;align-items:center;gap:2px;padding:2px;border-radius:7px;flex:none;
  background:rgba(0,0,0,.4);box-shadow:inset 0 0 0 1px var(--brass-900);}
.std-tabs .tg em{font-style:normal;font:var(--fs-s) var(--serif);letter-spacing:.1em;color:var(--tx-3);padding:0 6px 0 8px;}
.std-tabs .pt-tab{position:relative;height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;border:0;border-radius:5px;cursor:pointer;
  background:transparent;color:var(--tx-2);font-family:var(--serif);white-space:nowrap;}
.std-tabs .pt-tab b{font-weight:400;font-size:var(--fs-m);letter-spacing:.04em;}
.std-tabs .pt-tab .cd{font:var(--fs-s) var(--mono);color:var(--tx-3);min-width:16px;text-align:right;font-variant-numeric:tabular-nums;}
.std-tabs .pt-tab .cd:empty{min-width:0;}
.std-tabs .pt-tab .cd.deal:empty::before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--warn);opacity:.7;}
.std-tabs .pt-tab .cd.hot{color:var(--hot);}
.std-tabs .pt-tab .cd.deal{font-family:var(--serif);letter-spacing:.06em;}
.std-tabs .pt-tab .mine{display:none;}
.std-tabs .pt-tab.has::after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--brass-300);box-shadow:0 0 0 1px #000;}
.std-tabs .pt-tab:hover{color:var(--brass-100);background:rgba(201,160,82,.1);}
.std-tabs .pt-tab.on{background:linear-gradient(180deg,var(--brass-100),var(--brass-500));color:#1d1408;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 1px 3px rgba(0,0,0,.6);}
.std-tabs .pt-tab.on .cd{color:#3a2a10;}
.std-tabs .pt-tab.wait{box-shadow:inset 0 0 0 1.5px var(--warn);animation:stdWait 1s ease-in-out infinite alternate;}
.std-tabs .pt-tab.on.wait{animation:none;box-shadow:0 0 0 2px var(--warn),0 1px 3px rgba(0,0,0,.6);}
@keyframes stdWait{from{background:rgba(255,190,90,.06);}to{background:rgba(255,190,90,.22);}}

/* ---------- Z1：巨幕（LED 墙：黑底 + 像素网格） ---------- */
.std-wall{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr) 200px;gap:4px;background:#020202 !important;
  box-shadow:var(--shadow-2),0 0 0 1px #000,0 0 0 4px #1a1a1c,0 0 0 5px #000 !important;border-radius:4px !important;}
.std-hero,.std-road-box,.std-jp{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:2px;}
.std-hero::after,.std-road-box::after,.std-jp::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:9;
  background:radial-gradient(circle,transparent 58%,rgba(0,0,0,.28) 60%) 0 0/3px 3px;opacity:.5;}
.std-hero{background:#050403;}
/* 荷官镜头 */
.hero-cam{position:absolute;inset:0;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.hero-stage{position:absolute;left:0;right:0;bottom:0;height:52%;}
.hero-stage .hf.tilt{
  position:absolute;left:7%;right:7%;top:4%;bottom:-10%;transform:perspective(620px) rotateX(26deg);transform-origin:50% 100%;
  border-radius:48% 48% 0 0/36% 36% 0 0;display:flex;align-items:flex-start;justify-content:center;gap:10%;padding-top:2.2%;
  background:radial-gradient(ellipse at 50% 20%,rgba(255,220,160,.12),transparent 60%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px),
    radial-gradient(ellipse at 50% 60%,var(--f5) 0%,var(--f7) 55%,var(--f9) 100%);
  box-shadow:0 0 0 6px var(--wood-700),0 0 0 7px var(--wood-900),0 -2px 0 7px rgba(255,220,160,.1),0 0 0 2px var(--brass-700) inset;}
.hero-stage.f-green{--f5:var(--felt-500);--f7:var(--felt-700);--f9:var(--felt-900);}
.hero-stage.f-navy{--f5:var(--navy-500);--f7:var(--navy-700);--f9:var(--navy-900);}
.hero-stage.f-wine{--f5:var(--wine-500);--f7:var(--wine-700);--f9:var(--wine-900);}
.hb,.hj{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;}
.hb em,.hj em{font-style:normal;font-family:var(--serif);font-size:var(--fs-s);letter-spacing:.24em;color:rgba(231,201,127,.75);}
.hb.P em{color:var(--player-text);} .hb.B em{color:var(--banker-text);}
.hb .cards,.hj .cards{display:flex;gap:3px;min-height:46px;align-items:flex-start;}
.hb .cards .card.sm,.hj .cards .card.sm{width:32px;height:45px;}
.hb b{font-family:var(--serif);font-weight:400;font-size:18px;color:var(--tx-1);min-height:20px;text-shadow:0 1px 3px #000;}
.hf.bj{flex-direction:row;align-items:flex-start;gap:6%;padding-top:2.2%;}
.hj{flex-direction:row;gap:8px;}
.hj b{font-family:var(--serif);font-weight:400;font-size:16px;color:var(--tx-1);align-self:center;margin-left:4px;}
.hj .cards .card.sm+.card.sm{margin-left:-14px;}   /* 巨幕上那手牌补到四五张也别挤到荷官那边 */
.hj .cards:has(.card:nth-child(6)) .card.sm+.card.sm{margin-left:-20px;}   /* 六张以上（大家都在要）：再收紧，别出巨幕右边 */
.k-rou .hero-stage{height:100%;}
.k-rou .hero-stage::before{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,var(--wood-700),var(--f7) 12%,var(--f9));box-shadow:0 -2px 0 var(--brass-700);}
.hr-wheel{position:absolute;left:66%;bottom:3%;height:94%;aspect-ratio:1;transform:translateX(-50%);}
.hr-wheel canvas{width:100% !important;height:100% !important;display:block;}
.hs-plate{position:absolute;left:50%;bottom:9%;height:36%;aspect-ratio:1.9;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(ellipse at 50% 35%,#3a2a1c,#1b120b 70%);box-shadow:0 0 0 3px var(--brass-700),0 0 0 5px #120c08,0 8px 20px rgba(0,0,0,.7);}
.hs-dice{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8%;}
.hs-dice i{display:block;transform:rotate(calc(var(--i) * 17deg - 14deg));animation:dealIn .35s ease-out;}
.hs-dice svg{width:26px;height:auto;}
.hs-dome{position:absolute;left:6%;right:6%;top:-58%;bottom:8%;border-radius:50% 50% 46% 46%/68% 68% 32% 32%;
  background:radial-gradient(ellipse at 34% 22%,rgba(255,236,200,.32),rgba(255,236,200,0) 32%),linear-gradient(180deg,#3d2d1e,#20160e 62%,#110b07);
  box-shadow:0 -2px 0 2px var(--brass-500) inset,0 0 0 1px #000,0 6px 14px rgba(0,0,0,.55);transition:transform .45s ease,opacity .45s ease;}
.hs-dome.up{transform:translateY(-70px);opacity:0;}
.hs-dome.shake{animation:stdShake .12s linear 6;}
@keyframes stdShake{0%{transform:translateX(-2px)}50%{transform:translateX(2px)}100%{transform:translateX(0)}}
/* 画面叠加：左上 LIVE + 台号 · 右上倒计时 · 结果 */
.hero-osd{position:absolute;left:8px;right:8px;top:6px;display:flex;align-items:center;gap:8px;z-index:5;
  font:var(--fs-s) var(--mono);color:var(--lcd-1);text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden;}
.hero-osd b{font:var(--fs-s) var(--serif);letter-spacing:.06em;color:var(--tx-1);}
.hero-osd .dl{display:none;}
.hero-osd .cd{margin-left:auto;font-size:var(--fs-s);color:var(--brass-100);background:rgba(0,0,0,.55);padding:1px 7px;border-radius:2px;border:1px solid rgba(201,160,82,.35);}
.live{display:inline-flex;align-items:center;gap:5px;font:700 var(--fs-s) var(--sans);letter-spacing:.14em;color:#f1d8d0;background:rgba(0,0,0,.55);padding:1px 6px;border-radius:2px;}
.live i{width:7px;height:7px;border-radius:50%;background:#c73a32;display:block;}
.hero-res{position:absolute;right:8px;top:30px;z-index:6;}
.hero-res>div{display:flex;align-items:center;gap:8px;padding:4px 12px;white-space:nowrap;
  background:linear-gradient(180deg,rgba(20,12,8,.92),rgba(10,6,4,.92));border:1px solid var(--brass-500);box-shadow:var(--shadow-2);
  font:var(--fs-s) var(--serif);letter-spacing:.12em;color:var(--brass-100);}
.hero-res .B{color:#ff8a8a;font-weight:400;} .hero-res .P{color:#8ab4ff;font-weight:400;} .hero-res .T{color:var(--tie-text);font-weight:400;}
.hero-res .sc{font-size:var(--fs-m);letter-spacing:.06em;color:var(--tx-1);}
.hero-res small{font:var(--fs-s) var(--sans);letter-spacing:.04em;color:var(--warn);opacity:1;}
.hr-n b{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;border-radius:3px;font:18px var(--serif);color:#fff;letter-spacing:0;}
.hr-n.r b{background:var(--rou-red);} .hr-n.b b{background:#1a1a1a;box-shadow:0 0 0 1px #555 inset;} .hr-n.g b{background:var(--rou-green);}
.hr-n small{color:var(--tx-2) !important;}
.hr-t{font:var(--fs-s) var(--sans) !important;letter-spacing:.04em !important;color:var(--tx-2) !important;}
.hr-jp b{font:16px var(--serif);color:#ffd27a;letter-spacing:.02em;}
.hero-scan{position:absolute;inset:0;pointer-events:none;z-index:4;
  background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 18%,transparent 70%,rgba(0,0,0,.45)),radial-gradient(ellipse at 50% 50%,transparent 60%,rgba(0,0,0,.45));}

/* 巨幕中间：路单 / 走势 */
.std-road-box{display:flex;align-items:center;gap:8px;padding:8px 10px;background:linear-gradient(180deg,#060a0e,#020406) !important;}
.std-road-box .dim{font:var(--fs-s) var(--sans);color:var(--lcd-2);}
.std-road{display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,var(--c));grid-auto-columns:var(--c);gap:1px;
  background:var(--lcd-line);border:1px solid var(--lcd-line);width:max-content;flex:none;}
.rd-bead,.rd-big{height:100%;display:flex;align-items:center;overflow:hidden;min-width:0;flex:none;}
.std-road.bead{--c:24px;}
.std-road.big{--c:24px;}
.std-road i{display:block;position:relative;background:var(--lcd-800);}
.std-road.bead i b{position:absolute;inset:2px;border-radius:50%;font:700 var(--fs-s)/20px var(--sans);text-align:center;color:#fff;}
.std-road.bead i.B b{background:var(--banker);} .std-road.bead i.P b{background:var(--player);} .std-road.bead i.T b{background:var(--tie);}
.std-road.bead s{position:absolute;width:6px;height:6px;border-radius:50%;z-index:2;box-shadow:0 0 0 1px var(--lcd-950);}
.std-road.bead s.pb{left:1px;top:1px;background:#ff5a5a;} .std-road.bead s.pp{right:1px;bottom:1px;background:#6aa2ff;}
.std-road.big i::before{content:"";position:absolute;inset:3px;border-radius:50%;border:2.5px solid transparent;}
.std-road.big i.B::before{border-color:var(--banker);} .std-road.big i.P::before{border-color:var(--player);}
.std-road.big i s{position:absolute;left:50%;top:1px;bottom:1px;width:2px;margin-left:-1px;background:var(--tie);transform:rotate(45deg);}
.rd-cnt{flex:none;display:flex;flex-direction:column;gap:8px;padding-left:4px;font:var(--fs-m) var(--serif);color:var(--lcd-1);font-variant-numeric:tabular-nums lining-nums;}
.rd-cnt span{display:flex;align-items:center;gap:6px;}
.rd-cnt i{width:12px;height:12px;border-radius:50%;display:block;}
.rd-cnt .B i{background:var(--banker);} .rd-cnt .P i{background:var(--player);} .rd-cnt .T i{background:var(--tie);}
.rd-cnt .r i{background:var(--rou-red);} .rd-cnt .b i{background:#141414;box-shadow:0 0 0 1px #555;} .rd-cnt .g i{background:var(--rou-green);}
/* 走势：固定格数的整面屏（3×10 / 4×5），没开过的是暗格；刚进场不是一个空框 */
.rd-nums{flex:1;min-width:0;display:grid;grid-template-columns:repeat(10,48px);grid-auto-rows:48px;gap:5px;align-content:center;justify-content:center;overflow:hidden;max-height:100%;}
.rd-nums i{border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font:22px var(--serif);font-style:normal;color:#fff;background:#223040;
  font-variant-numeric:tabular-nums lining-nums;}
.rd-nums i.e{background:#0b121a;box-shadow:0 0 0 1px #16212c inset;}
.rd-nums i.r{background:var(--rou-red);} .rd-nums i.b{background:#141414;box-shadow:0 0 0 1px #444 inset;} .rd-nums i.g{background:var(--rou-green);}
.rd-nums i.new{box-shadow:0 0 0 2px #fff inset;}
.rd-nums.bj i{background:#1d2a36;font-size:18px;}
.rd-nums.bj i.e{background:#0b121a;}
.rd-nums.bj i.x{background:var(--banker-deep);} .rd-nums.bj i.bj{background:var(--brass-700);}
.rd-cnt em{font:var(--fs-s) var(--serif);font-style:normal;min-width:24px;height:20px;padding:0 4px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;color:#fff;}
.rd-cnt .r em{background:var(--banker);} .rd-cnt .b em{background:var(--player);} .rd-cnt .g em{background:var(--tie);}
.rd-cnt .x em{background:var(--banker-deep);} .rd-cnt .bj em{background:var(--brass-700);}
.rd-sic{flex:1;min-width:0;display:grid;grid-template-columns:repeat(5,100px);grid-auto-rows:34px;gap:6px;align-content:center;justify-content:center;overflow:hidden;max-height:100%;}
.rd-sic>div{display:flex;align-items:center;justify-content:center;gap:5px;padding:0 6px;border-radius:4px;background:#0e161e;}
.rd-sic>div.e{background:#0a1017;}
.rd-sic>div.e u{display:block;width:16px;height:16px;border-radius:4px;background:#121c26;}
.rd-sic>div.e b{background:#121c26;}
.rd-sic>div.new{box-shadow:0 0 0 1.5px #fff inset;}
.rd-sic .dd{display:flex;gap:2px;}
.rd-sic b{min-width:26px;height:24px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font:var(--fs-m) var(--serif);font-weight:400;color:#fff;}
.rd-sic b.r{background:var(--banker);} .rd-sic b.b{background:var(--player);} .rd-sic b.g{background:var(--tie);}

/* 巨幕右边：Arena Jackpot（LED） */
.std-jp{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px 12px;background:linear-gradient(180deg,#0a0c10,#040506);}
.std-jp .jl{font:700 var(--fs-s) var(--serif);letter-spacing:.24em;color:var(--brass-300);}
.std-jp .jv{display:flex;flex-direction:column;}
.std-jp .jv small{font:var(--fs-s) var(--serif);letter-spacing:.2em;color:var(--lcd-2);}
.std-jp .jv b{font:24px var(--mono);color:#ffcf6e;letter-spacing:.02em;white-space:nowrap;}
.std-jp .jv.minor b{font-size:18px;color:#e8c98a;}
.std-jp .jlast{font-size:var(--fs-s);color:var(--lcd-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------- Z2：终端台面（电子台布：平面、无木边、触屏玻璃） ---------- */
.std-tbl{padding:0;border-radius:12px 12px 0 0;background:linear-gradient(180deg,#2c2c30,#141417 40%,#0b0b0d) !important;
  box-shadow:0 0 0 1px #000,0 1px 0 rgba(255,255,255,.08) inset,0 -6px 26px rgba(0,0,0,.55) !important;}
.std-cloth{inset:6px 6px 0 !important;border-radius:8px 8px 0 0 !important;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,220,160,.08),transparent 55%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),
    radial-gradient(ellipse at 50% 80%,var(--f5) 0%,var(--f7) 60%,var(--f9) 100%) !important;
  box-shadow:0 0 0 1px #000 inset,0 0 0 2px rgba(255,255,255,.04) inset !important;}
.std-cloth::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:9;border-radius:inherit;
  background:linear-gradient(118deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,0) 24%,rgba(255,255,255,0) 72%,rgba(255,255,255,.025) 100%);}
.std-cloth.f-green{--f5:var(--felt-500);--f7:var(--felt-700);--f9:var(--felt-900);}
.std-cloth.f-wine{--f5:var(--wine-500);--f7:var(--wine-700);--f9:var(--wine-900);}
.std-cloth.f-navy{--f5:var(--navy-500);--f7:var(--navy-700);--f9:var(--navy-900);}
.std-cloth .th-ring{top:8px;}
.std-cloth .th-ring.off{visibility:hidden;}
.th-ring .lt-ring.dec .v b{color:var(--brass-100);}
.pt-lay{display:none;}
.pt-toast{position:absolute;left:50%;top:80px;transform:translate(-50%,-6px);z-index:8;max-width:70%;padding:6px 14px;border-radius:3px;opacity:0;pointer-events:none;
  background:linear-gradient(180deg,#221913,#120c09);border:1px solid var(--brass-700);box-shadow:var(--shadow-2);font-size:var(--fs-s);color:var(--tx-1);
  transition:opacity .2s ease,transform .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt-toast.show{opacity:1;transform:translate(-50%,0);}
.pt-toast.win{border-color:#4f9a5e;}
.pt-toast b{font-family:var(--serif);font-weight:400;color:var(--good);}
/* 结果条：倒计时环的原位（下注期藏起来） */
.std-res{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:7;display:none;align-items:center;gap:10px;height:44px;padding:0 18px;max-width:420px;
  border-radius:22px;background:linear-gradient(180deg,rgba(20,12,8,.94),rgba(10,6,4,.94));border:1px solid var(--brass-500);box-shadow:var(--shadow-2);
  font:var(--fs-m) var(--serif);letter-spacing:.08em;color:var(--brass-100);white-space:nowrap;overflow:hidden;}
.std-res.on{display:flex;}
.std-res.win{box-shadow:var(--shadow-2),0 0 22px rgba(255,200,120,.25);}
.std-res b{font-weight:400;} .std-res b.B{color:#ff9a9a;} .std-res b.P{color:#9ec0ff;} .std-res b.T{color:var(--tie-text);}
.std-res .sc{color:var(--tx-1);letter-spacing:.04em;}
.std-res small{font:var(--fs-s) var(--sans);letter-spacing:.02em;color:var(--warn);opacity:1;}
.std-res .dim{color:var(--tx-2);letter-spacing:.12em;font-size:var(--fs-s);}
.std-res .rn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;border-radius:3px;font-size:18px;color:#fff;}
.std-res .rn.r{background:var(--rou-red);} .std-res .rn.b{background:#111;box-shadow:0 0 0 1px #555 inset;} .std-res .rn.g{background:var(--rou-green);}
.std-res .dd{display:flex;gap:3px;}
.std-res em{font-style:normal;font-variant-numeric:tabular-nums lining-nums;color:var(--tx-1);}
.std-res em.up{color:var(--good);} .std-res em.dn{color:#e9a3a3;}

/* 通用注区（台布印线）：[data-k] 的格子 */
.pt-game [data-k]{position:relative;cursor:pointer;}
.pt-game [data-k].hov{box-shadow:0 0 0 2px var(--brass-100) inset !important;}
.pt-game .stk{position:absolute;right:4px;bottom:3px;display:flex;align-items:flex-end;gap:4px;pointer-events:none;z-index:3;}
.pt-game .stk:empty{display:none;}
.pt-game .stk .amt{font:var(--fs-s) var(--serif);color:var(--brass-100);text-shadow:0 1px 2px #000;white-space:nowrap;}
.pt-game .won:not(.sb-cell){box-shadow:0 0 0 2px var(--brass-100) inset,0 0 22px rgba(247,233,196,.4) !important;border-color:var(--brass-100) !important;}

/* ---------- 百家乐：闲牌在倒计时左、庄牌在右；注区 边注一行 + 闲 · 和 · 庄 ---------- */
#ptBac.on{display:block;position:absolute;inset:0;}
.pb-hand{position:absolute;top:6px;display:flex;flex-direction:column;gap:4px;z-index:2;}
.pb-hand.P{right:calc(50% + 124px);align-items:flex-end;}
.pb-hand.B{left:calc(50% + 124px);align-items:flex-start;}
.pb-hand .lbl{font:var(--fs-s) var(--serif);letter-spacing:.26em;color:var(--player-text);white-space:nowrap;display:flex;align-items:baseline;gap:8px;}
.pb-hand.B .lbl{color:var(--banker-text);}
.pb-hand .lbl b{font:var(--fs-l) var(--serif);font-weight:400;color:var(--tx-1);letter-spacing:0;min-width:14px;}
.pb-hand .cards{display:flex;gap:6px;min-height:82px;--card-w:58px;--card-h:82px;}
.pb-hand.win .cards .card{box-shadow:0 0 0 2px var(--brass-100),0 6px 14px rgba(0,0,0,.55);}
.pb-zones{position:absolute;left:50%;transform:translateX(-50%);bottom:50px;width:min(96%,960px);display:flex;flex-direction:column;gap:6px;}
.pb-main{display:grid;grid-template-columns:1fr .7fr 1fr;gap:8px;height:112px;}
.pb-sides{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;height:54px;}
.pt-game .z{border:2px solid rgba(231,201,127,.7);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;
  font-family:var(--serif);color:var(--print);box-shadow:0 0 0 1px rgba(0,0,0,.35) inset,0 0 0 1px rgba(0,0,0,.35);transition:border-color var(--t-fast);}
.pt-game .z::after{content:"";position:absolute;inset:3px;border:1px solid rgba(231,201,127,.28);border-radius:5px;pointer-events:none;}
.pt-game .z:hover{border-color:rgba(231,201,127,1);}
.pt-game .z .cn{font-size:30px;line-height:1.05;letter-spacing:.2em;padding-left:.2em;}
.pt-game .z .en{font-size:var(--fs-s);letter-spacing:.24em;color:var(--print);opacity:.85;}
.pt-game .z .od{font:var(--fs-s) var(--serif);letter-spacing:.06em;color:var(--tx-2);}
.pt-game .z .dist{font:var(--fs-s) var(--sans);color:var(--tx-2);min-height:14px;}
.pt-game .z.player{border-color:var(--player-ink);} .pt-game .z.player .cn{color:var(--player-text);}
.pt-game .z.banker{border-color:var(--banker-ink);} .pt-game .z.banker .cn{color:var(--banker-text);}
.pt-game .z.tie .cn{color:var(--tie-text);}
.pt-game .z.side{gap:0;}
.pt-game .z.side .cn{font-size:var(--fs-m);letter-spacing:.06em;padding-left:0;}
.pt-game .z.side .en{display:none;}
.pt-game .z.side .dist{display:none;}
.pt-game .z.active{box-shadow:0 0 0 2px var(--brass-300) inset,0 0 18px rgba(231,201,127,.28);}
.pb-print{text-align:center;font:var(--fs-s) var(--serif);letter-spacing:.2em;color:var(--print);opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---------- 轮盘：注区占台面，赛道一行在下面 ---------- */
#ptRou.on{display:flex;flex-direction:column;gap:6px;position:absolute;left:50%;transform:translateX(-50%);top:80px;bottom:50px;width:min(96%,1020px);}
.pr-board{display:grid;grid-template-columns:52px minmax(0,1fr) 58px;grid-template-rows:repeat(3,minmax(24px,1fr)) 30px 30px;gap:3px;flex:1;min-height:0;}
.pr-zero{grid-column:1;grid-row:1/4;}
.pr-nums{grid-column:2;grid-row:1/4;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:3px;min-width:0;}
.pr-col{grid-column:3;grid-row:1/4;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:3px;}
.pr-doz{grid-column:2;grid-row:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;}
.pr-out{grid-column:2;grid-row:5;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;}
.pr-board [data-k]:not(.hz){border:1.5px solid rgba(231,201,127,.7);border-radius:3px;display:flex;align-items:center;justify-content:center;
  font:18px var(--serif);color:var(--tx-1);min-width:0;font-variant-numeric:lining-nums;}
.pr-n.r{background:var(--rou-red);} .pr-n.b{background:var(--rou-black);} .pr-zero{background:var(--rou-green) !important;}
.pr-n span,.pr-zero span{color:#fff;pointer-events:none;}
.pr-col [data-k],.pr-doz [data-k],.pr-out [data-k]{font:var(--fs-s) var(--serif) !important;letter-spacing:.12em;color:var(--print) !important;}
.pr-out .dia{width:16px;height:16px;transform:rotate(45deg);border:1px solid #fff;display:block;}
.pr-out .dia.red{background:var(--rou-red);} .pr-out .dia.black{background:#0b0b0b;}
.pr-board [data-k]:not(.hz):hover{border-color:var(--brass-100);}
.pr-board .hit{box-shadow:0 0 0 2px var(--brass-100) inset,0 0 18px rgba(247,233,196,.45);}
.pr-n .hz{position:absolute;z-index:4;border-radius:2px;}
.pr-n .hz:hover,.pr-n .hz.hov{background:rgba(247,233,196,.35);}
.pr-n .hz.e{right:-6px;top:22%;bottom:22%;width:9px;}
.pr-n .hz.n{top:-6px;left:22%;right:22%;height:9px;}
.pr-n .hz.ne{top:-7px;right:-7px;width:12px;height:12px;z-index:5;}
.pr-n .hz.s{bottom:-6px;left:22%;right:22%;height:9px;}
.pr-n .hz.se{bottom:-7px;right:-7px;width:12px;height:12px;z-index:5;}
.pr-board .stk{right:auto;left:50%;bottom:50%;transform:translate(-50%,50%);}
.pr-n .hz .stk{left:50%;bottom:50%;right:auto;transform:translate(-50%,50%);z-index:6;}
.pr-board .stk .amt{display:none;}
.pr-track{flex:none;display:flex;align-items:center;gap:4px;height:34px;padding:0 8px;border-radius:5px;background:rgba(0,0,0,.3);border:1px solid rgba(231,201,127,.3);overflow:hidden;}
.pr-track .lbl{font:var(--fs-s) var(--serif);letter-spacing:.14em;color:var(--print);opacity:.8;margin:0 4px;white-space:nowrap;}
.pr-track .sep{width:1px;height:18px;background:rgba(231,201,127,.3);margin:0 4px;flex:none;}
.pr-track .tb{height:26px;padding:0 9px;border-radius:var(--r-1);border:1px solid var(--brass-900);background:linear-gradient(180deg,#2a1f16,#1a120d);flex:none;
  color:var(--brass-100);font:var(--fs-s) var(--sans);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.pr-track .tb small{font-size:var(--fs-s);color:var(--tx-3);opacity:1;}
.pr-track .tb:hover{border-color:var(--brass-500);}
.pr-track .tb.on{border-color:var(--brass-300);background:linear-gradient(180deg,rgba(201,160,82,.3),rgba(201,160,82,.12));}
.pr-track .tb.fin{padding:0;width:26px;justify-content:center;}
.pr-track.nbon{border-color:var(--brass-300);}

/* ---------- 骰宝：台面就是真人骰宝桌那一套（.sb-board / .sb-cell，样式在 css/sicbo.css），这里只定位置和终端台面的高度 ---------- */
#ptSic.on{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;transform:translateX(-50%);top:78px;bottom:50px;width:min(96%,980px);}
/* 行高比例：上面小/大那块让出一点给四码 / 两骰两排（真人桌 2.7 · 1 · .7 · .8 · 1，终端矮，四码和两骰那两排的赔率字会被压到框线上） */
#ptSic .sb-board{max-width:none;grid-template-rows:minmax(0,2.3fr) minmax(0,.95fr) minmax(0,.85fr) minmax(0,.9fr) minmax(0,1fr);}
/* 筹码：终端格子矮，放在格子朝里的下角、骑在框线上（格子里的字在正中，角上是空的）。
   金额照电子台的做法直接压在筹码上（小一号），不伸到格子中间去盖字；赢了只写「+赢多少」（本金就是那枚筹码） */
#ptSic .sb-stack{left:auto;right:-7px;bottom:-7px;transform:none;z-index:6;}
#ptSic .sb-stack .chipstack{transform:scale(.78);transform-origin:100% 100%;}
/* 最右一列（大 / 单）也放右下角、骑在外框上：放左下角会和左边那格（11:1 / 180:1）右下角的筹码骑在同一条线上互相压（qa） */
/* 双 / 单 是「汉字 | 英文 + 赔率」一行：两格都把筹码放在汉字那一侧的下角（右边是 1 WINS 1，会碰到） */
#ptSic .sb-col:first-child .sb-cell.side .sb-stack{right:auto;left:-7px;} #ptSic .sb-col:first-child .sb-cell.side .sb-stack .chipstack{transform-origin:0 100%;}
#ptSic .sb-stack .sb-amt,#ptSic .sb-col:last-child .sb-stack .sb-amt,#ptSic .sb-row>.sb-cell:last-child .sb-stack .sb-amt{
  left:50%;right:auto;bottom:0;margin:0;transform:translateX(-50%);font-size:10px;line-height:12px;padding:0 2px;letter-spacing:-.01em;border-radius:6px;background:rgba(8,6,4,.84);}
#ptSic .sb-stack .sb-amt:has(i){font-size:0;} #ptSic .sb-stack .sb-amt i{font-size:10px;}
/* 终端台面比真人桌矮（上面是 188 高的巨幕）：格子里的字照真人桌矮窗口那一档收紧，别把格子撑破 */
#ptSic .sb-cell .cn{font-size:24px;} #ptSic .sb-cell .cn.s{font-size:18px;} #ptSic .sb-cell .tn{font-size:18px;}
#ptSic .sb-cell.edge:not(.side) .cn{font-size:21px;}
/* 小 / 大：终端上放不下四行，SMALL 和 4 – 10 并成一行（字和真人桌一样全在） */
#ptSic .sb-cell.edge:not(.side) .sb-in{display:grid;grid-template-columns:auto auto;grid-template-areas:"cn cn" "en sub" "od od";justify-items:center;align-items:baseline;column-gap:7px;row-gap:2px;}
#ptSic .sb-cell.edge:not(.side) .cn{grid-area:cn;} #ptSic .sb-cell.edge:not(.side) .en{grid-area:en;letter-spacing:.18em;padding-left:.18em;}
#ptSic .sb-cell.edge:not(.side) .sub{grid-area:sub;font-size:11px;letter-spacing:.04em;white-space:nowrap;} #ptSic .sb-cell.edge:not(.side) .odds{grid-area:od;}
#ptSic .sb-cell.any .cn{font-size:20px;}
#ptSic .sb-in{gap:1px;}

/* ---------- Arena Blackjack：荷官牌在环下 · 一手牌（全场共用）在正中，左边是「你」、右边是其他终端的小标记 · 主注圈在你正前方（边注在两边） ---------- */
#ptBj.on{display:block;position:absolute;inset:0;}
.pj-dealer{position:absolute;top:76px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;min-height:82px;}
.pj-dealer .cards,.pj-hand .cards{display:flex;--card-w:58px;--card-h:82px;min-height:82px;}
.pj-dealer .cards .card+.card,.pj-hand .cards .card+.card{margin-left:-20px;}
.pj-dealer .tot{font:var(--fs-l) var(--serif);font-weight:400;color:var(--tx-1);white-space:nowrap;min-width:10px;font-variant-numeric:lining-nums;}
/* 一行三块：你（右对齐）· 一手牌（正中）· 其他终端（左对齐）——牌永远在正中 */
.pj-row{position:absolute;top:168px;left:12px;right:12px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:22px;}
.pj-hand{grid-column:2;min-width:58px;}
/* 你停下之后，别人接着要的牌：压暗、和你的牌隔开一点 */
.pj-hand .cards .card.off{filter:brightness(.42) saturate(.6);}
.pj-hand .cards .card.cut{margin-left:10px;}
/* 你：金色「你」（和底边你的位置同一个记号）+ 点数 + 决定 / 输赢 */
.pj-you{grid-column:1;justify-self:end;display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:8px;border:1.5px solid rgba(231,201,127,.22);
  background:rgba(5,9,17,.86);box-shadow:0 2px 10px rgba(0,0,0,.35);   /* 实底：压在台布弧形印字上也不透字 */transition:border-color var(--t-fast),box-shadow var(--t-fast);}
.pj-you:empty{display:none;}
.pj-you.act{border-color:var(--brass-300);box-shadow:0 0 18px rgba(255,200,120,.25);}
.pj-you .who{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,var(--brass-100),var(--brass-500));color:#241a08;font:var(--fs-m) var(--serif);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 1px 3px rgba(0,0,0,.6);}
.pj-you .yhs{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.pj-you .yh{display:flex;align-items:baseline;gap:8px;white-space:nowrap;}
.pj-you .yh b{font:var(--fs-l) var(--serif);font-weight:400;color:var(--tx-1);font-variant-numeric:lining-nums;}
.pj-you .yh small{font:var(--fs-s) var(--serif);color:var(--brass-300);opacity:1;}
.pj-you .yh em{font:var(--fs-m) var(--serif);font-style:normal;color:var(--tx-2);}
.pj-you .yh em.up{color:var(--good);} .pj-you .yh em.dn{color:#e9a3a3;}
.pj-you .yh.bust b{color:#e9a3a3;}
/* 分牌：两手各一行小牌 */
.pj-you .yh .mc{display:flex;align-self:center;}
.pj-you .yh .mc .card.sm{width:28px;height:39px;animation:none;}   /* 这块每翻一张就重画：不重播发牌动画 */
.pj-you .yh .mc .card+.card{margin-left:-12px;}
.pj-you .yhs:has(.mc) .yh b{font-size:var(--fs-m);}
.pj-you .yh.act{border-radius:4px;box-shadow:0 0 0 1.5px var(--brass-300);padding:0 6px 0 2px;}
/* 其他终端：一台一个小屏（终端号 + 它的决定），跟着翻牌变 */
.pj-seats{grid-column:3;justify-self:start;display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:5px 6px;}
.pj-seats:empty{display:none;}
.pj-pt{display:flex;align-items:center;height:22px;border-radius:3px;overflow:hidden;font-style:normal;white-space:nowrap;
  background:linear-gradient(180deg,#141416,#0a0a0b);box-shadow:0 0 0 1px #000,0 0 0 2px #26262a;}
.pj-pt b{font:var(--fs-s) var(--mono);font-weight:400;color:var(--tx-3);padding:0 5px;letter-spacing:.04em;}
.pj-pt em{font:var(--fs-s) var(--serif);font-style:normal;min-width:30px;height:100%;padding:0 6px;display:flex;align-items:center;justify-content:center;color:var(--tx-2);background:rgba(255,255,255,.05);}
.pj-pt.a-H em{color:#1d1408;background:linear-gradient(180deg,var(--brass-100),var(--brass-500));}
.pj-pt.a-D em{color:#1d1408;background:linear-gradient(180deg,#ffd9a0,#d99a3c);}
.pj-pt.a-S em{color:var(--tx-1);}
.pj-pt.a-X em{color:#f1c9c9;background:var(--banker-deep);}
.pj-pt.a-B em{color:#1d1408;background:linear-gradient(180deg,#ffe7a8,#c9a052);}
.pj-pt.a-P em{color:var(--brass-100);}
.pj-bets{position:absolute;left:50%;bottom:44px;width:0;height:76px;}
.pt-game .pj-circle{position:absolute;bottom:0;border:2px solid rgba(231,201,127,.72);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  font-family:var(--serif);color:var(--print);}
.pt-game .pj-circle.main{width:76px;height:76px;left:-38px;justify-content:flex-start;padding-top:11px;border-color:var(--brass-300);border-width:2.5px;box-shadow:0 0 0 4px rgba(231,201,127,.12);}
.pt-game .pj-circle.side{width:60px;height:60px;bottom:8px;}
.pt-game .pj-circle.l1{left:-170px;} .pt-game .pj-circle.l2{left:-280px;} .pt-game .pj-circle.r1{left:110px;}
/* 边注名字印在圈下面（筹码放在圈里，不会盖住字）；主注的字在圈里上沿，筹码在下半 */
.pj-circle.side .cn{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:3px;white-space:nowrap;font-size:var(--fs-s);letter-spacing:.06em;color:var(--print);opacity:.8;}
.pj-circle .cn{font-size:var(--fs-s);letter-spacing:.02em;line-height:1.1;padding:0 3px;}
.pj-circle.main .cn{font-size:var(--fs-m);letter-spacing:.16em;padding-left:.16em;}
.pj-circle .en{display:none;}
.pt-game .pj-circle.active{box-shadow:0 0 0 2px var(--brass-300) inset,0 0 16px rgba(231,201,127,.3);}
.pj-circle .stk{right:50%;bottom:6px;transform:translateX(50%);}
.pj-circle.side .stk{bottom:50%;transform:translate(50%,50%);}
.pj-circle .stk .amt{display:none;}
/* 台面弧形印字（两段，中间留给荷官牌和你的手） */
.pj-arc{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;}
.pj-arc path{fill:none;} .pj-arc path.ln{stroke:rgba(231,201,127,.32);stroke-width:1.2;}
.pj-arc text{fill:var(--print);text-anchor:middle;font-family:var(--serif);}
.pj-arc text.big{font-size:21px;letter-spacing:.2em;opacity:.62;}
.pj-arc text.sm{font-size:12px;letter-spacing:.26em;opacity:.45;}

/* ---------- 没坐下：终端平面图（盖在台面那一块上） ---------- */
.std-pick{position:absolute;inset:0;z-index:6;display:none;overflow:auto;padding:12px 16px;border-radius:12px 12px 0 0;
  background:radial-gradient(ellipse at 50% 0%,var(--lamp-glow-2),transparent 60%),
    radial-gradient(circle at 12px 12px,var(--carpet-gold) 0 1.5px,transparent 2px) 0 0/24px 24px,
    radial-gradient(circle at 0 0,var(--carpet-gold) 0 1.5px,transparent 2px) 12px 12px/24px 24px,
    linear-gradient(180deg,var(--carpet-900),var(--carpet-700));}
.view-pick .std-pick{display:block;}
.view-pick .std-tbl,.view-pick .th-you,.view-pick .th-tray{visibility:hidden;}
.pk-wrap{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;align-items:start;max-width:1400px;margin:0 auto;}
.pk-floor{padding:12px 14px 14px;border-radius:var(--r-2);background:rgba(8,5,4,.5);border:1px solid var(--brass-900);box-shadow:var(--hi-warm);min-width:0;}
.pk-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;}
.pk-head b{font:var(--fs-m) var(--serif);letter-spacing:.14em;color:var(--brass-300);font-weight:400;}
.pk-head span{font-size:var(--fs-s);color:var(--tx-3);}
.pk-row{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:8px;}
.pk-aisle{height:14px;margin:6px 0;border-top:1px solid rgba(201,160,82,.14);border-bottom:1px solid rgba(201,160,82,.14);}
.pk-pt{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 0;border:0;background:none;cursor:pointer;font-family:var(--sans);min-width:0;}
.pk-pt .scr{width:100%;max-width:86px;aspect-ratio:1.7;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:linear-gradient(180deg,#141416,#0a0a0b);box-shadow:0 0 0 1px #000,0 0 0 3px #26262a,0 0 0 4px var(--brass-900),0 4px 8px rgba(0,0,0,.6);}
.pk-pt .scr em{font-style:normal;font:var(--fs-s) var(--serif);letter-spacing:.06em;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px;}
.pk-pt.busy .scr{background:linear-gradient(180deg,#123a2c,#0b2219);}
.pk-pt.busy .scr em{color:var(--lcd-1);}
.pk-pt b{font:var(--fs-s) var(--mono);color:var(--tx-3);font-weight:400;letter-spacing:.06em;}
.pk-pt .stool{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#4a2d1f,#1d110b);box-shadow:0 0 0 2px #0d0806;}
.pk-pt.busy .stool{background:radial-gradient(circle at 40% 35%,#e0d2b3,#8d7b5c);}
.pk-pt.free:hover .scr{box-shadow:0 0 0 1px #000,0 0 0 3px #26262a,0 0 0 4px var(--brass-500),0 4px 12px rgba(255,200,120,.2);}
.pk-pt.free .scr em{color:var(--brass-300);}
.pk-pt.busy{cursor:default;}
.pk-card{padding:12px 14px;border-radius:var(--r-2);background:linear-gradient(180deg,#1b1410,#120d0a);border:1px solid var(--brass-900);box-shadow:var(--hi-warm),var(--shadow-1);font-size:var(--fs-s);color:var(--tx-2);}
.pk-card.kiosk{cursor:pointer;}
.pk-card.kiosk:hover{border-color:var(--brass-500);}
.pk-card .kh{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.pk-card .kh b{font:var(--fs-s) var(--serif);letter-spacing:.16em;color:var(--brass-300);font-weight:400;}
.pk-card .kh .ic{width:16px;height:16px;fill:var(--brass-500);}
.pk-card .kb{font-size:var(--fs-m);color:var(--tx-1);}

/* ---------- Z3 rail 左边：credits + 纸币器 / COLLECT ---------- */
.std-left{justify-self:start;display:flex;align-items:center;gap:10px;min-width:0;}
.std-hw{display:flex;flex-direction:column;gap:6px;}
.std-hw:empty{display:none;}
.std-mini{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-1);cursor:pointer;white-space:nowrap;
  border:1px solid var(--brass-900);background:linear-gradient(180deg,#2a1f16,#17100b);color:var(--tx-2);font:var(--fs-s) var(--serif);letter-spacing:.08em;}
.std-mini:hover{border-color:var(--brass-500);color:var(--brass-100);}
.std-mini .ic{width:14px;height:14px;fill:currentColor;}
.pt-ghost{position:fixed;left:0;top:0;pointer-events:none;z-index:95;filter:drop-shadow(0 6px 8px rgba(0,0,0,.6));}

/* 出票口：票从 rail 左边吐出来 */
.hw-ticket{position:absolute;left:250px;bottom:100px;width:180px;padding:7px 10px;border-radius:2px;display:flex;flex-direction:column;gap:1px;opacity:0;pointer-events:none;z-index:30;
  background:linear-gradient(180deg,#f6f1e4,#e7dfcb);color:#2a241a;box-shadow:0 4px 12px rgba(0,0,0,.6);transform:translateY(40px) scaleY(.2);transform-origin:50% 100%;}
.hw-ticket.out{animation:stdTicket 6s ease forwards;}
@keyframes stdTicket{0%{opacity:1;transform:translateY(30px) scaleY(.1)}12%{opacity:1;transform:translateY(0) scaleY(1)}85%{opacity:1;transform:translateY(0) scaleY(1)}100%{opacity:0;transform:translateY(-10px) scaleY(1)}}
.hw-ticket b{font:700 var(--fs-s) var(--sans);letter-spacing:.2em;}
.hw-ticket span{font:20px var(--serif);}
.hw-ticket small{font:var(--fs-s) var(--mono);letter-spacing:.04em;opacity:1;color:#4d4434;}

/* 纸币器弹出面板（rail 左上） */
.pt-billbox{position:absolute;left:16px;bottom:104px;width:min(580px,calc(100% - 32px));z-index:28;padding:12px 14px 14px;border-radius:var(--r-2);
  background:linear-gradient(180deg,#221913,#120c09);border:1px solid var(--brass-700);box-shadow:0 0 0 1px #000,var(--hi-brass),var(--shadow-3);}
.bb-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.bb-head b{font:var(--fs-s) var(--serif);letter-spacing:.14em;color:var(--brass-300);font-weight:400;}
.bb-head span{margin-left:auto;font-size:var(--fs-s);color:var(--tx-3);}
.bb-head span b{font-size:var(--fs-m);color:var(--brass-100);letter-spacing:0;}
.bb-head .ic{width:16px;height:16px;fill:var(--brass-500);}
.bb-head .ic.x{cursor:pointer;fill:var(--tx-3);}
.bb-hint{font-size:var(--fs-s);color:var(--warn);margin-bottom:8px;}
.bb-notes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:8px;}
.bb-note{height:50px;border-radius:3px;border:1px solid rgba(0,0,0,.4);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 2px 4px rgba(0,0,0,.5);color:#16130d;font-family:var(--serif);position:relative;overflow:hidden;}
.bb-note::before{content:"";position:absolute;inset:4px;border:1px solid rgba(0,0,0,.18);border-radius:2px;}
.bb-note b{font-size:18px;font-weight:700;}
.bb-note small{font:var(--fs-s) var(--sans);letter-spacing:.2em;opacity:.7;}
.bb-note.n5{background:linear-gradient(135deg,#e5b8d2,#b882a8);} .bb-note.n10{background:linear-gradient(135deg,#8fc2e8,#4c8fc0);}
.bb-note.n20{background:linear-gradient(135deg,#f0a07c,#c8603c);} .bb-note.n50{background:linear-gradient(135deg,#f5d77a,#c9a33b);}
.bb-note.n100{background:linear-gradient(135deg,#9fd49f,#4f9a5e);}
.bb-note:hover{filter:brightness(1.08);} .bb-note:active{transform:translateY(1px);}
.bb-quick{margin-bottom:8px;}
.bb-sub{font-size:var(--fs-s);color:var(--tx-2);display:flex;align-items:center;gap:6px;margin:6px 0 4px;}
.bb-sub.dim{color:var(--tx-3);}
.bb-sub .ic{width:14px;height:14px;fill:var(--brass-500);}
.bt-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid var(--hairline);}
.bt-row .num{font:var(--fs-m) var(--serif);color:var(--brass-100);}
.bt-row small{font:var(--fs-s) var(--mono);color:var(--tx-3);opacity:1;}

/* ---------- Z4 抽屉里每行的缩略 ---------- */
.std-thumb{display:flex;gap:2px;flex-wrap:wrap;}
.std-thumb.dim{font-size:var(--fs-s);color:var(--tx-3);}
.std-thumb.nums i{min-width:20px;height:18px;padding:0 2px;border-radius:2px;display:inline-flex;align-items:center;justify-content:center;font:var(--fs-s) var(--serif);font-style:normal;color:#fff;background:#2b3440;}
.std-thumb.nums i.r{background:var(--rou-red);} .std-thumb.nums i.b{background:#161616;box-shadow:0 0 0 1px #444 inset;} .std-thumb.nums i.g{background:var(--rou-green);}
.std-thumb.nums i.x{background:var(--banker-deep);}
#stdScreen .th-pop .th-pop-f{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;}

/* ---------- 兑票机 / Cage 兑票 · 规则 ---------- */
.std-tk{display:flex;flex-direction:column;gap:8px;}
.tk-note{font-size:var(--fs-s);color:var(--tx-2);line-height:1.6;}
.tk-left{font-size:var(--fs-s);color:var(--tx-3);}
.tk-left b{font-size:14px;color:var(--brass-100);}
.tk-row{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--hairline);}
.tk-slip{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border-radius:2px;background:linear-gradient(180deg,#f6f1e4,#e7dfcb);color:#2a241a;box-shadow:0 2px 6px rgba(0,0,0,.5);}
.tk-slip b{font:700 var(--fs-s) var(--sans);letter-spacing:.2em;}
.tk-slip .num{font:19px var(--serif);}
.tk-slip small{font:var(--fs-s) var(--mono);color:#4d4434;opacity:1;}
.tk-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.tk-act small{flex-basis:100%;font-size:var(--fs-s);color:var(--warn);opacity:1;}
.tk-empty{font-size:13px;color:var(--tx-3);padding:12px 0;}
.std-help{font-size:13px;color:var(--tx-2);line-height:1.65;max-height:calc(var(--vh) * 62);overflow:auto;padding-right:6px;}
.std-help h4{font:14px var(--serif);letter-spacing:.08em;color:var(--brass-300);font-weight:400;margin:12px 0 4px;}
.std-help ul{padding-left:18px;}
.std-help b{color:var(--tx-1);font-weight:600;}
.std-help .src{margin-top:12px;font-size:var(--fs-s);color:var(--tx-3);}

/* ---------- 大厅楼面图：Arena 巨幕和有人的终端（js/core/floor-ui.js stadiumSVG） ---------- */
.fp-svg .fp-std .wall{fill:#2c4456;}

/* ---------- 布局变窄（dp） ---------- */
@container vp (max-width:1340px){ .std-tabs .tg em{display:none;} .std-tabs .pt-tab{padding:0 8px;} }
@container vp (max-width:1180px){
  .std-tabs .pt-tab{padding:0 7px;}
  .std-wall{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) 170px;}
}

/* ---------- 手机横屏（html.m 不缩放，mobile.css 把 HUD 压成 36 / 118 / 66）：终端台面整块缩小，限红行收起、标签压紧 ---------- */
html.m #stdScreen .th-lim{display:none;}
html.m .std-tabs{margin-left:4px;gap:4px;}
html.m .std-tabs .tg em{display:none;}
html.m .std-tabs .pt-tab{height:28px;padding:0 6px;gap:4px;}
html.m .std-tabs .pt-tab b{font-size:13px;}
html.m .std-wall{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) 130px;}
html.m .std-jp{padding:4px 8px;gap:2px;}
html.m .std-jp .jv b{font-size:16px;} html.m .std-jp .jv.minor b{font-size:13px;} html.m .std-jp .jlast{display:none;}
html.m .std-road.bead,html.m .std-road.big{--c:15px;}
html.m .std-road.bead i b{font-size:0;}
html.m .rd-nums{grid-template-columns:repeat(10,30px);grid-auto-rows:30px;gap:3px;}
html.m .rd-nums i{font-size:15px;}
html.m .rd-sic{grid-template-columns:repeat(5,86px);grid-auto-rows:26px;gap:3px;}
html.m .std-tbl{zoom:.44;}
html.m .std-pick{zoom:.62;}
html.m .std-hw{display:none;}
html.m .pt-billbox{bottom:70px;}

/* ---------- 手机横屏 · 第二遍（mtables）：台面不再整块 zoom .44（字小过下限、格子点不准），按手机尺寸重排 ----------
   骨架（顶栏 36 · rail 64 · 巨幕进左抽屉「路单」键）见 css/mobile.css 的 mtables 段；终端台布约 820×285（SE 带工具栏约 655×233）。
   · 百家乐：闲 / 庄牌夹着倒计时（牌 44×62）；下面边注一行 + 闲 · 和 · 庄
   · 轮盘 / 骰宝：倒计时挪到台布左上角，注区从顶上铺到底边那条（数字格约 52×47）；结果条放左下角，不盖注区
   · 21 点：荷官牌在顶上正中、倒计时在它左边；你 · 一手牌 · 其他终端一行；注圈贴底边（主注 60，边注 48）
   · 没坐下的终端平面图不缩放，放不下自己上下滑
   · 巨幕（荷官镜头 · 路单 · Jackpot）在左抽屉里竖着排
   锦标赛轮盘桌（#tnRoot.std-root）共用终端台布 / 注区这几条，位置见 css/tourney.css。 */
html.m :is(#stdRoot,#tnRoot.std-root) .std-tbl,html.m #stdRoot .std-pick{zoom:1;}
html.m :is(#stdRoot,#tnRoot.std-root) .th > .th-board{width:min(420px,88vw);}
html.m :is(#stdRoot,#tnRoot.std-root) .std-wall{display:flex;flex-direction:column;gap:6px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-hero{flex:none;height:200px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-road-box{flex:none;min-height:120px;flex-wrap:wrap;justify-content:center;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-jp{flex:none;padding:8px 12px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-cloth{inset:4px 4px 0 !important;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-cloth .th-ring{top:4px;width:50px;height:50px;margin-left:-25px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-cloth .th-ring .lt-ring{width:50px;height:50px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-cloth .th-ring .lt-ring .v b{font-size:20px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-res{top:4px;height:40px;padding:0 14px;gap:8px;max-width:min(420px,70%);font-size:14px;}
html.m #stdRoot .pt-toast{top:58px;max-width:80%;}
/* 百家乐 */
html.m #stdRoot .pb-hand{top:3px;gap:2px;}
html.m #stdRoot .pb-hand.P{right:calc(50% + 72px);} html.m #stdRoot .pb-hand.B{left:calc(50% + 72px);}
html.m #stdRoot .pb-hand .lbl{font-size:12px;gap:6px;}
html.m #stdRoot .pb-hand .lbl b{font-size:20px;}
html.m #stdRoot .pb-hand .cards{gap:4px;min-height:62px;--card-w:44px;--card-h:62px;}
html.m #stdRoot .pb-zones{top:96px;bottom:42px;width:calc(100% - 16px);gap:6px;}
html.m #stdRoot .pb-sides{height:44px;flex:none;gap:5px;}
html.m #stdRoot .pb-main{height:auto;flex:1;min-height:0;gap:6px;}
html.m #stdRoot .pb-print{display:none;}
/* 结果条放顶上会盖住 PLAYER / BANKER 和牌：跟轮盘 / 骰宝一样挪到左下角那条（见下面轮盘段） */
html.m #stdRoot .pt-game .z .cn{font-size:24px;}
html.m #stdRoot .pt-game .z.side .cn{font-size:13px;}
html.m #stdRoot .pt-game .z .en,html.m #stdRoot .pt-game .z .od,html.m #stdRoot .pt-game .z .dist{font-size:11px;}
/* 轮盘：倒计时 / 结果挪开，注区铺满 */
html.m #stdRoot #ptRou.on{left:62px;right:6px;top:6px;bottom:42px;width:auto;transform:none;gap:4px;}
html.m #stdRoot .pt-game:has(#ptRou.on) .th-ring,html.m #stdRoot .pt-game:has(#ptSic.on) .th-ring{left:32px;top:8px;}
html.m #stdRoot .pt-game:has(#ptRou.on) .std-res,html.m #stdRoot .pt-game:has(#ptSic.on) .std-res,html.m #stdRoot .pt-game:has(#ptBac.on) .std-res{top:auto;bottom:3px;left:8px;transform:none;height:36px;max-width:calc(50% - 60px);}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-board{grid-template-columns:44px minmax(0,1fr) 48px;grid-template-rows:repeat(3,minmax(0,1.3fr)) minmax(26px,.75fr) minmax(26px,.75fr);}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-board [data-k]:not(.hz){font-size:17px;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-col [data-k],html.m :is(#stdRoot,#tnRoot.std-root) .pr-doz [data-k],html.m :is(#stdRoot,#tnRoot.std-root) .pr-out [data-k]{font-size:11px !important;letter-spacing:.06em;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-n .hz.e{right:-8px;width:13px;} html.m :is(#stdRoot,#tnRoot.std-root) .pr-n .hz.s{bottom:-8px;height:13px;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-n .hz.n{top:-8px;height:13px;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-n .hz.ne,html.m :is(#stdRoot,#tnRoot.std-root) .pr-n .hz.se{width:16px;height:16px;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-track{height:40px;padding:0 4px;gap:3px;overflow-x:auto;scrollbar-width:none;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-track::-webkit-scrollbar{display:none;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-track .lbl{display:none;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-track .tb{height:36px;padding:0 10px;font-size:12px;}
html.m :is(#stdRoot,#tnRoot.std-root) .pr-track .tb.fin,html.m :is(#stdRoot,#tnRoot.std-root) .pr-track .tb.nb{width:40px;justify-content:center;padding:0;}
/* 骰宝 */
html.m #stdRoot #ptSic.on{left:62px;right:6px;top:6px;bottom:42px;width:auto;transform:none;}
html.m #stdRoot #ptSic .sb-board{width:100%;height:100%;grid-template-rows:minmax(0,2fr) minmax(0,1fr) minmax(0,.85fr) minmax(0,1fr) minmax(0,1fr);}   /* 下面几排格子多：行高匀一点给它们 */
/* 真人骰宝第一遍的手机规则把 小 / 大、双 / 单格写死了高（60 / 34 × --m-k）：终端上按行高走，不然会叠在一起 */
html.m #stdRoot #ptSic .sb-col{grid-template-rows:minmax(0,1.45fr) minmax(0,1fr);}
html.m #stdRoot #ptSic .sb-cell.edge,html.m #stdRoot #ptSic .sb-cell.side,html.m #stdRoot #ptSic .sb-cell.dbl,html.m #stdRoot #ptSic .sb-cell.tri,
html.m #stdRoot #ptSic .sb-cell.tot,html.m #stdRoot #ptSic .sb-cell.four,html.m #stdRoot #ptSic .sb-cell.pair,html.m #stdRoot #ptSic .sb-cell.single{height:auto;min-height:0;}
html.m #stdRoot #ptSic .sb-cell.edge:not(.side) .sub{display:none;}
html.m #stdRoot #ptSic .sb-cell .cn{font-size:18px;} html.m #stdRoot #ptSic .sb-cell .cn.s{font-size:15px;} html.m #stdRoot #ptSic .sb-cell .tn{font-size:15px;}
html.m #stdRoot #ptSic .sb-cell.edge:not(.side) .cn{font-size:17px;}
html.m #stdRoot #ptSic .sb-cell .odds,html.m #stdRoot #ptSic .sb-cell .en,html.m #stdRoot #ptSic .sb-cell .sub{font-size:10px;}
/* 21 点 */
html.m #stdRoot .pj-arc text.sm{display:none;}
html.m #stdRoot .pj-arc text.big{font-size:26px;}
html.m #stdRoot .pt-game:has(#ptBj.on) .th-ring{left:calc(50% - 110px);}
html.m #stdRoot .pt-game:has(#ptBj.on) .std-res{left:calc(50% - 150px);transform:translateX(-50%);max-width:220px;}
html.m #stdRoot .pj-dealer{top:4px;min-height:62px;gap:8px;}
html.m #stdRoot .pj-dealer .cards,html.m #stdRoot .pj-hand .cards{--card-w:44px;--card-h:62px;min-height:62px;}
html.m #stdRoot .pj-dealer .cards .card+.card,html.m #stdRoot .pj-hand .cards .card+.card{margin-left:-16px;}
html.m #stdRoot .pj-dealer .tot{font-size:20px;}
html.m #stdRoot .pj-row{top:74px;column-gap:14px;left:8px;right:8px;}
html.m #stdRoot .pj-you{gap:8px;padding:4px 10px 4px 4px;}
html.m #stdRoot .pj-you .who{width:26px;height:26px;font-size:14px;}
html.m #stdRoot .pj-you .yh b{font-size:20px;}
html.m #stdRoot .pj-seats{gap:4px;}
html.m #stdRoot .pj-bets{bottom:40px;height:60px;}
html.m #stdRoot .pt-game .pj-circle.main{width:60px;height:60px;left:-30px;padding-top:8px;}
html.m #stdRoot .pt-game .pj-circle.side{width:48px;height:48px;bottom:6px;}
html.m #stdRoot .pt-game .pj-circle.l1{left:-122px;} html.m #stdRoot .pt-game .pj-circle.l2{left:-228px;} html.m #stdRoot .pt-game .pj-circle.r1{left:74px;}
html.m #stdRoot .pj-circle .cn{font-size:12px;}
html.m #stdRoot .pj-circle.main .cn{font-size:13px;}
html.m #stdRoot .pj-circle.side .cn{font-size:11px;margin-top:1px;}
html.m :is(#stdRoot,#tnRoot.std-root) .std-cloth .th-you{bottom:4px;}
/* 没坐下：终端平面图 */
html.m #stdRoot .std-pick{padding:8px 10px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
html.m #stdRoot .pk-wrap{grid-template-columns:minmax(0,1fr) 170px;gap:10px;}
html.m #stdRoot .pk-floor{padding:8px 10px 10px;}
html.m #stdRoot .pk-row{gap:5px;}
html.m #stdRoot .pk-pt{min-height:48px;}
/* 终端屏上的游戏名：手机上格子只有 50 来宽，出的是短名（stadium.js renderPick：Super 6 · Star · Tiger · 轮盘 · 骰宝 · 21 点），全名在 title */
/* 纸币器（没 credits 坐下时弹）：关闭 × 看着 16、点击范围 44；塞 $100–$1,000 四个键 44 高；矮屏放不下自己滑 */
html.m #stdRoot .pt-billbox{max-height:calc(100% - 80px);overflow-y:auto;overscroll-behavior:contain;}
html.m #stdRoot .pt-billbox .bb-head .ic.x{box-sizing:border-box;width:44px;height:44px;padding:14px;margin:-14px -14px -14px 0;flex:none;}
html.m #stdRoot .pt-billbox .bb-quick button{height:44px;}
/* 顶栏：六个游戏标签点击范围 44 高（不裁：overflow 放开）；窄屏收饮料 / 标签上的秒数 */
html.m #stdRoot .std-tabs{overflow:visible;flex:0 1 auto;}
html.m #stdRoot .std-tabs .pt-tab{height:30px;min-width:44px;justify-content:center;}
html.m #stdRoot .std-tabs .pt-tab::before{content:"";position:absolute;left:0;right:0;top:50%;height:44px;margin-top:-22px;}
@media (max-width:760px){
  html.m #stdRoot .th-drink{display:none;}
  html.m #stdRoot .std-tabs .pt-tab .cd{display:none;}
  html.m #stdRoot .pb-hand.P{right:calc(50% + 66px);} html.m #stdRoot .pb-hand.B{left:calc(50% + 66px);}
  html.m #stdRoot .pk-wrap{grid-template-columns:minmax(0,1fr);}
}
@media (max-height:350px){
  html.m :is(#stdRoot,#tnRoot.std-root) .pr-track{height:34px;}
  html.m :is(#stdRoot,#tnRoot.std-root) .pr-track .tb{height:30px;}
  html.m #stdRoot .pb-hand .cards{--card-w:38px;--card-h:54px;min-height:54px;}
  html.m #stdRoot .pb-zones{top:84px;bottom:40px;}
  html.m #stdRoot .pj-row{top:64px;}
  html.m #stdRoot .pj-dealer .cards,html.m #stdRoot .pj-hand .cards{--card-w:38px;--card-h:54px;min-height:54px;}
  html.m #stdRoot .pt-game .pj-circle.main{width:54px;height:54px;left:-27px;}
  html.m #stdRoot .pt-game .pj-circle.side{width:44px;height:44px;}
  html.m #stdRoot .pj-bets{height:54px;}
}
