/* style.css */

/* 1. Global Reset & Theme Configuration */
:root {
  --color-bg-dark: #050608;
  --color-bg-card: rgba(15, 20, 32, 0.85);
  --color-felt-inner: #0b4624;
  --color-felt-outer: #03200f;
  --color-border-wood: #2a150c;
  --color-border-gold: #c39b4b;
  --color-text-light: #f3f4f6;
  --color-text-dim: #9ca3af;
  --color-gold: #dfb15b;
  --color-gold-glow: rgba(223, 177, 91, 0.4);
  --color-red: #ef4444;
  --color-green: #10b981;
  --color-yellow: #f59e0b;
  --font-display: 'Outfit', 'Noto Sans SC', sans-serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

html, body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: var(--color-bg-dark);
  font-family: var(--font-display);
  color: var(--color-text-light);
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 2. Aspect-Ratio Scale Engine Viewport */
#game-container {
  width: 1334px;
  height: 750px;
  position: absolute;
  top: 50%;
  left: 50%;
  /* Transform origin centered for scale transition */
  transform-origin: center center;
  overflow: hidden;
  background: radial-gradient(circle at center, #161e2b 0%, #080c12 100%);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
  display: flex;
  flex-direction: column;
}

/* 3. Page Layer Layouts */
.page-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.page-layer.active {
  display: flex;
  animation: pageFadeIn 0.4s ease forwards;
  pointer-events: auto;
  z-index: 10;
}

@keyframes pageFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* --- LOBBY PAGE (REDESIGNED CASINO LOBBY) --- */
#lobby-page {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #06090e;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

.lobby-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('assets/images/lobby_background.jpg');
  background-size: cover;
  background-position: center;
  filter: brightness(0.5) contrast(1.1);
  z-index: 1;
}

.lobby-dealer-char {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 500px;
  background-image: url('assets/images/lobby_dealer.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom right;
  z-index: 2;
  pointer-events: none;
  opacity: 0.9;
  -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 60%, rgba(0,0,0,0) 100%);
  mask-image: linear-gradient(to left, rgba(0,0,0,1) 60%, rgba(0,0,0,0) 100%);
}

.lobby-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.1) 75%, rgba(0,0,0,0.7) 100%);
  z-index: 2;
  pointer-events: none;
}

/* Header Row styling */
.lobby-header-row {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 10;
  box-sizing: border-box;
}

.lobby-player-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(10px);
  padding: 6px 16px 6px 6px;
  border-radius: 40px;
  border: 1px solid rgba(212, 175, 55, 0.4);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}

.lobby-avatar-container {
  position: relative;
  width: 44px;
  height: 44px;
}

.lobby-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2.2px solid #d4af37;
  box-sizing: border-box;
}

.lobby-avatar-crown {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 16px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M2 4l4 5 6-6 6 6 4-5v15H2V4z'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
}

.lobby-profile-info {
  display: flex;
  flex-direction: column;
}

.lobby-name-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
}

.lobby-username-input {
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  font-family: inherit;
  width: 80px;
  outline: none;
  border-bottom: 1.5px dashed rgba(212, 175, 55, 0.5);
  padding-bottom: 1px;
  transition: all 0.3s ease;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
}

.lobby-username-input:focus {
  border-bottom-style: solid;
  border-bottom-color: #d4af37;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 4px;
  padding-left: 4px;
}

.lobby-edit-icon {
  font-size: 11px;
  color: #d4af37;
  opacity: 0.8;
  cursor: pointer;
}

.lobby-user-id {
  font-size: 10px;
  color: rgba(255,255,255,0.6);
  font-weight: 600;
  margin-top: 1px;
  letter-spacing: 0.5px;
}

.lobby-top-utilities {
  display: flex;
  gap: 25px;
}

.lobby-util-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  transition: all 0.25s ease;
}

.lobby-util-item:hover {
  transform: translateY(-2px);
}

.lobby-util-icon {
  width: 26px;
  height: 26px;
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}

.lobby-util-icon.gift-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35-.54-.81-1.45-1.35-2.5-1.35-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H5c-1.1 0-2 .9-2 2v3c0 .55.45 1 1 1h1v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V13h1c.55 0 1-.45 1-1V8c0-1.1-.9-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-6 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm10 16H7V13h12v7zm1-9H4V8h16v3z'/></svg>"); }
.lobby-util-icon.trophy-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v3c0 2.44 1.72 4.48 4 4.9V19H3v2h18v-2h-4v-4.1c2.28-.42 4-2.46 4-4.9V7c0-1.1-.9-2-2-2zM5 10V7h2v3H5zm14 0h-2V7h2v3z'/></svg>"); }
.lobby-util-icon.mail-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/></svg>"); }
.lobby-util-icon.settings-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z'/></svg>"); }

.lobby-util-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 600;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
}

.lobby-util-item:hover .lobby-util-label {
  color: #d4af37;
}

/* Center Container for Title & Grid */
.lobby-center-container {
  position: absolute;
  left: 60px;
  top: 125px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.lobby-center-title {
  display: flex;
  flex-direction: column;
  line-height: 0.9;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.9);
}

.lobby-center-title .title-main {
  font-size: 80px;
  font-weight: 900;
  color: #ffffff;
  letter-spacing: 2px;
}

.lobby-center-title .title-sub {
  font-size: 31px;
  font-weight: 800;
  color: #d4af37;
  letter-spacing: 4px;
}

/* Cards Grid */
.lobby-cards-grid {
  display: flex;
  gap: 22px;
}

.lobby-action-card {
  width: 240px;
  height: 340px;
  background: linear-gradient(135deg, #161c28 0%, #080c12 100%);
  border: 3px solid rgb(137 105 2 / 80%);
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.7);
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.lobby-action-card:hover {
  transform: translateY(-8px);
  border-color: rgba(212, 175, 55, 0.85);
  box-shadow: 0 15px 35px rgba(212, 175, 55, 0.2);
}

.card-inner {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 15px;
  box-sizing: border-box;
}

.card-gold-glow {
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(212, 175, 55, 0.08) 0%, rgba(212, 175, 55, 0) 70%);
  transition: opacity 0.3s;
  opacity: 0;
  pointer-events: none;
}

.lobby-action-card:hover .card-gold-glow {
  opacity: 1;
}

.card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.card-icon {
  width: 200px;
  height: 200px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
  transition: transform 0.3s;
}

.lobby-action-card:hover .card-icon {
  transform: scale(1.08);
}

.card-icon.cards-icon { background-image: url("assets/images/icon_01.png"); }
.card-icon.search-icon { background-image: url("assets/images/icon_02.png"); }
.card-icon.create-icon { background-image: url("assets/images/icon_03.png"); }

.card-title-zh {
  font-size: 40px;
  font-weight: 800;
  color: #ffffff;
  margin: 15px 0 3px 0;
  letter-spacing: 0.5px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.8);
}

.card-title-en {
  font-size: 18px;
  font-weight: 700;
  color: #d4af37;
  letter-spacing: 1.2px;
  opacity: 0.85;
}

/* Footer Row styling */
.lobby-footer-row {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 20px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 10;
  box-sizing: border-box;
}

.lobby-bottom-links {
  display: flex;
  gap: 25px;
}

.lobby-footer-item {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.25s ease;
}

.lobby-footer-item:hover {
  transform: translateY(-1.5px);
}

.footer-icon {
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}

.footer-icon.shield-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z'/></svg>"); }
.footer-icon.customer-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M12 2c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7c0-4.97-4.03-9-9-9z'/></svg>"); }
.footer-icon.chips-gift-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><circle cx='12' cy='12' r='10' fill='none' stroke='%23d4af37' stroke-width='2'/><path d='M12 7v10M7 12h10M8.5 8.5l7 7M15.5 8.5l-7 7' stroke='%23d4af37' stroke-width='1.5'/></svg>"); }
.footer-icon.shop-icon { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z'/></svg>"); }

.footer-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 600;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
}

.lobby-footer-item:hover .footer-label {
  color: #d4af37;
}

/* First Charge Promo Banner */
.first-charge-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.25) 0%, rgba(0, 0, 0, 0.5) 100%);
  border: 1.2px solid rgba(212, 175, 55, 0.5);
  padding: 6px 18px;
  border-radius: 40px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  cursor: pointer;
  transition: all 0.3s ease;
  animation: pulseBanner 2s infinite alternate;
}

.first-charge-banner:hover {
  transform: scale(1.02);
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.35) 0%, rgba(0, 0, 0, 0.65) 100%);
}

.banner-badge {
  width: 22px;
  height: 22px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d4af37'><path d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1 15l-4-4 1.41-1.41L11 13.17l5.59-5.59L18 9l-7 7z'/></svg>");
  background-size: contain;
  background-repeat: no-repeat;
}

.banner-text-group {
  display: flex;
  flex-direction: column;
}

.banner-title {
  font-size: 13px;
  font-weight: 800;
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.6);
}

.banner-desc {
  font-size: 10px;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
  margin-top: 1px;
}

@keyframes pulseBanner {
  0% { box-shadow: 0 4px 12px rgba(0,0,0,0.5); border-color: rgba(212, 175, 55, 0.4); }
  100% { box-shadow: 0 4px 16px rgba(212, 175, 55, 0.2); border-color: rgba(212, 175, 55, 0.65); }
}

/* --- BUTTONS STYLING --- */
.btn {
  flex: 1;
  border: none;
  padding: 12px 20px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.2);
  font-family: inherit;
}

.btn-primary {
  background: linear-gradient(135deg, #f3d081 0%, #c4963f 100%);
  color: #2c1a0e;
  box-shadow: 0 4px 10px rgba(196, 150, 63, 0.3);
}

.btn-primary:active {
  transform: scale(0.96);
}

.btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-text-light);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.btn-secondary:active {
  background: rgba(255, 255, 255, 0.12);
  transform: scale(0.96);
}

.btn-gold {
  background: linear-gradient(135deg, #ffd700 0%, #b8860b 100%);
  color: #000;
  box-shadow: 0 4px 10px rgba(184, 134, 11, 0.3);
}

.btn-gold:active {
  transform: scale(0.96);
}

.btn-dark {
  background: #151b26;
  color: var(--color-text-light);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.btn-dark:active {
  background: #1c2535;
}

.btn-sm {
  padding: 8px 16px;
  font-size: 12px;
  border-radius: 6px;
}

.hidden {
  display: none !important;
}

/* --- GAME PAGE --- */
#game-page {
  background: #0b0d12;
  justify-content: flex-start;
  align-items: stretch;
}

.game-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
  height: 50px;
  z-index: 100;
}

.room-info-badge {
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 12px;
}

.badge-label {
  color: var(--color-text-dim);
}

.badge-value {
  color: var(--color-gold);
  font-weight: 700;
  letter-spacing: 1px;
}

.btn-quit {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--color-text-dim);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.25s;
}

.btn-quit:hover {
  background: rgba(239, 68, 68, 0.15);
  color: var(--color-red);
  border-color: rgba(239, 68, 68, 0.25);
}

/* --- THE POKER FELT TABLE (960x540 Design Grid) --- */
/* --- THE POKER FELT TABLE & ROOM AREA (1334x750 Design Grid) --- */
.poker-room-area {
  position: absolute;
  left: 0;
  top: 0;
  width: 1334px;
  height: 750px;
  overflow: hidden;
  z-index: 5;
}

.poker-table-felt {
  position: absolute;
  left: 0;
  top: 0;
  width: 1334px;
  height: 750px;
  z-index: auto; /* Enable global stacking hierarchy to let chairs tuck behind table halves */
  pointer-events: none;
}

.poker-table-felt > * {
  pointer-events: auto; /* Re-enable click detection for seats, buttons and cards inside the felt overlay */
}

/* 3D Perspective Carpet Background */
.room-carpet {
  position: absolute;
  top: -120%;
  left: -50%;
  width: 200%;
  height: 280%;
  background-image: url('assets/images/Floor_Carpet_002_Classic.png');
  background-repeat: repeat;
  background-size: 80px 80px; /* Highly detailed premium micro-pattern */
  transform: perspective(800px) rotateX(36deg) translateY(-12%) scale(1.15);
  transform-origin: center center;
  z-index: 1;
  pointer-events: none;
}



/* Premium Chinese Chess style cylindrical Dealer Button */
.room-dealer-badge {
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  
  /* Cylindrical wood/ivory texture with lighting */
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, #f7f3e8 60%, #e2d9bf 100%);
  
  /* Double border representing a chess piece rim: gold/bronze outer rim */
  border: 1.5px solid #a87e3b;
  box-sizing: border-box;
  
  /* Engraved letter D in red color (Chinese chess style) */
  color: #c91b1b;
  font-family: "Georgia", "Times New Roman", serif;
  font-size: 15px;
  font-weight: 900;
  text-shadow: 0.5px 0.5px 0px rgba(255,255,255,0.8), -0.5px -0.5px 0px rgba(0,0,0,0.15);
  
  display: none;
  justify-content: center;
  align-items: center;
  
  /* 3D cylindrical shadow effects (extrusion and table shadow) */
  box-shadow: 
    0 3px 6px rgba(0, 0, 0, 0.45), 
    0 1px 2px rgba(0, 0, 0, 0.3), 
    inset 0 1px 0px rgba(255, 255, 255, 0.95), 
    inset 0 -1.5px 2px rgba(0, 0, 0, 0.15);
  
  z-index: 25;
  pointer-events: none;
  user-select: none;
}

/* Mirrored Poker Table Halves Container */
.poker-table-halves {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  pointer-events: none;
}

.table-half {
  position: absolute;
  top: 185px;
  width: 390px;
  height: 364px;
  background-image: url('assets/images/pokerist_desk_normal.png');
  background-size: 100% 100%;
  background-repeat: no-repeat;
}

.left-half {
  left: 277px;
}

.right-half {
  left: 667px;
  transform: scaleX(-1);
}

/* Golden dashed decal border inside table felt */
.table-inner-felt {
  position: absolute;
  left: 297px;
  top: 205px;
  width: 740px;
  height: 324px;
  border: 2px dashed rgba(195, 155, 75, 0.25);
  border-radius: 162px;
  pointer-events: none;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: inset 0 0 15px rgba(195, 155, 75, 0.05);
  z-index: 11;
}

.table-watermark-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: none; /* Controlled by active class in JS */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 440px;
  height: 140px;
  background: radial-gradient(circle, rgb(104, 151, 175) 0%, rgb(110, 155, 179) 70%, rgb(115, 159, 183) 100%);
  box-shadow: 0 0 30px 30px rgb(115, 159, 183);
  pointer-events: none;
  z-index: 1;
}

.table-watermark-overlay.active {
  display: flex;
}

.main-watermark {
    font-family: 'Outfit', 'Inter', 'Helvetica Neue', sans-serif;
    font-size: 46px;
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    color: rgb(255 255 255 / 70%);
    letter-spacing: 2px;
    line-height: 1;
    text-shadow: 0px 1px 1px rgb(0 0 0 / 30%);
}

.sub-watermark {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  opacity: 0.70;
}

.watermark-coin-icon {
  width: 30px;
  height: 30px;
  object-fit: contain;
  vertical-align: middle;
}

.watermark-text {
  font-family: 'Outfit', 'Inter', sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 1px;
  line-height: 1;
}

/* Full-table Canvas for chip particles & parabolic deals */
#animation-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 1334px;
  height: 750px;
  pointer-events: none;
  z-index: 50;
}

/* --- DEALER LOGO & SHUFFLED CARDS DECK --- */
.dealer-position {
  position: absolute;
  left: 607px;
  top: 95px;
  width: 120px;
  height: 204.71px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.dealer-position .chair-bg {
  background-image: url('assets/images/poker2d_chair_0.png');
  z-index: 2;
}

#3d-dealer-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}

.dealer-logo {
  font-size: 9px;
  font-weight: 800;
  background: rgba(0, 0, 0, 0.7);
  color: var(--color-gold);
  border: 1px solid var(--color-border-gold);
  padding: 1px 6px;
  border-radius: 10px;
  letter-spacing: 1px;
  position: absolute;
  top: 120px;
  z-index: 20;
}

.dealer-cards-deck {
    display: flex;
    position: absolute;
    left: 42px;
    top: 145px;
    width: 40px;
    height: 54px;
    z-index: 20;
    transform: rotate(90deg);
    transform-origin: center center;
}

.deck-card {
  position: absolute;
  width: 36px;
  height: 50px;
  border-radius: 3px;
  box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  background: url("assets/images/3d_card_back_blue.png") no-repeat center;
  background-size: 100% 100%;
}

.deck-card:nth-child(1) { transform: translate(0, 0); }
.deck-card:nth-child(2) { transform: translate(1.5px, -1.5px); }
.deck-card:nth-child(3) { transform: translate(3px, -3px); }

/* --- COMMUNITY CARDS SLOTS (Flipped face-up via rotateY) --- */
.community-cards-container {
  display: flex;
  gap: 9px;
  z-index: 30;
  position: absolute;
  top: 374.5px;
  left: 667.5px;
  transform: translate(-50%, -50%);
}

.community-card-slot {
  width: 60px;
  height: 81px;
  background: rgba(0, 0, 0, 0.4);
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  border-radius: 5px;
  perspective: 600px;
}

.community-card-slot .card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transform-style: preserve-3d;
  transform: rotateY(180deg); /* face-down back */
}

.community-card-slot.flipped .card-inner {
  transform: rotateY(0deg); /* face-up front */
}

.card-front, .card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 5px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
}

.card-back {
  background: url("assets/images/3d_card_back_blue.png") no-repeat center;
  background-size: 100% 100%;
  border: none;
  transform: rotateY(180deg);
}

.card-front {
  background: transparent;
  border: none;
  color: #000;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* --- POT DISPLAY --- */
.table-center-info {
  position: absolute;
  left: 543px;
  top: 294px;
  width: 247px;
  height: 30px;
  z-index: 30;
  display: flex;
  justify-content: center;
}

.pot-display {
    max-width: 246px;
    height: 30px;
    box-sizing: border-box;
    background: #00000030;
    border: 1.5px solid rgb(0 0 0 / 0%);
    border-radius: 15px;
    display: none;
    justify-content: center;
    align-items: center;
    gap: 2px;
    padding: 1px 15px;
    box-shadow: none;
}

.pot-display.active {
  display: flex;
}

.pot-display .pot-icon {
  width: 30px;
  height: 30px;
  background-image: url("assets/images/Chips_01.png");
  background-size: 180px 30px;
  background-repeat: no-repeat;
  display: inline-block;
  vertical-align: middle;
}
.pot-display .pot-icon.chip-denom-0 { background-position: 0px 0px; }
.pot-display .pot-icon.chip-denom-1 { background-position: -30px 0px; }
.pot-display .pot-icon.chip-denom-2 { background-position: -60px 0px; }
.pot-display .pot-icon.chip-denom-3 { background-position: -90px 0px; }
.pot-display .pot-icon.chip-denom-4 { background-position: -120px 0px; }
.pot-display .pot-icon.chip-denom-5 { background-position: -150px 0px; }

.pot-amount {
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.5px;
    color: #ffffff;
    text-shadow: 0 1px 2px rgb(0 0 0 / 70%);
}

/* ==========================================================================
   ==================== SEAT RELATED COMPONENT GROUP (座位相关组件与布局) ====================
   ========================================================================== */

/* --- SEATS ARRANGEMENT (Absolute Placements from Room note) --- */
.seat-container {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* --- SEAT SLOT & ARROW POSITIONING --- */
.slot-0 { left: 510px; top: 484px; width: 230px; height: 215.52px; } /* 0号位 Bottom Center */
#empty-arrow-0 { left: 596px; top: 532px; }

.slot-1 { left: 346px; top: 468px; width: 240px; height: 224.46px; } /* 1号位 Bottom Left (chair_4) */
#empty-arrow-1 { left: 424px; top: 514px; }

.slot-2 { left: 204px; top: 397px; width: 230px; height: 195.1px; }  /* 2号位 Left (chair_3) */
#empty-arrow-2 { left: 230px; top: 394px; }

.slot-3 { left: 183px; top: 191px; width: 237px; height: 240.1px; }  /* 3号位 Top Left (chair_2) */
#empty-arrow-3 { left: 222px; top: 196px; }

.slot-4 { left: 332px; top: 95px; width: 230px; height: 272.11px; }  /* 4号位 Top Left-Center (chair_1) */
#empty-arrow-4 { left: 412px; top: 100px; }

.slot-5 { left: 772px; top: 95px; width: 230px; height: 272.11px; }  /* 5号位 Top Right-Center (chair_1) */
#empty-arrow-5 { left: 862px; top: 100px; }

.slot-6 { left: 914px; top: 191px; width: 237px; height: 240.1px; }  /* 6号位 Top Right (chair_2) */
#empty-arrow-6 { left: 1044px; top: 202px; }

.slot-7 { left: 900px; top: 397px; width: 230px; height: 195.1px; }  /* 7号位 Right (chair_3) */
#empty-arrow-7 { left: 1046px; top: 394px; }

.slot-8 { left: 748px; top: 468px; width: 240px; height: 224.46px; } /* 8号位 Bottom Right (chair_4) */
#empty-arrow-8 { left: 846px; top: 514px; }

/* Hide empty/chair bg when seat is occupied */
.seat-container.occupied .chair-bg {
  display: none !important;
}

/* --- CHAIR BACKGROUNDS ARRANGEMENT --- */
.chair-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 8;
  pointer-events: none;
  opacity: 0.9;
  transition: opacity 0.3s ease;
}

.slot-0 .chair-bg {
  background-image: url('assets/images/chair_5.png');
}

.slot-1 .chair-bg {
  background-image: url('assets/images/chair_4.png');
  transform: scaleX(-1);
}

.slot-2 .chair-bg {
  background-image: url('assets/images/chair_3.png');
  transform: scaleX(-1);
}

.slot-3 .chair-bg {
  background-image: url('assets/images/chair_2.png');
  transform: scaleX(-1);
}

.slot-4 .chair-bg {
  background-image: url('assets/images/chair_1.png');
  transform: scaleX(-1);
}

.slot-5 .chair-bg {
  background-image: url('assets/images/chair_1.png');
}

.slot-6 .chair-bg {
  background-image: url('assets/images/chair_2.png');
}

.slot-7 .chair-bg {
  background-image: url('assets/images/chair_3.png');
}

.slot-8 .chair-bg {
  background-image: url('assets/images/chair_4.png');
}

/* --- SEATS CHAIR BACKGROUNDS ARRANGEMENT END --- */

/* Empty Seat Down Arrows with Bounce Animation (Moved to Seat Group) */
.empty-seat-arrow {
  position: absolute;
  width: 60px;
  height: 60px;
  background-image: url('assets/images/down.png');
  background-size: 30px 30px;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 22;
  pointer-events: auto;
  cursor: pointer;
  display: none;
  animation: arrowBounce 1.2s infinite ease-in-out;
}

@keyframes arrowBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(5px);
  }
}

.empty-seat-arrow.active {
  display: block;
}

.empty-seat-arrow:hover {
  filter: brightness(1.2) drop-shadow(0 0 6px var(--color-gold-glow));
  transition: filter 0.2s ease;
}



/* --- SEAT EMPTY STATE --- */
.seat-empty-state {
  position: absolute;
  width: 80px;
  height: 110px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 15;
  pointer-events: none;
}

.slot-0 .seat-empty-state { left: 77px; top: 67px; }
.slot-1 .seat-empty-state { left: 52px; top: 65px; }
.slot-2 .seat-empty-state { left: 34px; top: 34px; }
.slot-3 .seat-empty-state { left: 56px; top: 29px; }
.slot-4 .seat-empty-state { left: 68px; top: 2px; }
.slot-5 .seat-empty-state { left: 81px; top: 2px; }
.slot-6 .seat-empty-state { left: 100px; top: 29px; }
.slot-7 .seat-empty-state { left: 116px; top: 34px; }
.slot-8 .seat-empty-state { left: 100px; top: 65px; }

.invite-btn-plus {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  border: 2px dashed rgba(255, 255, 255, 0.2);
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgba(255, 255, 255, 0.35);
  font-size: 28px;
  transition: all 0.3s ease;
  animation: invitePulse 2s infinite ease-in-out;
}

.invite-btn-plus:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
  background: rgba(223, 177, 91, 0.08);
  box-shadow: 0 0 12px var(--color-gold-glow);
}

@keyframes invitePulse {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; border-color: rgba(223, 177, 91, 0.35); }
  100% { transform: scale(1); opacity: 0.8; }
}

/* --- SEAT OCCUPIED STATE --- */
.seat-player-state {
  position: absolute;
  width: 80px;
  height: 110px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 15;
  pointer-events: auto;
}

.slot-0 .seat-player-state { left: 77px; top: 67px; }
.slot-1 .seat-player-state { left: 52px; top: 65px; }
.slot-2 .seat-player-state { left: 34px; top: 34px; }
.slot-3 .seat-player-state { left: 56px; top: 29px; }
.slot-4 .seat-player-state { left: 68px; top: 2px; }
.slot-5 .seat-player-state { left: 81px; top: 2px; }
.slot-6 .seat-player-state { left: 100px; top: 29px; }
.slot-7 .seat-player-state { left: 116px; top: 34px; }
.slot-8 .seat-player-state { left: 100px; top: 65px; }

.avatar-frame {
  position: relative;
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.15);
  background: #0e121a;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  overflow: visible;
  z-index: 10;
}

.player-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

/* Active Turn progress circle */
.timer-progress-svg {
  position: absolute;
  top: -3px;
  left: -3px;
  width: 86px;
  height: 86px;
  transform: rotate(-90deg);
  pointer-events: none;
  z-index: 5;
}

.timer-bg {
  fill: none;
  stroke: rgba(0, 0, 0, 0.65);
  stroke-width: 4px;
}

.timer-bar {
  fill: none;
  stroke: var(--color-green);
  stroke-width: 4px;
  stroke-dasharray: 289;
  stroke-dashoffset: 289;
  stroke-linecap: round;
  transition: stroke-dashoffset 1s linear, stroke 0.3s;
}

/* Glowing timer borders */
.seat-player-state.active-turn .avatar-frame {
  border-color: var(--color-green);
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.6);
}

.player-hud {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: -12px;
  position: relative;
  z-index: 15;
  width: 80px;
  box-sizing: border-box;
}

.player-name {
  width: 80px;
  height: 20px;
  background: transparent;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-align: center;
  padding: 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: none;
}

.player-chips {
  width: 80px;
  height: 20px;
  background: rgb(0 0 0 / 30%);
  border: none;
  border-radius: 4px;
  color: #acaeb0;
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin-top: 1px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.chips-coin-icon {
  width: 16px;
  height: 16px;
  vertical-align: middle;
  margin-right: 2px;
  display: inline-block;
}

.player-hand-text {
  font-size: 8px;
  font-weight: 800;
  color: var(--color-gold);
  margin-top: 1px;
}

/* Small Acrylic Dealer Button with Custom Placements */
.dealer-button-badge {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #6a006f 0%, #300032 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  display: none;
  justify-content: center;
  align-items: center;
  border: 1.5px solid #dfb15b;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5), inset 0 1px 3px rgba(255,255,255,0.4);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
  font-family: var(--font-display);
  z-index: 21;
}

.dealer-button-badge.active {
  display: flex;
}

/* Push dealer badge towards the table side relative to each seat */
.slot-0 .dealer-button-badge {
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
}

.slot-1 .dealer-button-badge {
  top: 15px;
  right: -25px;
}

.slot-2 .dealer-button-badge {
  bottom: -15px;
  right: -10px;
}

.slot-3 .dealer-button-badge {
  bottom: -15px;
  left: -10px;
}

.slot-4 .dealer-button-badge {
  top: 15px;
  left: -25px;
}

.offline-badge {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: rgba(0,0,0,0.7);
  color: #fff;
  font-size: 10px;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  display: none;
  z-index: 12;
}

.offline-badge.active {
  display: flex;
}

/* --- PLAYER HOLE CARDS POSITIONING --- */
.player-cards-container {
  position: absolute;
  z-index: 25;
  display: flex;
  gap: 1px;
  justify-content: center;
  width: 73px;
  height: 50px;
}

.player-card {
  width: 36px;
  height: 50px;
  background: url("assets/images/3d_card_back_blue.png") no-repeat center;
  background-size: 100% 100%;
  border: none;
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  display: none;
}

.player-card.face-up {
  background: transparent;
  border: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 0;
}

.player-card.face-down {
  display: block;
}

/* Card flip scale keyframe animations */
@keyframes cardScaleFlipDefault {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0); }
  100% { transform: scaleX(1); }
}

.player-card.flip-anim {
  animation: cardScaleFlipDefault 0.2s ease-out;
}

/* Card offsets positioned inside each seat container to fall onto table */
.slot-0 .player-cards-container {
  left: 84px;
  top: 0px;
  width: 109px;
  height: 75px;
  position: absolute;
}

/* Slot 0 spectator mode */
.slot-0.spectator .player-cards-container {
  left: 60px;
  top: -88px;
  width: 73px;
  height: 50px;
}

.slot-0.spectator .static-cards-wrapper {
  width: 73px !important;
  height: 50px !important;
}

.slot-1 .player-cards-container {
  left: 60px;
  top: -70px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

.slot-2 .player-cards-container {
  left: 80px;
  top: -68px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

.slot-3 .player-cards-container {
  left: 110px;
  top: 50px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

.slot-4 .player-cards-container {
    left: 60px;
    top: 114px;
    width: 73px;
    height: 50px;
    display: flex;
    position: absolute;
}

.slot-5 .player-cards-container {
    left: -52px;
    top: 114px;
    width: 73px;
    height: 50px;
    display: flex;
    position: absolute;
}

.slot-6 .player-cards-container {
  left: -102px;
  top: 50px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

.slot-7 .player-cards-container {
  left: -72px;
  top: -68px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

.slot-8 .player-cards-container {
  left: -44px;
  top: -70px;
  width: 73px;
  height: 50px;
  display: flex;
  position: absolute;
}

/* Non-main player card size and blue back decoration */
.slot-1 .player-card,
.slot-2 .player-card,
.slot-3 .player-card,
.slot-4 .player-card,
.slot-5 .player-card,
.slot-6 .player-card,
.slot-7 .player-card,
.slot-8 .player-card {
  width: 36px !important;
  height: 50px !important;
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  border-radius: 2px;
}

.slot-1 .player-card.face-down,
.slot-2 .player-card.face-down,
.slot-3 .player-card.face-down,
.slot-4 .player-card.face-down,
.slot-5 .player-card.face-down,
.slot-6 .player-card.face-down,
.slot-7 .player-card.face-down,
.slot-8 .player-card.face-down {
  background-image: url("assets/images/3d_card_back_blue.png") !important;
  background-size: 100% 100%;
  border: 1px solid #979797;
  display: block;
}

/* Slot 0 hand cards styling - Flat & side-by-side */
.slot-0 .static-cards-wrapper {
  position: relative;
  width: 109px;
  height: 75px;
  display: flex;
  gap: 1px;
}

.slot-0 .player-card {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: 54px !important;
  height: 75px !important;
  border: 1px solid #fff100 !important; /* Yellow border for Slot 0 */
  border-radius: 3px;
  box-shadow: 0 2.5px 5px rgba(0, 0, 0, 0.4);
}

.slot-0.spectator .player-card {
  width: 36px !important;
  height: 50px !important;
  border: 1px solid #979797 !important;
}

/* Interactive Peek Area (Only Slot 0) */
.peek-cards-wrapper {
  position: relative;
  width: 160px;
  height: 110px;
  margin-left: 0;
  margin-top: 0;
  display: none;
  z-index: 30;
}

#peek-canvas {
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.peek-tip {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 8px;
  background: rgba(0,0,0,0.65);
  padding: 1px 6px;
  border-radius: 10px;
  color: var(--color-gold);
  border: 1.5px solid var(--color-border-gold);
  pointer-events: none;
  white-space: nowrap;
}

.static-cards-wrapper {
  display: flex;
  gap: 3px;
}

/* --- BET CHIPS VALUE TAGS --- */
.bet-chips-overlay {
  position: absolute;
  background: #0000005e;
  /* border: 1.5px solid #0055ff; */
  border-radius: 12px;
  display: none;
  align-items: center;
  justify-content: flex-start;
  padding: 0 6px;
  gap: 4px;
  box-shadow: none;
  z-index: 25;
  pointer-events: none;
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  box-sizing: border-box;
  height: 28px;
  width: auto;
}

.bet-chips-overlay.active {
  display: flex;
}

.bet-chips-overlay span.bet-amount {
  color: #ffffff;
}

/* Bet overlay positions as relative offsets inside parent seat container (.slot-X) */
#seat-bet-0 { left: 60px; top: -118px; }
#seat-bet-1 { left: 60px; top: -100px; }
#seat-bet-2 { left: 158px; top: -46px; }
#seat-bet-3 { left: 156px; top: 104px; }
#seat-bet-4 { left: 62px; top: 166px; }
#seat-bet-5 { left: -50px; top: 166px; }
#seat-bet-6 { left: -148px; top: 104px; }
#seat-bet-7 { left: -148px; top: -46px; }
#seat-bet-8 { left: -44px; top: -100px; }

/* --- STATUS BADGES & FOLD STATE --- */
.player-status-badge {
  background: var(--color-bg-dark);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1.5px 5px;
  border-radius: 4px;
  font-size: 8px;
  font-weight: bold;
  position: relative;
  margin-top: 5px;
  z-index: 20;
  display: inline-block;
  align-self: center;
}

.player-status-badge.ready {
  background: rgba(16, 185, 129, 0.2);
  border-color: var(--color-green);
  color: var(--color-green);
}

.player-status-badge.folded-badge {
  background: rgba(100, 100, 100, 0.15);
  border-color: #777;
  color: #bbb;
}

.player-status-badge.allin-badge {
  background: rgba(239, 68, 68, 0.2);
  border-color: var(--color-red);
  color: var(--color-red);
  animation: textBlink 1s infinite alternate;
}

@keyframes textBlink {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.seat-player-state.folded {
  opacity: 0.45;
  filter: grayscale(70%);
}

/* Lobby 10s Countdown Overlay */
.lobby-countdown-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 12;
  display: none;
}

.lobby-countdown-overlay.active {
  display: flex;
}

.countdown-seconds {
  font-size: 16px;
  font-weight: 800;
  color: #ff4500;
  animation: countdownPulse 1s infinite alternate;
}

@keyframes countdownPulse {
  0% { transform: scale(0.9); }
  100% { transform: scale(1.1); }
}

/* --- TURN PLAYER CONTROL DASHBOARD --- */
.pregame-actions-bar {
  display: flex;
  justify-content: center;
  padding: 8px;
  z-index: 60;
  height: 56px;
  position: absolute;
  bottom: 15px;
  width: 100%;
  left: 0;
  display: none;
}

.pregame-actions-bar.active {
  display: flex;
}

.game-actions-bar {
  background: rgba(10, 14, 22, 0.9);
  backdrop-filter: blur(15px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  padding: 8px 15px;
  z-index: 60;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  display: none;
}

.game-actions-bar.active {
  display: flex;
}

.action-buttons-row {
  display: flex;
  gap: 8px;
  width: 100%;
}

.btn-action {
  flex: 1;
  height: 44px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.01) 100%);
  color: var(--color-text-light);
  font-family: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: all 0.2s;
}

.btn-action:active {
  transform: scale(0.96);
}

.btn-action:disabled {
  opacity: 0.25;
  pointer-events: none;
}

.action-title {
  font-size: 13px;
  font-weight: 700;
}

.action-desc {
  font-size: 8.5px;
  color: var(--color-text-dim);
}

.action-fold { border-color: rgba(239, 68, 68, 0.2); }
.action-fold:active { background: rgba(239, 68, 68, 0.12); }

.action-check { border-color: rgba(16, 185, 129, 0.2); }
.action-check:active { background: rgba(16, 185, 129, 0.12); }

.action-call {
  background: linear-gradient(180deg, rgba(16, 185, 129, 0.18) 0%, rgba(16, 185, 129, 0.04) 100%);
  border-color: var(--color-green);
}
.action-call:active {
  background: rgba(16, 185, 129, 0.25);
}

.action-raise {
  background: linear-gradient(180deg, rgba(223, 177, 91, 0.18) 0%, rgba(223, 177, 91, 0.04) 100%);
  border-color: var(--color-gold);
}

.action-allin {
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.25) 0%, rgba(239, 68, 68, 0.08) 100%);
  border-color: var(--color-red);
}

/* Slider expansion */
.raise-slider-container {
  height: 0;
  overflow: hidden;
  transition: height 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.1), margin 0.25s;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.raise-slider-container.open {
  height: 40px;
  margin-top: 6px;
}

.raise-input-wrapper {
  display: flex;
  align-items: center;
  gap: 6px;
}

.raise-label {
  font-size: 10px;
  color: var(--color-text-dim);
}

.raise-number-input {
  width: 64px;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 4px;
  color: #fff;
  padding: 3px 5px;
  font-size: 12px;
  outline: none;
  font-family: inherit;
  font-weight: 700;
  text-align: center;
}

.slider-row {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 6px;
}

.slider-limit {
  font-size: 9px;
  color: var(--color-text-dim);
}

.raise-range-slider {
  flex: 1;
  height: 3px;
  border-radius: 2px;
  background: rgba(255,255,255,0.08);
  outline: none;
  -webkit-appearance: none;
}

/* Custom slider thumb icon */
.raise-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: url('assets/images/icon_3d_store_2d.png') no-repeat center;
  background-size: 18px 18px;
  background-color: var(--color-gold);
}

/* Showdown cards parallel side-by-side styling */
.player-cards-container.showdown-mode {
  width: 80px !important;
  display: flex !important;
  justify-content: center !important;
  gap: 4px !important;
}

.player-cards-container.showdown-mode .player-card {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  transform-origin: center center !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.6) !important;
  display: block !important;
}

/* For Slot 0 (main player) in showdown */
.slot-0 .player-cards-container.showdown-mode {
  width: 114px !important;
  gap: 4px !important;
}

.slot-0 .player-cards-container.showdown-mode .player-card {
  width: 55px !important;
  height: 75px !important;
}

/* --- BOTTOM SHEETS --- */
.sheet-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.65);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.sheet-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.bottom-sheet {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, 100%);
  width: 100%;
  max-width: 440px;
  background: rgba(18, 23, 35, 0.9);
  backdrop-filter: blur(15px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.6);
  transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.1);
  display: flex;
  flex-direction: column;
  max-height: 75%;
}

.sheet-backdrop.open .bottom-sheet {
  transform: translate(-50%, 0);
}

.sheet-header {
  padding: 10px 18px;
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  text-align: center;
}

.sheet-handle {
  width: 36px;
  height: 3px;
  background: rgba(255,255,255,0.18);
  border-radius: 2px;
  margin: 0 auto 8px auto;
}

.sheet-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.btn-close-sheet {
  position: absolute;
  right: 15px;
  top: 8px;
  background: none;
  border: none;
  color: var(--color-text-dim);
  font-size: 22px;
  cursor: pointer;
  outline: none;
}

.sheet-body {
  padding: 12px 18px;
  overflow-y: auto;
}

/* --- FRIEND LIST --- */
.friends-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.friend-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.02);
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.04);
}

.friend-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1f2535;
}

.friend-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.friend-name {
  font-size: 12px;
  font-weight: 600;
}

.friend-status {
  font-size: 9px;
  color: var(--color-text-dim);
  display: flex;
  align-items: center;
  gap: 3px;
}

.friend-status::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-green);
}

.btn-xs {
  padding: 5px 10px;
  font-size: 10.5px;
  border-radius: 4px;
}

.btn-invited {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--color-text-dim) !important;
  border: 1px solid rgba(255, 255, 255, 0.04) !important;
  cursor: default;
  pointer-events: none;
}

/* --- NUMERIC KEYPAD --- */
.room-id-digits {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-bottom: 15px;
}

.digit-box {
  width: 36px;
  height: 44px;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: bold;
  color: var(--color-gold);
}

.digit-box.filled {
  border-color: var(--color-gold);
  box-shadow: 0 0 8px var(--color-gold-glow);
}

.numeric-keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  width: 100%;
}

.keypad-key {
  height: 42px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.02);
  border-radius: 6px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  outline: none;
  font-family: inherit;
}

.keypad-key:active {
  background: rgba(255, 255, 255, 0.12);
}

.key-delete {
  background: rgba(239, 68, 68, 0.08);
  color: var(--color-red);
}

.key-confirm {
  background: linear-gradient(135deg, #f3d081 0%, #c4963f 100%);
  color: #2c1a0e;
}

/* --- TOASTS --- */
#toast-container {
  position: absolute;
  top: 55px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 300;
  display: flex;
  flex-direction: column;
  gap: 6px;
  pointer-events: none;
}

.toast {
  background: rgba(14, 18, 28, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  backdrop-filter: blur(8px);
  animation: toastFadeIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.2) forwards,
             toastFadeOut 0.3s ease 2.3s forwards;
}

@keyframes toastFadeIn {
  from { opacity: 0; transform: translateY(-8px) scale(0.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes toastFadeOut {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to { opacity: 0; transform: translateY(-8px) scale(0.9); }
}

/* --- OVERLAYS --- */
.fullscreen-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(10, 12, 16, 0.92);
  backdrop-filter: blur(12px);
  z-index: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

.fullscreen-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.overlay-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.spinner {
  width: 40px;
  height: 40px;
  border: 3.5px solid rgba(255,255,255,0.08);
  border-left-color: var(--color-gold);
  border-radius: 50%;
  animation: spin 1s infinite linear;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.overlay-content h2 {
  font-size: 16px;
  font-weight: 700;
}

.overlay-content p {
  font-size: 12px;
  color: var(--color-text-dim);
}

/* Cards Suits Colors */
.color-suit-h, .color-suit-d { color: #f43f5e; } /* hearts, diamonds (crimson red) */
.color-suit-c, .color-suit-s { color: #1e293b; } /* clubs, spades (charcoal black) */

/* High-fidelity Equity Badge */
.equity-badge {
  position: absolute;
  top: -4px;
  left: -4px;
  background: rgba(10, 14, 22, 0.9);
  backdrop-filter: blur(5px);
  border: 1px solid var(--color-gold);
  color: var(--color-gold);
  border-radius: 10px;
  font-size: 8.5px;
  font-weight: 800;
  padding: 2px 6px;
  z-index: 30;
  box-shadow: 0 2px 5px rgba(0,0,0,0.6);
  animation: bounceIn 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes bounceIn {
  0% { transform: scale(0.3); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* Hand Helper Badge */
.hand-helper-badge {
  position: absolute;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(8, 12, 20, 0.95);
  border: 1px solid rgba(212, 175, 55, 0.4);
  color: var(--color-gold);
  font-size: 9px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 12px;
  z-index: 30;
  white-space: nowrap;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.6);
  pointer-events: none;
  letter-spacing: 0.5px;
  text-shadow: 0 0 4px rgba(212, 175, 55, 0.4);
}
.hand-helper-badge.strength-strong {
  color: #fbbf24; /* Amber/Gold */
  border-color: #fbbf24;
}
.hand-helper-badge.strength-medium {
  color: #34d399; /* Emerald Green */
  border-color: #34d399;
}
.hand-helper-badge.strength-weak {
  color: #9ca3af; /* Gray */
  border-color: rgba(255,255,255,0.15);
}

/* Showdown Cards Highlighting */
.winning-card,
.player-cards-container.showdown-mode .player-card.winning-card {
  box-shadow: 0 0 15px #dfb15b, inset 0 0 8px #dfb15b !important;
  border-color: #dfb15b !important;
  transform: translateY(-8px) scale(1.05) !important;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
  z-index: 50 !important;
}
.losing-card,
.player-cards-container.showdown-mode .player-card.losing-card {
  opacity: 0.35 !important;
  filter: grayscale(40%) !important;
  transform: scale(0.95) !important;
  transition: all 0.4s ease !important;
}

/* Interactive Props Popover Menu */
.prop-menu-popover {
  position: absolute;
  bottom: 74px;
  left: 50%;
  transform: translateX(-50%) scale(0.7);
  background: rgba(10, 14, 22, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  padding: 4px 8px;
  display: flex;
  gap: 6px;
  z-index: 80;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
  opacity: 0;
  pointer-events: none;
  transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.prop-menu-popover.open {
  transform: translateX(-50%) scale(1);
  opacity: 1;
  pointer-events: auto;
}
.prop-btn {
  background: transparent;
  border: none;
  font-size: 18px;
  cursor: pointer;
  padding: 2px;
  border-radius: 50%;
  transition: transform 0.15s ease, background 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
}
.prop-btn:hover {
  transform: scale(1.25);
  background: rgba(255, 255, 255, 0.1);
}
.prop-btn:active {
  transform: scale(0.95);
}

/* Show chips icons */
.bet-chips-overlay .chip-icon, .pot-display .pot-icon {
  display: inline-block;
}

/* CSS Sprite Chips */
.chip-icon-denom, .chip-icon-small {
  width: 20px;
  height: 20px;
  background-image: url("assets/images/Chips_01.png");
  background-size: 120px 20px;
  background-repeat: no-repeat;
  display: inline-block;
  vertical-align: middle;
}

.chip-icon-small {
  transition: transform 0.1s ease-out;
}

.chip-denom-0, .chip-small-0 { background-position: 0px 0px; }
.chip-denom-1, .chip-small-1 { background-position: -20px 0px; }
.chip-denom-2, .chip-small-2 { background-position: -40px 0px; }
.chip-denom-3, .chip-small-3 { background-position: -60px 0px; }
.chip-denom-4, .chip-small-4 { background-position: -80px 0px; }
.chip-denom-5, .chip-small-5 { background-position: -100px 0px; }

@keyframes chipBreathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

.chip-icon-small.breathe {
  animation: chipBreathe 0.2s ease-out;
}

@keyframes panelBreathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); }
  100% { transform: scale(1); }
}

.player-chips.breathe {
  animation: panelBreathe 0.2s ease-out;
}

/* Rolling Odometer Number Styles */
.rolling-number {
  display: inline-flex;
  overflow: hidden;
  height: 20px;
  line-height: 20px;
  vertical-align: middle;
}

.digit-col {
  display: inline-block;
  position: relative;
  width: 10px;
  height: 20px;
  overflow: hidden;
}

.digit-strip {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.digit-strip span {
  height: 20px;
  line-height: 20px;
  display: block;
  text-align: center;
}

/* Verify Cards Modal Styling */
.verify-modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.verify-modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}
.verify-modal-container {
  width: 90%;
  max-width: 1100px;
  max-height: 85%;
  background: linear-gradient(135deg, rgba(20, 24, 33, 0.95) 0%, rgba(10, 12, 18, 0.98) 100%);
  border: 1.5px solid rgba(223, 177, 91, 0.4); /* Gold border */
  border-radius: 24px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8), inset 0 0 15px rgba(223, 177, 91, 0.1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.9);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.verify-modal-backdrop.open .verify-modal-container {
  transform: scale(1);
}
.verify-modal-header {
  padding: 20px 28px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.verify-modal-title {
  margin: 0;
  font-family: 'Outfit', 'Inter', sans-serif;
  font-size: 22px;
  font-weight: 700;
  background: linear-gradient(135deg, #f3e8ff 0%, #dfb15b 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 10px rgba(223, 177, 91, 0.2);
}
.verify-modal-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 28px;
  cursor: pointer;
  transition: color 0.2s, transform 0.2s;
}
.verify-modal-close:hover {
  color: #dfb15b;
  transform: scale(1.1);
}
.verify-modal-body {
  flex: 1;
  padding: 28px;
  overflow-y: auto;
}
.verify-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 16px;
}
.verify-card-item {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transition: all 0.3s ease;
}
.verify-card-item:hover {
  background: rgba(223, 177, 91, 0.05);
  border-color: rgba(223, 177, 91, 0.3);
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}

.verify-card-sprite {
  width: 50px;
  height: 66px;
  background-image: url('assets/images/poker.png');
  background-repeat: no-repeat;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
}

.verify-card-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.verify-card-name {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
}
.verify-card-meta {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
  font-family: monospace;
}

/* Spectate Mode Button */
.btn-action-spec {
  background: rgba(223, 177, 91, 0.15);
  border: 1px solid rgba(223, 177, 91, 0.4);
  border-radius: 12px;
  color: #dfb15b;
  font-size: 13px;
  font-weight: 600;
  padding: 6px 14px;
  cursor: pointer;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
}
.btn-action-spec:hover {
  background: rgba(223, 177, 91, 0.25);
  border-color: rgba(223, 177, 91, 0.6);
  box-shadow: 0 0 10px rgba(223, 177, 91, 0.3);
  transform: translateY(-1px);
}

/* Prevent Slot 0 spectator from expanding in showdown */
.slot-0.spectator .player-cards-container.showdown-mode {
  width: 73px !important;
  gap: 1px !important;
}
.slot-0.spectator .player-cards-container.showdown-mode .player-card {
  width: 36px !important;
  height: 50px !important;
}

/* Room List Page Styles */
.room-list-container::-webkit-scrollbar {
  width: 8px;
}
.room-list-container::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 4px;
}
.room-list-container::-webkit-scrollbar-thumb {
  background: rgba(212, 175, 55, 0.4);
  border-radius: 4px;
}
.room-list-container::-webkit-scrollbar-thumb:hover {
  background: rgba(212, 175, 55, 0.6);
}

.room-card {
  background: radial-gradient(circle at center, #1b263b 0%, #0d131f 100%);
  border: 1.5px solid rgba(212, 175, 55, 0.3);
  border-radius: 16px;
  height: 200px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  display: flex;
  flex-direction: column;
  padding: 15px;
  box-sizing: border-box;
}

.room-card:hover {
  transform: translateY(-5px);
  border-color: rgba(212, 175, 55, 0.8);
  box-shadow: 0 12px 30px rgba(212, 175, 55, 0.15);
}

.room-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.room-card-id {
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
}

.room-card-badge {
  background: rgba(212, 175, 55, 0.15);
  border: 1px solid rgba(212, 175, 55, 0.4);
  color: #dfb15b;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
}

.room-card-body {
  flex: 1;
  display: flex;
  gap: 15px;
  align-items: center;
}

/* Mini table visualization */
.mini-table {
  width: 100px;
  height: 60px;
  border-radius: 30px;
  background: radial-gradient(circle at center, #1b4d3e 0%, #0c2b20 100%);
  border: 4px solid #4a3319;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.6), 0 4px 10px rgba(0,0,0,0.5);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mini-table-inner {
  width: 86px;
  height: 46px;
  border-radius: 23px;
  border: 1px solid rgba(212, 175, 55, 0.3);
  position: relative;
}

.mini-seat {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  position: absolute;
  background: #444;
  border: 1px solid rgba(255,255,255,0.2);
}

.mini-seat.active {
  background: #d4af37;
  box-shadow: 0 0 5px #d4af37;
  border-color: #fff;
}

.room-card-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.room-info-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}

.room-info-label {
  color: #8fa0b5;
}

.room-info-value {
  color: #ffffff;
  font-weight: 600;
}

.room-card-footer {
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 8px;
}

.room-card-type {
  font-size: 12px;
  color: #8fa0b5;
}

.room-card-join-btn {
  background: linear-gradient(180deg, #dfb15b 0%, #b3893a 100%);
  border: none;
  border-radius: 12px;
  color: #0c121d;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 16px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(179,137,58,0.4);
  transition: all 0.2s;
}

.room-card-join-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 10px rgba(179,137,58,0.6);
}

.room-type-option {
  flex: 1;
  border: 2px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.02);
  border-radius: 16px;
  padding: 20px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Room options inside Create Table Modal */
.room-type-option:hover {
  border-color: rgba(223, 177, 91, 0.6) !important;
  transform: translateY(-2px);
}
.room-type-option.active {
  border-color: #dfb15b !important;
  background: rgba(223, 177, 91, 0.12) !important;
  box-shadow: 0 0 15px rgba(223, 177, 91, 0.2);
}




