:root{
  --bg:#0A0F1C; --bg2:#0E1524; --surface:#141D30; --surface2:#1B2740;
  --line:#26324C; --text:#EAF0FA; --muted:#8FA0BE; --faint:#6A7B99;
  --pitch:#35D07A; --pitch-deep:#12A85B; --amber:#FFC24B; --red:#FF5C7A;
  --green:#2f9e5f; --rr:#c0392b; --bb:#1c2740;
  --r:14px; --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:radial-gradient(1000px 500px at 80% -10%,rgba(53,208,122,.08),transparent 60%),var(--bg);
  color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}
.hidden{display:none!important}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .sm{font-size:12px} .eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:700}
button{font-family:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--pitch);outline-offset:2px}
.btn{border:0;border-radius:999px;font-weight:700;padding:10px 16px;font-size:14px;color:var(--text);background:var(--surface2)}
.btn-pitch{background:linear-gradient(180deg,var(--pitch),var(--pitch-deep));color:#04240F}
.btn-pitch:hover{filter:brightness(1.07)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.btn.big{width:100%;padding:13px;font-size:15px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:22px}
.brand.sm{font-size:18px;cursor:pointer}
.brand .dot{width:11px;height:11px;border-radius:50%;background:var(--pitch);box-shadow:0 0 12px var(--pitch)}
.brand .g{color:var(--pitch)}

/* ===== AUTH ===== */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:18px;
  padding:26px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.auth-sub{color:var(--muted);font-size:13px;margin:-4px 0 6px;text-align:center}
.tabs2{display:flex;background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px}
.tabs2 button{flex:1;background:transparent;border:0;color:var(--muted);font-weight:700;padding:8px;border-radius:999px}
.tabs2 button.on{background:var(--surface2);color:var(--text)}
.auth-card input{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--text);font-size:15px}
.err{color:var(--red);font-size:13px;min-height:18px;text-align:center}

/* ===== HEADER ===== */
header{position:sticky;top:0;z-index:30;backdrop-filter:blur(10px);background:rgba(10,15,28,.85);border-bottom:1px solid var(--line)}
.hwrap{max-width:1180px;margin:0 auto;padding:11px 18px;display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
/* เมนูแถวเดียว เลื่อนแนวนอนได้ ไม่ตกบรรทัด + ขอบไล่จางแบบพรีเมียม */
#nav{display:flex;gap:2px;flex:1 1 0;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}
#nav::-webkit-scrollbar{display:none}
#nav button{flex:0 0 auto;white-space:nowrap;background:transparent;border:0;color:var(--muted);font-weight:600;font-size:13.5px;padding:7px 12px;border-radius:999px;transition:background .15s,color .15s}
#nav button:hover{color:var(--text);background:var(--surface)}
#nav button.on{color:var(--text);background:var(--surface2)}
.spacer{display:none}
/* กลุ่มขวาไม่หด/ไม่ตก */
.hwrap>.jackpot-pill,.hwrap>.wallet,.hwrap>.btn.dep,.hwrap>.who{flex:0 0 auto}
@media(max-width:680px){
  .hwrap{gap:8px;padding:9px 12px}
  .brand.sm{font-size:15px}
  .jackpot-pill small,.wallet small{display:none}
  .btn.dep{padding:7px 10px;font-size:12px}
}
.wallet{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);padding:7px 13px;border-radius:999px}
.wallet small{color:var(--faint);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.wallet b{color:var(--amber);font-size:16px}
.who{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;font-weight:600}
.who button{background:var(--surface);border:1px solid var(--line);color:var(--muted);width:32px;height:32px;border-radius:8px}
.view{max-width:1180px;margin:0 auto;padding:22px 18px 60px}

/* ===== LOBBY ===== */
.lobby-hero{padding:18px 0 22px}
.lobby-hero h1{margin:6px 0 8px;font-size:30px;font-weight:800}
.game-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
@media(max-width:520px){.game-cards{grid-template-columns:1fr}}
.c-bac{background:radial-gradient(120% 100% at 20% 0,rgba(212,175,55,.22),var(--surface))}
.gcard{position:relative;text-align:left;border:1px solid var(--line);border-radius:16px;padding:22px;
  min-height:180px;display:flex;flex-direction:column;gap:6px;color:var(--text);transition:.16s;overflow:hidden}
.gcard:not(.soon):hover{transform:translateY(-3px);border-color:var(--pitch)}
.gcard .gc-emoji{font-size:40px}
.gcard .gc-name{font-size:20px;font-weight:800;margin-top:4px}
.gcard .gc-tag{color:var(--muted);font-size:13px}
.c-rou{background:radial-gradient(120% 100% at 20% 0,rgba(192,57,43,.25),var(--surface))}
.c-fish{background:radial-gradient(120% 100% at 20% 0,rgba(53,208,122,.18),var(--surface))}
.c-pok{background:radial-gradient(120% 100% at 20% 0,rgba(76,141,255,.16),var(--surface))}
.gcard.soon{opacity:.7;cursor:not-allowed}
.gc-live{position:absolute;top:14px;right:14px;background:rgba(255,92,122,.2);border:1px solid rgba(255,92,122,.5);
  color:#ffd0da;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
.gc-soon{position:absolute;top:14px;right:14px;background:var(--surface2);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}

/* ===== ROULETTE ===== */
.rou-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:20px}
@media(max-width:900px){.rou-grid{grid-template-columns:1fr}}
.wheelbox{background:radial-gradient(120% 120% at 50% 0,#16233c,var(--surface));border:1px solid var(--line);
  border-radius:var(--r);padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px}
.wheel-stage{position:relative;width:min(360px,100%);aspect-ratio:1}
.wheel-canvas{width:100%;height:100%;display:block;filter:drop-shadow(0 12px 24px rgba(0,0,0,.5))}
.result-chip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;
  width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font-size:26px;font-weight:800;color:#fff;
  border:3px solid rgba(255,255,255,.5);transition:.4s cubic-bezier(.2,1.5,.4,1);pointer-events:none;z-index:3}
.result-chip.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.result-chip.red{background:var(--rr)}.result-chip.black{background:#0c1220}.result-chip.green{background:var(--green)}
.wheel-meta{width:100%;text-align:center}
.phase{font-weight:700;margin-bottom:8px}
.timerbar{height:8px;background:var(--bg2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}
#timerFill{height:100%;width:100%;background:linear-gradient(90deg,var(--pitch),var(--amber));transition:width 1s linear}
.history-row{display:flex;gap:6px;flex-wrap:wrap}
.hnum{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff}
.hnum.red{background:var(--rr)}.hnum.black{background:#0c1220;border:1px solid #2a3550}.hnum.green{background:var(--green)}
.result-banner{background:var(--surface2);border:1px solid var(--pitch);border-radius:12px;padding:14px;text-align:center;font-weight:700}
.result-banner.lose{border-color:var(--red)}
.players{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.players-head{font-weight:700;margin-bottom:10px;font-size:14px}
.players-list{display:flex;flex-direction:column;gap:7px;max-height:220px;overflow:auto}
.prow{display:flex;justify-content:space-between;font-size:13px;padding:6px 10px;background:var(--bg2);border-radius:8px}
.prow .tag{font-size:10px;color:var(--faint);background:var(--surface2);padding:1px 6px;border-radius:6px;margin-left:6px}
.prow b{color:var(--amber)}

.chip-select{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.chip-row{display:flex;gap:8px}
/* (legacy flat .chip removed — the premium .chip lives in the REAL CASINO CHIPS block) */
.board{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;margin-bottom:8px;
  padding:10px;border-radius:12px;background:
    radial-gradient(120% 140% at 50% 0,#0f5a3a,#0a3f2a);
  border:2px solid #b8892f;box-shadow:inset 0 2px 20px rgba(0,0,0,.4)}
.cell{aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:5px;display:grid;place-items:center;
  font-weight:800;font-size:13px;color:#fff;position:relative;padding:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 2px rgba(0,0,0,.4)}
.cell.red{background:linear-gradient(180deg,#d0453a,#a3271d)}
.cell.black{background:linear-gradient(180deg,#20293b,#0a0f1c)}
.cell.green{background:linear-gradient(180deg,#2fae6a,#137a45);grid-row:span 1}
.cell.zero{grid-column:1;grid-row:span 1}
.cell:hover{outline:2px solid var(--amber);z-index:2;transform:translateY(-1px)}
.cell .chipmark{position:absolute;bottom:1px;right:1px;background:var(--amber);color:#111;border-radius:6px;font-size:9px;padding:0 3px;font-weight:800;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.outside{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;
  padding:10px;border-radius:12px;background:radial-gradient(120% 200% at 50% 0,#0f5a3a,#0a3f2a);
  border:2px solid #b8892f;box-shadow:inset 0 2px 20px rgba(0,0,0,.4)}
.obet{border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.18);color:#fff;border-radius:8px;padding:10px 6px;font-weight:700;font-size:13px;position:relative}
.obet:hover{outline:2px solid var(--amber)}
.obet .chipmark{position:absolute;bottom:2px;right:4px;background:var(--amber);color:#111;border-radius:6px;font-size:9px;padding:0 4px;font-weight:800}
.betbar{display:flex;align-items:center;gap:10px}
.pending{flex:1;color:var(--muted);font-size:14px}.pending b{color:var(--amber)}
.rou-msg{min-height:20px;color:var(--red);font-size:13px;margin-top:8px}

/* ===== FISHING ===== */
.fish-hud{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.fish-hud b{color:var(--amber)}
.fish-stage{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:linear-gradient(180deg,#07314a,#04202f);height:min(62vh,540px);touch-action:none}
#fish3d{position:absolute;inset:0}
#fish3d canvas{display:block;width:100%!important;height:100%!important;cursor:none}
.reticle{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;pointer-events:none;z-index:4;
  border:2px solid rgba(255,207,75,.9);border-radius:50%;box-shadow:0 0 8px rgba(255,207,75,.6)}
.reticle::before,.reticle::after{content:"";position:absolute;background:rgba(255,207,75,.9)}
.reticle::before{left:13px;top:-6px;width:2px;height:8px}
.reticle::after{left:13px;bottom:-6px;width:2px;height:8px}
.reticle.hidden{display:none}
.fish-overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;
  background:rgba(4,20,30,.55);font-weight:700;line-height:1.7;z-index:5}
.fish-overlay.hidden{display:none}

/* ===================== BACCARAT ===================== */
.bac-felt{position:relative;border-radius:18px;padding:26px 20px 30px;margin-bottom:18px;
  background:radial-gradient(130% 130% at 50% 0,#12724a,#0a3f2a 70%,#082f20);
  border:3px solid #b8892f;box-shadow:inset 0 4px 40px rgba(0,0,0,.45),0 12px 30px rgba(0,0,0,.4)}
.bac-hands{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.bac-side{display:flex;flex-direction:column;align-items:center;gap:12px}
.bac-label{font-weight:800;letter-spacing:.14em;font-size:15px;padding:5px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.25)}
.bac-label.pl{color:#bce0ff;background:rgba(76,141,255,.18)}
.bac-label.bk{color:#ffc9c9;background:rgba(192,57,43,.22)}
.bac-vs{color:rgba(255,255,255,.5);font-weight:800;font-size:13px}
.cards{display:flex;gap:8px;min-height:96px;align-items:center;justify-content:center}
.card{width:60px;height:86px;border-radius:8px;background:linear-gradient(160deg,#fff,#e9edf4);
  box-shadow:0 6px 14px rgba(0,0,0,.4);position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:5px 6px;color:#0a1020;font-weight:800;overflow:hidden}
.card.red{color:#c0392b}
.card .cr{font-size:14px;line-height:.9;text-align:left}
.card .cr .u{display:block;font-size:12px;margin-top:1px}
.card .cs{font-size:23px;text-align:center;line-height:1;flex:1;display:flex;align-items:center;justify-content:center}
.card .cr.b{transform:rotate(180deg);text-align:left}
.card.dealt{animation:dealIn .45s cubic-bezier(.2,1.3,.4,1) both}
@keyframes dealIn{from{opacity:0;transform:translateY(-40px) rotateY(90deg) scale(.8)}to{opacity:1;transform:none}}
.bac-total{font-weight:800;font-size:22px;color:#ffe9a8;min-height:26px}
.bac-result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.7);opacity:0;
  background:rgba(10,15,28,.85);border:2px solid var(--pitch);border-radius:14px;padding:14px 22px;
  font-weight:800;font-size:18px;text-align:center;transition:.4s cubic-bezier(.2,1.5,.4,1);pointer-events:none;z-index:3}
.bac-result.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.bac-result.lose{border-color:var(--red)}

.bac-bets{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px}
.bac-spot{position:relative;border-radius:12px;padding:16px 10px;font-weight:800;color:#fff;
  display:flex;flex-direction:column;gap:3px;align-items:center;border:2px solid transparent;transition:.15s}
.bac-spot small{font-weight:600;font-size:11px;opacity:.85}
.bac-spot.pl{background:linear-gradient(180deg,#2a5db0,#173a75);border-color:#4c8dff55}
.bac-spot.ti{background:linear-gradient(180deg,#1f8a5a,#12613e);border-color:#35d07a55}
.bac-spot.bk{background:linear-gradient(180deg,#b3402f,#7c261a);border-color:#ff5c7a55}
.bac-spot:hover{transform:translateY(-2px);filter:brightness(1.08)}
.bac-spot.sel{border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,194,75,.28)}
.bac-spot .cm{position:absolute;top:-10px;right:-8px;background:var(--amber);color:#111;border-radius:999px;
  min-width:26px;height:26px;display:none;align-items:center;justify-content:center;font-size:12px;font-weight:800;padding:0 6px;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.bac-spot .cm.on{display:flex}
.bac-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.bac-actions{display:flex;gap:10px}
.bac-road{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.road{display:flex;gap:5px;flex-wrap:wrap}
.rdot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}
.rdot.player{background:#2a5db0}.rdot.banker{background:#b3402f}.rdot.tie{background:#1f8a5a}

/* ===== wallet breakdown + deposit ===== */
.wallet{flex-wrap:wrap;max-width:200px}
.wallet-break{flex-basis:100%;font-size:10px;color:var(--faint);font-weight:700;letter-spacing:.02em;text-align:right}
.btn.dep{padding:8px 12px;font-size:13px}

/* ===================== DASHBOARD ===================== */
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.dash-head h1{margin:4px 0 0;font-size:26px;font-weight:800}
.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.tile{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--faint);border-radius:12px;padding:14px 16px}
.tile.good{border-left-color:var(--pitch)}.tile.bad{border-left-color:var(--red)}
.tile-label{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.02em}
.tile-val{font-size:24px;font-weight:800;margin:4px 0 2px}
.tile.good .tile-val{color:var(--pitch)}.tile.bad .tile-val{color:var(--red)}
.tile-sub{font-size:11px;color:var(--faint)}
.dash-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:16px}
@media(max-width:820px){.dash-grid{grid-template-columns:1fr}}
.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.dash-card h3{margin:0 0 12px;font-size:15px;font-weight:800}
.dash-table .tr{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr .8fr;gap:6px;padding:8px 6px;border-bottom:1px solid var(--line-soft,#1E2942);font-size:13px}
.dash-table .tr span:not(:first-child){text-align:right}
.dash-table .th{color:var(--faint);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.dash-table .pos{color:var(--pitch)}.dash-table .neg{color:var(--red)}
.liab-row{display:flex;justify-content:space-between;padding:8px 4px;border-bottom:1px solid var(--line-soft,#1E2942);font-size:14px}
.liab-row b{color:var(--amber)}
.liab-row.total{font-weight:800;border-bottom:2px solid var(--line)}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.cfg-sec{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:12px}
.cfg-sec h4{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--text);text-transform:capitalize}
.cfg-f{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px;color:var(--muted)}
.cfg-f input[type=number]{width:100px;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 8px;color:var(--text);font-size:13px;text-align:right}
.cfg-f.chk{justify-content:flex-start;cursor:pointer}
.cfg-f.chk input{width:18px;height:18px;accent-color:var(--pitch)}
.cfg-actions{display:flex;align-items:center;gap:12px;margin-top:14px}
.grant-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.grant-row input,.grant-row select{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:var(--text);font-size:14px}
.grant-row input{width:150px}

/* ===== dashboard visuals + glossary ===== */
.tile .ico{font-size:11px;color:var(--faint);cursor:help}
.vrow{margin-bottom:16px}
.vrow:last-child{margin-bottom:0}
.vlabel{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:7px}
.vtrack{display:flex;gap:2px;height:24px;border-radius:7px;overflow:hidden;background:var(--bg2);border:1px solid var(--line)}
.vtrack .seg{border-radius:5px;min-width:3px;transition:flex .4s ease}
.vtrack .seg.empty{flex:1;background:var(--bg2);border-radius:0}
.vlegend{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}
.vlegend .lg{display:inline-flex;align-items:center;gap:6px}
.vlegend .lg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.vlegend .lg b{color:var(--text)}
.rtp-wrap{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft,#1E2942)}
.rtp-row{display:grid;grid-template-columns:80px 1fr 54px;align-items:center;gap:10px;margin-bottom:9px}
.rtp-name{font-size:12px;color:var(--muted);text-transform:capitalize}
.rtp-track{position:relative;height:14px;background:var(--bg2);border:1px solid var(--line);border-radius:7px;overflow:hidden}
.rtp-fill{height:100%;background:linear-gradient(90deg,#e0a52f,var(--amber));border-radius:6px}
.rtp-ref{position:absolute;top:-2px;bottom:-2px;left:50%;width:0;border-left:2px dashed rgba(255,255,255,.55)}
.rtp-val{font-size:13px;font-weight:800;text-align:right}
.rtp-val.pos{color:var(--pitch)}.rtp-val.neg{color:var(--red)}
.rtp-note{font-size:11px;color:var(--faint);margin-top:6px}
.gloss{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.gloss{grid-template-columns:1fr}}
.gl{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.gl b{display:block;color:var(--text);font-size:13px;margin-bottom:3px}
.gl span{color:var(--muted);font-size:12px;line-height:1.5}

/* ===== DRAGON TIGER ===== */
.c-dt{background:radial-gradient(120% 100% at 20% 0,rgba(230,120,40,.20),var(--surface))}
.dt-felt{background:radial-gradient(130% 130% at 50% 0,#5a2d12,#3a1c0c 70%,#2a1408)!important;border-color:#c88a3a!important}
.dt-hands{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.dt-side{display:flex;flex-direction:column;align-items:center;gap:12px}
.bac-label.dragon{color:#ffd0c0;background:rgba(210,80,40,.28)}
.bac-label.tiger{color:#ffe6b0;background:rgba(230,160,40,.24)}
.bac-spot.dtd{background:linear-gradient(180deg,#c0522a,#7c2f14);border-color:rgba(255,138,92,.34)}
.bac-spot.dtt{background:linear-gradient(180deg,#c99a2a,#8a6414);border-color:rgba(255,194,75,.34)}

/* ============================================================
   LUXURY / PREMIUM DESIGN PASS (overrides)
   ============================================================ */
:root{
  --gold-1:#f9e9a8; --gold-2:#e6c25a; --gold-3:#c49a3a; --gold-4:#8a6410;
  --gold-grad:linear-gradient(180deg,#f9e9a8 0%,#e6c25a 45%,#c49a3a 100%);
  --lux-font:"Sora",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --serif:"Cinzel",Georgia,"Times New Roman",serif;
}
body{font-family:var(--lux-font);
  background:
    radial-gradient(1100px 560px at 80% -12%,rgba(230,194,90,.07),transparent 60%),
    radial-gradient(900px 500px at 5% 0%,rgba(53,208,122,.06),transparent 55%),
    #070b14}

/* wordmark + headings — engraved gold serif */
.brand{font-family:var(--serif);font-weight:800;letter-spacing:.04em;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}
.brand .g{-webkit-text-fill-color:transparent}
.brand .dot{-webkit-text-fill-color:initial}
.lobby-hero h1,.dash-head h1,.auth-card .brand{font-family:var(--serif)}
h2.section,.dash-card h3{letter-spacing:.01em}

/* wallet — gold total on glass */
.wallet{background:linear-gradient(180deg,rgba(30,38,58,.9),rgba(16,21,36,.9));border-color:rgba(230,194,90,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 6px 16px rgba(0,0,0,.4)}
.wallet b{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-family:var(--serif);font-weight:700}

/* buttons — glossy */
.btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 8px rgba(0,0,0,.35)}
.btn-pitch{background:linear-gradient(180deg,#57e59a,#12a15a);color:#052915;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 6px 16px rgba(53,208,122,.4)}
.btn.dep{background:var(--gold-grad);color:#3a2a06;font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 5px 14px rgba(230,194,90,.35)}

/* ===== REAL CASINO CHIPS ===== */
.chip{
  width:56px;height:56px;border-radius:50%;border:0;position:relative;cursor:pointer;
  display:grid;place-items:center;font-weight:900;font-size:14px;color:#fff;font-family:var(--lux-font);
  --c:#2e6fdb;--e:#e9f1ff;--face:#4d8bf0;--tx:#fff;
  color:var(--tx);text-shadow:0 1px 2px rgba(0,0,0,.55);
  background:
    radial-gradient(circle at 40% 32%,rgba(255,255,255,.5),rgba(255,255,255,0) 42%),
    radial-gradient(circle,transparent 50%,rgba(255,255,255,.55) 51% 53%,transparent 54%),
    radial-gradient(circle,var(--face) 0 61%,transparent 61%),
    repeating-conic-gradient(var(--c) 0 15deg,var(--e) 15deg 30deg);
  box-shadow:0 6px 14px rgba(0,0,0,.55),inset 0 2px 3px rgba(255,255,255,.4),inset 0 -5px 9px rgba(0,0,0,.45);
  transition:transform .12s,box-shadow .12s;
}
.chip:hover{transform:translateY(-2px)}
.chip.on{box-shadow:0 8px 18px rgba(0,0,0,.55),inset 0 2px 3px rgba(255,255,255,.5),inset 0 -5px 9px rgba(0,0,0,.45),0 0 0 3px rgba(230,194,90,.85),0 0 16px rgba(230,194,90,.5)}
.chip:nth-child(1){--c:#2456b8;--e:#dce9ff;--face:#3f7fe6;--tx:#fff}
.chip:nth-child(2){--c:#b02a1e;--e:#ffdfda;--face:#dd5042;--tx:#fff}
.chip:nth-child(3){--c:#1c1f27;--e:#eaeaea;--face:#363b46;--tx:#ffe08a}
.chip:nth-child(4){--c:#5c2aa0;--e:#ffd97a;--face:#7d47c6;--tx:#ffe9b0}

/* felt tables — richer gold rim + vignette */
.bac-felt,.dt-felt{border-color:#caa54c;
  box-shadow:inset 0 4px 44px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.05),0 14px 36px rgba(0,0,0,.5),0 0 34px rgba(202,165,76,.12)}
.board,.outside{border-color:#caa54c}
.wheelbox{border-color:rgba(202,165,76,.4)}

/* game cards — glass + gold hover */
.gcard{background-color:rgba(18,25,42,.6);backdrop-filter:blur(4px);box-shadow:0 8px 24px rgba(0,0,0,.4)}
.gcard:not(.soon):hover{border-color:var(--gold-2);box-shadow:0 14px 32px rgba(0,0,0,.5),0 0 24px rgba(230,194,90,.18)}
.gc-live{background:var(--gold-grad);color:#3a2a06;border:0;font-weight:800}

/* tiles/cards — subtle premium surface */
.tile,.dash-card,.players,.auth-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 8px 22px rgba(0,0,0,.4)}
.bac-total{font-family:var(--serif);color:#ffe6a8}

/* ===== AI DEALER AVATAR ===== */
.dealer{display:flex;align-items:center;gap:14px;justify-content:center;margin-bottom:16px}
.dealer-tile{position:relative;width:116px;height:110px;border-radius:16px;overflow:hidden;border:2px solid #caa54c;
  box-shadow:0 8px 22px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.06)}
.dealer-svg{width:100%;height:100%;display:block}
.dealer-live{position:absolute;top:7px;left:7px;background:rgba(255,60,80,.92);color:#fff;font-size:9px;font-weight:800;
  padding:2px 7px;border-radius:6px;letter-spacing:.08em;box-shadow:0 2px 6px rgba(0,0,0,.4);animation:d-pulse 1.6s infinite}
@keyframes d-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.dealer-info{text-align:left;max-width:240px}
.dealer-name{font-family:var(--serif,serif);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;font-weight:800;font-size:13px;letter-spacing:.05em}
.dealer-bubble{margin-top:7px;background:rgba(8,12,22,.92);border:1px solid rgba(202,165,76,.35);border-radius:13px;
  padding:8px 13px;font-size:13px;color:#eef2fb;opacity:0;transform:translateY(5px);transition:.25s;
  box-shadow:0 6px 16px rgba(0,0,0,.45);position:relative;display:inline-block}
.dealer-bubble.show{opacity:1;transform:none}
.dealer-bubble::before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;background:rgba(8,12,22,.92);
  border-left:1px solid rgba(202,165,76,.35);border-bottom:1px solid rgba(202,165,76,.35);transform:rotate(45deg)}
.dealer-fig{animation:d-breathe 4s ease-in-out infinite;transform-origin:center bottom}
@keyframes d-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.dealer-svg .lid{transform-origin:center top;transform:scaleY(0);animation:d-blink 5.5s infinite}
@keyframes d-blink{0%,93%,100%{transform:scaleY(0)}96%{transform:scaleY(1.7)}}
.dealer .mouth.smile{opacity:0;transition:opacity .3s}
.dealer .mouth.neutral{opacity:1;transition:opacity .3s}
.dealer.win .mouth.smile{opacity:1}.dealer.win .mouth.neutral{opacity:0}
.dealer.act-deal .dealer-fig{animation:d-deal .7s ease}
@keyframes d-deal{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(3px) rotate(-3deg)}70%{transform:translateY(1px) rotate(1deg)}}
@media(prefers-reduced-motion:reduce){.dealer-fig,.dealer-svg .lid,.dealer-live{animation:none}}
@media(max-width:560px){.dealer{flex-direction:column;gap:8px}.dealer-info{text-align:center}.dealer-bubble::before{display:none}}

/* dealer refinements (premium) */
.dealer-tile{width:136px;height:128px;border-radius:18px;
  box-shadow:0 10px 26px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.07),0 0 30px rgba(202,165,76,.1)}
.dealer-fig{animation:d-breathe 5.5s ease-in-out infinite}
@keyframes d-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
.dealer-svg .lid{animation:d-blink 7s infinite}
@keyframes d-blink{0%,95%,100%{transform:scaleY(0)}97.5%{transform:scaleY(1.7)}}

/* ===================== SIC BO (ไฮโล) ===================== */
.c-sic{background:radial-gradient(120% 100% at 20% 0,rgba(53,208,122,.15),var(--surface))}
.sicbo-stage{position:relative;border-radius:18px;padding:28px 26px;margin-bottom:16px;
  background:radial-gradient(130% 130% at 50% 0,#153a2a,#0a2b1e 70%,#07211a);border:3px solid #caa54c;
  box-shadow:inset 0 4px 44px rgba(0,0,0,.55),0 14px 36px rgba(0,0,0,.5)}
.dice-tray{display:flex;gap:28px;justify-content:center;align-items:center;min-height:78px}
.die3d{width:64px;height:64px;perspective:520px}
.die3d{position:relative}
.die3d::after{content:"";position:absolute;left:50%;bottom:-12px;width:56px;height:12px;transform:translateX(-50%);
  background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 72%);border-radius:50%;z-index:-1}
.die-cube{width:64px;height:64px;position:relative;transform-style:preserve-3d;
  transition:transform .85s cubic-bezier(.2,.85,.25,1);transform:rotateX(-18deg) rotateY(20deg)}
.die-cube.rolling{animation:die-tumble .42s linear infinite;transition:none}
@keyframes die-tumble{from{transform:rotateX(0) rotateY(0)}to{transform:rotateX(360deg) rotateY(360deg)}}
.die-face{position:absolute;width:64px;height:64px;border-radius:13px;background:linear-gradient(150deg,#fff,#dde2ea);
  display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:9px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),inset 0 -6px 10px rgba(0,0,0,.08);backface-visibility:hidden}
.pip{width:11px;height:11px;border-radius:50%;align-self:center;justify-self:center;
  background:radial-gradient(circle at 34% 30%,#5a5a5a,#0c0c0c)}
.f1{transform:rotateY(0deg) translateZ(32px)}.f6{transform:rotateY(180deg) translateZ(32px)}
.f2{transform:rotateY(90deg) translateZ(32px)}.f5{transform:rotateY(-90deg) translateZ(32px)}
.f3{transform:rotateX(90deg) translateZ(32px)}.f4{transform:rotateX(-90deg) translateZ(32px)}
.mini-die{display:inline-grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:20px;height:20px;
  background:#f4f6fa;border-radius:4px;padding:2px;vertical-align:middle}
.mini-die i{border-radius:50%;background:#141414;align-self:center;justify-self:center;width:66%;height:66%}
.sicbo-result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);opacity:0;
  transition:.4s cubic-bezier(.2,1.5,.4,1);background:rgba(8,12,22,.94);border:2px solid var(--pitch);border-radius:16px;
  padding:14px 24px;text-align:center;pointer-events:none;z-index:3;display:flex;flex-direction:column;align-items:center;gap:9px}
.sicbo-result.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.sicbo-result.lose{border-color:var(--red)}
.sicbo-result .res-row{display:flex;gap:8px}
.sicbo-result .mini-die{width:34px;height:34px}
.res-txt{font-weight:800;font-size:15px}
.sicbo-board{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.sb-row{display:grid;gap:8px}
.sb-row.four{grid-template-columns:repeat(4,1fr)}
.sb-row.six{grid-template-columns:repeat(6,1fr)}
.sb-totals{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
@media(max-width:640px){.sb-row.four,.sb-row.six{grid-template-columns:repeat(3,1fr)}.sb-totals{grid-template-columns:repeat(4,1fr)}}
.sb-spot{position:relative;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 8px;color:#fff;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:4px;transition:.14s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.sb-spot.even{background:linear-gradient(180deg,#1c3a5e,#122744)}
.sb-spot.single{background:linear-gradient(180deg,#2a2350,#171338)}
.sb-spot.total{background:linear-gradient(180deg,#14304a,#0c1f33);padding:9px 4px}
.sb-spot.triple{background:linear-gradient(180deg,#5a2a12,#331808)}
.sb-spot:hover{transform:translateY(-2px);border-color:var(--gold-2);box-shadow:0 6px 16px rgba(0,0,0,.4)}
.sb-spot.bet{border-color:var(--gold-2)}
.sb-spot.win{border-color:#35d07a;box-shadow:0 0 0 2px rgba(53,208,122,.6),0 0 18px rgba(53,208,122,.4);
  background:linear-gradient(180deg,#194b34,#0f3323)!important}
.sb-l{font-weight:800;font-size:13px;display:flex;align-items:center;gap:5px;text-align:center}
.sb-s{font-size:10px;color:rgba(255,255,255,.6);font-weight:600}
.sb-spot.total .sb-l{font-size:17px;font-family:var(--serif,serif)}
.sb-spot .cm{position:absolute;top:-9px;right:-7px;background:var(--gold-grad);color:#3a2a06;border-radius:999px;
  min-width:24px;height:24px;display:none;align-items:center;justify-content:center;font-size:11px;font-weight:800;padding:0 6px;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.sb-spot .cm.on{display:flex}

/* ===================== BLACKJACK ===================== */
.c-bj{background:radial-gradient(120% 100% at 20% 0,rgba(76,141,255,.15),var(--surface))}
.bj-felt{min-height:auto}
.bj-area{display:flex;flex-direction:column;gap:22px;align-items:center;padding:6px 0}
.bj-hand{display:flex;flex-direction:column;align-items:center;gap:10px}
.bj-label{font-weight:800;font-size:14px;color:#ffe6a8;font-family:var(--serif,serif);letter-spacing:.02em}
.bj-label span{color:#fff}
#bjDealer,#bjPlayer{min-height:88px}
.card.back{background:
  repeating-linear-gradient(45deg,#8a1226,#8a1226 7px,#6a0e1c 7px,#6a0e1c 14px);
  border:2px solid #caa54c;position:relative}
.card.back::after{content:"♠";position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,215,90,.85);font-size:26px}
.bj-actions{display:flex;gap:12px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}
.bj-actions .btn{min-width:130px;padding:12px 18px;font-size:15px;font-weight:800}
#bjHit{background:linear-gradient(180deg,#3a7ee6,#1a4fa0);color:#fff}
#bjStand{background:linear-gradient(180deg,#d0453a,#8c2418);color:#fff}
#bjDouble{background:var(--gold-grad);color:#3a2a06}
.bj-actions .btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.4)}

/* ===================== SLOTS ===================== */
.c-slot{background:radial-gradient(120% 100% at 20% 0,rgba(255,92,122,.16),var(--surface))}
.slot-machine{position:relative;max-width:520px;margin:0 auto 16px;border-radius:20px;padding:26px;
  background:radial-gradient(130% 130% at 50% 0,#2a1250,#180a34 70%,#0e0722);border:3px solid #caa54c;
  box-shadow:inset 0 4px 40px rgba(0,0,0,.55),0 14px 40px rgba(0,0,0,.5),0 0 40px rgba(230,194,90,.12)}
.slot-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative;z-index:1}
.reel{background:linear-gradient(180deg,#0d0a1a,#161031);border:2px solid #6a4fb0;border-radius:14px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:inset 0 6px 14px rgba(0,0,0,.6)}
.sym{height:76px;display:grid;place-items:center;font-size:42px;border-bottom:1px solid rgba(255,255,255,.05)}
.sym:last-child{border-bottom:0}
.sym.center{background:rgba(255,255,255,.06)}
.sym.hit{background:radial-gradient(circle,rgba(53,208,122,.4),transparent);animation:sym-hit .5s ease infinite alternate}
@keyframes sym-hit{from{transform:scale(1)}to{transform:scale(1.18)}}
.slot-payline{position:absolute;left:20px;right:20px;top:50%;height:0;border-top:2px dashed rgba(255,207,75,.55);
  z-index:2;pointer-events:none}
.slot-result{position:absolute;left:50%;bottom:-15px;transform:translate(-50%,0) scale(.9);opacity:0;
  transition:.35s cubic-bezier(.2,1.5,.4,1);background:rgba(8,12,22,.95);border:2px solid var(--pitch);border-radius:12px;
  padding:9px 18px;font-weight:800;white-space:nowrap;z-index:5}
.slot-result.show{opacity:1;transform:translate(-50%,0) scale(1)}
.slot-result.lose{border-color:var(--red)}
.slot-pay{display:flex;flex-wrap:wrap;gap:9px 16px;justify-content:center;align-items:center;margin-bottom:12px;color:var(--muted);font-size:13px}
.pay-title{width:100%;text-align:center;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:.05em;margin-bottom:2px}
.pay-item b{color:#fff}
/* slots auto / continuous spin */
.slot-auto{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;max-width:520px;margin:0 auto 14px;padding:10px 14px;border:1px solid var(--line,#2A3B5C);border-radius:14px;background:rgba(255,255,255,.02)}
.slot-auto>.muted{font-weight:700;letter-spacing:.03em}
.spin-count-row{display:inline-flex;gap:5px;background:rgba(0,0,0,.28);border:1px solid var(--line,#2A3B5C);border-radius:12px;padding:5px}
.spin-count{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;min-width:54px;padding:7px 11px;border:0;border-radius:8px;background:transparent;color:var(--muted,#93A1B5);cursor:pointer;font-family:inherit;transition:background .15s,color .15s}
.spin-count b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.spin-count span{font-size:10px;letter-spacing:.04em;margin-top:3px;opacity:.85}
.spin-count.on{background:var(--gold-grad,linear-gradient(180deg,#E7C879,#C9A24D));color:#3a2a06}
.spin-count.on span{opacity:.7}
.spin-count:not(.on):hover{background:rgba(255,255,255,.06);color:#fff}
.slot-auto-btn{min-width:132px;transition:background .2s,border-color .2s,color .2s}
.slot-auto-btn.on{background:linear-gradient(180deg,#e5484d,#b91c1c);border-color:#ef5350;color:#fff;box-shadow:0 4px 14px rgba(233,72,77,.4);animation:autoPulse 1.1s ease-in-out infinite}
@keyframes autoPulse{50%{box-shadow:0 4px 20px rgba(233,72,77,.7)}}

/* ===================== POKER ===================== */
.poker-table{position:relative;max-width:820px;margin:10px auto 18px;aspect-ratio:16/10}
.poker-felt{position:absolute;inset:9% 5%;border-radius:50%;
  background:radial-gradient(circle at 50% 38%,#177a4e,#0c3d29 68%,#072619);
  border:9px solid #5a3a1e;box-shadow:inset 0 0 70px rgba(0,0,0,.55),0 16px 44px rgba(0,0,0,.5),0 0 0 2px #caa54c;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px}
.poker-pot{color:#ffe6a8;font-weight:800;font-family:var(--serif,serif);font-size:15px;background:rgba(0,0,0,.32);padding:5px 16px;border-radius:999px}
.poker-board{display:flex;gap:6px;min-height:60px;align-items:center}
.poker-phase{color:rgba(255,255,255,.7);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.board-wait{color:rgba(255,255,255,.4);font-size:13px}
.pk-seats{position:absolute;inset:0}
.pk-seat{position:absolute;transform:translate(-50%,-50%);width:132px;text-align:center}
.pos0{left:50%;top:93%}.pos1{left:14%;top:78%}.pos2{left:14%;top:22%}
.pos3{left:50%;top:5%}.pos4{left:86%;top:22%}.pos5{left:86%;top:78%}
.pk-seat.empty .seat-empty{color:rgba(255,255,255,.28);font-size:12px;border:1px dashed rgba(255,255,255,.18);border-radius:10px;padding:16px 8px}
.pk-seat.folded{opacity:.42}
.seat-cards{display:flex;gap:3px;justify-content:center;min-height:42px}
.seat-plate{position:relative;background:rgba(8,12,22,.88);border:1px solid var(--line);border-radius:10px;padding:5px 8px;margin-top:4px;display:inline-block;min-width:88px}
.pk-seat.turn .seat-plate{border-color:var(--gold-2);box-shadow:0 0 0 2px rgba(230,194,90,.55),0 0 16px rgba(230,194,90,.4)}
.pk-seat.bot .seat-name{color:#9fb0cf}
.seat-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.seat-chips{font-size:13px;color:var(--amber);font-weight:800}
.seat-bet{position:absolute;left:50%;top:-15px;transform:translateX(-50%);background:var(--gold-grad);color:#3a2a06;font-size:11px;font-weight:800;padding:1px 9px;border-radius:999px;white-space:nowrap}
.seat-won{color:var(--pitch);font-weight:800;font-size:12px;margin-top:2px}
.seat-btn{position:absolute;right:2px;top:-8px;background:#fff;color:#111;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 5px rgba(0,0,0,.5);z-index:2}
.seat-allin{color:var(--red);font-size:10px;font-weight:800;letter-spacing:.05em}
.pk-card{width:30px;height:42px;border-radius:5px;background:linear-gradient(160deg,#fff,#e6eaf1);color:#0a1020;font-weight:800;font-size:13px;
  display:flex;flex-direction:column;align-items:center;padding-top:2px;box-shadow:0 2px 5px rgba(0,0,0,.45);line-height:1}
.pk-card.red{color:#c0392b}
.pk-card span{font-size:13px}
.pk-card.back{background:repeating-linear-gradient(45deg,#8a1226,#8a1226 5px,#6a0e1c 5px,#6a0e1c 10px);border:1px solid #caa54c}
.poker-board .pk-card{width:42px;height:58px;font-size:17px}
.poker-board .pk-card span{font-size:17px}
.poker-bar{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:10px;min-height:44px}
.pk-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}
.pk-actions .btn{min-width:96px;font-weight:800}
.pk-fold{background:linear-gradient(180deg,#d0453a,#8c2418);color:#fff}
.pk-call{background:linear-gradient(180deg,#3a7ee6,#1a4fa0);color:#fff}
.pk-raiseb{background:var(--gold-grad);color:#3a2a06}
.pk-raise{display:flex;align-items:center;gap:9px}
.pk-raise input[type=range]{width:150px;accent-color:#e6c25a}
#pkRaiseVal{color:var(--amber);font-weight:800;min-width:58px;text-align:right}
.poker-log{max-width:640px;margin:0 auto;font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:2px;max-height:78px;overflow:auto;text-align:center}
@media(max-width:620px){.pk-seat{width:104px}.pk-card{width:24px;height:34px;font-size:11px}.pk-card span{font-size:11px}}

/* ===================== PHASE 2: jackpot / VIP / RG / risk ===================== */
.jackpot-pill{display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,rgba(230,194,90,.16),rgba(120,90,20,.22));
  border:1px solid rgba(230,194,90,.45);padding:5px 12px;border-radius:999px}
.jackpot-pill .jp-ic{font-size:15px}
.jackpot-pill small{color:var(--faint);font-size:9px;letter-spacing:.1em;font-weight:800}
.jackpot-pill b{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;font-size:14px;font-family:var(--serif,serif)}
.vip-badge{font-size:10px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);color:var(--muted)}
.vip-badge:empty{display:none}
.vip-badge.t-Silver{color:#cfd8e6;border-color:#8a99b0}.vip-badge.t-Gold{color:#ffd54a;border-color:#c49a3a}
.vip-badge.t-Platinum{color:#a9e0ff;border-color:#5a9fd6}.vip-badge.t-Diamond{color:#7fe3ff;border-color:#35d0e0}
#whoName{cursor:pointer}
.vip-card .vip-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.vip-tier{font-family:var(--serif,serif);font-size:23px;font-weight:800;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.vip-cb{color:var(--pitch);font-weight:700;font-size:13px}
.vip-bar{height:12px;background:var(--bg2);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.vip-fill{height:100%;background:var(--gold-grad);border-radius:999px;transition:width .5s}
.vip-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--muted);flex-wrap:wrap;gap:6px}
.vip-meta b{color:var(--text)}
.excl-row{display:flex;gap:10px;flex-wrap:wrap}
.vipd-row{display:grid;grid-template-columns:96px 1fr 30px;align-items:center;gap:10px;margin-bottom:7px;font-size:13px}
.vipd-track{height:12px;background:var(--bg2);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.vipd-fill{height:100%;background:var(--gold-grad);border-radius:999px}
.vipd-row b{text-align:right;color:var(--amber)}
.risk-feed{display:flex;flex-direction:column;gap:6px;max-height:250px;overflow:auto}
.risk-item{display:grid;grid-template-columns:1.3fr 1fr auto;gap:8px;font-size:12px;padding:7px 9px;background:var(--bg2);border-radius:8px;border-left:3px solid var(--amber)}
.risk-type{font-weight:700}
.risk-user{color:var(--muted);text-align:right}
.risk-ts{color:var(--faint);font-size:11px}

/* ===================== SPORTS ===================== */
.c-sports{background:radial-gradient(120% 100% at 20% 0,rgba(53,208,122,.20),var(--surface));grid-column:1/-1}
@media(min-width:521px){.c-sports{min-height:150px}}
.sb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.sb-head h1{margin:4px 0 0;font-size:26px;font-weight:800}
.sb-legend{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}
.lv-dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);animation:d-pulse 1.4s infinite}
.sb-layout{display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start}
@media(max-width:900px){.sb-layout{grid-template-columns:1fr}}
.sb-matches{display:flex;flex-direction:column;gap:14px}
.sb-match{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.sb-match.live{border-color:rgba(255,92,122,.4)}
.sb-match.ft{opacity:.72}
.sb-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:12px}
.sb-team{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px}
.sb-team.away{justify-content:flex-end;text-align:right}
.tdot{width:16px;height:16px;border-radius:5px;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.sb-mid{text-align:center;min-width:88px}
.sb-num{font-family:var(--serif,serif);font-size:26px;font-weight:800;line-height:1}
.sb-min{font-size:11px;color:var(--red);font-weight:800;margin-top:2px}
.sb-min.ft{color:var(--faint)}
.sb-ko{font-size:13px;color:var(--amber);font-weight:700}
.live-tag{display:block;font-size:9px;font-weight:800;color:#ffd0da;letter-spacing:.06em;margin-bottom:2px}
.sb-events{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);border-top:1px solid var(--line-soft,#1c2740);padding-top:8px;margin-bottom:10px}
.mk{margin-top:10px}
.mk-t{font-size:11px;color:var(--faint);font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.mk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.mk-row.grid{grid-template-columns:repeat(4,1fr)}
@media(min-width:560px){.mk-row.grid{grid-template-columns:repeat(8,1fr)}}
.odd-btn{display:flex;align-items:center;justify-content:space-between;gap:6px;background:var(--surface2);border:1px solid var(--line);
  border-radius:9px;padding:9px 11px;color:var(--text);cursor:pointer;transition:.13s;font-weight:700}
.odd-btn.cs{flex-direction:column;gap:2px;padding:7px 4px;align-items:center}
.odd-btn:hover{border-color:var(--gold-2);transform:translateY(-1px)}
.odd-btn.on{border-color:var(--gold-2);background:rgba(230,194,90,.16);box-shadow:0 0 0 1px rgba(230,194,90,.4)}
.ob-l{font-size:12.5px;color:var(--muted)}
.odd-btn.cs .ob-l{font-size:13px;color:var(--text);font-weight:800}
.ob-o{font-size:14px;color:var(--pitch);font-weight:800}
/* slip */
.sb-slip{position:sticky;top:80px;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(0,0,0,.4)}
@media(max-width:900px){.sb-slip{position:static}}
.sb-slip-head{padding:13px 15px;border-bottom:1px solid var(--line);font-weight:800;display:flex;align-items:center;justify-content:space-between}
.sb-count{background:var(--gold-grad);color:#3a2a06;font-weight:800;font-size:12px;min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;padding:0 6px}
.sb-slip-body{padding:10px;display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto}
.slip-item{display:flex;justify-content:space-between;gap:8px;background:var(--bg2);border:1px solid var(--line-soft,#1c2740);border-radius:10px;padding:9px 11px}
.si-match{font-size:11px;color:var(--faint)}
.si-sel{font-size:13px;font-weight:700;margin-top:2px}
.si-sel b{color:var(--pitch)}
.si-x{background:transparent;border:0;color:var(--faint);font-size:18px;line-height:1;padding:0 2px}
.si-x:hover{color:var(--red)}
.sb-slip-foot{padding:12px 15px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.sb-slip-foot .stake{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:6px 11px}
.sb-slip-foot .stake span{color:var(--faint);font-weight:700}
.sb-slip-foot .stake input{flex:1;background:transparent;border:0;color:var(--text);font-size:16px;font-weight:700;text-align:right;outline:none;min-width:0}
.sb-payout{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}
.sb-payout b{color:var(--pitch);font-size:17px}
.sb-open{padding:12px 15px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.open-item{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);background:var(--bg2);border-radius:7px;padding:6px 9px}
.open-item b{color:var(--amber)}

/* ===== LOBBY LIVE HERO ===== */
.lobby-live{display:grid;grid-template-columns:1.7fr 1fr;gap:14px;margin:4px 0 22px}
@media(max-width:760px){.lobby-live{grid-template-columns:1fr}}
.ll-sports{background:linear-gradient(160deg,rgba(20,28,44,.9),rgba(12,17,30,.9));border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column}
.ll-head{font-weight:800;font-size:14px;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.ll-dot{width:9px;height:9px;border-radius:50%;background:#ff4d4d;box-shadow:0 0 10px #ff4d4d;animation:llpulse 1.3s infinite}
@keyframes llpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
.ll-count{color:var(--faint);font-weight:700;font-size:12px}
.ll-matches{display:flex;flex-direction:column;gap:7px;flex:1}
.ll-match{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:10px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;transition:.15s;text-align:left;color:var(--text);font-family:inherit}
.ll-match:hover{background:rgba(230,194,90,.08);border-color:rgba(230,194,90,.35)}
.ll-match .lm-t{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px;min-width:0;overflow:hidden;white-space:nowrap}
.ll-match .lm-t.r{justify-content:flex-end}
.ll-match .lm-t i{width:8px;height:8px;border-radius:50%;flex:none}
.ll-match .lm-sc{font-size:15px;color:var(--amber);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ll-match .lm-min{font-size:11px;color:#ff6b6b;font-weight:700;font-variant-numeric:tabular-nums}
.ll-cta{margin-top:12px;align-self:flex-start;background:var(--gold-grad);color:#3a2a06;font-weight:800;border:0;border-radius:999px;padding:9px 18px;cursor:pointer;font-size:13px;font-family:inherit}
.ll-cta:hover{filter:brightness(1.08)}
.ll-jackpot{background:linear-gradient(155deg,rgba(230,194,90,.22),rgba(120,90,20,.14));border:1px solid rgba(230,194,90,.5);border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:.18s;font-family:inherit}
.ll-jackpot:hover{border-color:var(--amber);transform:translateY(-2px)}
.llj-label{font-size:12px;letter-spacing:.08em;font-weight:800;color:var(--faint);text-transform:uppercase}
.llj-val{font-family:var(--serif,serif);font-size:34px;font-weight:800;margin:6px 0 4px;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px rgba(230,194,90,.35))}
.llj-note{font-size:11.5px;color:var(--muted)}
.llj-note.hot{color:#ffd54a;font-weight:700;animation:llhot 1.6s infinite}
@keyframes llhot{0%,100%{opacity:1}50%{opacity:.55}}

/* ===== LOBBY: online pill, wins ticker, pitch ===== */
.ll-online{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#7be3a0;background:rgba(63,178,127,.12);border:1px solid rgba(63,178,127,.35);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:middle;letter-spacing:0;text-transform:none}
.ll-online:empty{display:none}
.win-ticker{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,rgba(255,77,77,.10),rgba(20,28,44,.6));border:1px solid var(--line);border-radius:12px;padding:9px 14px;margin:0 0 16px;overflow:hidden}
.win-ticker .wt-ic{flex:none;font-size:15px}
.wt-view{flex:1;overflow:hidden}
.wt-track{display:inline-flex;align-items:center;white-space:nowrap;animation:wtscroll 34s linear infinite;will-change:transform}
.win-ticker:hover .wt-track{animation-play-state:paused}
@keyframes wtscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.wt-item{font-size:12.5px;color:var(--muted)}
.wt-item b{color:var(--text)}
.wt-item .amt{color:var(--amber)}
.wt-sep{color:var(--faint);margin:0 14px}
.pitch-card{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;cursor:pointer;font-family:inherit;
  background:linear-gradient(120deg,rgba(230,194,90,.16),rgba(20,28,44,.85));border:1px solid rgba(230,194,90,.45);border-radius:16px;padding:15px 20px;margin:0 0 18px;transition:.18s}
.pitch-card:hover{border-color:var(--amber);transform:translateY(-2px);box-shadow:0 8px 26px rgba(0,0,0,.3)}
.pitch-card .pc-t{font-weight:800;font-size:16px}
.pitch-card .pc-d{color:var(--muted);font-size:12.5px;margin-top:3px}
.pitch-card .pc-cta{flex:none;background:var(--gold-grad);color:#3a2a06;font-weight:800;border-radius:999px;padding:9px 18px;font-size:13px;white-space:nowrap}
.pitch-modal{position:fixed;inset:0;z-index:100;background:#0b1220;display:flex;flex-direction:column}
.pitch-modal.hidden{display:none}
.pm-bar{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:rgba(16,21,36,.95);border-bottom:1px solid var(--line)}
.pm-title{font-weight:800;font-size:13px;color:var(--amber)}
.pm-close{background:var(--surface);border:1px solid var(--line2,#3a4e74);color:var(--text);border-radius:999px;padding:7px 15px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.pm-close:hover{border-color:var(--amber);color:var(--amber)}
.pm-frame{flex:1;width:100%;border:0}

/* ===== PREMIUM POLISH · pass 1 — chip-token bet markers + felt outside bets ===== */
@keyframes chipDrop{0%{transform:translateY(-12px) scale(.5);opacity:0}60%{transform:translateY(2px) scale(1.06)}100%{transform:none;opacity:1}}
/* placed-bet markers → real mini gold casino chips (were flat number pills) */
.bac-spot .cm,.sb-spot .cm,.cell .chipmark,.obet .chipmark{
  background:
    radial-gradient(circle at 38% 30%,rgba(255,255,255,.65),transparent 44%),
    radial-gradient(circle,transparent 52%,rgba(255,255,255,.6) 53% 55%,transparent 56%),
    radial-gradient(circle,#eabf55 0 60%,transparent 60%),
    repeating-conic-gradient(#a9781f 0 18deg,#f4e099 18deg 36deg);
  color:#3a2a06;text-shadow:0 1px 0 rgba(255,255,255,.4);
  box-shadow:0 3px 7px rgba(0,0,0,.55),inset 0 1px 2px rgba(255,255,255,.6),inset 0 -3px 5px rgba(0,0,0,.35);
  border-radius:50%;animation:chipDrop .2s ease-out}
/* roulette markers: grow the tiny 9px pill into a round chip token */
.cell .chipmark,.obet .chipmark{display:grid;place-items:center;width:22px;height:22px;min-width:22px;font-size:10px;padding:0;bottom:2px;right:2px}
.cell .chipmark{width:20px;height:20px;min-width:20px;font-size:9px}
/* roulette outside bets: plain dark boxes → premium felt matching the number cells */
.obet{border:1px solid rgba(202,165,76,.42);background:linear-gradient(180deg,rgba(26,62,45,.92),rgba(11,38,27,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 3px rgba(0,0,0,.4);transition:.15s}
.obet:hover{transform:translateY(-1px);border-color:var(--amber);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 4px 10px rgba(0,0,0,.45);outline:none}

/* ===== ROULETTE — authentic table layout (0 · 1–36 grid · 2-1 columns · dozens · outside) ===== */
#board{grid-template-columns:34px repeat(12,minmax(0,1fr)) 42px;grid-template-rows:repeat(3,42px) 30px 30px;align-items:stretch}
#board .cell{aspect-ratio:auto;height:auto;min-height:0}
#board .cell.zero{font-size:16px}
#board .obet{margin:0;padding:2px;font-size:12px;display:grid;place-items:center;min-height:0;line-height:1.05}
#board .obet.colbet{font-weight:800;font-size:12px}
#board .obet.red{background:linear-gradient(180deg,#d0453a,#9c241b)}
#board .obet.black{background:linear-gradient(180deg,#26314c,#0a0f1c)}
@media(max-width:560px){#board{grid-template-columns:26px repeat(12,minmax(0,1fr)) 32px;grid-template-rows:repeat(3,34px) 26px 26px}#board .cell{font-size:10px}#board .obet{font-size:9px}}

/* ===== 3D TABLE — roulette (CSS perspective, viewed from player's seat) ===== */
.rou-stage{perspective:1500px;perspective-origin:50% 18%;padding:8px 0 22px;margin-bottom:12px;border-radius:18px;overflow:hidden;
  background:radial-gradient(130% 105% at 50% 4%,#1f6647 0%,#0f3d29 46%,#06190f 100%);box-shadow:inset 0 0 90px rgba(0,0,0,.55)}
.rou-floor{position:relative;width:min(660px,96%);margin:0 auto;transform:rotateX(34deg);transform-origin:50% 22%;transform-style:preserve-3d;
  display:flex;flex-direction:column;align-items:center;gap:16px;padding:26px 18px 20px;
  border-radius:50% 50% 14px 14px/22% 22% 6% 6%;
  background:
    radial-gradient(120% 80% at 50% 0,rgba(255,255,255,.06),transparent 60%),
    linear-gradient(180deg,#1c6244,#12492f);
  box-shadow:0 0 0 10px #6d4a22,0 0 0 12px #4a2f14,0 30px 40px rgba(0,0,0,.55),inset 0 0 60px rgba(0,0,0,.4)}
.rou-floor .wheel-stage{filter:drop-shadow(0 26px 20px rgba(0,0,0,.6))}
.rou-floor #board{margin:0;box-shadow:inset 0 2px 20px rgba(0,0,0,.45),0 12px 26px rgba(0,0,0,.45)}
.rou-chipstack{position:absolute;top:58px;width:38px;height:50px;border-radius:7px/16px;z-index:3;
  background:repeating-linear-gradient(#f4f4f4 0 4px,#c9342a 4px 8px);box-shadow:0 10px 16px rgba(0,0,0,.55),inset 0 0 0 2px rgba(0,0,0,.18)}
.rou-chipstack::before{content:"";position:absolute;left:-1px;right:-1px;top:-6px;height:12px;border-radius:50%;background:#ededed;box-shadow:inset 0 -2px 3px rgba(0,0,0,.3)}
.rou-chipstack.l{left:7%}
.rou-chipstack.r{right:7%;background:repeating-linear-gradient(#f4f4f4 0 4px,#2a56b0 4px 8px)}
.rou-bar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:center;margin:4px 0 10px}
.rou-bar .wheel-meta,.rou-bar .chip-select,.rou-bar .betbar{margin:0}

/* roulette controls: keep chip-select + place button reachable (sticky bottom) */
.rou-bar{position:sticky;bottom:8px;z-index:25;background:rgba(12,18,30,.92);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:10px 14px;box-shadow:0 10px 26px rgba(0,0,0,.45)}
.rou-bar .betbar .btn-pitch{padding:11px 22px;font-size:15px}

/* ===== juice: floating +/- amount + winning-spot blink ===== */
.money-float{position:fixed;transform:translate(-50%,-50%);font-weight:900;font-size:24px;font-family:var(--serif,serif);color:#6ee7a0;text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 12px rgba(110,231,160,.5);pointer-events:none;z-index:200;white-space:nowrap;animation:floatUp 1.5s ease-out forwards}
.money-float.neg{color:#ff7a6b;text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 12px rgba(255,122,107,.4)}
@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-20%) scale(.6)}16%{opacity:1;transform:translate(-50%,-70%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-190%) scale(1)}}
#board .cell.win,#board .obet.win{animation:spotWin .6s ease-in-out infinite alternate;z-index:6;position:relative}
@keyframes spotWin{from{box-shadow:0 0 0 2px #ffd75a,inset 0 0 6px rgba(255,215,90,.35);filter:brightness(1)}to{box-shadow:0 0 16px 4px #ffd75a,inset 0 0 14px rgba(255,215,90,.75);filter:brightness(1.4)}}

/* roulette: easier to click (gentler tilt + bigger cells) + very visible win flash */
.rou-floor{transform:rotateX(20deg);transform-origin:50% 16%}
#board{grid-template-rows:repeat(3,48px) 34px 34px}
#board .cell{font-size:14px}
#board .cell.win,#board .obet.win{animation:spotWin .42s ease-in-out infinite alternate;z-index:9;outline:3px solid #ffe680;outline-offset:-2px}
@keyframes spotWin{from{filter:brightness(1.2) saturate(1.1);box-shadow:0 0 0 2px #ffd75a}to{filter:brightness(2.2) saturate(1.5);box-shadow:0 0 24px 8px #ffe680}}

/* fix: board must fill the felt width so number cells are wide enough to tap */
#board{width:100%;box-sizing:border-box}

/* ===== BLACKJACK — 3D multiplayer table ===== */
.bj-table{position:relative;margin-bottom:14px;padding:24px 18px 28px;
  border-radius:210px 210px 20px 20px/96px 96px 20px 20px;
  background:radial-gradient(120% 82% at 50% 0,#1f7a52 0%,#0e4a31 58%,#08301f 100%);
  box-shadow:0 0 0 12px #6d4a22,0 0 0 15px #3f2a13,inset 0 6px 44px rgba(0,0,0,.5),0 22px 44px rgba(0,0,0,.5)}
.bj-tinfo{position:absolute;top:12px;right:16px;display:flex;gap:8px;font-size:11px;color:#ffe6a8;font-weight:700}
.bj-tinfo span{background:rgba(0,0,0,.3);border:1px solid rgba(230,194,90,.32);border-radius:999px;padding:2px 9px}
.bj-dealer{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:6px}
.bj-cards{display:flex;gap:5px;min-height:60px;justify-content:center;align-items:flex-start}
.bj-dealer .card{width:52px;height:74px}
.bj-rules{color:#ffe6a8;font-size:11px;font-weight:700;letter-spacing:.06em;text-align:center;font-family:var(--serif,serif);opacity:.9;text-transform:uppercase}
.bj-seats{display:flex;justify-content:center;align-items:flex-end;gap:16px;margin-top:14px;flex-wrap:wrap}
.bj-seat{display:flex;flex-direction:column;align-items:center;gap:6px;width:118px}
.bj-seat.you{transform:translateY(-8px)}
.bj-seat .card{width:40px;height:57px}
.bj-seat .card .cr{font-size:10px}.bj-seat .card .cs{font-size:15px}
.bj-val{min-width:30px;height:24px;padding:0 8px;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.25);color:#fff;font-weight:800;font-size:13px;display:none;align-items:center;justify-content:center}
.bj-val:not(:empty){display:inline-flex}
.bj-val.dealer{background:var(--gold-grad);color:#3a2a06;border-color:transparent}
.bj-val.win{background:linear-gradient(180deg,#38c172,#1f8a4c);border-color:transparent}
.bj-val.lose,.bj-val.bust{background:linear-gradient(180deg,#e05a4a,#a12b1e);border-color:transparent}
.bj-seatinfo{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 12px 4px 4px}
.bj-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:radial-gradient(circle at 40% 30%,#3a4a66,#1a2740);border:2px solid #6b7a95;flex:none}
.bj-av.you{border-color:var(--amber);box-shadow:0 0 10px rgba(230,194,90,.5)}
.bj-who{text-align:left;line-height:1.15}
.bj-name{font-size:12px;font-weight:800;color:#fff}
.bj-bal{font-size:11px;color:#7be3a0;font-weight:700}
.bj-seat.you .bj-name{color:var(--amber)}
.bj-betbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;margin-bottom:10px}
.bj-betamt{font-size:14px;color:var(--muted)}.bj-betamt b{color:var(--amber)}
.bj-actions{display:flex;gap:12px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}
.bj-act{min-width:120px;padding:13px 22px;font-size:15px;font-weight:900;letter-spacing:.08em;border:0;border-radius:12px;cursor:pointer;color:#fff;box-shadow:0 5px 14px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.25);transition:.14s;font-family:inherit}
.bj-act:hover{transform:translateY(-2px);filter:brightness(1.08)}
.bj-act.hit{background:linear-gradient(180deg,#3fbf6f,#1f8a4c)}
.bj-act.stand{background:linear-gradient(180deg,#e0574a,#a5281b)}
.bj-act.double{background:var(--gold-grad);color:#3a2a06}
.bj-act:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}
@media(max-width:640px){.bj-seat{width:92px}.bj-seat .card{width:34px;height:48px}.bj-dealer .card{width:44px;height:62px}.bj-act{min-width:96px;padding:11px 14px;font-size:13px}}

/* ===== 3D premium felt frame — baccarat / dragon tiger / sic bo ===== */
.bac-felt{border:none;border-radius:180px 180px 20px 20px/78px 78px 20px 20px;
  background:radial-gradient(120% 85% at 50% 0,#1f7a52 0%,#0e4a31 58%,#08301f 100%);
  box-shadow:0 0 0 11px #6d4a22,0 0 0 14px #3f2a13,inset 0 6px 40px rgba(0,0,0,.5),0 20px 40px rgba(0,0,0,.5)}
.sicbo-stage{border:none;border-radius:26px;
  background:radial-gradient(120% 110% at 50% 0,#1f7a52,#0e4a31 60%,#08301f);
  box-shadow:0 0 0 10px #6d4a22,0 0 0 13px #3f2a13,inset 0 6px 34px rgba(0,0,0,.5),0 16px 34px rgba(0,0,0,.45)}
/* bet spots: a touch more depth to read as chips-on-felt */
.bac-bets{margin-top:20px}
.bac-spot{box-shadow:0 6px 14px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.15)}
.bac-spot.sel{box-shadow:0 0 0 3px rgba(255,194,75,.55),0 8px 18px rgba(0,0,0,.4)}

/* ===== POKER — richer felt + premium raise slider ===== */
.poker-felt{box-shadow:0 0 0 10px #6d4a22,0 0 0 13px #3f2a13,inset 0 0 60px rgba(0,0,0,.5),0 18px 36px rgba(0,0,0,.5)}
.pk-raise{display:flex;align-items:center;gap:10px}
.pk-raise input[type=range]{-webkit-appearance:none;appearance:none;width:160px;height:9px;border-radius:999px;background:linear-gradient(90deg,#e6c25a,#8a6a24);outline:none;cursor:pointer;box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}
.pk-raise input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 40% 30%,#fff6d8,#e6c25a 60%,#a9781f);box-shadow:0 3px 7px rgba(0,0,0,.55),inset 0 1px 2px rgba(255,255,255,.6);cursor:grab;border:2px solid #7a5a1e}
.pk-raise input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 40% 30%,#fff6d8,#e6c25a 60%,#a9781f);border:2px solid #7a5a1e;cursor:grab}
.pk-raise input[type=range]::-moz-range-track{height:9px;border-radius:999px;background:linear-gradient(90deg,#e6c25a,#8a6a24)}
.pk-raiseb{font-weight:800}

/* ===== SLOTS — premium gold-framed neon cabinet ===== */
.slot-machine{position:relative;border:none;border-radius:26px;padding:22px 22px 26px;
  background:linear-gradient(180deg,#2b1a44,#180f2e 70%,#120a24);
  box-shadow:0 0 0 8px #caa54c,0 0 0 12px #6d4a22,0 0 44px rgba(155,120,255,.32),inset 0 4px 34px rgba(0,0,0,.55),0 20px 40px rgba(0,0,0,.5)}
.slot-machine::before{content:"🎰 LUCA SLOT";position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--gold-grad);color:#3a2a06;font-weight:900;font-size:12px;letter-spacing:.12em;padding:4px 16px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.5)}
.slot-reels{border-radius:14px;box-shadow:inset 0 4px 20px rgba(0,0,0,.6);background:linear-gradient(180deg,#0a0f1c,#141d30)}

/* ===== BACCARAT — multiplayer room (mock players) ===== */
.bac-seats-wrap{margin-top:14px}
.bac-seats-wrap>.muted{display:block;margin-bottom:8px;text-align:center}
.bac-seats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.bac-seat{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.34);border:1px solid var(--line);border-radius:12px;padding:6px 10px 6px 6px;transition:.2s}
.bac-seat.win{border-color:#3fb27f;box-shadow:0 0 12px rgba(63,178,127,.45)}
.bac-seat.lose{opacity:.55}
.bs-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:16px;background:radial-gradient(circle at 40% 30%,#3a4a66,#1a2740);border:1px solid #6b7a95;flex:none}
.bs-info{line-height:1.12;text-align:left}
.bs-name{font-size:12px;font-weight:700;color:#fff}
.bs-bal{font-size:10px;color:#7be3a0;font-weight:700}
.bs-bet{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.32)}
.bs-bet .bs-dot{width:8px;height:8px;border-radius:50%;flex:none}
.bs-bet.player{color:#8fb8ff}.bs-bet.player .bs-dot{background:#4c8dff}
.bs-bet.banker{color:#ff9e8f}.bs-bet.banker .bs-dot{background:#e0574a}
.bs-bet.tie{color:#7be3a0}.bs-bet.tie .bs-dot{background:#3fb27f}
.bac-seat.win .bs-bet b{color:#ffd75a}
.bac-spot.win{outline:3px solid #ffe680;box-shadow:0 0 22px 6px rgba(255,215,90,.6);animation:bacWin .5s ease-in-out infinite alternate}
@keyframes bacWin{from{filter:brightness(1.08)}to{filter:brightness(1.5)}}

/* dragon tiger room bet colors */
.bs-bet.dragon{color:#ff9e8f}.bs-bet.dragon .bs-dot{background:#e0574a}
.bs-bet.tiger{color:#ffcf8a}.bs-bet.tiger .bs-dot{background:#e6a24a}

/* sic bo room bet colors */
.bs-bet.small{color:#8fb8ff}.bs-bet.small .bs-dot{background:#4c8dff}
.bs-bet.big{color:#ff9e8f}.bs-bet.big .bs-dot{background:#e0574a}
.bs-bet.odd{color:#7be3a0}.bs-bet.odd .bs-dot{background:#3fb27f}
.bs-bet.even{color:#ffcf8a}.bs-bet.even .bs-dot{background:#e6a24a}

/* lobby: players-online stat beside jackpot */
.ll-side{display:flex;flex-direction:column;gap:14px}
.ll-players{display:flex;align-items:center;gap:10px;background:linear-gradient(155deg,rgba(63,178,127,.16),var(--panel));border:1px solid rgba(63,178,127,.42);border-radius:16px;padding:14px 16px}
.ll-players .llp-ic{font-size:20px}
.ll-players b{font-size:23px;color:#7be3a0;font-family:var(--serif,serif);font-weight:800}
.ll-players .llp-lbl{color:var(--muted);font-size:12px}

/* live auto-round phase bar (baccarat / dragon tiger / sic bo) */
.bac-phasebar{display:flex;align-items:center;gap:12px;justify-content:center;margin:8px 0 6px}
.bac-phaselbl{font-weight:800;font-size:13px;white-space:nowrap}
.bac-timer{flex:0 1 220px;height:6px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden}
.bac-timer>div{height:100%;width:100%;background:var(--gold-grad);transition:width 1s linear}

/* ===== SPORTS — watch-live simulated pitch ===== */
.sb-live{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}
.sbl-close{position:absolute;top:12px;right:14px;z-index:6;background:var(--surface);border:1px solid var(--line2,#3a4e74);color:var(--text);border-radius:999px;padding:5px 13px;font-size:12px;font-weight:700;cursor:pointer}
.sbl-close:hover{border-color:var(--amber);color:var(--amber)}
.sbl-pitch{position:relative;height:230px;border-radius:12px;overflow:hidden;background:repeating-linear-gradient(90deg,#218a4f 0 44px,#1c7d47 44px 88px);box-shadow:inset 0 0 60px rgba(0,0,0,.45)}
.sbl-pitch::before{content:"";position:absolute;inset:12px;border:2px solid rgba(255,255,255,.55);border-radius:5px}
.sbl-pitch::after{content:"";position:absolute;left:50%;top:12px;bottom:12px;width:2px;background:rgba(255,255,255,.55);transform:translateX(-1px)}
.sbl-cc{position:absolute;left:50%;top:50%;width:74px;height:74px;border:2px solid rgba(255,255,255,.55);border-radius:50%;transform:translate(-50%,-50%)}
.sbl-ball{position:absolute;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#c6c6c6);box-shadow:0 3px 7px rgba(0,0,0,.55);z-index:3;animation:sblBall 7s ease-in-out infinite}
@keyframes sblBall{0%{left:47%;top:44%}12%{left:22%;top:28%}25%{left:68%;top:58%}38%{left:34%;top:70%}50%{left:80%;top:30%}62%{left:16%;top:52%}75%{left:60%;top:22%}88%{left:40%;top:64%}100%{left:47%;top:44%}}
.sbl-scorebar{position:absolute;top:14px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:16px;z-index:4}
.sbl-t{display:flex;align-items:center;gap:7px;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);font-size:14px}
.sbl-t i{width:11px;height:11px;border-radius:50%}
.sbl-num{font-size:26px;font-weight:900;color:#fff;background:rgba(0,0,0,.45);border-radius:9px;padding:2px 14px;text-shadow:0 1px 4px #000}
.sbl-min{position:absolute;bottom:34px;left:0;right:0;text-align:center;color:#fff;font-weight:800;font-size:13px;text-shadow:0 1px 4px #000;z-index:4}
.sbl-ev{position:absolute;bottom:9px;left:0;right:0;text-align:center;color:rgba(255,255,255,.9);font-size:11px;z-index:4;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.sbl-pitch.goal{animation:sblGoal .7s}
@keyframes sblGoal{0%,100%{box-shadow:inset 0 0 60px rgba(0,0,0,.45)}45%{box-shadow:inset 0 0 90px rgba(255,215,90,.8)}}
.sbl-hint{color:var(--muted);font-size:11px;text-align:center;margin:8px 0 4px}
.sbl-markets{margin-top:6px}
.sb-watch{display:block;margin:8px auto 0;background:linear-gradient(180deg,#e0574a,#a5281b);color:#fff;border:0;border-radius:8px;padding:5px 14px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.35)}
.sb-watch:hover{filter:brightness(1.1)}

/* ===== SPORTS pitch — broadcast 16:9 ratio + TV camera perspective ===== */
.sbl-pitch{height:auto;aspect-ratio:16/9;max-height:380px;perspective:820px;background:linear-gradient(180deg,#0c3a22,#06231500)}
.sbl-pitch::before,.sbl-pitch::after{content:none}
.sbl-cc{display:none}
.sbl-field{position:absolute;left:0;right:0;bottom:0;height:120%;transform:rotateX(42deg);transform-origin:50% 100%;
  background:repeating-linear-gradient(90deg,#249055 0 7.7%,#1e854c 7.7% 15.4%);border:3px solid rgba(255,255,255,.6);box-shadow:inset 0 0 70px rgba(0,0,0,.45)}
.sbl-field .sbl-mark{position:absolute;border:2px solid rgba(255,255,255,.55);box-sizing:border-box}
.sbl-mark.half{left:50%;top:0;bottom:0;width:0;border-width:0 0 0 2px}
.sbl-mark.cc2{left:50%;top:50%;width:15%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%)}
.sbl-mark.box-l{left:0;top:27%;width:15%;height:46%;border-left:0}
.sbl-mark.box-r{right:0;top:27%;width:15%;height:46%;border-right:0}
.sbl-mark.goal-l{left:-1%;top:41%;width:3%;height:18%;border-left:0}
.sbl-mark.goal-r{right:-1%;top:41%;width:3%;height:18%;border-right:0}
.sbl-ball{position:absolute;width:3.6%;height:auto;aspect-ratio:1;animation:sblBall2 7s ease-in-out infinite}
@keyframes sblBall2{0%{left:48%;top:46%}12%{left:20%;top:34%}25%{left:72%;top:60%}38%{left:35%;top:72%}50%{left:82%;top:30%}62%{left:14%;top:56%}75%{left:62%;top:24%}88%{left:42%;top:66%}100%{left:48%;top:46%}}
/* broadcast score bug (top-left) */
.sbl-scorebar{top:12px;left:12px;right:auto;justify-content:flex-start;gap:8px;background:rgba(8,14,26,.85);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px 11px;z-index:6;backdrop-filter:blur(4px)}
.sbl-scorebar .sbl-t{font-size:12px}
.sbl-scorebar .sbl-num{font-size:15px;padding:1px 8px}
.sbl-min{bottom:auto;top:14px;left:auto;right:14px;text-align:right;background:rgba(8,14,26,.8);border-radius:6px;padding:4px 9px;width:auto;display:inline-block}
.sbl-pitch.goal::after{content:"⚽ GOAL!";position:absolute;inset:0;display:grid;place-items:center;z-index:9;font-size:clamp(24px,6vw,46px);font-weight:900;color:#ffd75a;text-shadow:0 4px 12px #000;background:rgba(0,0,0,.28);animation:sblGoalTxt 1.5s ease-out;pointer-events:none}
@keyframes sblGoalTxt{0%{opacity:0;transform:scale(.5)}18%{opacity:1;transform:scale(1.12)}82%{opacity:1;transform:scale(1)}100%{opacity:0}}

/* sports: full-width match grid + sticky tap-to-bet stake bar */
.sb-matches{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-items:start}
.sb-open-sec{margin:16px 0 6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.sb-open-sec>.muted{display:block;margin-bottom:6px}
#sbOpen{display:flex;flex-wrap:wrap;gap:8px}
.open-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12px;display:flex;gap:8px;align-items:center}
.sb-stakebar{position:sticky;bottom:8px;z-index:25;display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;background:rgba(12,18,30,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:14px;padding:10px 16px;margin-top:12px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.sbk-lbl{font-weight:800;font-size:13px;color:var(--muted)}
.sb-hint{color:var(--muted);font-size:12px}
.odd-btn.just{animation:oddJust .7s;border-color:#3fb27f}
@keyframes oddJust{0%{background:rgba(63,178,127,.55)}100%{background:rgba(63,178,127,.06)}}
