/* casino-ui.css (1.11.4.0)
   The casino tables in the language of the v1.11.0.0 chrome pass.

   That pass took the header from nine ad-hoc border/text pairs to three roles
   built from theme tokens, and took the tabs off dashed outlines (the web's
   sign for "provisional or disabled"). The betting tables never got it: each
   carried its own copy of an older kit - warm-brown radial felts, a dark gold
   #5a4a10 border on every button, hover to #2a2200, hardcoded greens, and a
   different red and gold per game. Five games, five copies, drifting.

   One sheet now, loaded after every table's own styles and scoped under
   #casinoTab, so it wins on order and specificity without touching any game's
   logic or markup. Tokens only, so the jade and red skins carry the casino too.

   ROLES, the same three the header uses plus the one a table needs:
     neutral  everything else: chips, Hit, Check, Add Bet
     cta      the one action that starts a round: Spin, Deal, Roll
     money    commits the stack: Max, ALL-IN
     danger   gives something up: Clear, Fold
   Stand is neutral. It was painted red, but standing gives nothing up.

   RESULTS take the news feed's form: a tone-coloured left rule over a faint
   wash, not a filled box. */

/* ── Game strip: quiet at rest, underline when selected, like .tab ─────── */
#casinoTabs{gap:2px;border-bottom:1px solid var(--hr);padding-bottom:0}
#casinoTabs .subtab{border:0;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;
  padding:6px 12px;font-size:.8rem;color:var(--amber);opacity:.62;box-shadow:none;background:transparent;
  margin-bottom:-1px;transition:opacity .12s,background .12s,border-color .12s}
#casinoTabs .subtab:hover{opacity:.9;background:rgba(240,180,84,.07)}
#casinoTabs .subtab.active{opacity:1;border-bottom-color:var(--amber);background:rgba(240,180,84,.10);box-shadow:var(--tab-glow)}

/* ── Wrappers and titles ─────────────────────────────────────────────── */
#casinoTab #rl-wrap,#casinoTab #bj-wrap,#casinoTab #poker-wrap,#casinoTab #bac-wrap,#casinoTab #sic-wrap{
  font-family:inherit;color:var(--pale);padding:6px 2px}
#casinoTab #bj-wrap h3,#casinoTab #poker-wrap h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--green);font-weight:600;margin:0 0 10px;text-shadow:var(--text-glow)}

/* ── Table surfaces: one felt for every game ─────────────────────────── */
#casinoTab #rl-table,#casinoTab .bj-table,#casinoTab .pk-table,#casinoTab #bac-felt,#casinoTab #sic-felt{
  background:linear-gradient(180deg,rgba(66,255,126,.045),rgba(66,255,126,0) 70%),var(--surface);
  border:1px solid var(--hr);border-radius:8px;box-shadow:var(--panel-shadow)}
#casinoTab #bj-shuffle-overlay{border-radius:8px}
#casinoTab .bj-divider{border-top:1px solid var(--hr)}

/* ── Section labels ──────────────────────────────────────────────────── */
#casinoTab .rl-label,#casinoTab .bj-label,#casinoTab .pk-label,#casinoTab .bj-shoe-title,
#casinoTab .bac-hand h4,#casinoTab .sic-sec > .sic-lbl{
  font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.62;font-weight:400}
#casinoTab .bac-hand.win h4{color:var(--green);opacity:1}
#casinoTab .bac-vs{color:var(--muted);opacity:.35}

/* ── Stat strip: balance, stake, pot as quiet chips ──────────────────── */
#casinoTab .rl-info-row,#casinoTab .bj-info,#casinoTab .pk-info,#casinoTab .bac-info,#casinoTab .sic-info{
  gap:6px;font-size:.78rem;margin-bottom:10px}
#casinoTab .rl-info-row > span,#casinoTab .bj-info > span,#casinoTab .pk-info > span,
#casinoTab .bac-info > span,#casinoTab .sic-info > span{
  color:var(--muted);border:1px solid var(--hr);border-radius:5px;padding:3px 10px;background:var(--surface)}
#casinoTab .rl-info-row > span:empty,#casinoTab .pk-info > span:empty{display:none}
#casinoTab .rl-info-row strong,#casinoTab .bj-info strong,#casinoTab .pk-info strong,
#casinoTab .bac-info strong,#casinoTab .sic-info strong{color:var(--pale);font-variant-numeric:tabular-nums}
#casinoTab #pk-street-info{color:var(--green)!important;opacity:1!important}
#casinoTab .bj-total,#casinoTab .bac-total,#casinoTab #sic-total strong{color:var(--pale);font-variant-numeric:tabular-nums}
#casinoTab #sic-total{color:var(--muted)}

/* ── Inputs ──────────────────────────────────────────────────────────── */
#casinoTab #betAmount,#casinoTab #straightNum,#casinoTab #betType,#casinoTab #bj-bet-input,
#casinoTab #pk-bet-input,#casinoTab #bac-chip,#casinoTab #sic-chip{
  background:var(--input-bg);border:1px solid var(--panel-edge);color:var(--pale);border-radius:5px;
  padding:5px 9px;font-family:inherit;font-size:.82rem;font-variant-numeric:tabular-nums;outline:none;
  transition:border-color .12s}
#casinoTab #betAmount:focus,#casinoTab #straightNum:focus,#casinoTab #betType:focus,#casinoTab #bj-bet-input:focus,
#casinoTab #pk-bet-input:focus,#casinoTab #bac-chip:focus,#casinoTab #sic-chip:focus{border-color:var(--green)}

/* ── Buttons: neutral role (every table button starts here) ──────────── */
#casinoTab .rl-chips button,#casinoTab #rl-action-row button,
#casinoTab .bj-chips button,#casinoTab .bj-actions button,
#casinoTab .pk-chips button,#casinoTab .pk-actions button,
#casinoTab .bac-chips button,#casinoTab .bac-actions button,
#casinoTab .sic-chips button,#casinoTab .sic-actions button{
  background:transparent!important;border:1px solid var(--panel-edge)!important;color:var(--muted)!important;
  border-radius:5px;font-family:inherit;font-weight:400;cursor:pointer;
  transition:color .12s,border-color .12s,background .12s}
#casinoTab .rl-chips button:hover:not(:disabled),#casinoTab #rl-action-row button:hover:not(:disabled),
#casinoTab .bj-chips button:hover:not(:disabled),#casinoTab .bj-actions button:hover:not(:disabled),
#casinoTab .pk-chips button:hover:not(:disabled),#casinoTab .pk-actions button:hover:not(:disabled),
#casinoTab .bac-chips button:hover:not(:disabled),#casinoTab .bac-actions button:hover:not(:disabled),
#casinoTab .sic-chips button:hover:not(:disabled),#casinoTab .sic-actions button:hover:not(:disabled){
  color:var(--green)!important;border-color:var(--green)!important;background:rgba(255,255,255,.04)!important}
/* quick-amount chips are the small ones */
#casinoTab .rl-chips button,#casinoTab .bj-chips button,#casinoTab .pk-chips button,
#casinoTab .bac-chips button,#casinoTab .sic-chips button{padding:3px 9px;font-size:.74rem}
/* round actions are the full-size ones */
#casinoTab #rl-action-row button,#casinoTab .bj-actions button,#casinoTab .pk-actions button,
#casinoTab .bac-actions button,#casinoTab .sic-actions button{padding:6px 16px;font-size:.82rem}
/* disabled reads as unavailable, not as a dim version of the same thing */
#casinoTab .bj-actions button:disabled,#casinoTab .pk-actions button:disabled,
#casinoTab #rl-action-row button:disabled,#casinoTab .bac-actions button:disabled,#casinoTab .sic-actions button:disabled{
  opacity:.28;cursor:not-allowed;border-style:solid}

/* cta: starts a round */
#casinoTab #casinoContent #rl-spin-btn,#casinoTab #casinoContent #bj-btn-deal,#casinoTab #casinoContent #pk-btn-deal,#casinoTab #casinoContent #bac-deal,#casinoTab #casinoContent #sic-roll{
  border-color:var(--green)!important;color:var(--green)!important;font-weight:600}
#casinoTab #casinoContent #rl-spin-btn:hover:not(:disabled),#casinoTab #casinoContent #bj-btn-deal:hover:not(:disabled),#casinoTab #casinoContent #pk-btn-deal:hover:not(:disabled),
#casinoTab #casinoContent #bac-deal:hover:not(:disabled),#casinoTab #casinoContent #sic-roll:hover:not(:disabled){background:var(--dim)!important}

/* money: commits the stack */
#casinoTab .rl-chips button[onclick^="rlSetMax"],#casinoTab .bj-chips button[onclick^="bjMaxBet"],
#casinoTab .pk-chips button[onclick^="pkAllin"],#casinoTab .bac-chips button[data-c="max"],#casinoTab .sic-chips button[data-c="max"]{
  border-color:var(--gold)!important;color:var(--gold)!important}
#casinoTab .rl-chips button[onclick^="rlSetMax"]:hover,#casinoTab .bj-chips button[onclick^="bjMaxBet"]:hover,
#casinoTab .pk-chips button[onclick^="pkAllin"]:hover,#casinoTab .bac-chips button[data-c="max"]:hover,
#casinoTab .sic-chips button[data-c="max"]:hover{
  border-color:var(--gold)!important;color:var(--gold)!important;background:rgba(255,206,77,.10)!important}

/* danger: gives something up */
#casinoTab #casinoContent #rl-clear-btn,#casinoTab #casinoContent #pk-btn-fold,#casinoTab #casinoContent #bac-clear,#casinoTab #casinoContent #sic-clear{
  border-color:rgba(255,106,106,.45)!important;color:var(--bad)!important}
#casinoTab #casinoContent #rl-clear-btn:hover:not(:disabled),#casinoTab #casinoContent #pk-btn-fold:hover:not(:disabled),
#casinoTab #casinoContent #bac-clear:hover:not(:disabled),#casinoTab #casinoContent #sic-clear:hover:not(:disabled){
  border-color:var(--bad)!important;color:var(--bad)!important;background:rgba(255,106,106,.08)!important}

/* Stand was red; it is not a loss. Neutral like Hit and Double. */
#casinoTab #casinoContent #bj-btn-stand{border-color:var(--panel-edge)!important;color:var(--muted)!important}
#casinoTab #casinoContent #bj-btn-stand:hover:not(:disabled){border-color:var(--green)!important;color:var(--green)!important}

/* ── Bet spots (baccarat, sic bo) ────────────────────────────────────── */
#casinoTab .bac-spot,#casinoTab .sic-cell{background:var(--surface-2);border:1px solid var(--hr);border-radius:6px;
  transition:border-color .12s,background .12s}
#casinoTab .bac-spot:hover,#casinoTab .sic-cell:hover{border-color:var(--panel-edge);background:rgba(66,255,126,.05)}
#casinoTab .bac-spot .bs-lbl,#casinoTab .sic-cell .sc-lbl{color:var(--pale)}
#casinoTab .bac-spot .bs-odds,#casinoTab .sic-cell .sc-odds{color:var(--muted);opacity:.55}
#casinoTab .bac-spot .bs-amt,#casinoTab .sic-cell .sc-amt{color:var(--gold);font-variant-numeric:tabular-nums}
/* a spot holding chips is a money state */
#casinoTab .bac-spot.has,#casinoTab .sic-cell.has{border-color:var(--gold);background:rgba(255,206,77,.06)}
#casinoTab .sic-cell.hit{border-color:var(--green);box-shadow:0 0 8px rgba(66,255,126,.35)}
#casinoTab .sic-die{background:var(--input-bg);border:1px solid var(--panel-edge);color:var(--green)}

/* ── Roulette bet slip and number grid ───────────────────────────────── */
#casinoTab .rl-bet-item{background:var(--surface-2);border:1px solid var(--hr);border-radius:5px}
#casinoTab .rl-bet-item .rl-bi-label{color:var(--pale)}
#casinoTab .rl-bet-item .rl-bi-amt{color:var(--gold);font-variant-numeric:tabular-nums}
#casinoTab .rl-bet-item .rl-bi-del{color:var(--muted);opacity:.55}
#casinoTab .rl-bet-item .rl-bi-del:hover{color:var(--bad);opacity:1}
#casinoTab .rl-num-cell{border:1px solid var(--hr);border-radius:4px}
#casinoTab .rl-num-cell.selected-num{outline:2px solid var(--green);outline-offset:1px}
#casinoTab #lastResult{color:var(--muted)}

/* ── Blackjack shoe ──────────────────────────────────────────────────── */
#casinoTab #bj-shoe-bar-wrap{border:1px solid var(--hr);border-radius:6px;background:var(--surface)}
#casinoTab #bj-shoe-bar-wrap .bj-shoe-stat{color:var(--pale);font-weight:400;font-variant-numeric:tabular-nums;font-size:.78rem}
#casinoTab #bj-shoe-track{height:5px;background:var(--input-bg);border:1px solid var(--hr);border-radius:3px}
#casinoTab #bj-shoe-fill{background:var(--green);border-radius:3px}
#casinoTab #bj-shoe-fill.warn{background:var(--amber)}
#casinoTab #bj-shoe-fill.hot{background:var(--bad)}

/* ── Poker seats ─────────────────────────────────────────────────────── */
#casinoTab .pk-seat{background:var(--surface-2);border:1px solid var(--hr);border-radius:6px}
#casinoTab .pk-seat .seat-name{color:var(--muted);letter-spacing:.08em}
#casinoTab .pk-seat .seat-stack{color:var(--pale);font-variant-numeric:tabular-nums}
#casinoTab .pk-seat .seat-bet{color:var(--gold)}
#casinoTab .pk-seat .seat-status{color:var(--muted);opacity:.8}
/* .active on a seat means still in the hand, not acting: most seats carry it
   most of the time, so it is the quiet default, a step up from folded. */
#casinoTab .pk-seat.active{border-color:var(--panel-edge)}
#casinoTab .pk-seat.winner{border-color:var(--gold);background:rgba(255,206,77,.06)}

/* ── Results: tone rule over a faint wash (the news feed's form) ─────── */
#casinoTab #rl-result-banner,#casinoTab .bj-result,#casinoTab .pk-result,#casinoTab #bac-banner,#casinoTab #sic-banner{
  border:0!important;border-left:3px solid var(--muted)!important;border-radius:0 5px 5px 0;
  background:rgba(255,255,255,.03)!important;color:var(--pale)!important;text-align:left;
  padding:8px 12px;font-size:.88rem;letter-spacing:.02em}
#casinoTab #rl-result-banner.win,#casinoTab .bj-result.win,#casinoTab .pk-result.win,#casinoTab #bac-banner.win,#casinoTab #sic-banner.win{
  border-left-color:var(--green)!important;background:rgba(66,255,126,.07)!important;color:var(--good)!important}
#casinoTab #rl-result-banner.lose,#casinoTab .bj-result.lose,#casinoTab .pk-result.lose,#casinoTab #bac-banner.lose,#casinoTab #sic-banner.lose{
  border-left-color:var(--bad)!important;background:rgba(255,106,106,.07)!important;color:var(--bad)!important}
#casinoTab #rl-result-banner.neutral,#casinoTab .bj-result.push,#casinoTab .pk-result.push,#casinoTab #bac-banner.push{
  border-left-color:var(--amber)!important;background:rgba(240,180,84,.07)!important;color:var(--amber)!important}
#casinoTab .bj-result.bj{border-left-color:var(--gold)!important;background:rgba(255,206,77,.08)!important;color:var(--gold)!important}

/* ── Logs and fine print ─────────────────────────────────────────────── */
#casinoTab #rl-log,#casinoTab #bj-log,#casinoTab #pk-log,#casinoTab #bac-log,#casinoTab #sic-log{
  color:var(--muted);opacity:.7;font-size:.7rem}
#casinoTab #rl-log div,#casinoTab #bj-log div,#casinoTab #pk-log div,#casinoTab #bac-log div,#casinoTab #sic-log div{
  border-bottom:1px solid var(--hr)}

/* ── Racecourse (1.11.5.0) ────────────────────────────────────────────── */
#casinoTab #hr-wrap{color:var(--pale);padding:6px 2px;font-size:.8rem}
#casinoTab #hr-wrap .hr-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
#casinoTab #hr-wrap h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:600;margin:0 auto 0 0;text-shadow:var(--text-glow)}
#casinoTab .hr-chip{color:var(--muted);border:1px solid var(--hr);border-radius:5px;padding:3px 10px;background:var(--surface);font-variant-numeric:tabular-nums}
#casinoTab .hr-chip:empty{display:none}
#casinoTab .hr-trackwrap{position:relative;border:1px solid var(--hr);border-radius:8px;overflow:hidden;box-shadow:var(--panel-shadow);margin-bottom:8px}
#casinoTab #hr-track{display:block;width:100%;height:340px;image-rendering:pixelated}
#casinoTab #hr-banner{position:absolute;left:0;right:0;bottom:0;padding:7px 12px;font-size:.78rem;color:var(--pale);
  background:linear-gradient(transparent,rgba(0,0,0,.85));display:none}
#casinoTab #hr-banner b{color:var(--green);letter-spacing:.08em;margin-right:8px}
#casinoTab #hr-banner .hr-post{float:right;color:var(--amber)}
#casinoTab #hr-banner .hr-pl{margin-right:14px}
#casinoTab .hr-racetabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
#casinoTab .hr-rtab{background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:5px;padding:4px 12px;
  font-family:inherit;font-size:.76rem;cursor:pointer}
#casinoTab .hr-rtab span{opacity:.6;margin-left:4px}
#casinoTab .hr-rtab:hover{color:var(--green);border-color:var(--green)}
#casinoTab .hr-rtab.on{color:var(--green);border-color:var(--green);background:var(--dim)}
#casinoTab .hr-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px;margin-bottom:10px}
@media(max-width:900px){#casinoTab .hr-main{grid-template-columns:minmax(0,1fr)}}
#casinoTab .hr-left,#casinoTab .hr-right > div,#casinoTab .hr-box{background:var(--surface);border:1px solid var(--hr);border-radius:8px;padding:10px 12px}
#casinoTab #hr-racehead{margin-bottom:6px}
#casinoTab .hr-rt{color:var(--green);letter-spacing:.08em}
#casinoTab .hr-dim{color:var(--muted);opacity:.62;font-size:.72rem}
#casinoTab .hr-lbl{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.62;margin:2px 0 6px}
#casinoTab .hr-table{width:100%;border-collapse:collapse}
#casinoTab .hr-table th{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.55;font-weight:400;text-align:left;padding:3px 4px}
#casinoTab .hr-table td{padding:3px 4px;border-top:1px solid var(--hr);vertical-align:middle}
#casinoTab .hr-num{text-align:right;font-variant-numeric:tabular-nums}
#casinoTab .hr-odds{color:var(--gold)}
#casinoTab .hr-fig{font-variant-numeric:tabular-nums;letter-spacing:.12em;color:var(--pale)}
#casinoTab tr.hr-run.pickable{cursor:pointer}
#casinoTab tr.hr-run.pickable:hover td{background:rgba(66,255,126,.04)}
#casinoTab tr.hr-run.picked td{background:rgba(255,206,77,.07)}
#casinoTab .hr-pick{color:var(--gold);font-weight:600;width:18px;text-align:center}
#casinoTab .hr-name{cursor:pointer;border-bottom:1px dotted var(--panel-edge)}
#casinoTab .hr-name:hover{color:var(--green)}
#casinoTab .hr-thumb{display:block;image-rendering:pixelated}
#casinoTab .hr-formrow td{background:var(--surface-2)}
#casinoTab .hr-form{border-collapse:collapse;font-size:.72rem;width:100%}
#casinoTab .hr-form th{font-weight:400;color:var(--muted);opacity:.55;text-align:left;padding:2px 6px}
#casinoTab .hr-form td{padding:2px 6px;border-top:1px solid var(--hr)}
#casinoTab .hr-cloth{display:inline-block;min-width:16px;height:14px;line-height:14px;text-align:center;font-style:normal;font-size:.66rem;font-weight:700;border-radius:2px}
#casinoTab .hr-cloth.c1{background:#d23b3b;color:#fff}#casinoTab .hr-cloth.c2{background:#f2f2f2;color:#111}
#casinoTab .hr-cloth.c3{background:#2f6fd6;color:#fff}#casinoTab .hr-cloth.c4{background:#f2d23b;color:#111}
#casinoTab .hr-cloth.c5{background:#2fa04a;color:#fff}#casinoTab .hr-cloth.c6{background:#1a1a1a;color:#f2d23b;border:1px solid #555}
#casinoTab .hr-cloth.c7{background:#f28a2f;color:#111}#casinoTab .hr-cloth.c8{background:#f07ab8;color:#111}
#casinoTab .hr-pools{display:flex;flex-wrap:wrap;gap:6px}
#casinoTab .hr-pools span{border:1px solid var(--hr);border-radius:5px;padding:3px 8px;font-variant-numeric:tabular-nums;color:var(--gold)}
#casinoTab .hr-pools em{font-style:normal;color:var(--muted);margin-right:6px}
#casinoTab #hr-tote{margin-top:10px}
#casinoTab .hr-types{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
#casinoTab .hr-type,#casinoTab .hr-chips button{background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:5px;
  padding:3px 8px;font-family:inherit;font-size:.72rem;cursor:pointer}
#casinoTab .hr-type:hover:not(:disabled),#casinoTab .hr-chips button:hover{color:var(--green);border-color:var(--green)}
#casinoTab .hr-type.on{color:var(--green);border-color:var(--green);background:var(--dim)}
#casinoTab .hr-type:disabled{opacity:.28;cursor:not-allowed}
#casinoTab .hr-chips button.hr-clr{border-color:rgba(255,106,106,.45);color:var(--bad)}
#casinoTab .hr-help{color:var(--muted);opacity:.75;font-size:.72rem;margin-bottom:6px;min-height:2.4em}
#casinoTab .hr-boxopt{display:block;font-size:.74rem;color:var(--muted);margin-bottom:6px;cursor:pointer}
#casinoTab .hr-picks{min-height:22px;margin-bottom:6px}
#casinoTab .hr-dd{margin-bottom:6px}
#casinoTab .hr-dd select,#casinoTab #hr-stake{background:var(--input-bg);border:1px solid var(--panel-edge);color:var(--pale);border-radius:5px;
  padding:4px 8px;font-family:inherit;font-size:.78rem;font-variant-numeric:tabular-nums;outline:none}
#casinoTab #hr-stake{width:110px;margin-left:8px}
#casinoTab #hr-stake:focus{border-color:var(--green)}
#casinoTab .hr-stakerow{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
#casinoTab .hr-chips{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
#casinoTab .hr-sum{display:flex;justify-content:space-between;color:var(--muted);font-size:.74rem;margin-bottom:6px}
#casinoTab .hr-sum b{color:var(--gold);font-weight:600}
#casinoTab .hr-pays{border-left:3px solid var(--gold);background:rgba(255,206,77,.06);padding:6px 8px;border-radius:0 5px 5px 0;margin-bottom:8px;min-height:1.2em;color:var(--pale);font-size:.76rem}
#casinoTab .hr-pays:empty{display:none}
#casinoTab .hr-cta{width:100%;background:transparent;border:1px solid var(--green);color:var(--green);font-weight:600;border-radius:5px;
  padding:7px 12px;font-family:inherit;font-size:.82rem;cursor:pointer}
#casinoTab .hr-cta:hover:not(:disabled){background:var(--dim)}
#casinoTab .hr-cta:disabled{opacity:.28;cursor:not-allowed}
#casinoTab .hr-err{color:var(--bad);font-size:.74rem;margin-top:6px}
#casinoTab .hr-lower{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
@media(max-width:900px){#casinoTab .hr-lower{grid-template-columns:minmax(0,1fr)}}
#casinoTab .hr-tk td{font-size:.74rem}
#casinoTab .hr-tk tr.ts-won td{color:var(--good)}
#casinoTab .hr-tk tr.ts-lost td{color:var(--muted);opacity:.6}
#casinoTab .hr-tk tr.ts-refunded td{color:var(--amber)}
#casinoTab .hr-res{border-top:1px solid var(--hr);padding:6px 0}
#casinoTab .hr-res:first-child{border-top:0;padding-top:0}
#casinoTab .hr-resorder{margin:4px 0;line-height:1.6}
#casinoTab .hr-respay{color:var(--gold);font-size:.72rem;font-variant-numeric:tabular-nums}
#casinoTab .hr-fine{color:var(--muted);opacity:.5;font-size:.68rem;line-height:1.5}
#casinoTab .hr-credit{white-space:nowrap}

/* ── Ringside (1.11.6.0) ──────────────────────────────────────────────── */
#casinoTab #bx-wrap{color:var(--pale);padding:6px 2px;font-size:.8rem}
#casinoTab #bx-wrap .bx-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
#casinoTab #bx-wrap h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:600;margin:0 auto 0 0;text-shadow:var(--text-glow)}
#casinoTab .bx-chip{color:var(--muted);border:1px solid var(--hr);border-radius:5px;padding:3px 10px;background:var(--surface);font-variant-numeric:tabular-nums}
#casinoTab .bx-chip:empty{display:none}
#casinoTab .bx-ringwrap{position:relative;border:1px solid var(--hr);border-radius:8px;overflow:hidden;box-shadow:var(--panel-shadow);margin-bottom:8px}
#casinoTab #bx-ring{display:block;width:100%;height:360px;image-rendering:pixelated}
#casinoTab #bx-banner{position:absolute;left:0;right:0;bottom:0;padding:7px 12px;font-size:.78rem;color:var(--pale);background:linear-gradient(transparent,rgba(0,0,0,.85));display:none}
#casinoTab #bx-banner b{color:var(--green);letter-spacing:.08em;margin-right:8px}
#casinoTab #bx-banner .bx-post{float:right;color:var(--amber)}
#casinoTab .bx-vs{color:var(--muted);opacity:.6;margin:0 4px}
#casinoTab .bx-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
#casinoTab .bx-tab{background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:5px;padding:4px 12px;font-family:inherit;font-size:.76rem;cursor:pointer}
#casinoTab .bx-tab span{opacity:.6;margin-left:4px}
#casinoTab .bx-tab:hover{color:var(--green);border-color:var(--green)}
#casinoTab .bx-tab.on{color:var(--green);border-color:var(--green);background:var(--dim)}
#casinoTab .bx-main{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:10px;margin-bottom:10px}
@media(max-width:900px){#casinoTab .bx-main{grid-template-columns:minmax(0,1fr)}}
#casinoTab .bx-left,#casinoTab .bx-right > div,#casinoTab .bx-box{background:var(--surface);border:1px solid var(--hr);border-radius:8px;padding:10px 12px}
#casinoTab .bx-dim{color:var(--muted);opacity:.62;font-size:.72rem}
#casinoTab .bx-lbl{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.62;margin:2px 0 6px}
#casinoTab .bx-bh{margin-bottom:8px}
#casinoTab .bx-bt{color:var(--green);letter-spacing:.08em}
#casinoTab .bx-tapegrid{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:10px}
#casinoTab .bx-corner{display:flex;gap:8px;align-items:center;padding:8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--hr)}
#casinoTab .bx-corner.c0{border-left:3px solid #d23b3b}
#casinoTab .bx-corner.c1{border-right:3px solid #2f6fd6;flex-direction:row-reverse;text-align:right}
#casinoTab .bx-thumb{display:block;image-rendering:pixelated}
#casinoTab .bx-name{font-weight:600;cursor:pointer;border-bottom:1px dotted var(--panel-edge);display:inline-block}
#casinoTab .bx-name:hover{color:var(--green)}
#casinoTab .bx-nick{color:var(--amber);font-size:.72rem}
#casinoTab .bx-ml{margin-top:3px;color:var(--muted);font-size:.74rem}
#casinoTab .bx-ml b{color:var(--gold)}
#casinoTab .bx-vsbig{color:var(--muted);opacity:.5;letter-spacing:.2em;font-size:.8rem}
#casinoTab .bx-market{border-top:1px solid var(--hr);padding:8px 0}
#casinoTab .bx-market.off{opacity:.55}
#casinoTab .bx-mh{margin-bottom:5px}
#casinoTab .bx-mt{color:var(--pale);font-weight:600;letter-spacing:.04em}
#casinoTab .bx-mt.on{color:var(--gold)}
#casinoTab .bx-outs{display:flex;flex-wrap:wrap;gap:4px}
#casinoTab .m-round .bx-outs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
#casinoTab .m-round .bx-out:last-child{grid-column:1 / -1}
#casinoTab .m-dbl .bx-outs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
#casinoTab .bx-out{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;flex:1;background:transparent;border:1px solid var(--panel-edge);
  color:var(--muted);border-radius:5px;padding:4px 6px;font-family:inherit;font-size:.72rem;cursor:pointer}
#casinoTab .bx-out b{color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
#casinoTab .bx-out:hover{color:var(--green);border-color:var(--green)}
#casinoTab .bx-out.sR{border-left:2px solid rgba(210,59,59,.7)}
#casinoTab .bx-out.sB{border-left:2px solid rgba(47,111,214,.8)}
#casinoTab .bx-out.on{border-color:var(--gold);background:rgba(255,206,77,.08);color:var(--pale)}
#casinoTab .bx-poolrow{display:flex;flex-wrap:wrap;gap:6px}
#casinoTab .bx-poolrow span{border:1px solid var(--hr);border-radius:5px;padding:3px 8px;font-variant-numeric:tabular-nums;color:var(--gold)}
#casinoTab .bx-poolrow em{font-style:normal;color:var(--muted);margin-right:6px}
#casinoTab #bx-pools{margin-top:8px}
#casinoTab .bx-slipmk{color:var(--gold);font-weight:600;margin-bottom:4px}
#casinoTab .bx-picks{min-height:22px;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:4px}
#casinoTab .bx-pick{border:1px solid var(--gold);border-radius:4px;padding:1px 6px;font-size:.72rem;color:var(--pale)}
#casinoTab .bx-stakerow{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
#casinoTab #bx-stake{width:110px;background:var(--input-bg);border:1px solid var(--panel-edge);color:var(--pale);border-radius:5px;padding:4px 8px;font-family:inherit;font-size:.78rem;outline:none}
#casinoTab #bx-stake:focus{border-color:var(--green)}
#casinoTab .bx-chips{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}
#casinoTab .bx-chips button{background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:5px;padding:3px 8px;font-family:inherit;font-size:.72rem;cursor:pointer}
#casinoTab .bx-chips button:hover{color:var(--green);border-color:var(--green)}
#casinoTab .bx-chips button.bx-clr{border-color:rgba(255,106,106,.45);color:var(--bad)}
#casinoTab .bx-sum{display:flex;justify-content:space-between;color:var(--muted);font-size:.74rem;margin-bottom:6px}
#casinoTab .bx-sum b{color:var(--gold);font-weight:600}
#casinoTab .bx-pays{border-left:3px solid var(--gold);background:rgba(255,206,77,.06);padding:6px 8px;border-radius:0 5px 5px 0;margin-bottom:8px;color:var(--pale);font-size:.76rem}
#casinoTab .bx-pays:empty{display:none}
#casinoTab .bx-cta{width:100%;background:transparent;border:1px solid var(--green);color:var(--green);font-weight:600;border-radius:5px;padding:7px 12px;font-family:inherit;font-size:.82rem;cursor:pointer}
#casinoTab .bx-cta:hover:not(:disabled){background:var(--dim)}
#casinoTab .bx-cta:disabled{opacity:.28;cursor:not-allowed}
#casinoTab .bx-err{color:var(--bad);font-size:.74rem;margin-top:6px}
#casinoTab .bx-lower{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:8px}
@media(max-width:1100px){#casinoTab .bx-lower{grid-template-columns:minmax(0,1fr)}}
#casinoTab .bx-table{width:100%;border-collapse:collapse}
#casinoTab .bx-table th{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.55;font-weight:400;text-align:left;padding:3px 4px}
#casinoTab .bx-table td{padding:3px 4px;border-top:1px solid var(--hr);font-size:.74rem}
#casinoTab .bx-num{text-align:right;font-variant-numeric:tabular-nums}
#casinoTab .bx-table tr.rW td:first-child{color:var(--good)}
#casinoTab .bx-table tr.rL td:first-child{color:var(--bad)}
#casinoTab .bx-tk tr.ts-won td{color:var(--good)}
#casinoTab .bx-tk tr.ts-lost td{color:var(--muted);opacity:.6}
#casinoTab .bx-tk tr.ts-refunded td{color:var(--amber)}
#casinoTab .bx-res{border-top:1px solid var(--hr);padding:6px 0}
#casinoTab .bx-res:first-child{border-top:0;padding-top:0}
#casinoTab .bx-resw{margin:3px 0;color:var(--pale)}
#casinoTab .bx-respay{color:var(--gold);font-size:.72rem;font-variant-numeric:tabular-nums}
#casinoTab #bx-hist{margin-top:6px;border-top:1px solid var(--hr);padding-top:6px}
#casinoTab .bx-fine{color:var(--muted);opacity:.5;font-size:.68rem;line-height:1.5}
#casinoTab .bx-credit{white-space:nowrap}

/* ── Racecourse and Ringside on a phone (1.11.9.1) ────────────────────────
   On a real iPhone the racecourse ran off the right edge: a grid column of 1fr
   still grows to its content's minimum width, and the runners table (name,
   form, two odds columns, a thumbnail) is wider than a phone. Columns are
   minmax(0,1fr) above; here the pane is held to the screen, the field table
   drops the thumbnail and the morning line on narrow screens (live odds stay),
   and anything still too wide scrolls inside its own box, never the page. */
#casinoTab #hr-wrap,#casinoTab #bx-wrap{min-width:0;max-width:100%;overflow-x:hidden}
#casinoTab .hr-left,#casinoTab .hr-right,#casinoTab .bx-left,#casinoTab .bx-right{min-width:0}
#casinoTab #hr-field,#casinoTab #bx-markets{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:600px){
  #casinoTab .hr-left,#casinoTab .hr-right > div,#casinoTab .hr-box,
  #casinoTab .bx-left,#casinoTab .bx-right > div,#casinoTab .bx-box{padding:8px}
  #casinoTab .hr-table td:nth-child(2),#casinoTab .hr-table th:nth-child(2){display:none}
  #casinoTab .hr-table td:nth-child(5),#casinoTab .hr-table th:nth-child(5){display:none}
  #casinoTab .hr-table td,#casinoTab .hr-table th{padding:4px 3px}
  #casinoTab .hr-name{font-size:.8rem}
  #casinoTab .hr-fig{letter-spacing:.04em;font-size:.72rem}
  #casinoTab .hr-rtab,#casinoTab .bx-tab{padding:4px 8px;font-size:.7rem}
  #casinoTab #hr-racehead,#casinoTab .bx-bh{font-size:.76rem;line-height:1.5}
  #casinoTab #hr-banner,#casinoTab #bx-banner{font-size:.7rem;padding:5px 8px}
  #casinoTab #hr-banner .hr-post,#casinoTab #bx-banner .bx-post{float:none;display:block}
  #casinoTab .hr-types{gap:3px}
  #casinoTab .hr-type{padding:3px 6px;font-size:.68rem}
  #casinoTab .hr-tk td,#casinoTab .bx-table td{font-size:.68rem}
  #casinoTab .hr-credit,#casinoTab .bx-credit{white-space:normal}
}

/* ── Bingo hall (1.11.9.27) ───────────────────────────────────────────────
   A paper hall on the casino felt. The frame, tabs and text around the paper
   take theme tokens; the tickets, ledgers and balls are printed things and
   keep their own inks in every skin. Dauber marks are the only pink on the
   page; a winning line gets a hand-drawn green ring. */
#casinoTab #bg-wrap{--paper:#efe6cf;--ink:#2a2418;--ink-dim:#6b5d40;--rule:#b9ab8c;--dab:rgba(194,24,91,.55);--dab-fresh:rgba(214,31,105,.85);
  --win:#1f7a35;--bB:#2b6fd0;--bI:#b8252f;--bN:#d8d0bc;--bG:#2e7a3a;--bO:#d9a520;
  color:var(--pale);padding:6px 2px;font-size:.8rem;min-width:0;max-width:100%;overflow-x:hidden}
#casinoTab .bg-paper,#casinoTab .bg-ticket{background:var(--paper);background-image:linear-gradient(rgba(120,90,40,.05) 1px,transparent 1px);background-size:100% 4px;
  color:var(--ink);font-family:'IBM Plex Mono',ui-monospace,monospace;border-radius:4px;box-shadow:0 8px 18px rgba(0,0,0,.5)}
#casinoTab .bg-paper{padding:12px 14px;min-width:0}
#casinoTab .bg-plbl{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);border-bottom:2px solid var(--ink);padding-bottom:5px;margin-bottom:8px}
#casinoTab .bg-pnote{font-size:.7rem;color:var(--ink-dim);font-style:italic;margin-top:8px}
#casinoTab .bg-pdim{color:var(--ink-dim);font-size:.7rem}
#casinoTab .bg-eyebrow{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);opacity:.75}
#casinoTab .bg-dim,#casinoTab .bg-empty{color:var(--muted);opacity:.7;font-size:.74rem}

/* Caller rail */
#casinoTab .bg-rail{display:grid;grid-template-columns:150px auto minmax(0,1fr) 170px;gap:16px;align-items:center;padding:12px 16px;margin-bottom:10px;
  border-radius:12px;background:radial-gradient(ellipse at 30% 0%,var(--surface-2),var(--surface) 70%);border:1px solid var(--hr);box-shadow:var(--panel-shadow)}
#casinoTab #bg-wrap h3{font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);font-weight:600;margin:2px 0 4px;text-shadow:var(--text-glow)}
#casinoTab #bg-status{font-size:.74rem;color:var(--amber);line-height:1.45}
#casinoTab #bg-status .bg-bingo,#casinoTab .bg-bingo{color:var(--gold);letter-spacing:.06em}
#casinoTab .bg-cagebox{display:flex;align-items:flex-end;gap:0}
#casinoTab #bg-cage{width:240px;height:170px;display:block}
#casinoTab .bg-bigball{--band:#8f8772;width:104px;height:104px;border-radius:50%;flex-shrink:0;margin:0 0 20px -8px;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 34% 28%,#fffaf0 0%,#efe6cf 38%,#b9ab8c 100%);box-shadow:0 10px 22px rgba(0,0,0,.6),inset -6px -10px 18px rgba(0,0,0,.25)}
#casinoTab .bg-bbin{width:66px;height:66px;border-radius:50%;background:#fffdf6;border:5px solid var(--band);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
#casinoTab .bg-bl{font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:700;color:var(--band)}
#casinoTab .bg-bn{font-family:'IBM Plex Mono',monospace;font-size:1.7rem;font-weight:700;color:#2a2418}
#casinoTab .bg-bigball.idle{opacity:.45}
#casinoTab .bg-bigball.last{box-shadow:0 0 0 3px var(--gold),0 10px 22px rgba(0,0,0,.6)}
#casinoTab .bg-bigball.pop{animation:bgPop .42s cubic-bezier(.2,1.6,.4,1)}
@keyframes bgPop{0%{transform:translate(-26px,10px) scale(.35)}100%{transform:none}}
#casinoTab .bg-railmid{min-width:0;display:flex;flex-direction:column;gap:8px}
#casinoTab #bg-patter{color:var(--amber);font-style:italic;font-size:.76rem;min-height:1.1em}
#casinoTab .bg-recent{display:flex;gap:8px;overflow:hidden;min-height:48px;-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent);mask-image:linear-gradient(90deg,#000 80%,transparent)}
#casinoTab .bg-rb{--band:#8f8772;flex:0 0 auto;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 34% 28%,#fffaf0,#d9cfb4 70%,#9c8f70);box-shadow:0 4px 10px rgba(0,0,0,.5)}
#casinoTab .bg-rb:nth-child(n+4){opacity:.85}#casinoTab .bg-rb:nth-child(n+7){opacity:.6}
#casinoTab .bg-rb span{width:29px;height:29px;border-radius:50%;background:#fffdf6;border:3px solid var(--band);display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:700;color:#2a2418}
#casinoTab .bg-potblk{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
#casinoTab .bg-potv{font-size:1.6rem;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}
#casinoTab .bg-chip{margin-top:6px;color:var(--muted);border:1px solid var(--hr);border-radius:5px;padding:2px 8px;background:var(--surface);font-variant-numeric:tabular-nums;font-size:.72rem}
#casinoTab .bg-chip:empty{display:none}

/* Tabs */
#casinoTab .bg-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}
#casinoTab .bg-tab{background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:5px;padding:4px 12px;font-family:inherit;font-size:.76rem;cursor:pointer}
#casinoTab .bg-tab span{opacity:.6;margin-left:4px}
#casinoTab .bg-tab:hover{color:var(--green);border-color:var(--green)}
#casinoTab .bg-tab.on{color:var(--green);border-color:var(--green);background:var(--dim)}
#casinoTab .bg-tab.live{color:var(--gold);border-color:var(--gold)}

/* Tickets */
#casinoTab .bg-main{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;margin-bottom:14px}
#casinoTab .bg-left{min-width:0}
#casinoTab .bg-right{display:flex;flex-direction:column;gap:14px;min-width:0}
#casinoTab .bg-lbl{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.62;margin:2px 0 10px}
#casinoTab .bg-sheetgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
#casinoTab .bg-ticket{padding:10px 10px 8px}
#casinoTab .bg-ticket:nth-child(3n+1){transform:rotate(-.6deg)}#casinoTab .bg-ticket:nth-child(3n+2){transform:rotate(.5deg)}#casinoTab .bg-ticket:nth-child(3n){transform:rotate(-.25deg)}
#casinoTab .bg-ticket.hot{outline:3px solid var(--amber);outline-offset:3px}
#casinoTab .bg-ticket.won{outline:3px solid var(--win);outline-offset:3px}
#casinoTab .bg-ticket.lost{opacity:.55;filter:saturate(.6)}
#casinoTab .bg-thead{display:flex;justify-content:space-between;gap:6px;font-size:.58rem;letter-spacing:.1em;color:var(--ink-dim);border-bottom:1px dashed var(--rule);padding-bottom:4px;margin-bottom:6px}
#casinoTab .bg-cells{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:2px solid var(--ink);border-left:2px solid var(--ink)}
#casinoTab .bg-ch,#casinoTab .bg-c{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);text-align:center}
#casinoTab .bg-ch{font-weight:700;font-size:.82rem;padding:2px 0;color:var(--paper)}
#casinoTab .bg-ch.lB{background:var(--bB)}#casinoTab .bg-ch.lI{background:var(--bI)}#casinoTab .bg-ch.lN{background:var(--bN);color:var(--ink)}
#casinoTab .bg-ch.lG{background:var(--bG)}#casinoTab .bg-ch.lO{background:var(--bO);color:var(--ink)}
#casinoTab .bg-c{height:32px;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
#casinoTab .bg-c.d{background:radial-gradient(circle,var(--dab) 0 46%,transparent 52%)}
#casinoTab .bg-c.fresh{background:radial-gradient(circle,var(--dab-fresh) 0 44%,rgba(214,31,105,.3) 50%,transparent 58%)}
#casinoTab .bg-c.free{font-size:.56rem;letter-spacing:.04em;color:var(--ink-dim);background:radial-gradient(circle,var(--dab) 0 46%,transparent 52%)}
#casinoTab .bg-c.w{box-shadow:inset 0 0 0 3px var(--win);border-radius:50%/40%}
#casinoTab .bg-note{margin-top:6px;font-size:.72rem;font-style:italic;color:var(--ink-dim);min-height:1.2em}
#casinoTab .bg-note.hot{color:var(--bI);font-weight:700}
#casinoTab .bg-ticket.won .bg-note{color:var(--win);font-style:normal}

/* Right column: caller's board, register, buy slip */
#casinoTab .bg-flash{padding:10px 10px 8px}
#casinoTab #bg-master{display:flex;flex-direction:column;gap:2px}
#casinoTab .bg-mrow{display:grid;grid-template-columns:14px repeat(15,minmax(0,1fr));gap:1px;align-items:center}
#casinoTab .bg-ml{font-weight:700;font-size:.66rem;text-align:center;color:var(--paper);border-radius:2px}
#casinoTab .bg-ml.lB{background:var(--bB)}#casinoTab .bg-ml.lI{background:var(--bI)}#casinoTab .bg-ml.lN{background:var(--bN);color:var(--ink)}
#casinoTab .bg-ml.lG{background:var(--bG)}#casinoTab .bg-ml.lO{background:var(--bO);color:var(--ink)}
#casinoTab .bg-mn{text-align:center;font-size:.54rem;line-height:16px;color:rgba(42,36,24,.35);font-variant-numeric:tabular-nums}
#casinoTab .bg-mn.on{color:var(--ink);font-weight:700;background:radial-gradient(circle,var(--dab) 0 48%,transparent 56%)}
#casinoTab .bg-mn.cur{background:radial-gradient(circle,var(--dab-fresh) 0 50%,transparent 58%);color:#fffdf6}
#casinoTab .bg-seat{display:flex;justify-content:space-between;font-size:.76rem;padding:2px 0}
#casinoTab .bg-seat.pl{font-weight:700}
#casinoTab .bg-seat b{font-weight:600;font-variant-numeric:tabular-nums}
#casinoTab .bg-rule{border-top:1px dashed var(--rule);margin:4px 0}
#casinoTab .bg-slip{border:2px dashed var(--panel-edge);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
#casinoTab .bg-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#casinoTab .bg-counts button{min-height:40px;background:transparent;border:1px solid var(--panel-edge);color:var(--muted);border-radius:6px;font-family:inherit;font-size:.86rem;cursor:pointer}
#casinoTab .bg-counts button:hover:not(:disabled){color:var(--green);border-color:var(--green)}
#casinoTab .bg-counts button.on{color:var(--gold);border-color:var(--gold);background:rgba(255,206,77,.08)}
#casinoTab .bg-counts button:disabled{opacity:.28;cursor:not-allowed}
#casinoTab .bg-sum{display:flex;justify-content:space-between;color:var(--muted);font-size:.74rem}
#casinoTab .bg-sum b{color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
#casinoTab .bg-cta{min-height:44px;width:100%;background:var(--green);border:0;color:var(--bg);font-weight:700;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:.86rem;cursor:pointer}
#casinoTab .bg-cta:hover:not(:disabled){filter:brightness(1.1)}
#casinoTab .bg-cta:disabled{opacity:.3;cursor:not-allowed}
#casinoTab .bg-err{color:var(--bad);font-size:.74rem}

/* Ledgers */
#casinoTab .bg-lower{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:10px}
#casinoTab .bg-res{border-top:1px dashed var(--rule);padding:6px 0;font-size:.76rem}
#casinoTab .bg-res:first-child{border-top:0;padding-top:0}
#casinoTab .bg-resw{margin:2px 0}
#casinoTab .bg-ai{color:var(--ink-dim)}
#casinoTab #bg-status .bg-ai{color:var(--muted)}
#casinoTab .bg-pl{color:var(--win);font-weight:700}
#casinoTab #bg-status .bg-pl{color:var(--green)}
#casinoTab .bg-table{width:100%;border-collapse:collapse}
#casinoTab .bg-table th{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-weight:400;text-align:left;padding:3px 4px}
#casinoTab .bg-table td{padding:3px 4px;border-top:1px dashed var(--rule);font-size:.74rem}
#casinoTab .bg-table tr.ai td{color:var(--ink-dim)}
#casinoTab .bg-table tr.pl td:nth-child(2){color:var(--win);font-weight:700}
#casinoTab .bg-table em{font-style:italic;font-size:.66rem;color:var(--ink-dim)}
#casinoTab .bg-hist{margin-top:8px}
#casinoTab .bg-hist tr.w td{color:var(--win);font-weight:700}
#casinoTab .bg-hist tr.r td{color:#8a5a10}
#casinoTab .bg-num{text-align:right;font-variant-numeric:tabular-nums}
#casinoTab .bg-psum{display:flex;justify-content:space-between;font-size:.76rem;padding:2px 0}
#casinoTab .bg-psum b{font-variant-numeric:tabular-nums}
#casinoTab .bg-stamp{margin-top:10px;padding:6px 8px;border:2px solid var(--rule);color:var(--ink-dim);font-size:.72rem;text-align:center;border-radius:3px}
#casinoTab .bg-stamp.got{border-color:var(--bI);color:var(--bI);font-weight:700;letter-spacing:.06em;text-transform:uppercase;transform:rotate(-1.5deg)}
#casinoTab .bg-fine{color:var(--muted);opacity:.5;font-size:.68rem;line-height:1.5}

@media(max-width:1100px){
  #casinoTab .bg-rail{grid-template-columns:auto minmax(0,1fr) auto}
  #casinoTab .bg-titleblk{grid-column:1 / -1}
  #casinoTab .bg-lower{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){#casinoTab .bg-main{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){
  #casinoTab .bg-rail{grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}
  #casinoTab .bg-titleblk{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
  #casinoTab .bg-cagebox{justify-content:center}
  #casinoTab .bg-potblk{align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
  #casinoTab .bg-sheetgrid{grid-template-columns:minmax(0,1fr)}
  #casinoTab .bg-ticket{transform:none!important}
  #casinoTab .bg-c{height:40px;font-size:1rem}
  #casinoTab .bg-tab{padding:4px 8px;font-size:.7rem}
  #casinoTab .bg-recent:empty,#casinoTab #bg-patter:empty{display:none}
  #casinoTab #bg-buy{order:-1}
}
@media(prefers-reduced-motion:reduce){#casinoTab .bg-bigball.pop{animation:none}}

/* ── Plinko: Descent (1.11.9.28) ──────────────────────────────────────────
   The ship's computer. The board is a canvas that reads the theme tokens; the
   rail around it is the same vector language in CSS: square corners, one hard
   green outline on the button, a blinking cursor. The drop log is a thermal
   tape, the one warm surface on the screen. */
#casinoTab #pl-wrap{display:grid;grid-template-columns:minmax(0,1fr) 270px;border:2px solid var(--panel-edge);background:var(--input-bg);
  box-shadow:var(--panel-shadow);position:relative;overflow:hidden;min-width:0;max-width:100%}
#casinoTab #pl-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.2) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.45) 100%)}
#casinoTab .pl-board{min-width:0}
#casinoTab #pl-cv{display:block;width:100%;height:auto}
#casinoTab .pl-rail{display:flex;flex-direction:column;gap:12px;padding:18px;border-left:2px solid var(--panel-edge);min-width:0;color:var(--pale);text-shadow:var(--text-glow)}
#casinoTab .pl-ttl{font-size:1.6rem;letter-spacing:.16em;color:var(--pale);line-height:1}
#casinoTab .pl-ttl small{display:block;font-size:.7rem;letter-spacing:.14em;color:var(--muted);margin-top:6px}
#casinoTab .pl-field{display:flex;flex-direction:column;gap:6px}
#casinoTab .pl-field label{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
#casinoTab #pl-stake{width:100%;box-sizing:border-box;background:var(--input-bg);border:1px solid var(--green);color:var(--pale);font-family:inherit;font-size:1.1rem;padding:7px 10px;border-radius:0;outline:none}
#casinoTab #pl-stake:focus{box-shadow:0 0 0 1px var(--green)}
#casinoTab .pl-chips,#casinoTab .pl-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
#casinoTab .pl-seg{grid-template-columns:repeat(3,minmax(0,1fr))}
#casinoTab .pl-chips button,#casinoTab .pl-seg button{min-height:36px;background:transparent;border:1px solid var(--panel-edge);color:var(--muted);font-family:inherit;font-size:.78rem;letter-spacing:.08em;border-radius:0;cursor:pointer}
#casinoTab .pl-seg button{min-height:42px;font-size:.9rem}
#casinoTab .pl-chips button:hover,#casinoTab .pl-seg button:hover:not(:disabled){color:var(--green);border-color:var(--green)}
#casinoTab .pl-seg button.on{background:var(--green);border-color:var(--green);color:var(--bg);text-shadow:none}
#casinoTab .pl-seg button:disabled{opacity:.3;cursor:not-allowed}
#casinoTab .pl-lim{font-size:.68rem;color:var(--muted);opacity:.75;font-variant-numeric:tabular-nums}
#casinoTab .pl-drop{min-height:56px;background:transparent;border:2px solid var(--green);color:var(--pale);font-family:inherit;font-size:1.5rem;letter-spacing:.24em;border-radius:0;cursor:pointer;text-shadow:0 0 8px var(--green)}
#casinoTab .pl-drop:hover:not(:disabled){background:var(--dim)}
#casinoTab .pl-drop:active:not(:disabled){transform:translateY(1px)}
#casinoTab .pl-drop:disabled{opacity:.35;cursor:not-allowed}
#casinoTab .pl-blink{animation:plBlink 1s steps(1) infinite}
@keyframes plBlink{50%{opacity:0}}
#casinoTab .pl-err{color:var(--bad);font-size:.74rem}
#casinoTab .pl-stat{display:flex;justify-content:space-between;font-size:.86rem;font-variant-numeric:tabular-nums}
#casinoTab .pl-stat b{font-weight:400;color:var(--gold)}
#casinoTab .pl-tape{background:#e9e4d4;color:#2b2920;text-shadow:none;font-size:.7rem;line-height:1.55;padding:8px 10px;height:132px;overflow:hidden;
  background-image:repeating-linear-gradient(0deg,transparent 0 17px,rgba(0,0,0,.05) 17px 18px);box-shadow:inset 0 -14px 12px -8px rgba(0,0,0,.28);font-variant-numeric:tabular-nums}
#casinoTab .pl-tape div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#casinoTab .pl-tape div.hi{font-weight:700}
#casinoTab .pl-fine{font-size:.66rem;color:var(--muted);opacity:.6;line-height:1.5;text-shadow:none}
@media(max-width:900px){
  #casinoTab #pl-wrap{grid-template-columns:minmax(0,1fr)}
  #casinoTab .pl-rail{border-left:0;border-top:2px solid var(--panel-edge)}
}
@media(prefers-reduced-motion:reduce){#casinoTab .pl-blink{animation:none}}
