:root{
  --gee-vegas-bg:#0e0e0e; --gee-vegas-surface:#141414; --gee-gold:#d4af37; --gee-red:#da1d2e; --gee-green:#0b5137; --gee-text:#f5f5f5;
  --gee-win:#31c48d; --gee-lose:#f05252;
}
.gee-theme-vegas { --gee-vegas-bg:#0e0e0e; --gee-vegas-surface:#141414; --gee-gold:#d4af37; --gee-red:#da1d2e; --gee-green:#0b5137; --gee-text:#f5f5f5; }
.gee-wrap { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color: var(--gee-text); }

.gee-vegas-header { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; background:linear-gradient(90deg, var(--gee-vegas-surface), #000); border:2px solid var(--gee-gold); border-radius:14px; margin-bottom:16px; flex-wrap:wrap; }
.gee-title { font-weight:900; letter-spacing:1px; text-transform:uppercase; color:var(--gee-gold); }
.gee-balance { font-weight:700; }
.gee-bar-pickers { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.bar-picker select { background:#000; color:#fff; border:1px solid var(--gee-gold); border-radius:8px; padding:6px 8px; }
.bar-limits { color:var(--gee-gold); font-weight:700; }

.gee-table-shell { position:relative; padding:14px; border-radius:20px; background:linear-gradient(135deg,#5a3e1b,#2a1a0a); box-shadow: inset 0 0 0 6px #6f4e2f, 0 6px 20px rgba(0,0,0,0.35); }
.gee-rail { position:absolute; inset:0; border-radius:20px; pointer-events:none; box-shadow: inset 0 0 0 3px rgba(0,0,0,0.5); }
.gee-felt { position:relative; background:radial-gradient(circle at 50% -40%, rgba(0,0,0,0.35), transparent 55%), var(--gee-green);
            border:2px solid #073a29; border-radius:16px; padding:16px; overflow:hidden; }

.gee-row.controls { display:flex; gap:8px; align-items:center; margin-bottom:10px; flex-wrap:wrap; }
.gee-row input { border-radius:10px; border:1px solid rgba(255,255,255,0.15); background:rgba(255,255,255,0.08); color:#fff; padding:8px; min-width:90px; }
.gee-btn { padding:8px 12px; border-radius:12px; border:1px solid var(--gee-gold); background:linear-gradient(#222,#111); color:var(--gee-text); cursor:pointer; }
.gee-btn:hover { background:linear-gradient(#2a2a2a,#161616); }
.gee-btn:disabled { opacity:0.6; cursor:not-allowed; }

.gee-chipmode { display:flex; align-items:center; gap:6px; margin-right:8px; }
.gee-mode { display:inline-flex; border:1px solid var(--gee-gold); border-radius:10px; overflow:hidden; }
.gee-mode-btn { background:#0f0f0f; color:#fff; border:none; padding:6px 8px; cursor:pointer; }
.gee-mode-btn.active { background:#222; color:#ffd700; }

.gee-chips { display:flex; gap:8px; align-items:center; margin-right:6px; flex-wrap:wrap; }
.gee-chip { position:relative; width:46px; height:46px; border-radius:50%; border:none; cursor:pointer; background-size:cover; background-position:center; box-shadow:0 2px 6px rgba(0,0,0,.35), inset 0 0 0 3px #fff2; }
.gee-chip .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.dealer-spot.big { width:116px; height:116px; border-radius:9999px; border:3px solid var(--gee-gold); overflow:hidden; margin-left:auto; margin-right:6px; box-shadow:0 2px 6px rgba(0,0,0,0.4); }
.dealer-spot.big img { width:100%; height:100%; object-fit:cover; display:block; }

.gee-table { display:grid; grid-template-columns: 1fr; gap:12px; background:rgba(255,255,255,0.02); padding:12px; border-radius:14px; border:1px dashed rgba(255,255,255,0.12); }
.gee-label { font-weight:800; letter-spacing:1px; margin-bottom:6px; color:#f1f5f9; display:flex; gap:8px; align-items:center; }
.gee-total { font-weight:900; color:#ffd166; }
.gee-cards { display:flex; align-items:center; min-height:120px; }
.gee-cards.fan .deal-slot { margin-left:-40px; }
.gee-cards.fan .deal-slot:first-child { margin-left:0; }
.deal-slot { transform: translateY(0); transition: transform .2s ease, opacity .2s ease; }
.deal-slot.hidden{ transform: translateY(-10px); opacity:0; }

.gee-card { width:80px; height:112px; filter: drop-shadow(0 2px 2px rgba(0,0,0,0.25)); border-radius:8px; }
.gee-card.img { background-size:cover; background-position:center; }
.gee-card .c-bg { fill: #f3f4f6; stroke: #e5e7eb; }
.gee-card .c-inner { fill: #ffffff; stroke: #e5e7eb; }
.gee-card.red .c-rank, .gee-card.red .c-pip { fill: #ef4444; }
.gee-card.black .c-rank, .gee-card.black .c-pip { fill: #0f172a; }
.c-rank { font: bold 16px/1.2 "Courier New", monospace; }
.c-rank.corner { text-anchor: start; }
.c-pip { font: bold 22px/1 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji", sans-serif; }

#player-hands .gee-hand.active { outline: 2px solid var(--gee-gold); border-radius:12px; padding:6px; }

/* Win overlay fills felt and supports dealer-origin emit */
.gee-win-overlay { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.gee-win-overlay.show .gee-toast { opacity:1; }
.gee-toast { position:absolute; transform:translate(-50%,-12px); opacity:0; transition:.25s ease; background:rgba(0,0,0,.7); color:#fff; border:2px solid var(--gee-gold); padding:10px 14px; border-radius:12px; font-weight:800; z-index:5; }
.gee-toast.mega { background:linear-gradient(90deg,#111,#222); box-shadow:0 0 20px rgba(212,175,55,.45); }

.emit { position:absolute; left:0; top:0; background-size:cover; background-position:center; border-radius:50%; animation: coinEmit 2.6s ease-out forwards; opacity:.95; }
@keyframes coinEmit {
  0% { transform: translate(0,0) scale(.6); opacity:.95; }
  60% { transform: translate(var(--dx), calc(var(--dy))) scale(1); opacity:1; }
  100% { transform: translate(calc(var(--dx) * .8), 120%) rotate(320deg); opacity:.85; }
}

.gee-status { margin-top:10px; font-weight:800; color:var(--gee-gold); text-shadow:0 1px 0 #000; }
#result-label.win { color: var(--gee-win); }
#result-label.lose { color: var(--gee-lose); }
#result-label.push { color: #e5e7eb; }
#profit-label.pos { color: var(--gee-win); }
#profit-label.neg { color: var(--gee-lose); }

@media (max-width: 480px){
  .dealer-spot.big { width:98px; height:98px; }
  .gee-card { width:64px; height:90px; }
  .gee-cards.fan .deal-slot { margin-left:-32px; }
  .gee-row.controls { gap:6px; }
}
.hidden { display:none !important; }
