.lg-page > .lg-section--alt { background: #edf3f8; padding-bottom: var(--bji-section-gap, 64px); margin-top: var(--bji-section-gap, 64px); }
.bac-calc { border: 1px solid var(--bji-border, #dce2e8); border-radius: 12px; padding: 24px; background: #fff; color: #13263a; }
.bac-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 24px 0; }
.bac-controls label { display: block; font-weight: 600; }
.bac-controls select, .bac-controls input { display: block; width: 100%; min-height: 46px; margin-top: 8px; padding: 8px; border: 1px solid #8a9bad; border-radius: 6px; font: inherit; background: #fff; color: #13263a; }
.bac-controls :focus-visible { outline: 3px solid #da7900; outline-offset: 2px; }
.bac-results dl { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; padding: 20px; border-radius: 8px; background: #edf3f8; }
.bac-results dt, .bac-results dd { margin: 0; }
.bac-results dd { font-weight: 700; text-align: right; }
.bac-error { color: #a12626; font-weight: 600; }
.bac-calc [hidden] { display: none; }
.bac-game-image { display: block; width: 100%; height: auto; border-radius: var(--bji-radius-lg); margin-bottom: var(--bji-space-4); }
.bac-game-card h4 { margin: 0; }
.bac-game-card h4 a { color: inherit; text-decoration: none; }
.bac-game-card h4 a:hover { color: var(--bji-blue-600); }
@media (max-width: 600px) { .bac-calc { padding: 16px; } .bac-controls { grid-template-columns: 1fr; } .bac-results dl { padding: 12px; } }
.bac-castable .bac-cas { display: inline-flex; align-items: center; gap: 10px; color: var(--bji-navy-800); text-decoration: none; font-weight: var(--bji-weight-semibold); }
.bac-castable .bac-cas:hover { color: var(--bji-blue-600); }
.bac-castable .avatar { flex: none; width: 32px; height: 32px; border-radius: 50%; overflow: hidden; background: var(--bji-surface); border: 1px solid var(--bji-border); display: inline-flex; align-items: center; justify-content: center; }
.bac-castable .avatar img { width: 100%; height: 100%; object-fit: contain; }
.bac-castable td { vertical-align: middle; }
.bac-code { display: block; margin-top: 2px; font-size: var(--bji-text-xs); color: var(--bji-text-muted); }
.bac-code b { color: var(--bji-navy-900); letter-spacing: 0.04em; }
.ldh-table.bac-castable { min-width: 1100px; }
.bac-castable td, .bac-castable th { white-space: normal; }
.bac-castable td:nth-child(n+4) { min-width: 9rem; max-width: 15rem; }
.bac-castable .pchips { display: flex; flex-wrap: wrap; gap: 4px; }
.bac-castable .pchips span { margin-right: 0; }
.bac-castable td:last-child { white-space: nowrap; }
.bac-castable th[scope="row"] { min-width: 12rem; }
.bac-castable td:nth-child(2) { white-space: nowrap; }

/* Evolution standard baccarat: interactive math */
.bac-live h3 { margin-top: var(--bji-space-6); }
.bac-odds h3 { margin-top: var(--bji-space-4); }
.bac-odds-bar { display: flex; width: 100%; max-width: 56rem; height: 52px; border-radius: 12px; overflow: hidden; font-size: var(--bji-text-sm); font-variant-numeric: tabular-nums; color: #fff; }
.bac-odds-bar span { display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 0; padding: 0 6px; line-height: 1.15; text-align: center; white-space: nowrap; transition: filter 0.2s, box-shadow 0.2s, opacity 0.2s; }
.bac-odds-bar b { font-size: var(--bji-text-xs); text-transform: uppercase; letter-spacing: 0.05em; }
.bac-odds-bar .b { background: #b3212d; }
.bac-odds-bar .t { background: #1f7a45; }
.bac-odds-bar .p { background: #1f4f9c; }
.bac-odds-bar .up { box-shadow: inset 0 0 0 3px #f5c542; filter: brightness(1.15); }
.bac-odds-bar .down { opacity: 0.55; }
.bac-odds-bar .dim { opacity: 0.8; }

.bac-felt { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; max-width: 56rem; padding: 14px; border-radius: 18px; background: radial-gradient(ellipse at 50% 0%, #1f7a4a, #0f4d2d 75%); box-shadow: inset 0 0 0 2px rgb(245 197 66 / 0.45); user-select: none; -webkit-user-select: none; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.bac-spot { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 76px; padding: 8px 6px; border: 2px solid rgb(255 255 255 / 0.55); border-radius: 12px; background: rgb(255 255 255 / 0.06); color: #fff; font: inherit; text-align: center; line-height: 1.15; cursor: pointer; transition: box-shadow 0.15s, background 0.15s, transform 0.1s; }
.bac-spot:hover { background: rgb(255 255 255 / 0.13); }
.bac-spot:active { transform: scale(0.98); }
.bac-spot:focus-visible { outline: 3px solid #f5c542; outline-offset: 2px; }
.bac-spot .nm { font-weight: 800; font-size: var(--bji-text-sm); }
.bac-spot .py { font-size: 0.7rem; opacity: 0.92; }
.bac-spot .ch { font-size: 0.66rem; opacity: 0.8; font-variant-numeric: tabular-nums; }
.bac-spot.is-side { grid-column: span 2; }
.bac-spot.is-player, .bac-spot.is-tie, .bac-spot.is-banker { grid-column: span 2; min-height: 104px; }
.bac-spot.is-player { border-color: #8fb4f0; }
.bac-spot.is-banker { border-color: #f09a9f; }
.bac-spot.is-tie { border-color: #9fdcb7; }
.bac-spot.is-player .nm, .bac-spot.is-tie .nm, .bac-spot.is-banker .nm { font-size: var(--bji-text-lg); letter-spacing: 0.06em; text-transform: uppercase; }
.bac-spot.is-on { box-shadow: 0 0 0 3px #f5c542, 0 0 18px rgb(245 197 66 / 0.55); background: rgb(245 197 66 / 0.14); }
.bac-spot .stack { position: absolute; top: -10px; right: -6px; min-width: 34px; height: 34px; padding: 0 4px; display: grid; place-items: center; border-radius: 999px; border: 2px dashed rgb(255 255 255 / 0.9); background: #c8202f; box-shadow: 0 0 0 1.5px #c8202f, 0 2px 4px rgb(0 0 0 / 0.45); font-size: 0.66rem; font-weight: 800; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .bac-felt { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
  .bac-spot.is-side { grid-column: span 1; min-height: 70px; }
  .bac-spot.is-player, .bac-spot.is-banker { grid-column: span 1; }
  .bac-spot.is-tie { grid-column: span 2; order: 1; min-height: 64px; }
  .bac-odds-bar { height: 60px; font-size: var(--bji-text-xs); }
}
.bac-results-list { list-style: none; margin: var(--bji-space-2) 0 0; padding: 0; font-variant-numeric: tabular-nums; }
.bac-results-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto 6.5rem; gap: var(--bji-space-3); padding: 6px 10px; border-radius: var(--bji-radius-md); }
.bac-results-list li + li { margin-top: 4px; }
.bac-results-list .p { color: var(--bji-text-muted); }
.bac-results-list .v { font-weight: 800; text-align: right; }
.bac-results-list .up { background: rgb(31 162 84 / 0.12); }
.bac-results-list .up .v { color: var(--bji-green-600, #1a8a4a); }
.bac-results-list .down { background: rgb(200 32 47 / 0.08); }
.bac-results-list .down .v { color: var(--bji-red-700, #a12626); }
.bac-sum-h { margin: var(--bji-space-3) 0 0; }

.bac-explorer, .bac-sim { margin-top: var(--bji-space-5); padding: var(--bji-space-5); border: 1px solid var(--bji-border); border-radius: var(--bji-radius-lg); background: var(--bji-surface); }
.bac-explorer h3, .bac-sim h3 { margin-top: 0; }
.bac-controls--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.bac-controls [hidden] { display: none; }
.bac-steps { margin: 0; padding-left: 1.4em; font-size: var(--bji-text-base); }
.bac-steps li + li { margin-top: 6px; }
.bac-sim-go .cv2-btn { width: 100%; min-height: 46px; }
.bac-sim-chart { display: block; width: 100%; height: 220px; margin: var(--bji-space-2) 0 var(--bji-space-4); border-radius: var(--bji-radius-md); background: var(--bji-surface-sunken, #f3f6f9); }
.bac-sim-chart line.zero { stroke: var(--bji-gray-400, #9aa5b1); stroke-width: 1; }
.bac-sim-chart .exp { fill: none; stroke: #c8202f; stroke-width: 2; stroke-dasharray: 6 5; vector-effect: non-scaling-stroke; }
.bac-sim-chart .run { fill: none; stroke: #1f4f9c; stroke-width: 2; vector-effect: non-scaling-stroke; }
.bac-sim-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 760px) { .bac-controls--3 { grid-template-columns: 1fr; } .bac-sim-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bac-explorer, .bac-sim { padding: var(--bji-space-4); } }
.bac-spot .stack[hidden] { display: none; }
.bac-play .lg-rlc-table td.pw { white-space: normal; min-width: 7rem; }
/* A card grid followed by a filter row gets the same 24px the live blackjack hub leaves under its casino podium. */
.bac-hub .ldh-picks { margin-bottom: var(--bji-space-5); }

/* Shared betting felt: what lights up on a placed bet, per game layouts and feature panels */
.bac-spot .nt { font-size: 0.64rem; font-weight: 700; color: #ffe08a; }
.bac-spot .ed { font-size: 0.66rem; font-weight: 800; color: #ffe08a; font-variant-numeric: tabular-nums; }
.bac-spot .ed[hidden] { display: none; }
.bac-felt--5 .bac-spot.is-side { grid-column: span 3; }
@media (max-width: 640px) { .bac-felt--5 .bac-spot.is-side { grid-column: span 1; } }
.bac-feature { max-width: 56rem; margin: 0 0 var(--bji-space-4); padding: var(--bji-space-4); border-radius: var(--bji-radius-lg); color: #fff; }
.bac-feature p { margin: var(--bji-space-2) 0 0; font-size: var(--bji-text-sm); color: rgb(255 255 255 / 0.88); }
.bac-feature-head b { font-size: var(--bji-text-base); letter-spacing: 0.02em; }
.bac-feature-head span { font-size: var(--bji-text-sm); color: rgb(255 255 255 / 0.8); }
.bac-mults { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: var(--bji-space-3) 0 0; padding: 0; }
.bac-mults li { min-width: 3.25rem; padding: 6px 10px; border-radius: 8px; text-align: center; font-weight: 900; font-size: var(--bji-text-base); font-variant-numeric: tabular-nums; }
.bac-feature--lightning { background: linear-gradient(135deg, #10163a, #24205e); box-shadow: inset 0 0 0 1px rgb(245 197 66 / 0.35); }
.bac-feature--lightning .bac-mults li { background: #f5c542; color: #10163a; box-shadow: 0 0 12px rgb(245 197 66 / 0.55); }
.bac-feature--golden { background: linear-gradient(135deg, #3a2a07, #6b4c0e); box-shadow: inset 0 0 0 1px rgb(255 214 120 / 0.45); }
.bac-feature--golden .bac-mults li { background: linear-gradient(180deg, #ffe39a, #d9a62e); color: #3a2a07; box-shadow: 0 0 10px rgb(255 214 120 / 0.45); }
.bac-play--no_commission .bac-spot.is-banker .nt, .bac-play--published .bac-spot .py { line-height: 1.2; }

/* Hub example scoreboard: server rendered roads, every mark a button with its own note */
.bac-roads { --cell: 28px; position: relative; margin-top: var(--bji-space-4); padding: var(--bji-space-5); border: 1px solid var(--bji-border); border-radius: var(--bji-radius-lg); background: var(--bji-surface); }
.bac-roads-status { margin: 0; font-size: var(--bji-text-sm); color: var(--bji-text-muted); font-variant-numeric: tabular-nums; }
.bac-road-wrap h3 { margin: var(--bji-space-5) 0 var(--bji-space-2); font-size: var(--bji-text-base); }
.bac-roads-status + .bac-road-wrap h3 { margin-top: var(--bji-space-3); }
/* The grid lines live on the scroller so empty columns fill the box at any width. */
.bac-road-scroll { overflow-x: auto; border: 1px solid var(--bji-border); border-radius: var(--bji-radius-md); background-color: #fff;
  background-image: linear-gradient(var(--bji-border) 1px, transparent 1px), linear-gradient(90deg, var(--bji-border) 1px, transparent 1px);
  background-size: var(--cell) var(--cell); background-attachment: local; height: calc(var(--cell) * 6 + 2px); }
.bac-road { display: grid; grid-template-rows: repeat(6, var(--cell)); grid-template-columns: repeat(var(--cols, 30), var(--cell)); grid-auto-flow: column; width: max-content; }
.bac-road > .mark { position: relative; display: grid; place-items: center; width: var(--cell); height: var(--cell); margin: 0; padding: 0; border: 0; border-radius: 4px; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.bac-road > .mark:focus-visible { outline: 2px solid var(--bji-navy-950, #0e1638); outline-offset: -1px; }
.bac-road > .mark.is-on { background: rgb(14 22 56 / 0.1); }
.bac-road > .mark.has-callout { background: rgb(255 196 0 / 0.22); }
.bac-road > .mark.has-callout.is-on { background: rgb(255 196 0 / 0.4); }
.bac-bead .bead::before { content: ''; position: absolute; inset: 3px; border-radius: 50%; z-index: -1; }
.bac-bead .bead { color: #fff; font-size: 0.7rem; font-weight: 800; z-index: 0; }
.bac-bead .b::before { background: #c8202f; }
.bac-bead .p::before { background: #1f4f9c; }
.bac-bead .t::before { background: #1f8a4c; }
.bac-big .ring::before { content: ''; position: absolute; inset: 4px; border-radius: 50%; border: 3px solid; }
.bac-big .b::before { border-color: #c8202f; }
.bac-big .p::before { border-color: #1f4f9c; }
.bac-big .tie { position: absolute; inset: 0; display: grid; place-items: center; font-size: 0.62rem; font-weight: 900; color: #1f8a4c; font-style: normal; }
.bac-big .tie::before { content: ''; position: absolute; left: 3px; right: 3px; top: 50%; height: 2.5px; background: #1f8a4c; transform: rotate(-45deg); }
.bac-road i { position: absolute; width: 7px; height: 7px; border-radius: 50%; border: 1px solid #fff; z-index: 1; }
.bac-road i.bp { top: 2px; left: 2px; background: #c8202f; }
.bac-road i.pp { bottom: 2px; right: 2px; background: #1f4f9c; }
.bac-callout { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--bji-navy-950, #0e1638); color: #fff; font-size: 0.6rem; font-weight: 800; font-style: normal; line-height: 1; }
.bac-road .bac-callout { position: absolute; top: -1px; right: -1px; width: 13px; height: 13px; font-size: 0.55rem; z-index: 2; }
.bac-road-tip { position: absolute; z-index: 20; max-width: min(300px, calc(100% - 16px)); padding: 8px 11px; border-radius: var(--bji-radius-md); background: var(--bji-navy-950, #0e1638); color: #fff; font-size: var(--bji-text-sm); line-height: 1.45; box-shadow: 0 8px 22px rgb(14 22 56 / 0.25); pointer-events: none; }
.bac-callouts { list-style: none; margin: var(--bji-space-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bji-space-2) var(--bji-space-5); font-size: var(--bji-text-sm); }
.bac-callouts li { display: flex; gap: 8px; align-items: flex-start; }
.bac-callouts .bac-callout { flex: none; margin-top: 2px; }
.bac-road-key { display: flex; flex-wrap: wrap; gap: var(--bji-space-2) var(--bji-space-4); list-style: none; margin: var(--bji-space-4) 0 0; padding: var(--bji-space-3) 0 0; border-top: 1px solid var(--bji-border); font-size: var(--bji-text-sm); color: var(--bji-text-muted); }
.bac-road-key li { display: inline-flex; align-items: center; gap: 6px; }
.bac-road-key .k { position: relative; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; font-size: 0.62rem; font-weight: 800; }
.bac-road-key .k.b { background: #c8202f; } .bac-road-key .k.p { background: #1f4f9c; } .bac-road-key .k.t { background: #1f8a4c; }
.bac-road-key .k.dot { width: 9px; height: 9px; }
.bac-road-key .k.bp { background: #c8202f; } .bac-road-key .k.pp { background: #1f4f9c; }
.bac-road-key .k.slash { border: 3px solid #c8202f; }
.bac-road-key .k.slash::after { content: ''; position: absolute; left: -1px; right: -1px; top: 50%; height: 2.5px; background: #1f8a4c; transform: rotate(-45deg); }
.bac-roads-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bji-space-5); margin-top: var(--bji-space-5); }
.bac-roads-guide h3 { margin-top: 0; }
.bac-streak { margin-top: var(--bji-space-5); padding: var(--bji-space-5); border: 1px solid var(--bji-border); border-radius: var(--bji-radius-lg); background: var(--bji-surface); }
.bac-streak h3 { margin-top: 0; }
.bac-streak-table { min-width: 0; table-layout: fixed; }
.bac-streak-table td { font-variant-numeric: tabular-nums; }
.bac-streak-table tbody th { width: 40%; }
.bac-streak-note { margin: var(--bji-space-3) 0 0; font-size: var(--bji-text-sm); color: var(--bji-text-muted); }
@media (max-width: 760px) {
  .bac-roads { --cell: 24px; padding: var(--bji-space-4); }
  .bac-callouts { grid-template-columns: 1fr; }
  .bac-roads-guide { grid-template-columns: 1fr; gap: 0; }
  .bac-streak { padding: var(--bji-space-4); }
  .bac-streak-table th, .bac-streak-table td { padding: var(--bji-space-2) var(--bji-space-2); }
  .bac-streak-table tbody th { width: 44%; }
}
/* "Evolution RTP" wraps under its column at phone width so the remove buttons stay in view. */
@media (max-width: 640px) { .bac-play--published .lg-rlc-table thead th { white-space: normal; } }
