/* Boreal Roulette Styles */
.roulette-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--sp-4);
  margin-bottom: var(--sp-4);
}

/* ── WHEEL ─────────────────────────────── */
.wheel-section {
  display: flex; flex-direction: column;
  align-items: center; gap: var(--sp-2);
  position: relative;
}
.wheel-wrapper {
  position: relative; width: 240px; height: 240px;
}
.outer-ring {
  width: 240px; height: 240px; border-radius: 50%;
  background: var(--clr-stone-800);
  border: 6px solid var(--clr-amber);
  box-shadow: 0 0 40px rgba(212,137,26,.3), inset 0 0 20px rgba(0,0,0,.5);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.wheel {
  width: 210px; height: 210px; border-radius: 50%;
  position: relative;
  transition: transform 4s cubic-bezier(.17,.67,.1,1);
}
.wheel-centre {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--bg-dark);
  border: 3px solid var(--clr-amber);
  display: flex; align-items: center; justify-content: center;
  z-index: 5; font-size: 1.2rem;
  box-shadow: 0 0 16px rgba(0,0,0,.8);
}
.wheel-hub { line-height: 1; }
.wheel-pointer {
  position: absolute; top: -2px; left: 50%;
  transform: translateX(-50%);
  color: var(--clr-amber-light);
  font-size: 1.4rem; z-index: 6;
  filter: drop-shadow(0 0 6px var(--clr-amber));
}

.ball-track {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 230px; height: 230px;
  border-radius: 50%;
  pointer-events: none;
}
.ball {
  position: absolute;
  width: 12px; height: 12px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff, #ccc);
  box-shadow: 0 2px 8px rgba(0,0,0,.8);
  top: 4px; left: 50%; transform: translateX(-50%);
  transform-origin: 50% 115px;
  transition: transform .1s linear;
}

.result-pocket {
  background: var(--bg-card);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-sm);
  padding: 8px 16px;
  text-align: center;
  font-family: var(--font-display); font-size: 1.4rem;
  min-width: 200px;
  animation: pocketPop .4s ease;
}
.result-pocket.red-result  { border-color: var(--clr-maple-light); color: var(--clr-maple-light); }
.result-pocket.black-result { border-color: var(--text-secondary); color: var(--text-primary); }
.result-pocket.green-result { border-color: var(--clr-forest-light); color: #5DBF85; }
@keyframes pocketPop {
  from { transform: scale(.8); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

/* ── BETTING BOARD ─────────────────────── */
.betting-section {
  display: flex; flex-direction: column;
}
.number-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 3px; margin-bottom: 6px;
}
.num-btn {
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 4px;
  font-size: .75rem; font-weight: 600;
  cursor: pointer;
  transition: transform var(--tr-fast), box-shadow var(--tr-fast), opacity var(--tr-fast);
  position: relative;
}
.num-btn:hover:not(:disabled) { transform: scale(1.15); z-index: 2; }
.num-btn.zero { background: #1B5E3A; color: #fff; }
.num-btn.red  { background: #8B1E1E; color: #fff; }
.num-btn.black{ background: #1A1A18; color: #ccc; border-color: rgba(255,255,255,.15); }
.num-btn.selected {
  outline: 2px solid var(--clr-amber-light);
  transform: scale(1.1);
}
.chip-marker {
  position: absolute; top: -6px; right: -6px;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--clr-amber);
  font-size: .55rem; color: #000; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid #fff;
}

.outside-bets {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: 3px;
}
.outside-bet {
  padding: 8px 4px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 4px;
  font-size: .75rem; font-weight: 600; color: var(--text-secondary);
  cursor: pointer;
  transition: background var(--tr-fast), color var(--tr-fast);
  text-align: center;
}
.outside-bet[data-type="red"]   { background: rgba(139,30,30,.35); border-color: rgba(192,57,43,.4); }
.outside-bet[data-type="black"] { background: rgba(26,26,24,.7); }
.outside-bet:hover, .outside-bet.selected {
  background: rgba(212,137,26,.2); color: var(--clr-amber-light);
  border-color: rgba(212,137,26,.4);
}
.outside-bet[data-type="red"].selected   { background: rgba(192,57,43,.3); color: var(--clr-maple-light); border-color: var(--clr-maple); }
.outside-bet[data-type="black"].selected { background: rgba(255,255,255,.1); color: var(--text-primary); }

.roulette-controls {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--sp-2); margin-top: var(--sp-2); flex-wrap: wrap;
}
.total-bet-display {
  font-size: .85rem; color: var(--text-secondary);
  padding: 8px 12px;
  background: var(--bg-surface);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--r-sm);
}
.total-bet-display span { color: var(--clr-amber-light); font-weight: 600; }

.bets-list {
  margin-top: var(--sp-1);
  display: flex; flex-wrap: wrap; gap: 6px;
}
.bet-tag {
  padding: 4px 10px;
  background: rgba(212,137,26,.15);
  border: 1px solid rgba(212,137,26,.3);
  border-radius: 100px;
  font-size: .75rem; color: var(--clr-amber-light);
}

/* Payout guide */
.payout-guide {
  background: var(--bg-surface);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--r-sm);
  padding: var(--sp-2) var(--sp-3);
  margin-bottom: var(--sp-3);
}
.payout-grid {
  display: flex; flex-wrap: wrap; gap: 8px 24px;
}
.payout-grid span { font-size: .8rem; color: var(--text-muted); }
.payout-grid strong { color: var(--clr-amber-light); }

@media (max-width: 900px) {
  .roulette-layout { grid-template-columns: 1fr; }
  .wheel-wrapper { width: 200px; height: 200px; }
  .outer-ring { width: 200px; height: 200px; }
  .wheel { width: 175px; height: 175px; }
  .ball { transform-origin: 50% 96px; }
}
@media (max-width: 600px) {
  .number-grid { grid-template-columns: repeat(6, 1fr); }
  .outside-bets { grid-template-columns: repeat(3, 1fr); }
}
