/* ══════════════════════════════════════════════════════
   BetEmpireElite — Blackjack Game Styles
══════════════════════════════════════════════════════ */
:root {
  --gold:#c9a227; --gold-light:#f0d060; --gold-bright:#ffd700;
  --gold-dark:#8b6914; --gold-glow:rgba(201,162,39,.45);
  --bg:#080808; --panel:rgba(255,255,255,.03);
  --border:rgba(201,162,39,.18); --border-s:rgba(255,255,255,.05);
  --text:#e8e0d0; --text-dim:rgba(232,224,208,.5);
  --red:#ff4f6b; --green:#00e676;
  --felt:#0d4525; --felt-hi:#15633a;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{min-height:100%;font-family:'Inter',Arial,sans-serif;}
body{background:var(--bg);color:var(--text);overflow-x:hidden;}
a{text-decoration:none;color:inherit;}

/* ── NAV ─────────────────────────────────────────────── */
.bj-nav{
  height:56px;display:flex;align-items:center;
  background:linear-gradient(180deg,#110f08,#0a0a0c);
  border-bottom:1px solid var(--border);
  box-shadow:0 2px 24px rgba(0,0,0,.7);
  position:sticky;top:0;z-index:50;flex-shrink:0;
}
.bj-nav::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-bright) 50%,transparent);
  opacity:.55;
}
.bj-nav-inner{
  width:100%;max-width:1200px;margin:0 auto;padding:0 18px;
  display:flex;align-items:center;gap:12px;
}
.bj-nav-logo-link{flex-shrink:0;display:flex;align-items:center;cursor:pointer;}
.bj-nav-logo{height:42px;width:auto;border-radius:6px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s;}
.bj-nav-logo-link:hover .bj-nav-logo{transform:scale(1.07);filter:brightness(1.12) drop-shadow(0 0 12px rgba(201,162,39,.75));}
.bj-nav-brand{display:flex;flex-direction:column;gap:1px;}
.bj-brand-name{font-size:15px;font-weight:900;color:#e8d090;}
.bj-brand-elite{color:var(--gold-bright);text-shadow:0 0 10px rgba(255,215,0,.4);}
.bj-brand-tag{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--gold);opacity:.7;}
.bj-nav-spacer{flex:1;}
.bj-balance-wrap{
  display:flex;flex-direction:column;align-items:flex-end;gap:1px;
  padding:6px 14px;background:rgba(201,162,39,.08);
  border:1px solid var(--border);border-radius:10px;
}
.bj-bal-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--gold);opacity:.7;}
.bj-bal-amount{font-size:18px;font-weight:800;color:#fff;}
.bj-lobby-btn{
  padding:8px 16px;background:transparent;
  border:1px solid var(--border);border-radius:10px;
  color:var(--gold-light);font-size:13px;font-weight:600;
  transition:background .15s,border-color .15s;white-space:nowrap;
}
.bj-lobby-btn:hover{background:rgba(201,162,39,.1);border-color:var(--gold);}

/* ── MAIN ────────────────────────────────────────────── */
.bj-main{
  display:flex;flex-direction:column;align-items:center;
  padding:12px 16px 32px;gap:16px;
  min-height:calc(100vh - 56px);
}

/* Logo strip */
.bj-logo-strip{display:flex;justify-content:center;}
.bj-game-logo{height:90px;width:auto;border-radius:12px;transition:transform .3s cubic-bezier(.34,1.2,.64,1),filter .3s;}
.bj-logo-strip a:hover .bj-game-logo{transform:scale(1.06);filter:brightness(1.1) drop-shadow(0 0 18px rgba(201,162,39,.6));}

/* ── TABLE ───────────────────────────────────────────── */
.bj-table-outer{width:100%;max-width:760px;}
.bj-table{
  background:radial-gradient(ellipse at 50% 20%,var(--felt-hi) 0%,var(--felt) 55%,#071e10 100%);
  border:2px solid rgba(201,162,39,.5);border-radius:28px;
  padding:36px 20px;position:relative;min-height:420px;
  box-shadow:inset 0 4px 32px rgba(0,0,0,.5),inset 0 0 80px rgba(0,0,0,.3),0 0 0 1px rgba(201,162,39,.1),0 12px 48px rgba(0,0,0,.6);
  display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:0;
}
.bj-table::after{
  content:'';position:absolute;inset:0;border-radius:26px;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.008) 0px,rgba(255,255,255,.008) 1px,transparent 1px,transparent 28px);
  pointer-events:none;
}
.bj-arc-text{
  display:block;
  /* Scale with the table width; 680px cap matches .bj-table-outer max-width */
  width:min(94%,680px);
  /* Dead-centre between dealer and player zones */
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  /* Above the felt-texture ::after overlay, behind cards and chips */
  z-index:2;
  overflow:visible;
}

@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* ── Card shoe ────────────────────────────────────────── */
.bj-shoe{
  position:absolute;top:10px;right:14px;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  pointer-events:none;
}
.bj-shoe-box{
  position:relative;width:96px;height:58px;
  background:linear-gradient(160deg,#3a2313 0%,#5a3a1c 45%,#2a1a0d 100%);
  border-radius:8px 8px 4px 4px;
  border:1px solid rgba(0,0,0,.5);
  box-shadow:
    0 6px 14px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -6px 10px rgba(0,0,0,.35);
}
.bj-shoe-box::before{
  /* wood grain texture */
  content:'';position:absolute;inset:0;border-radius:8px 8px 4px 4px;
  background:repeating-linear-gradient(100deg,rgba(0,0,0,.08) 0px,rgba(0,0,0,.08) 1px,transparent 1px,transparent 5px);
  opacity:.5;pointer-events:none;
}
.bj-shoe-stack{
  position:absolute;left:8px;right:20px;bottom:14px;height:30px;
}
.bj-shoe-card{
  position:absolute;left:0;right:0;bottom:calc(var(--i) * 1.6px);
  height:26px;border-radius:2px 2px 0 0;
  background:linear-gradient(135deg,#241a5e 0%,#332382 55%,#241a5e 100%);
  border:1px solid rgba(120,100,210,.35);
  border-bottom:none;
}
.bj-shoe-top-card{
  position:absolute;right:6px;bottom:16px;width:34px;height:22px;
  background:linear-gradient(135deg,#2b1f68 0%,#3a2a90 55%,#2b1f68 100%);
  border:1px solid rgba(140,120,225,.5);
  border-radius:2px;
  transform:translateY(-2px) rotate(-3deg);
  box-shadow:0 2px 5px rgba(0,0,0,.5);
  transition:transform .16s cubic-bezier(.34,1.4,.64,1), opacity .16s ease;
}
.bj-shoe-top-card::after{
  content:'';position:absolute;inset:2px;border:1px solid rgba(201,162,39,.3);border-radius:1px;
}
.bj-shoe-top-card.bj-shoe-pulse{
  animation:shoePulse .3s ease-out;
}
@keyframes shoePulse{
  0%{transform:translateY(-2px) rotate(-3deg);}
  40%{transform:translateY(6px) rotate(2deg) scale(.9);opacity:.4;}
  100%{transform:translateY(-2px) rotate(-3deg);}
}
.bj-shoe-slot{
  position:absolute;right:2px;top:6px;width:44px;height:6px;
  background:rgba(0,0,0,.55);border-radius:3px;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.7);
}
@media (max-width:640px){
  .bj-shoe-box{width:74px;height:46px;}
  .bj-shoe-top-card{width:26px;height:17px;bottom:12px;}
  .bj-shoe-stack{height:22px;bottom:11px;}
  .bj-shoe-card{height:19px;}
  .bj-shoe-slot{width:34px;height:5px;top:5px;}
}

/* Absolutely-pinned DEALER / YOU edge labels */
.bj-edge-label{
  position:absolute;left:0;right:0;text-align:center;
  font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,.35);pointer-events:none;z-index:2;
}
.bj-edge-top{top:14px;}
.bj-edge-bottom{bottom:14px;}

.bj-section{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0;}
.bj-section-label{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.35);text-align:center;}
.dealer-section{margin-bottom:8px;}
.player-section{margin-top:8px;}

.bj-hand{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:6px;min-height:108px;}
.bj-score{font-size:14px;font-weight:700;color:rgba(255,255,255,.75);min-height:20px;text-align:center;}

/* center belt */
.bj-center{position:relative;display:flex;align-items:center;justify-content:center;min-height:80px;margin:8px 0;}
/* The empty betting-zone outline is intentionally decoupled from the
   placed-chip stack: it is purely a visual affordance and is pinned to
   the left side of the felt, independent of where the chips render. */
.bj-bet-circle{
  width:68px;height:68px;border-radius:50%;flex-shrink:0;
  position:absolute;left:8%;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(0,0,0,.5);border:2px solid rgba(201,162,39,.5);
  box-shadow:0 0 16px rgba(201,162,39,.15);
}
.bj-bet-circle-label{font-size:9px;letter-spacing:1.5px;color:var(--gold);opacity:.7;z-index:5;}
.bj-bet-circle-amount{font-size:13px;font-weight:800;color:var(--gold-light);z-index:5;}
/* Invisible anchor point that stays perfectly centered in the middle of
   the table — the actual chip stack is appended here, not inside
   .bj-bet-circle, so the placed chips never move even though the empty
   circle outline above lives elsewhere on the felt. */
.bj-chip-stack{position:absolute;left:50%;top:50%;width:0;height:0;}
/* Individually stacked chip tokens rendered on the chip-stack anchor —
   locked {x,y} set once at placement, never repositioned afterward.
   Specificity note: chip-system.css loads AFTER this file and its shared
   .cs-chip rule sets position:relative for drag-source tray chips. Every
   placed chip here also carries .cs-chip, so this selector must be at
   least as specific (two classes) or the later stylesheet wins and the
   chip becomes an in-flow element instead of staying absolutely pinned
   to the chip-stack anchor. */
.bj-bet-chip.cs-chip{position:absolute;width:34px;height:34px;top:50%;left:50%;}
.bj-bet-chip .cs-chip-label{font-size:8px;}

/* result popup */
.bj-result-box{
  position:absolute;left:calc(50% + 58px);top:50%;
  min-width:160px;padding:10px 18px;border-radius:14px;
  font-size:16px;font-weight:800;text-align:center;
  opacity:0;transform:translateY(-50%) scale(.85);transition:opacity .25s,transform .25s;pointer-events:none;
}
.bj-result-box.show{opacity:1;transform:translateY(-50%) scale(1);}
.bj-result-box.win{background:rgba(0,230,118,.12);border:1px solid rgba(0,230,118,.5);color:#00e676;box-shadow:0 0 24px rgba(0,230,118,.2);}
.bj-result-box.lose{background:rgba(255,79,107,.1);border:1px solid rgba(255,79,107,.4);color:#ff4f6b;box-shadow:0 0 24px rgba(255,79,107,.15);}
.bj-result-box.push{background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.4);color:var(--gold-light);box-shadow:0 0 16px rgba(201,162,39,.15);}
.bj-result-box.blackjack{background:rgba(255,215,0,.12);border:2px solid var(--gold-bright);color:var(--gold-bright);box-shadow:0 0 32px rgba(255,215,0,.35);animation:bjFlash .4s ease 2;}
.bj-result-box.neutral{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7);}
@keyframes bjFlash{0%,100%{box-shadow:0 0 32px rgba(255,215,0,.35);}50%{box-shadow:0 0 60px rgba(255,215,0,.7);}}

/* Active insurance side-bet badge — sits above the result box, right of
   the bet circle; only shown after the player takes insurance and play
   continues (no dealer BJ). Cleared immediately on finishRound(). */
.bj-insur-badge{
  position:absolute;right:calc(50% + 52px);top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;
  background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.45);
  border-radius:8px;padding:4px 10px;pointer-events:none;z-index:5;
  animation:insurFadeIn .25s ease forwards;
}
.bj-insur-badge.hidden{display:none;}
.bj-insur-label{font-size:7px;font-weight:700;letter-spacing:1.5px;color:var(--gold);opacity:.75;white-space:nowrap;}
.bj-insur-amount{font-size:12px;font-weight:800;color:var(--gold-light);}
@keyframes insurFadeIn{from{opacity:0;transform:translateY(-50%) scale(.85);}to{opacity:1;transform:translateY(-50%) scale(1);}}

/* ── SINGLE HAND WRAP ────────────────────────────────── */
.bj-player-hand-wrap{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:8px 12px;border-radius:14px;
  border:1px solid transparent;
  transition:border-color .35s ease,box-shadow .35s ease,background .35s ease;
}
.bj-player-hand-wrap.active{
  border-color:rgba(201,162,39,.55);background:rgba(201,162,39,.055);
  box-shadow:0 0 0 1px rgba(201,162,39,.2),0 0 28px rgba(201,162,39,.22);
}
.bj-hand-bet{font-size:11px;color:var(--gold);font-weight:600;}

/* ── SPLIT HANDS CONTAINER ───────────────────────────── */
.bj-split-section{
  display:flex;gap:20px;justify-content:center;
  width:100%;flex-wrap:wrap;
}

/* ── INDIVIDUAL SPLIT HAND ───────────────────────────── */
.bj-split-hand{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:10px 14px 12px;border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
  position:relative;min-width:140px;
  transition:border-color .45s cubic-bezier(.4,0,.2,1),
             box-shadow    .45s cubic-bezier(.4,0,.2,1),
             background    .45s cubic-bezier(.4,0,.2,1);
}

/* Active split hand — pulsing gold glow */
.bj-split-hand.active{
  border-color:rgba(201,162,39,.7);
  background:rgba(201,162,39,.07);
  box-shadow:0 0 0 2px rgba(201,162,39,.22), 0 0 32px rgba(201,162,39,.28);
  animation:activeGoldPulse 2s ease-in-out infinite;
}
@keyframes activeGoldPulse{
  0%,100%{ box-shadow:0 0 0 2px rgba(201,162,39,.22),0 0 24px rgba(201,162,39,.22);}
  50%    { box-shadow:0 0 0 2px rgba(201,162,39,.5), 0 0 44px rgba(201,162,39,.45);}
}

/* Settled result tints on split hand wrap */
.bj-split-hand.settled{ animation:none; }

/* ── Hand label (Hand 1 / Hand 2) ─────────────────────── */
.bj-hand-label{
  font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,.35);
  transition:color .35s ease;
}
.bj-hand-label.active{
  color:var(--gold-bright);
  text-shadow:0 0 8px rgba(255,215,0,.4);
  animation:labelPulse 2s ease-in-out infinite;
}
@keyframes labelPulse{0%,100%{opacity:1;}50%{opacity:.65;}}

/* ── Per-hand result badge (split settle) ────────────────── */
.bj-hand-badge{
  margin-top:4px;padding:4px 12px;border-radius:10px;
  font-size:12px;font-weight:800;letter-spacing:.5px;
  animation:badgeIn .3s cubic-bezier(.34,1.56,.64,1);
}
@keyframes badgeIn{from{opacity:0;transform:scale(.7) translateY(6px);}to{opacity:1;transform:scale(1) translateY(0);}}
.bj-hand-badge.win{ background:rgba(0,230,118,.15);border:1px solid rgba(0,230,118,.45);color:#00e676; }
.bj-hand-badge.lose{ background:rgba(255,79,107,.12);border:1px solid rgba(255,79,107,.4);color:#ff4f6b; }
.bj-hand-badge.push{ background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.35);color:var(--gold-light); }

/* ── Split hand card container ───────────────────────────── */
.split-hand-cards{
  min-height:108px;gap:4px;
}

/* ── Player section ──────────────────────────────────────── */
/* Mirrors .dealer-section exactly: a centered column so the hand,
   score, and bet all sit on the same horizontal center as the dealer's,
   directly below the bet circle. Split hands are laid out by the nested
   .bj-split-section row (see below), not by this container. */
#playerSection{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;position:relative;
}

/* ── CARDS ───────────────────────────────────────────── */
/* Card faces are sliced directly from the uploaded sprite sheet
   (cards-sprite.png): 13 columns (A,2-10,J,Q,K) x 4 rows
   (clubs,hearts,spades,diamonds). The card box is sized to match the
   sprite cell's exact aspect ratio (1115/13 x 472/4 px) so no artwork
   is stretched or distorted. */
.bj-card{
  width:70px;height:96px;flex-shrink:0;
  perspective:900px;cursor:default;
  filter:drop-shadow(2px 4px 10px rgba(0,0,0,.6));
  /* No fill-mode so natural CSS can take over after animation */
  position:relative;
}
.bj-card-inner{
  width:100%;height:100%;position:relative;
  transform-style:preserve-3d;
  transition:transform .55s cubic-bezier(.4,0,.2,1);
}
.bj-card.face-down .bj-card-inner{transform:rotateY(180deg);}
.bj-card-front,.bj-card-back{
  position:absolute;inset:0;border-radius:4px;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
/* Front — exact artwork from the uploaded sprite sheet, no recoloring
   or redrawing. Source is a 3x-resolution version of the original sheet
   (Lanczos-upscaled + sharpened, same pixel-for-pixel artwork, no
   redraw) so the browser is always DOWNSCALING to the 70x96 card box
   even on 2x/3x retina displays, instead of upscaling a too-small
   source — that mismatch was the cause of the blur. WebP is served
   first (much smaller) with the PNG as an automatic fallback.
   background-size is 13x wide / 4x tall (one full sheet per
   row/column) so background-position (in %) selects the exact cell
   for the card's rank/suit — grid math is unchanged. */
.bj-card-front{
  background-image:url('/cards-sprite@3x.png');
  background-image:image-set(url('/cards-sprite@3x.webp') 1x, url('/cards-sprite@3x.png') 1x);
  background-repeat:no-repeat;
  background-size:1300% 400%;
  image-rendering:auto;
  overflow:hidden;
}
/* Back — premium woven argyle pattern (casino card-back style) instead
   of a flat gradient, matching the reference table's card backs. */
.bj-card-back{
  background-color:#241a5e;
  background-image:
    repeating-linear-gradient(45deg,  rgba(120,100,220,.35) 0,   rgba(120,100,220,.35) 1.5px, transparent 1.5px, transparent 9px),
    repeating-linear-gradient(-45deg, rgba(120,100,220,.35) 0,   rgba(120,100,220,.35) 1.5px, transparent 1.5px, transparent 9px),
    linear-gradient(135deg,#1a1060 0%,#2d1b8a 50%,#1a1060 100%);
  border:1px solid rgba(120,100,210,.5);transform:rotateY(180deg);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.bj-card-back::before{content:'♦';font-size:52px;color:rgba(201,162,39,.35);text-shadow:0 0 8px rgba(201,162,39,.25);}
.bj-card-back::after{content:'';position:absolute;inset:5px;border:1.5px solid rgba(201,162,39,.4);border-radius:5px;}

/* Card dealing — cards travel from the shoe to their resting spot via a
   JS-driven transform transition (see animateCardFromShoe in blackjack.js),
   since the shoe's fixed position and each hand's dynamic layout require
   the offset to be computed at deal time rather than a fixed keyframe. */
.bj-card.dealing-from-shoe{
  transform-origin:center center;
}
/* Static forced-stand cue (split aces / double-down 3rd card) applied
   directly during non-animated re-renders — no shoe-flight involved. */
.bj-card.static-sideways{
  transform:rotate(90deg);
}

/* ── Split fly animations ─────────────────────────────── */
@keyframes splitFlyLeft{
  0%  {transform:translateX(0)    scale(1);}
  45% {transform:translateX(-52px) scale(1.06) rotate(-4deg);}
  100%{transform:translateX(-42px) scale(1.02) rotate(-2deg);}
}
@keyframes splitFlyRight{
  0%  {transform:translateX(0)    scale(1);}
  45% {transform:translateX(52px)  scale(1.06) rotate(4deg);}
  100%{transform:translateX(42px)  scale(1.02) rotate(2deg);}
}
.bj-card.split-fly-left  {animation:splitFlyLeft  .38s cubic-bezier(.34,1.2,.64,1) forwards;z-index:2;}
.bj-card.split-fly-right {animation:splitFlyRight .38s cubic-bezier(.34,1.2,.64,1) forwards;z-index:2;}

/* ── Split ace seed tilt (applied after the shoe-deal transition ends) ───── */
/* Slight lean for the original ace card in split aces — readable but visually distinctive */
.bj-card.split-ace-seed{
  transform:rotate(-6deg) translateX(-3px);
  transition:transform .3s cubic-bezier(.34,1.3,.64,1);
  filter:drop-shadow(2px 6px 14px rgba(0,0,0,.65));
}

/* ── CHIPS ───────────────────────────────────────────── */
.bj-chip-row{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:480px;}
.bj-chips{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;}
.bj-chip{
  width:60px;height:60px;
}
.bj-chip.disabled{opacity:.35;pointer-events:none;cursor:not-allowed;}
/* ── ACTION BUTTONS ──────────────────────────────────── */
.bj-actions{display:flex;justify-content:center;width:100%;max-width:600px;}
.bj-action-group{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;width:100%;}
.hidden{display:none!important;}
.bj-btn{
  padding:14px 28px;border:none;border-radius:12px;
  font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;
  transition:transform .15s,box-shadow .15s,opacity .15s;
  letter-spacing:1px;text-transform:uppercase;position:relative;overflow:hidden;
}
.bj-btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important;}
.bj-btn.primary{background:linear-gradient(135deg,var(--gold-light),var(--gold),var(--gold-dark));color:#0a0800;box-shadow:0 4px 20px rgba(201,162,39,.4),inset 0 1px 0 rgba(255,255,255,.25);}
.bj-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px rgba(201,162,39,.6);}
.bj-btn.secondary{background:rgba(255,255,255,.08);color:var(--text);border:1px solid rgba(255,255,255,.1);}
.bj-btn.secondary:hover:not(:disabled){background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.2);transform:translateY(-1px);}
.bj-deal-btn{min-width:120px;font-size:17px;background:linear-gradient(135deg,#40c070,#248040);color:#fff;box-shadow:0 4px 20px rgba(40,200,80,.35);}
.bj-deal-btn:hover:not(:disabled){box-shadow:0 8px 28px rgba(40,200,80,.55);transform:translateY(-2px);}

/* ── STATS BAR ───────────────────────────────────────── */
.bj-stats-bar{
  display:flex;gap:6px;flex-wrap:wrap;justify-content:center;
  width:100%;max-width:640px;
  background:rgba(255,255,255,.025);border:1px solid var(--border-s);
  border-radius:14px;padding:12px 16px;
}
.bj-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 12px;border-right:1px solid rgba(255,255,255,.06);}
.bj-stat:last-child{border-right:none;}
.bj-st-l{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);}
.bj-stat span:last-child{font-size:15px;font-weight:800;}
.green{color:var(--green);}
.red{color:var(--red);}
.gold{color:var(--gold-bright);}

/* ── RESPONSIVE ──────────────────────────────────────── */
@media(max-width:600px){
  .bj-nav-brand,.bj-lobby-btn{display:none;}
  .bj-card{width:54px;height:74px;}
  .bj-btn{padding:12px 18px;font-size:13px;}
  .bj-chip{width:52px;height:52px;font-size:11px;}
  .bj-table{padding:16px 12px;}
  .bj-split-section{gap:10px;}
  .bj-split-hand{min-width:120px;padding:8px 10px;}
}
