/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/stats/stats.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************/
/* Stats Components Styles */

/* Player Stats Card */
.stats_statsCard__bCVLU {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 24px;
}

.stats_statsHeader__SaPm_ {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-color);
}

.stats_playerName__qGBCN {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.stats_lastSeen__LI998 {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.stats_statsGrid__bHTFO {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 24px;
  gap: 24px;
}

.stats_statBlock__JvQIK {
  background: var(--bg-card);
  border-radius: 8px;
  padding: 16px;
}

.stats_statBlockTitle__UTZmK {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 12px;
}

.stats_statRow__t6XhV {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
}

.stats_statLabel__kzMvG {
  font-size: 0.9rem;
  color: var(--text-secondary);
}

.stats_statValue__FBKrq {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
}

.stats_statValue__FBKrq.stats_positive__W1pmq {
  color: var(--accent-emerald);
}

.stats_statValue__FBKrq.stats_negative__yePm7 {
  color: var(--accent-rose);
}

/* Tables */
.stats_tableContainer__pPItG {
  overflow-x: auto;
}

.stats_table__wPbkY {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.stats_table__wPbkY th {
  text-align: left;
  padding: 12px 16px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  background: var(--bg-card);
  border-bottom: 1px solid var(--border-color);
}

.stats_table__wPbkY td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-primary);
}

.stats_table__wPbkY tbody tr:hover {
  background: var(--bg-highlight);
}

.stats_table__wPbkY tbody tr:last-child td {
  border-bottom: none;
}

.stats_rankColumn__60RPm {
  width: 80px;
}

.stats_rankCell__4SNxP {
  text-align: center;
}

.stats_rankNumber__I5cTn {
  color: var(--text-muted);
  font-weight: 500;
}

.stats_dateCell__GOQ3B {
  white-space: nowrap;
  color: var(--text-secondary);
}

.stats_gamesCell__iYD2I {
  color: var(--text-secondary);
}

.stats_teammateCell__5IdJ5 {
  color: var(--text-secondary);
  font-style: italic;
}

/* Result badges */
.stats_resultBadge___xQ1m {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
}

.stats_resultBadge___xQ1m.stats_win__7dsI4 {
  background: rgba(16, 185, 129, 0.2);
  color: var(--accent-emerald);
}

.stats_resultBadge___xQ1m.stats_loss__QMx1O {
  background: rgba(244, 63, 94, 0.2);
  color: var(--accent-rose);
}

/* Team colors */
.stats_teamNS__oNmjR {
  color: var(--accent-blue);
  font-weight: 600;
}

.stats_teamEW__RrRd6 {
  color: var(--accent-rose);
  font-weight: 600;
}

/* Medals */
.stats_medal__COWPe {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 700;
}

.stats_medal1__yZnKI {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #292524;
}

.stats_medal2__bCeNM {
  background: linear-gradient(135deg, #a8a29e 0%, #78716c 100%);
  color: #292524;
}

.stats_medal3__t3Kok {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
  color: white;
}

/* Player link */
.stats_playerLink__Wqb5T {
  background: none;
  border: none;
  color: var(--accent-blue);
  font: inherit;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
}

.stats_playerLink__Wqb5T:hover {
  text-decoration: underline;
}

/* Activity Feed */
.stats_activityFeed__HzdGy {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.stats_activityItem__hhOcE {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  background: var(--bg-card);
  border-radius: 8px;
}

.stats_activityIcon__Tnih6 {
  font-size: 1.2rem;
  flex-shrink: 0;
}

.stats_activityContent__9mJVE {
  flex: 1 1;
  min-width: 0;
}

.stats_activityDescription__Xqkj_ {
  font-size: 0.9rem;
  color: var(--text-primary);
  line-height: 1.4;
}

.stats_activityTime__43sR5 {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 4px;
}

/* States */
.stats_loadingState___vWht {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  gap: 16px;
  color: var(--text-muted);
}

.stats_spinner__LZBXd {
  width: 32px;
  height: 32px;
  border: 3px solid var(--border-color);
  border-top-color: var(--accent-blue);
  border-radius: 50%;
  animation: stats_spin__CNWex 1s linear infinite;
}

@keyframes stats_spin__CNWex {
  to {
    transform: rotate(360deg);
  }
}

/* Color utilities */
.stats_positive__W1pmq {
  color: var(--accent-emerald);
}

.stats_negative__yePm7 {
  color: var(--accent-rose);
}

/* Responsive */
@media (max-width: 768px) {
  .stats_statsCard__bCVLU {
    padding: 16px;
  }

  .stats_statsHeader__SaPm_ {
    flex-direction: column;
    gap: 8px;
  }

  .stats_statsGrid__bHTFO {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .stats_table__wPbkY th,
  .stats_table__wPbkY td {
    padding: 10px 12px;
  }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/EmptyState.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
/* EmptyState — personality-driven empty states */

.EmptyState_container__6NlCM {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 20px;
  gap: 12px;
}

.EmptyState_container__6NlCM.EmptyState_compact__Vn_yk {
  padding: 20px 16px;
  gap: 8px;
}

/* Illustration area */
.EmptyState_illustration__fFPEC {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  height: 64px;
}

.EmptyState_compact__Vn_yk .EmptyState_illustration__fFPEC {
  display: none;
}

/* ── Cards illustration: three fanned mini card backs ── */
.EmptyState_cards__SwdcE {
  position: relative;
  width: 80px;
  height: 56px;
}

.EmptyState_cardBack__xcZw_ {
  position: absolute;
  top: 0;
  left: 50%;
  width: 32px;
  height: 46px;
  border-radius: 4px;
  background:
    repeating-conic-gradient(
      from 0deg at 50% 50%,
      rgba(245, 158, 11, 0.07) 0deg 30deg,
      transparent 30deg 60deg
    ),
    linear-gradient(160deg, #5c2d0e 0%, #78350f 40%, #92400e 100%);
  border: 1px solid rgba(245, 158, 11, 0.25);
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.EmptyState_cardBack__xcZw_:nth-child(1) {
  transform: translateX(-50%) rotate(-15deg);
}

.EmptyState_cardBack__xcZw_:nth-child(2) {
  transform: translateX(-50%) rotate(0deg);
  z-index: 1;
}

.EmptyState_cardBack__xcZw_:nth-child(3) {
  transform: translateX(-50%) rotate(15deg);
}

/* ── Table illustration: circle with dashed border + suit symbols ── */
.EmptyState_table__ShtmX {
  position: relative;
  width: 64px;
  height: 64px;
}

.EmptyState_tableCircle__Br7nD {
  position: absolute;
  inset: 6px;
  border: 2px dashed var(--border-color);
  border-radius: 50%;
}

.EmptyState_tableSuit__bQTzu {
  position: absolute;
  font-size: 0.9rem;
  line-height: 1;
  opacity: 0.6;
}

/* Cardinal positions: top, right, bottom, left */
.EmptyState_tableSuit__bQTzu:nth-child(2) {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  color: var(--suit-black);
}

.EmptyState_tableSuit__bQTzu:nth-child(3) {
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: var(--suit-red);
}

.EmptyState_tableSuit__bQTzu:nth-child(4) {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  color: var(--suit-black);
}

.EmptyState_tableSuit__bQTzu:nth-child(5) {
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: var(--suit-red);
}

/* ── Trophy illustration: four suit symbols, leekha cards in gold ── */
.EmptyState_trophy__TU0cC {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.4rem;
  line-height: 1;
}

.EmptyState_trophySuit__4lSR1 {
  opacity: 0.5;
}

.EmptyState_trophySuit__4lSR1.EmptyState_leekha__upOFu {
  color: var(--accent-gold);
  opacity: 1;
  text-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}

/* ── Search illustration: single card back with "?" overlay ── */
.EmptyState_search__8TbkZ {
  position: relative;
  width: 40px;
  height: 56px;
}

.EmptyState_searchCard__XUul9 {
  width: 100%;
  height: 100%;
  border-radius: 5px;
  background:
    repeating-conic-gradient(
      from 0deg at 50% 50%,
      rgba(245, 158, 11, 0.07) 0deg 30deg,
      transparent 30deg 60deg
    ),
    linear-gradient(160deg, #5c2d0e 0%, #78350f 40%, #92400e 100%);
  border: 1px solid rgba(245, 158, 11, 0.25);
}

.EmptyState_searchQuestion__FUQDu {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--accent-gold);
  text-shadow: 0 0 8px rgba(245, 158, 11, 0.5);
}

/* ── Coffeepot illustration: suit symbols with warm amber glow ── */
.EmptyState_coffeepot__8FC2z {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.2rem;
  line-height: 1;
  padding: 8px;
}

.EmptyState_coffeepotGlow__fSZl_ {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  background: radial-gradient(
    ellipse at center,
    rgba(245, 158, 11, 0.12) 0%,
    rgba(245, 158, 11, 0.04) 50%,
    transparent 70%
  );
  pointer-events: none;
}

.EmptyState_coffeepotSuit__by7_d {
  position: relative;
  opacity: 0.5;
}

/* Title */
.EmptyState_title__LM_52 {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
  line-height: 1.3;
}

.EmptyState_compact__Vn_yk .EmptyState_title__LM_52 {
  font-size: 0.9rem;
}

/* Subtitle */
.EmptyState_subtitle__fS1_U {
  font-size: 0.88rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.4;
}

.EmptyState_compact__Vn_yk .EmptyState_subtitle__fS1_U {
  font-size: 0.82rem;
}

/* CTA button */
.EmptyState_action__T0bDA {
  margin-top: 8px;
  padding: 10px 20px;
  min-height: var(--touch-target-min);
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.EmptyState_actionPrimary__Qw2_n {
  background: var(--accent-emerald);
  color: white;
}

.EmptyState_actionPrimary__Qw2_n:hover {
  background: #047857;
  transform: translateY(-2px);
}

.EmptyState_actionSecondary__wQloK {
  background: var(--bg-highlight);
  color: var(--text-primary);
  border: 1px solid var(--border-color);
}

.EmptyState_actionSecondary__wQloK:hover {
  background: var(--border-color);
}

/* Subtle float animation for illustrations */
@keyframes EmptyState_emptyStateFloat__Efper {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

.EmptyState_illustration__fFPEC {
  animation: EmptyState_emptyStateFloat__Efper 3s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .EmptyState_illustration__fFPEC {
    animation: none;
  }
}

/* Mobile */
@media (max-width: 479px) {
  .EmptyState_container__6NlCM {
    padding: 32px 16px;
  }

  .EmptyState_compact__Vn_yk.EmptyState_container__6NlCM {
    padding: 16px 12px;
  }

  .EmptyState_title__LM_52 {
    font-size: 0.95rem;
  }

  .EmptyState_subtitle__fS1_U {
    font-size: 0.82rem;
  }
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/stats/LeaderboardPreview.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
.LeaderboardPreview_preview__Z8v11 {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 16px;
  width: 100%;
  max-width: 320px;
  margin-top: var(--spacing-md);
}

.LeaderboardPreview_header__l_4xD {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: 10px;
  text-align: center;
}

.LeaderboardPreview_loading__aByoi {
  text-align: center;
  font-size: 0.85rem;
  color: var(--text-muted);
  padding: 8px 0;
}

.LeaderboardPreview_list__yuSwM {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.LeaderboardPreview_row__1x2Fj {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 6px;
  transition: background 0.15s ease;
}

.LeaderboardPreview_row__1x2Fj:hover {
  background: var(--bg-card);
}

.LeaderboardPreview_row__1x2Fj.LeaderboardPreview_highlighted___Y0LI {
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.LeaderboardPreview_rank__3_MDK {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-muted);
  min-width: 30px;
  text-align: center;
}

.LeaderboardPreview_row__1x2Fj:nth-child(1) .LeaderboardPreview_rank__3_MDK {
  color: var(--accent-gold);
}

.LeaderboardPreview_row__1x2Fj:nth-child(2) .LeaderboardPreview_rank__3_MDK {
  color: #a8a29e;
}

.LeaderboardPreview_row__1x2Fj:nth-child(3) .LeaderboardPreview_rank__3_MDK {
  color: #d97706;
}

.LeaderboardPreview_name___kL84 {
  flex: 1 1;
  background: none;
  border: none;
  color: var(--text-primary);
  font: inherit;
  font-size: 0.85rem;
  padding: 0;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  transition: color 0.15s ease;
}

.LeaderboardPreview_name___kL84:hover {
  color: var(--accent-sky);
  text-decoration: underline;
}

.LeaderboardPreview_tier__SToGS {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-left: 4px;
  white-space: nowrap;
}

.LeaderboardPreview_value__tKDhX {
  font-size: 0.85rem;
  font-weight: 600;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  color: var(--accent-gold, #fbbf24);
  margin-left: auto;
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .LeaderboardPreview_preview__Z8v11 {
    padding: 12px;
    max-width: 100%;
  }

  .LeaderboardPreview_row__1x2Fj {
    padding: 5px 8px;
  }

  .LeaderboardPreview_rank__3_MDK,
  .LeaderboardPreview_name___kL84,
  .LeaderboardPreview_value__tKDhX {
    font-size: 0.8rem;
  }
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/CardView.module.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************/
/* Touch feedback styles */
.CardView_touched__NByQ9 {
  transform: scale(0.92) !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3) !important;
  transition: transform 0.05s ease, box-shadow 0.05s ease !important;
}

/* Ensure card has proper touch area on small screens */
@media (max-width: 479px) {
  .CardView_cardWrapper__Yqhjs {
    padding: 2px;
  }
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/HandView.module.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************/
.HandView_hand__xAsGW {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm);
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.HandView_cardRow__7NhmZ {
  display: flex;
  justify-content: center;
  position: relative;
  padding: var(--spacing-xs) var(--spacing-sm);
  max-width: 100%;
}

/* Mobile horizontal scroll mode */
.HandView_cardRow__7NhmZ.HandView_mobileScroll__M1oPi {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: var(--spacing-sm);
  justify-content: flex-start;
  width: 100%;
}

.HandView_cardRow__7NhmZ.HandView_mobileScroll__M1oPi::-webkit-scrollbar {
  display: none;
}

.HandView_cardWrapper__5_KPf {
  transition: margin 0.15s ease, transform 0.15s ease;
  position: relative;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
}

.HandView_cardWrapper__5_KPf.HandView_focused__6Ou1V::before {
  content: '';
  position: absolute;
  inset: -4px;
  border: 2px solid var(--accent-blue);
  border-radius: calc(var(--card-radius) + 4px);
  z-index: 1;
  pointer-events: none;
  animation: HandView_focusPulse__zGix5 1.5s ease-in-out infinite;
}

.HandView_cardWrapper__5_KPf.HandView_selectedWrapper__rw0cB {
  z-index: 2;
}

.HandView_cardWrapper__5_KPf.HandView_preSelected__X4Jjf {
  transform: translateY(-8px);
  z-index: 2;
}

.HandView_cardWrapper__5_KPf.HandView_draggingSource__0jOVY {
  opacity: 0.3;
  transition: opacity 0.15s ease;
}

@keyframes HandView_focusPulse__zGix5 {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
  }
  50% {
    box-shadow: 0 0 8px 2px rgba(59, 130, 246, 0.6);
  }
}

.HandView_passHint__7VFxX {
  font-size: var(--font-size-sm);
  color: var(--accent-gold);
  font-weight: 500;
  text-align: center;
}

/* Tablet and up */
@media (min-width: 768px) {
  .HandView_hand__xAsGW {
    padding: var(--spacing-md);
    gap: var(--spacing-md);
  }

  .HandView_cardRow__7NhmZ {
    padding: var(--spacing-sm) var(--spacing-lg);
  }
}

/* Desktop */
@media (min-width: 1024px) {
  .HandView_hand__xAsGW {
    padding: var(--spacing-lg);
  }

  .HandView_cardRow__7NhmZ {
    padding: var(--spacing-sm) var(--spacing-xl);
  }
}

/* Small phones - extra compact */
@media (max-width: 479px) {
  .HandView_hand__xAsGW {
    padding: var(--spacing-xs);
    gap: var(--spacing-xs);
    border-radius: 8px;
    overflow-x: hidden;
  }

  .HandView_cardRow__7NhmZ {
    padding: var(--spacing-xs);
  }

  .HandView_cardRow__7NhmZ.HandView_mobileScroll__M1oPi {
    overflow-x: auto;
  }

  .HandView_passHint__7VFxX {
    font-size: var(--font-size-xs);
  }
}

/* Deal animation */
@keyframes HandView_dealCardIn__7jX0_ {
  from {
    opacity: 0;
    transform: translateY(30px) scale(0.85);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.HandView_dealingCard__c5z2t {
  opacity: 0;
  animation: HandView_dealCardIn__7jX0_ 0.3s ease-out forwards;
}

@media (prefers-reduced-motion: reduce) {
  .HandView_dealingCard__c5z2t {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* Landscape mobile - horizontal hand layout */
@media (max-height: 500px) and (orientation: landscape) {
  .HandView_hand__xAsGW {
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .HandView_cardRow__7NhmZ {
    overflow-x: auto;
    justify-content: flex-start;
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/TurnTimer.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
.TurnTimer_timer__q2VQg {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 8px 12px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  transition: background 0.3s ease;
}

.TurnTimer_seconds__fHdXo {
  font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem);
  font-weight: bold;
  font-family: var(--font-mono);
  line-height: 1;
}

.TurnTimer_label__JvDGr {
  font-size: var(--font-size-game-badge);
  text-transform: uppercase;
  opacity: 0.7;
  letter-spacing: 0.5px;
}

.TurnTimer_warning__YBcE5 {
  background: rgba(180, 130, 0, 0.9);
}

.TurnTimer_critical__cl8yU {
  background: rgba(180, 50, 50, 0.9);
  animation: TurnTimer_pulse__f8lwo 0.5s ease-in-out infinite;
}

.TurnTimer_myTurn__C7NdD {
  border: 2px solid var(--accent-emerald);
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.4);
}

@keyframes TurnTimer_pulse__f8lwo {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.05);
  }
}

/* Responsive sizing */
@media (max-width: 479px) {
  .TurnTimer_timer__q2VQg {
    padding: 6px 10px;
  }
}

@media (min-width: 768px) {
  .TurnTimer_timer__q2VQg {
    padding: 10px 14px;
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/TableView.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
.TableView_table__TRMUV {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: var(--spacing-xs);
  background:
    /* Vignette: darker at edges for depth */
    radial-gradient(
      ellipse at center,
      transparent 40%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    /* SVG noise: micro-fiber felt texture */
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E"),
    /* Base felt color */
    linear-gradient(
      135deg,
      var(--table-felt-base) 0%,
      var(--table-felt-light) 50%,
      var(--table-felt-base) 100%
    );
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 4px 20px rgba(0, 0, 0, 0.3);
  border-radius: 12px;
  width: 100%;
  max-width: 100%;
  min-height: 200px;
}

/* Drop target glow when dragging a card over the table */
.TableView_table__TRMUV.TableView_dropTarget__3TCyA {
  border-color: rgba(16, 185, 129, 0.5);
  box-shadow:
    inset 0 0 30px rgba(16, 185, 129, 0.15),
    0 0 20px rgba(16, 185, 129, 0.3);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.TableView_waiting__n3Yex {
  color: var(--text-muted);
  font-size: var(--font-size-md);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.TableView_middleRow__rWOb0 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  width: 100%;
  justify-content: center;
  flex: 1 1;
}

.TableView_center__O0cUz {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 50%;
  border: 2px dashed var(--border-color);
  flex-shrink: 0;
}

.TableView_centerLabel__aK1qp {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  font-weight: 500;
}

.TableView_lastTrickBanner__UsVn4 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  animation: TableView_lastTrickFadeIn__GajYx 0.3s ease-out;
}

.TableView_lastTrickWinner__wlAum {
  font-size: var(--font-size-xs);
  font-weight: 600;
  color: var(--accent-emerald);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 56px;
  text-align: center;
  line-height: 1.1;
}

.TableView_lastTrickPoints__pZmui {
  font-size: var(--font-size-game-badge);
  font-weight: 700;
  color: var(--accent-rose);
  background: rgba(244, 63, 94, 0.15);
  padding: 0 4px;
  border-radius: 8px;
  line-height: 1.4;
}

@keyframes TableView_lastTrickFadeIn__GajYx {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

.TableView_seat__WbyaG {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-xs);
}

.TableView_seat__WbyaG.TableView_left__LHui9,
.TableView_seat__WbyaG.TableView_right__bNjDX {
  flex: 1 1;
  justify-content: center;
}

.TableView_seat__WbyaG.TableView_left__LHui9 {
  flex-direction: row;
}

.TableView_seat__WbyaG.TableView_right__bNjDX {
  flex-direction: row-reverse;
}

.TableView_seat__WbyaG.TableView_top__WtMwY {
  width: 100%;
  justify-content: center;
}

.TableView_seat__WbyaG.TableView_bottom__Gb4MP {
  width: 100%;
  justify-content: center;
  flex-direction: column-reverse;
}

.TableView_playerInfo__bpP8z {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--bg-card);
  border-radius: 6px;
  border: 3px solid transparent;
  box-shadow: 0 0 20px rgba(16, 185, 129, 0), 0 0 40px rgba(16, 185, 129, 0);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  min-width: 0;
  max-width: 100px;
}

@keyframes TableView_activePulse__dW4aJ {
  0%, 100% {
    box-shadow: 0 0 16px rgba(16, 185, 129, 0.4), 0 0 32px rgba(16, 185, 129, 0.15);
  }
  50% {
    box-shadow: 0 0 28px rgba(16, 185, 129, 0.6), 0 0 55px rgba(16, 185, 129, 0.25);
  }
}

@keyframes TableView_activeMyTurnPulse__5DdlE {
  0%, 100% {
    box-shadow: 0 0 22px rgba(16, 185, 129, 0.6), 0 0 45px rgba(16, 185, 129, 0.3);
  }
  50% {
    box-shadow: 0 0 40px rgba(16, 185, 129, 0.8), 0 0 70px rgba(16, 185, 129, 0.4);
  }
}

.TableView_playerInfo__bpP8z.TableView_active__w9sKd {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.08);
  animation: TableView_activePulse__dW4aJ 1.8s ease-in-out infinite;
}

.TableView_playerInfo__bpP8z.TableView_activeMyTurn__UGuOv {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.12);
  animation: TableView_activeMyTurnPulse__5DdlE 1.4s ease-in-out infinite;
}

.TableView_playerName___m6Qj {
  font-weight: 600;
  font-size: var(--font-size-game-name);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 90px;
}

.TableView_youBadge__pfFz7 {
  font-size: var(--font-size-game-badge);
  color: var(--accent-emerald);
  font-weight: 400;
}

.TableView_disconnected__0VuWJ {
  opacity: 0.5;
  border-color: var(--accent-rose);
  border-style: dashed;
}

.TableView_disconnectedLabel__AwFCR {
  font-size: var(--font-size-game-badge);
  color: var(--accent-rose);
  font-weight: 500;
  animation: TableView_pulse__1oOZh 1.5s ease-in-out infinite;
  white-space: nowrap;
}

.TableView_badges__Ie2d3 {
  display: flex;
  gap: 4px;
  align-items: center;
}

.TableView_dealerBadge__3sQw_ {
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  color: #292524;
  font-size: var(--font-size-game-badge);
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
  box-shadow: 0 0 6px rgba(251, 191, 36, 0.4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Team color tints */
.TableView_seat__WbyaG.TableView_teamNS__YTMaH .TableView_playerInfo__bpP8z {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, var(--bg-card) 100%);
}

.TableView_seat__WbyaG.TableView_teamEW__p2P2r .TableView_playerInfo__bpP8z {
  background: linear-gradient(135deg, rgba(244, 63, 94, 0.1) 0%, var(--bg-card) 100%);
}

/* Team + active: blend team gradient with emerald tint */
.TableView_seat__WbyaG.TableView_teamNS__YTMaH .TableView_playerInfo__bpP8z.TableView_active__w9sKd {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(59, 130, 246, 0.1) 50%, rgba(16, 185, 129, 0.06) 100%);
}

.TableView_seat__WbyaG.TableView_teamNS__YTMaH .TableView_playerInfo__bpP8z.TableView_activeMyTurn__UGuOv {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.18) 0%, rgba(59, 130, 246, 0.1) 50%, rgba(16, 185, 129, 0.1) 100%);
}

.TableView_seat__WbyaG.TableView_teamEW__p2P2r .TableView_playerInfo__bpP8z.TableView_active__w9sKd {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.12) 0%, rgba(244, 63, 94, 0.1) 50%, rgba(16, 185, 129, 0.06) 100%);
}

.TableView_seat__WbyaG.TableView_teamEW__p2P2r .TableView_playerInfo__bpP8z.TableView_activeMyTurn__UGuOv {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.18) 0%, rgba(244, 63, 94, 0.1) 50%, rgba(16, 185, 129, 0.1) 100%);
}

.TableView_turnBadge__qbqO7 {
  color: var(--accent-emerald);
  font-size: var(--font-size-game-label);
  opacity: 0;
  visibility: hidden;
}

.TableView_turnBadge__qbqO7.TableView_turnBadgeActive__DjoNw {
  opacity: 1;
  visibility: visible;
  animation: TableView_pulse__1oOZh 1s ease-in-out infinite;
}

.TableView_turnLabel__Mmypd {
  display: none;
  font-size: var(--font-size-game-badge);
  font-weight: 700;
  color: var(--accent-emerald);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.TableView_turnLabelActive__4aJFp {
  display: inline;
}

.TableView_turnLabelMyTurn__9GVVI {
  display: inline;
  animation: TableView_pulse__1oOZh 1s ease-in-out infinite;
}

@keyframes TableView_pulse__1oOZh {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.TableView_cardSlot__tGFFJ {
  min-width: var(--card-width);
  min-height: var(--card-height);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(var(--snap-rotate, 0deg));
}

/* Card play "snap" animations — rotation + scale settle (Lebanese card-slapping feel) */
@keyframes TableView_cardSnapFromTop__9ia_m {
  0% {
    transform: translateY(-40px) rotate(calc(var(--snap-rotate, 0deg) * -1.5)) scale(1.08);
    opacity: 0;
  }
  60% {
    transform: translateY(2px) rotate(calc(var(--snap-rotate, 0deg) * 1.1)) scale(0.97);
    opacity: 1;
  }
  100% {
    transform: translateY(0) rotate(var(--snap-rotate, 0deg)) scale(1);
    opacity: 1;
  }
}

@keyframes TableView_cardSnapFromBottom__UPkWB {
  0% {
    transform: translateY(40px) rotate(calc(var(--snap-rotate, 0deg) * -1.5)) scale(1.08);
    opacity: 0;
  }
  60% {
    transform: translateY(-2px) rotate(calc(var(--snap-rotate, 0deg) * 1.1)) scale(0.97);
    opacity: 1;
  }
  100% {
    transform: translateY(0) rotate(var(--snap-rotate, 0deg)) scale(1);
    opacity: 1;
  }
}

@keyframes TableView_cardSnapFromLeft___sLEH {
  0% {
    transform: translateX(-40px) rotate(calc(var(--snap-rotate, 0deg) * -1.5)) scale(1.08);
    opacity: 0;
  }
  60% {
    transform: translateX(2px) rotate(calc(var(--snap-rotate, 0deg) * 1.1)) scale(0.97);
    opacity: 1;
  }
  100% {
    transform: translateX(0) rotate(var(--snap-rotate, 0deg)) scale(1);
    opacity: 1;
  }
}

@keyframes TableView_cardSnapFromRight__GJqI1 {
  0% {
    transform: translateX(40px) rotate(calc(var(--snap-rotate, 0deg) * -1.5)) scale(1.08);
    opacity: 0;
  }
  60% {
    transform: translateX(-2px) rotate(calc(var(--snap-rotate, 0deg) * 1.1)) scale(0.97);
    opacity: 1;
  }
  100% {
    transform: translateX(0) rotate(var(--snap-rotate, 0deg)) scale(1);
    opacity: 1;
  }
}

.TableView_animateFromTop__bAHJI {
  animation: TableView_cardSnapFromTop__9ia_m 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.TableView_animateFromBottom__kUoii {
  animation: TableView_cardSnapFromBottom__UPkWB 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.TableView_animateFromLeft__hk4JM {
  animation: TableView_cardSnapFromLeft___sLEH 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.TableView_animateFromRight__VszER {
  animation: TableView_cardSnapFromRight__GJqI1 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Winner glow animation */
@keyframes TableView_winnerGlow__oAttR {
  0% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
  30% {
    box-shadow: 0 0 20px 8px rgba(16, 185, 129, 0.6);
  }
  100% {
    box-shadow: 0 0 10px 4px rgba(16, 185, 129, 0.3);
  }
}

.TableView_winnerGlow__oAttR {
  animation: TableView_winnerGlow__oAttR 0.8s ease-out forwards;
  border-radius: var(--card-radius);
}

/* Trick collection animations */
@keyframes TableView_collectToTop__psvGt {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-60px) scale(0.7); opacity: 0; }
}

@keyframes TableView_collectToBottom___wF22 {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(60px) scale(0.7); opacity: 0; }
}

@keyframes TableView_collectToLeft__XLDVR {
  0% { transform: translateX(0) scale(1); opacity: 1; }
  100% { transform: translateX(-60px) scale(0.7); opacity: 0; }
}

@keyframes TableView_collectToRight__f7mi2 {
  0% { transform: translateX(0) scale(1); opacity: 1; }
  100% { transform: translateX(60px) scale(0.7); opacity: 0; }
}

@keyframes TableView_collectShrink__bBvQ8 {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(0.5); opacity: 0; }
}

.TableView_collectToTop__psvGt { animation: TableView_collectToTop__psvGt 0.4s ease-in forwards; }
.TableView_collectToBottom___wF22 { animation: TableView_collectToBottom___wF22 0.4s ease-in forwards; }
.TableView_collectToLeft__XLDVR { animation: TableView_collectToLeft__XLDVR 0.4s ease-in forwards; }
.TableView_collectToRight__f7mi2 { animation: TableView_collectToRight__f7mi2 0.4s ease-in forwards; }
.TableView_collectShrink__bBvQ8 { animation: TableView_collectShrink__bBvQ8 0.4s ease-in forwards; }

/* Pass direction highlight */
@keyframes TableView_passGlow__YRg_g {
  0%, 100% {
    box-shadow: 0 0 12px rgba(251, 191, 36, 0.4), 0 0 24px rgba(251, 191, 36, 0.15);
  }
  50% {
    box-shadow: 0 0 20px rgba(251, 191, 36, 0.6), 0 0 40px rgba(251, 191, 36, 0.25);
  }
}

.TableView_passHighlight__uNzN5 {
  border-color: var(--accent-gold, #fbbf24) !important;
  animation: TableView_passGlow__YRg_g 1.8s ease-in-out infinite;
}

/* Pass arrow indicator in center */
.TableView_passArrowIndicator__fTuJs {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.TableView_passArrowIcon__SPoZs {
  font-size: 1.5rem;
  color: var(--accent-gold, #fbbf24);
  text-shadow: 0 0 8px rgba(251, 191, 36, 0.5);
}

/* Direction-specific bounce */
.TableView_passArrowTop__3BkCr .TableView_passArrowIcon__SPoZs {
  animation: TableView_passArrowBounceUp__Vz2_R 1.2s ease-in-out infinite;
}

.TableView_passArrowBottom__9j1Mx .TableView_passArrowIcon__SPoZs {
  animation: TableView_passArrowBounceDown__6U_II 1.2s ease-in-out infinite;
}

.TableView_passArrowLeft__v6Z9q .TableView_passArrowIcon__SPoZs {
  animation: TableView_passArrowBounceLeft__9seZP 1.2s ease-in-out infinite;
}

.TableView_passArrowRight__2pHS6 .TableView_passArrowIcon__SPoZs {
  animation: TableView_passArrowBounceRight__QbPs7 1.2s ease-in-out infinite;
}

@keyframes TableView_passArrowBounceUp__Vz2_R {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

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

@keyframes TableView_passArrowBounceLeft__9seZP {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
}

@keyframes TableView_passArrowBounceRight__QbPs7 {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

@media (prefers-reduced-motion: reduce) {
  .TableView_animateFromTop__bAHJI, .TableView_animateFromBottom__kUoii, .TableView_animateFromLeft__hk4JM, .TableView_animateFromRight__VszER {
    animation: none;
    transform: none;
  }

  .TableView_cardSlot__tGFFJ {
    transform: none;
  }

  .TableView_collectToTop__psvGt, .TableView_collectToBottom___wF22, .TableView_collectToLeft__XLDVR, .TableView_collectToRight__f7mi2, .TableView_collectShrink__bBvQ8 {
    animation: none;
  }

  .TableView_playerInfo__bpP8z.TableView_active__w9sKd {
    animation: none;
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.5), 0 0 40px rgba(16, 185, 129, 0.2);
  }

  .TableView_playerInfo__bpP8z.TableView_activeMyTurn__UGuOv {
    animation: none;
    box-shadow: 0 0 30px rgba(16, 185, 129, 0.7), 0 0 55px rgba(16, 185, 129, 0.35);
  }

  .TableView_turnLabelMyTurn__9GVVI {
    animation: none;
  }

  .TableView_passHighlight__uNzN5 {
    animation: none;
    box-shadow: 0 0 16px rgba(251, 191, 36, 0.5), 0 0 32px rgba(251, 191, 36, 0.2);
  }

  .TableView_passArrowIcon__SPoZs {
    animation: none;
  }

  .TableView_passArrowTop__3BkCr .TableView_passArrowIcon__SPoZs,
  .TableView_passArrowBottom__9j1Mx .TableView_passArrowIcon__SPoZs,
  .TableView_passArrowLeft__v6Z9q .TableView_passArrowIcon__SPoZs,
  .TableView_passArrowRight__2pHS6 .TableView_passArrowIcon__SPoZs {
    animation: none;
  }

  .TableView_lastTrickBanner__UsVn4 {
    animation: none;
  }
}

/* Tablet and up */
@media (min-width: 768px) {
  .TableView_table__TRMUV {
    padding: var(--spacing-sm);
    gap: var(--spacing-xs);
    min-width: 350px;
    max-width: 450px;
    min-height: 240px;
  }

  .TableView_middleRow__rWOb0 {
    gap: var(--spacing-sm);
  }

  .TableView_center__O0cUz {
    width: 80px;
    height: 80px;
  }

  .TableView_centerLabel__aK1qp {
    font-size: var(--font-size-sm);
  }

  .TableView_lastTrickWinner__wlAum {
    max-width: 72px;
  }

  .TableView_playerInfo__bpP8z {
    padding: var(--spacing-sm) var(--spacing-md);
    max-width: 120px;
  }

  .TableView_playerName___m6Qj {
    max-width: 100px;
  }

  .TableView_dealerBadge__3sQw_ {
    padding: 2px 6px;
  }
}

/* Desktop */
@media (min-width: 1024px) {
  .TableView_table__TRMUV {
    padding: var(--spacing-md);
    min-width: 400px;
    max-width: 500px;
    min-height: 280px;
  }

  .TableView_center__O0cUz {
    width: 80px;
    height: 80px;
  }

  .TableView_centerLabel__aK1qp {
    font-size: var(--font-size-base);
  }

  .TableView_lastTrickWinner__wlAum {
    max-width: 90px;
  }

  .TableView_playerInfo__bpP8z {
    padding: var(--spacing-sm) var(--spacing-md);
    max-width: 140px;
  }

  .TableView_playerName___m6Qj {
    max-width: 120px;
  }

  .TableView_dealerBadge__3sQw_ {
    padding: 2px 8px;
  }
}

.TableView_yourTurnSlot__fnm28 {
  display: none;
  font-size: var(--font-size-xs);
  color: var(--accent-emerald);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  animation: TableView_pulse__1oOZh 1.5s ease-in-out infinite;
}

/* Small phones */
@media (max-width: 479px) {
  .TableView_table__TRMUV {
    padding: var(--spacing-sm);
    gap: var(--spacing-xs);
    border-radius: 8px;
  }

  .TableView_center__O0cUz {
    width: 50px;
    height: 50px;
  }

  .TableView_playerInfo__bpP8z {
    padding: var(--spacing-xs);
    max-width: 100px;
  }

  .TableView_playerName___m6Qj {
    max-width: 85px;
  }

  .TableView_youBadge__pfFz7 {
    display: none;
  }

  .TableView_dealerBadge__3sQw_ {
    padding: 1px 4px;
  }

  .TableView_seat__WbyaG.TableView_left__LHui9,
  .TableView_seat__WbyaG.TableView_right__bNjDX {
    flex-direction: column;
    align-items: center;
  }

  .TableView_seat__WbyaG.TableView_left__LHui9 {
    flex-direction: column;
  }

  .TableView_yourTurnSlot__fnm28 {
    display: block;
  }

  .TableView_turnLabel__Mmypd, .TableView_turnBadge__qbqO7 {
    display: none !important;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .TableView_table__TRMUV {
    aspect-ratio: auto;
    min-height: 150px;
    max-height: 45vh;
  }

  .TableView_seat__WbyaG.TableView_top__WtMwY,
  .TableView_seat__WbyaG.TableView_bottom__Gb4MP {
    flex-direction: row;
    gap: var(--spacing-sm);
  }
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/Scoreboard.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
.Scoreboard_scoreboard__TUs9Y {
  min-width: 200px;
  max-width: 280px;
}

.Scoreboard_empty__TtDtO {
  color: var(--text-muted);
  font-size: var(--font-size-sm);
  text-align: center;
  padding: 20px 0;
}

.Scoreboard_team__nVH3j {
  margin-bottom: 8px;
}

.Scoreboard_teamLabel__kkV_T {
  font-size: var(--font-size-game-label);
  font-weight: 600;
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--border-color);
}

.Scoreboard_playerRow__LyMcu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 8px;
  border-radius: 6px;
  margin-bottom: 4px;
}

.Scoreboard_playerRow__LyMcu.Scoreboard_isMe__KLtis {
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.3);
}

.Scoreboard_name__Z9Bmk {
  font-size: var(--font-size-game-name);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.Scoreboard_position__YBhVt {
  font-size: var(--font-size-game-badge);
  color: var(--text-muted);
}

.Scoreboard_score__AeTzs {
  font-weight: 700;
  font-size: var(--font-size-lg);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.Scoreboard_score__AeTzs.Scoreboard_bust__wdWNG {
  color: var(--accent-rose);
}

.Scoreboard_delta__DmzT2 {
  font-size: var(--font-size-game-label);
  font-weight: 500;
  color: var(--accent-rose);
  background: rgba(244, 63, 94, 0.15);
  padding: 2px 6px;
  border-radius: 4px;
  animation: Scoreboard_scorePop__O00Ml 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes Scoreboard_scorePop__O00Ml {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  60% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.Scoreboard_divider__FCigB {
  height: 1px;
  background: var(--border-color);
  margin: 12px 0;
}

.Scoreboard_scoreLimit__IAzlZ {
  text-align: center;
  font-size: var(--font-size-xs);
  color: var(--accent-gold);
  margin-top: 12px;
  padding-top: 8px;
  border-top: 1px dashed var(--border-color);
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/TrickHistory.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.TrickHistory_history__4w24C {
  min-width: 200px;
  max-height: 400px;
  overflow-y: auto;
}

.TrickHistory_trickList__Gdq_t {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.TrickHistory_trick__rmJH6 {
  background: var(--bg-card);
  border-radius: 8px;
  padding: 10px;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
}

.TrickHistory_trick__rmJH6:hover {
  background: var(--bg-highlight);
}

.TrickHistory_trick__rmJH6.TrickHistory_expanded__rHtIX {
  background: var(--bg-highlight);
}

.TrickHistory_trickHeader__F9HX4 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: var(--font-size-sm);
}

.TrickHistory_trickNum__AIufN {
  color: var(--text-muted);
  font-weight: 500;
}

.TrickHistory_winner__iU4dH {
  color: var(--accent-emerald);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}

.TrickHistory_points__bAQeo {
  background: rgba(244, 63, 94, 0.2);
  color: var(--accent-rose);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: var(--font-size-game-badge);
}

.TrickHistory_cards__i5sAc {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.TrickHistory_miniCard__fG_Pb {
  transform: scale(0.7);
  transform-origin: top left;
}

.TrickHistory_expandIcon__kzTcj {
  font-size: var(--font-size-game-badge);
  color: var(--text-muted);
  margin-left: auto;
}

.TrickHistory_expandedContent__DsgWB {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--border-color);
}

.TrickHistory_expandedCard__oFtXv {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 8px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.2);
}

.TrickHistory_expandedCard__oFtXv.TrickHistory_winnerCard__q44Px {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.3);
}

.TrickHistory_playerLabel__J_W6T {
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  min-width: 60px;
}

.TrickHistory_expandedCard__oFtXv.TrickHistory_winnerCard__q44Px .TrickHistory_playerLabel__J_W6T {
  color: var(--accent-emerald);
  font-weight: 600;
}

/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/auth/AccountPromptBanner.module.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************/
.AccountPromptBanner_banner__gB_mJ {
  background: rgba(251, 191, 36, 0.08);
  border: 1px solid rgba(251, 191, 36, 0.2);
  border-radius: 10px;
  padding: 16px 20px;
  text-align: center;
  margin-bottom: 16px;
  animation: AccountPromptBanner_fadeSlideIn__3WtwV 0.4s ease-out;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

@keyframes AccountPromptBanner_fadeSlideIn__3WtwV {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .AccountPromptBanner_banner__gB_mJ {
    animation: none;
  }
}

.AccountPromptBanner_message__H98rq {
  color: var(--text-secondary);
  font-size: 0.875rem;
}

.AccountPromptBanner_signUpBtn__cxZLq {
  padding: 8px 20px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #292524;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.25);
}

.AccountPromptBanner_signUpBtn__cxZLq:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(251, 191, 36, 0.35);
}

/* Mobile */
@media (max-width: 479px) {
  .AccountPromptBanner_banner__gB_mJ {
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: var(--spacing-sm);
  }

  .AccountPromptBanner_message__H98rq {
    font-size: var(--font-size-xs);
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/GameOverModal.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.GameOverModal_overlay__vouem {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  animation: GameOverModal_fadeIn__9yqOD 0.3s ease;
}

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

.GameOverModal_modal__CqcTf {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px 40px;
  max-width: 400px;
  width: 90%;
  text-align: center;
  animation: GameOverModal_slideUp__OhNHU 0.3s ease;
  max-height: 90dvh;
  overflow-y: auto;
}

@keyframes GameOverModal_slideUp__OhNHU {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Entrance animation: scale in (for title) */
@keyframes GameOverModal_scaleIn__FzOhd {
  from {
    opacity: 0;
    transform: scale(0.6);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Entrance animation: slide in from left (for score rows) */
@keyframes GameOverModal_slideInLeft__LrjHL {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Entrance animation: bounce in (for buttons) */
@keyframes GameOverModal_bounceIn__TcwqI {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
  70% {
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Staggered entrance classes */
.GameOverModal_entranceScale__uOKi8 {
  animation: GameOverModal_scaleIn__FzOhd 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  animation-delay: 0.1s;
}

.GameOverModal_entranceStagger1__YG3g2 {
  opacity: 0;
  animation: GameOverModal_slideUp__OhNHU 0.4s ease-out both;
  animation-delay: 0.2s;
}

.GameOverModal_entranceStagger2__Gox9r {
  opacity: 0;
  animation: GameOverModal_slideUp__OhNHU 0.4s ease-out both;
  animation-delay: 0.35s;
}

.GameOverModal_entranceStagger2b__EcBvc {
  opacity: 0;
  animation: GameOverModal_slideUp__OhNHU 0.4s ease-out both;
  animation-delay: 0.5s;
}

.GameOverModal_entranceStagger3__yXBme {
  opacity: 0;
  animation: GameOverModal_bounceIn__TcwqI 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  animation-delay: 0.8s;
}

.GameOverModal_entranceSlide__Ec_4K {
  opacity: 0;
  animation: GameOverModal_slideInLeft__LrjHL 0.3s ease-out both;
}

.GameOverModal_title__rK_tF {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 24px;
  color: var(--accent-gold);
}

.GameOverModal_result__0UABG {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 24px;
}

.GameOverModal_vs__uMXd3 {
  color: var(--text-muted);
  font-size: 0.875rem;
}

.GameOverModal_teamResult__4b_pK {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 20px;
  border-radius: 8px;
}

.GameOverModal_teamResult__4b_pK.GameOverModal_won__iQk_d {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.3);
}

.GameOverModal_teamResult__4b_pK.GameOverModal_lost__17aVt {
  background: rgba(244, 63, 94, 0.15);
  border: 1px solid rgba(244, 63, 94, 0.3);
}

.GameOverModal_teamLabel__b1_Up {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.GameOverModal_teamStatus__8H_HY {
  font-weight: 700;
  font-size: 1rem;
}

.GameOverModal_teamResult__4b_pK.GameOverModal_won__iQk_d .GameOverModal_teamStatus__8H_HY {
  color: var(--accent-emerald);
}

.GameOverModal_teamResult__4b_pK.GameOverModal_lost__17aVt .GameOverModal_teamStatus__8H_HY {
  color: var(--accent-rose);
}

.GameOverModal_scores__G8nf_ {
  background: var(--bg-card);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 20px;
}

.GameOverModal_scoreRow__cSqi0 {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 0.9rem;
}

.GameOverModal_scoreRow__cSqi0 span:last-child {
  font-weight: 700;
}

.GameOverModal_scoreIcon__1kcZ0 {
  display: inline-block;
  width: 1.4em;
  text-align: center;
  font-size: 0.85em;
}

.GameOverModal_posLabel__t4qbN {
  margin-left: 6px;
  color: var(--text-muted);
  font-size: 0.8em;
}

.GameOverModal_highestScorer__O3EWW {
  background: rgba(244, 63, 94, 0.1);
  border-radius: 4px;
  padding-left: 4px;
  padding-right: 4px;
}

.GameOverModal_scoreRow__cSqi0 .GameOverModal_bust__KH5zA {
  color: var(--accent-rose);
}

.GameOverModal_divider__L0C2H {
  height: 1px;
  background: var(--border-color);
  margin: 8px 0;
}

.GameOverModal_highlight__Wt44g {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.1), rgba(255, 215, 0, 0.05));
  border: 1px solid rgba(255, 215, 0, 0.25);
  border-radius: 8px;
  padding: 10px 16px;
  margin-bottom: 16px;
  font-size: 0.9rem;
  color: var(--accent-gold);
  text-align: center;
}

/* Mini-stats section */
.GameOverModal_miniStats__KzXf4 {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 10px 16px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
}

.GameOverModal_miniStatLine___motF {
  font-size: 0.85rem;
  color: var(--text-secondary);
}

.GameOverModal_miniStatLine___motF:first-child {
  font-weight: 600;
  color: var(--text-primary);
}

.GameOverModal_miniStatLoss__f5A9N {
  color: var(--accent-rose);
}

.GameOverModal_reason__LSvsu {
  color: var(--text-secondary);
  font-size: 0.875rem;
  margin-bottom: 20px;
}

.GameOverModal_buttonRow__6EWlF {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 4px;
}

.GameOverModal_downloadBtn__4iLcP {
  padding: 10px 20px;
  background: var(--bg-card);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.GameOverModal_downloadBtn__4iLcP:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--accent-gold);
}

.GameOverModal_findNewGameBtn__cdBK4 {
  padding: 10px 20px;
  background: var(--bg-card);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.GameOverModal_findNewGameBtn__cdBK4:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--accent-emerald);
}

.GameOverModal_findNewGameBtn__cdBK4:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.GameOverModal_buttonRow__6EWlF button {
  min-height: var(--touch-target-min);
}

.GameOverModal_playAgainWrapper__i_ZmV {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1;
}

.GameOverModal_playAgainWrapper__i_ZmV .GameOverModal_btn-primary__sJYcC {
  width: 100%;
}

.GameOverModal_playAgainHint__SgAVJ {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 4px;
}

.GameOverModal_iconBtn__O4DP0 {
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 1rem;
  flex-shrink: 0;
  min-height: auto;
}

.GameOverModal_iconBtn__O4DP0:hover {
  background: var(--bg-card);
  color: var(--text-primary);
}

/* Reduced motion: instant display */
@media (prefers-reduced-motion: reduce) {
  .GameOverModal_entranceScale__uOKi8,
  .GameOverModal_entranceStagger1__YG3g2,
  .GameOverModal_entranceStagger2__Gox9r,
  .GameOverModal_entranceStagger2b__EcBvc,
  .GameOverModal_entranceStagger3__yXBme,
  .GameOverModal_entranceSlide__Ec_4K {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .GameOverModal_overlay__vouem {
    padding: var(--spacing-sm);
    align-items: flex-end;
  }

  .GameOverModal_modal__CqcTf {
    padding: var(--spacing-lg);
    border-radius: 12px 12px 0 0;
    width: 100%;
    max-width: 100%;
  }

  .GameOverModal_title__rK_tF {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-md);
  }

  .GameOverModal_result__0UABG {
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
  }

  .GameOverModal_teamResult__4b_pK {
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .GameOverModal_teamLabel__b1_Up {
    font-size: var(--font-size-xs);
  }

  .GameOverModal_teamStatus__8H_HY {
    font-size: var(--font-size-sm);
  }

  .GameOverModal_scores__G8nf_ {
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
  }

  .GameOverModal_scoreRow__cSqi0 {
    font-size: var(--font-size-sm);
    padding: var(--spacing-xs) 0;
  }

  .GameOverModal_miniStats__KzXf4 {
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
  }

  .GameOverModal_miniStatLine___motF {
    font-size: var(--font-size-xs);
  }

  .GameOverModal_reason__LSvsu {
    font-size: var(--font-size-xs);
    margin-bottom: var(--spacing-md);
  }

  .GameOverModal_buttonRow__6EWlF {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .GameOverModal_modal__CqcTf {
    padding: var(--spacing-xl);
    max-width: 360px;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .GameOverModal_overlay__vouem {
    align-items: center;
  }

  .GameOverModal_modal__CqcTf {
    border-radius: 12px;
    max-height: 90vh;
    overflow-y: auto;
    padding: var(--spacing-md) var(--spacing-lg);
  }

  .GameOverModal_title__rK_tF {
    margin-bottom: var(--spacing-sm);
  }

  .GameOverModal_result__0UABG {
    margin-bottom: var(--spacing-sm);
  }

  .GameOverModal_scores__G8nf_ {
    margin-bottom: var(--spacing-sm);
  }
}

/*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/CelebrationOverlay.module.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************/
.CelebrationOverlay_overlay__AlT3M {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 110;
  pointer-events: none;
}

/* Victory */
.CelebrationOverlay_victory__JVDNY {
  background: radial-gradient(ellipse at center, rgba(16, 185, 129, 0.15) 0%, rgba(0, 0, 0, 0.85) 70%);
  animation: CelebrationOverlay_victoryFlash__gjICi 0.6s ease-out;
}

@keyframes CelebrationOverlay_victoryFlash__gjICi {
  0% {
    background: radial-gradient(ellipse at center, rgba(255, 215, 0, 0.4) 0%, rgba(0, 0, 0, 0.6) 70%);
  }
  100% {
    background: radial-gradient(ellipse at center, rgba(16, 185, 129, 0.15) 0%, rgba(0, 0, 0, 0.85) 70%);
  }
}

/* Defeat */
.CelebrationOverlay_defeat__8dpo5 {
  background: rgba(0, 0, 0, 0.8);
  animation: CelebrationOverlay_defeatFade__iUBSl 0.4s ease-out;
}

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

.CelebrationOverlay_content__QPAX_ {
  text-align: center;
  animation: CelebrationOverlay_contentPop__NZewj 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
  animation-delay: 0.1s;
}

@keyframes CelebrationOverlay_contentPop__NZewj {
  from {
    opacity: 0;
    transform: scale(0.5);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.CelebrationOverlay_titleVictory__UfvCf {
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 800;
  color: var(--accent-gold);
  text-shadow: 0 0 40px rgba(255, 215, 0, 0.4);
  margin: 0 0 8px;
}

.CelebrationOverlay_titleDefeat__jft7k {
  font-family: var(--font-display);
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--text-secondary);
  opacity: 0.8;
  margin: 0 0 8px;
}

.CelebrationOverlay_subtitle__GMw24 {
  font-size: 1rem;
  color: var(--text-muted);
  margin: 0;
}

/* CSS-only confetti */
.CelebrationOverlay_confettiContainer__1di9q {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.CelebrationOverlay_confettiPiece__0Pd5N {
  position: absolute;
  top: -10%;
  width: 10px;
  height: 10px;
  opacity: 0;
  animation: CelebrationOverlay_confettiFall__8wC6K 2.5s ease-in forwards;
}

@keyframes CelebrationOverlay_confettiFall__8wC6K {
  0% {
    opacity: 1;
    transform: translateY(0) rotate(0deg) translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateY(110vh) rotate(720deg) translateX(40px);
  }
}

/* Stagger each piece */
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(1) { left: 5%; animation-delay: 0.0s; background: #ffd700; width: 8px; height: 8px; border-radius: 50%; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(2) { left: 12%; animation-delay: 0.15s; background: #10b981; width: 10px; height: 6px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(3) { left: 20%; animation-delay: 0.05s; background: #f59e0b; width: 6px; height: 10px; border-radius: 2px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(4) { left: 28%; animation-delay: 0.25s; background: #ffd700; width: 10px; height: 10px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(5) { left: 35%; animation-delay: 0.1s; background: #10b981; width: 8px; height: 8px; border-radius: 50%; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(6) { left: 43%; animation-delay: 0.2s; background: #f59e0b; width: 12px; height: 6px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(7) { left: 50%; animation-delay: 0.08s; background: #ffd700; width: 6px; height: 12px; border-radius: 2px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(8) { left: 57%; animation-delay: 0.3s; background: #10b981; width: 10px; height: 8px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(9) { left: 64%; animation-delay: 0.12s; background: #f59e0b; width: 8px; height: 8px; border-radius: 50%; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(10) { left: 72%; animation-delay: 0.22s; background: #ffd700; width: 10px; height: 6px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(11) { left: 80%; animation-delay: 0.03s; background: #10b981; width: 6px; height: 10px; border-radius: 2px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(12) { left: 87%; animation-delay: 0.18s; background: #f59e0b; width: 10px; height: 10px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(13) { left: 15%; animation-delay: 0.35s; background: #ffd700; width: 8px; height: 6px; border-radius: 50%; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(14) { left: 45%; animation-delay: 0.28s; background: #10b981; width: 12px; height: 8px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(15) { left: 68%; animation-delay: 0.4s; background: #f59e0b; width: 8px; height: 10px; border-radius: 2px; }
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(16) { left: 92%; animation-delay: 0.32s; background: #ffd700; width: 10px; height: 8px; }

/* Alternate horizontal drift direction for odd/even pieces */
.CelebrationOverlay_confettiPiece__0Pd5N:nth-child(even) {
  animation-name: CelebrationOverlay_confettiFallLeft__nejh6;
}

@keyframes CelebrationOverlay_confettiFallLeft__nejh6 {
  0% {
    opacity: 1;
    transform: translateY(0) rotate(0deg) translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateY(110vh) rotate(-540deg) translateX(-30px);
  }
}

/* Reduced motion: no animations, auto-dismiss handled by component */
@media (prefers-reduced-motion: reduce) {
  .CelebrationOverlay_overlay__AlT3M,
  .CelebrationOverlay_content__QPAX_,
  .CelebrationOverlay_confettiPiece__0Pd5N {
    animation: none;
  }

  .CelebrationOverlay_victory__JVDNY {
    background: rgba(0, 0, 0, 0.85);
  }

  .CelebrationOverlay_content__QPAX_ {
    opacity: 1;
    transform: none;
  }

  .CelebrationOverlay_confettiPiece__0Pd5N {
    display: none;
  }
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .CelebrationOverlay_titleVictory__UfvCf {
    font-size: 2.25rem;
  }

  .CelebrationOverlay_titleDefeat__jft7k {
    font-size: 1.75rem;
  }

  .CelebrationOverlay_subtitle__GMw24 {
    font-size: 0.875rem;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .CelebrationOverlay_titleVictory__UfvCf {
    font-size: 2rem;
  }

  .CelebrationOverlay_titleDefeat__jft7k {
    font-size: 1.5rem;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/ScoreReveal.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
/* Score Reveal Animations */

/* Phase 1: Player rows slide in */
@keyframes ScoreReveal_slideInLeft__QA44x {
  from {
    opacity: 0;
    transform: translateX(-24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Phase 2: Score count flash */
@keyframes ScoreReveal_countFlash__Gd5xb {
  0% {
    color: var(--accent-gold);
    transform: scale(1.15);
  }
  100% {
    color: inherit;
    transform: scale(1);
  }
}

/* Phase 3: Total score flash */
@keyframes ScoreReveal_totalFlash__8Daem {
  0% {
    background: rgba(251, 191, 36, 0.3);
    transform: scale(1.1);
  }
  100% {
    background: transparent;
    transform: scale(1);
  }
}

/* Moon shot: bouncing banner */
@keyframes ScoreReveal_bounceIn__hZKH8 {
  0% {
    opacity: 0;
    transform: scale(0.3) translateY(-20px);
  }
  50% {
    opacity: 1;
    transform: scale(1.05) translateY(0);
  }
  70% {
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* Moon shot: golden glow border */
@keyframes ScoreReveal_goldenBorder__FKjc4 {
  0% {
    border-color: rgba(251, 191, 36, 0);
    box-shadow: 0 0 0 0 rgba(251, 191, 36, 0);
  }
  50% {
    border-color: rgba(251, 191, 36, 0.8);
    box-shadow: 0 0 16px 2px rgba(251, 191, 36, 0.3);
  }
  100% {
    border-color: rgba(251, 191, 36, 0.4);
    box-shadow: 0 0 8px 1px rgba(251, 191, 36, 0.15);
  }
}

/* Moon shot: screen flash */
@keyframes ScoreReveal_screenFlash__n9B5G {
  0% {
    opacity: 0;
  }
  15% {
    opacity: 0.4;
  }
  100% {
    opacity: 0;
  }
}

/* Moon shot: subtle shake */
@keyframes ScoreReveal_shakeSubtle__7TqOs {
  0%, 100% { transform: translateX(0); }
  10% { transform: translateX(-3px); }
  20% { transform: translateX(3px); }
  30% { transform: translateX(-2px); }
  40% { transform: translateX(2px); }
  50% { transform: translateX(-1px); }
  60% { transform: translateX(1px); }
  70%, 100% { transform: translateX(0); }
}

/* Container */
.ScoreReveal_revealContainer__zLizm {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Team grouping */
.ScoreReveal_teamGroup__ccT2v {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ScoreReveal_teamLabel__uWz_7 {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  padding: 0 4px;
}

.ScoreReveal_teamDivider__BBo6G {
  height: 1px;
  background: var(--border-color);
  margin: 4px 0;
}

/* Score rows */
.ScoreReveal_revealRow__9QLtu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  background: var(--bg-card);
  border-radius: 8px;
  border: 1px solid transparent;
  opacity: 0;
  transform: translateX(-24px);
}

.ScoreReveal_revealRow__9QLtu.ScoreReveal_visible__BVTKX {
  animation: ScoreReveal_slideInLeft__QA44x 0.3s ease-out forwards;
}

.ScoreReveal_revealRow__9QLtu.ScoreReveal_isMe__DoVdc {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.3);
}

.ScoreReveal_revealRow__9QLtu.ScoreReveal_isShooter__nZreb {
  background: rgba(251, 191, 36, 0.1);
  border-color: rgba(251, 191, 36, 0.3);
}

.ScoreReveal_revealRow__9QLtu.ScoreReveal_goldenGlow__6GyOm {
  animation: ScoreReveal_slideInLeft__QA44x 0.3s ease-out forwards, ScoreReveal_goldenBorder__FKjc4 1s ease-out 0.3s forwards;
}

/* Player name */
.ScoreReveal_playerName__NQ_fK {
  font-weight: 500;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.ScoreReveal_youTag__xl_ZH {
  font-size: var(--font-size-xs);
  color: var(--accent-emerald);
  font-weight: 400;
}

/* Score values */
.ScoreReveal_scoreValues__bkmwm {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ScoreReveal_handScore__FEk5u {
  font-size: var(--font-size-game-label);
  font-weight: 600;
  color: var(--accent-rose);
  background: rgba(244, 63, 94, 0.15);
  padding: 2px 8px;
  border-radius: 4px;
  min-width: 32px;
  text-align: center;
}

.ScoreReveal_handScoreFlash__idfTw {
  animation: ScoreReveal_countFlash__Gd5xb 0.4s ease-out;
}

.ScoreReveal_totalScore__vuGIp {
  font-weight: 700;
  font-size: var(--font-size-lg);
  color: var(--text-primary);
  min-width: 32px;
  text-align: right;
}

.ScoreReveal_totalScoreFlash__L45fa {
  animation: ScoreReveal_totalFlash__8Daem 0.5s ease-out;
  border-radius: 4px;
  padding: 2px 4px;
}

.ScoreReveal_totalScore__vuGIp.ScoreReveal_bust__9zSks {
  color: var(--accent-rose);
}

/* Moon shot banner */
.ScoreReveal_moonBanner__Zp3zL {
  opacity: 0;
  text-align: center;
  font-weight: 700;
  font-size: var(--font-size-lg);
  color: var(--accent-gold);
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.2) 0%, rgba(245, 158, 11, 0.2) 100%);
  border: 1px solid rgba(251, 191, 36, 0.4);
  padding: 10px 16px;
  border-radius: 8px;
  margin-bottom: 8px;
}

.ScoreReveal_moonBanner__Zp3zL.ScoreReveal_visible__BVTKX {
  animation: ScoreReveal_bounceIn__hZKH8 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* Screen flash overlay for moon shot */
.ScoreReveal_screenFlash__n9B5G {
  position: fixed;
  inset: 0;
  background: rgba(251, 191, 36, 0.6);
  pointer-events: none;
  z-index: 200;
  animation: ScoreReveal_screenFlash__n9B5G 0.6s ease-out forwards;
}

/* Shake container for moon shot */
.ScoreReveal_shakeContainer__9CPv4 {
  animation: ScoreReveal_shakeSubtle__7TqOs 0.5s ease-out;
}

/* Reduced motion: skip all animations, show instantly */
@media (prefers-reduced-motion: reduce) {
  .ScoreReveal_revealRow__9QLtu {
    opacity: 1;
    transform: none;
  }

  .ScoreReveal_revealRow__9QLtu.ScoreReveal_visible__BVTKX,
  .ScoreReveal_revealRow__9QLtu.ScoreReveal_goldenGlow__6GyOm {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .ScoreReveal_revealRow__9QLtu.ScoreReveal_goldenGlow__6GyOm {
    border-color: rgba(251, 191, 36, 0.4);
    box-shadow: 0 0 8px 1px rgba(251, 191, 36, 0.15);
  }

  .ScoreReveal_handScoreFlash__idfTw,
  .ScoreReveal_totalScoreFlash__L45fa {
    animation: none;
  }

  .ScoreReveal_moonBanner__Zp3zL {
    opacity: 1;
  }

  .ScoreReveal_moonBanner__Zp3zL.ScoreReveal_visible__BVTKX {
    animation: none;
    opacity: 1;
  }

  .ScoreReveal_screenFlash__n9B5G {
    display: none;
  }

  .ScoreReveal_shakeContainer__9CPv4 {
    animation: none;
  }
}

/* Mobile */
@media (max-width: 479px) {
  .ScoreReveal_revealRow__9QLtu {
    padding: var(--spacing-sm);
  }

  .ScoreReveal_playerName__NQ_fK {
    font-size: var(--font-size-sm);
  }

  .ScoreReveal_youTag__xl_ZH {
    font-size: var(--font-size-xs);
  }

  .ScoreReveal_scoreValues__bkmwm {
    gap: var(--spacing-sm);
  }

  .ScoreReveal_handScore__FEk5u {
    font-size: var(--font-size-xs);
    padding: 2px 6px;
    min-width: 28px;
  }

  .ScoreReveal_totalScore__vuGIp {
    font-size: var(--font-size-base);
  }

  .ScoreReveal_moonBanner__Zp3zL {
    font-size: var(--font-size-base);
    padding: var(--spacing-sm) var(--spacing-md);
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/GameOverlay.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.GameOverlay_overlay__VQCAa {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 90;
  animation: GameOverlay_fadeIn__3_xOU 0.3s ease;
}

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

/* Pass Overlay */
.GameOverlay_passModal__5Tjcs {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 24px 32px;
  text-align: center;
  animation: GameOverlay_slideUp__uFrre 0.3s ease;
}

@keyframes GameOverlay_slideUp__uFrre {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.GameOverlay_passTitle__iQqiZ {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--accent-gold);
  margin-bottom: 20px;
}

.GameOverlay_passSection__uKXIm {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.GameOverlay_passLabel__8uxqu {
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.GameOverlay_passCards__1CqYl {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.GameOverlay_passArrow__j9nn4 {
  font-size: 1.5rem;
  color: var(--text-muted);
  margin: 16px 0;
}

/* Score Overlay */
.GameOverlay_scoreModal__SA9Gk {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 24px 32px;
  min-width: 280px;
  animation: GameOverlay_slideUp__uFrre 0.3s ease;
}

.GameOverlay_scoreTitle__Gitrq {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--accent-gold);
  margin-bottom: 16px;
  text-align: center;
}

/* Button Row */
.GameOverlay_buttonRow__h7Nr2 {
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
  margin-top: 1.5rem;
}

/* Download Icon Button */
.GameOverlay_downloadIconBtn__nWlXn {
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 50%;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.GameOverlay_downloadIconBtn__nWlXn:hover {
  background: var(--bg-card);
  color: var(--text-primary);
}

/* Download Button */
.GameOverlay_downloadBtn__3_iLW {
  padding: 10px 20px;
  background: var(--bg-card);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.GameOverlay_downloadBtn__3_iLW:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--accent-gold);
}

.GameOverlay_downloadBtn__3_iLW:active {
  transform: translateY(0);
}

/* Continue Button */
.GameOverlay_continueBtn__j0RG7 {
  padding: 10px 32px;
  background: var(--accent-emerald);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.GameOverlay_continueBtn__j0RG7:hover {
  background: #047857;
  transform: translateY(-2px);
}

.GameOverlay_continueBtn__j0RG7:active {
  transform: translateY(0);
}

.GameOverlay_continueBtnDisabled__anNND {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .GameOverlay_overlay__VQCAa {
    padding: var(--spacing-sm);
    align-items: center;
  }

  .GameOverlay_passModal__5Tjcs {
    padding: var(--spacing-md);
    border-radius: 12px;
    width: 100%;
    max-width: 100%;
  }

  .GameOverlay_passModal__5Tjcs .GameOverlay_continueBtn__j0RG7 {
    margin-top: 1.5rem;
  }

  .GameOverlay_scoreModal__SA9Gk {
    padding: var(--spacing-md);
    border-radius: 12px 12px 0 0;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
  }

  .GameOverlay_passTitle__iQqiZ,
  .GameOverlay_scoreTitle__Gitrq {
    font-size: var(--font-size-md);
    margin-bottom: var(--spacing-md);
  }

  .GameOverlay_passLabel__8uxqu {
    font-size: var(--font-size-xs);
  }

  .GameOverlay_passCards__1CqYl {
    gap: var(--spacing-xs);
  }

  .GameOverlay_passArrow__j9nn4 {
    font-size: 1.25rem;
    margin: var(--spacing-sm) 0;
  }

  .GameOverlay_buttonRow__h7Nr2 {
    flex-direction: column;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
  }

  .GameOverlay_downloadBtn__3_iLW,
  .GameOverlay_continueBtn__j0RG7 {
    width: 100%;
    min-height: var(--touch-target-min);
    font-size: var(--font-size-sm);
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .GameOverlay_overlay__VQCAa {
    padding: var(--spacing-md);
  }

  .GameOverlay_passModal__5Tjcs,
  .GameOverlay_scoreModal__SA9Gk {
    padding: var(--spacing-lg);
    max-width: 350px;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .GameOverlay_overlay__VQCAa {
    align-items: center;
    padding: var(--spacing-sm);
  }

  .GameOverlay_passModal__5Tjcs,
  .GameOverlay_scoreModal__SA9Gk {
    max-height: 90vh;
    overflow-y: auto;
    border-radius: 12px;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/MobileScoreBar.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
.MobileScoreBar_mobileScoreBar___qKqJ {
  display: block;
  width: 100%;
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border-color);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 20;
}

/* Hide on desktop where sidebar is shown */
@media (min-width: 1024px) {
  .MobileScoreBar_mobileScoreBar___qKqJ {
    display: none;
  }
}

.MobileScoreBar_scoreBarTriggerRow__6oVWi {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.MobileScoreBar_scoreBarTrigger__2RHGc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1 1;
  min-width: 0;
  padding: var(--spacing-sm) var(--spacing-md);
  background: transparent;
  border: none;
  color: var(--text-primary);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  min-height: var(--touch-target-min);
}

.MobileScoreBar_scoreBarTrigger__2RHGc:active {
  background: var(--bg-highlight);
}

.MobileScoreBar_tricksBadge__A_oC_ {
  flex-shrink: 0;
  font-size: var(--font-size-game-badge);
  font-weight: 600;
  color: var(--text-muted);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 4px 8px;
  cursor: pointer;
  margin-right: var(--spacing-sm);
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, color 0.15s ease;
}

.MobileScoreBar_tricksBadge__A_oC_:active {
  background: var(--bg-highlight);
}

.MobileScoreBar_tricksBadgeActive__b6w_f {
  color: var(--accent-emerald);
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.1);
}

.MobileScoreBar_teamScores__Cxsp0 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.MobileScoreBar_teamGroup__48A_v {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.MobileScoreBar_teamGroup__48A_v.MobileScoreBar_myTeam__3jokN {
  color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.15);
  border-radius: 6px;
  padding: 2px 6px;
}

.MobileScoreBar_teamScore__iBDKR {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.MobileScoreBar_teamLabel__h0qnI {
  font-size: var(--font-size-game-label);
  font-weight: 500;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.MobileScoreBar_score__htRJ2 {
  font-size: var(--font-size-game-score);
  font-weight: 700;
}

.MobileScoreBar_score__htRJ2.MobileScoreBar_bust__Yr6GB {
  color: var(--accent-rose);
}

.MobileScoreBar_vs__wvjEH {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  font-weight: 500;
}

.MobileScoreBar_handBadge___zRwz {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  background: var(--bg-card);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 4px;
}

.MobileScoreBar_expandIcon__myHeC {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  transition: transform 0.2s ease;
}

.MobileScoreBar_expandIcon__myHeC.MobileScoreBar_expanded__C_I4P {
  transform: rotate(180deg);
}

/* Expanded panel container */
.MobileScoreBar_expandedPanel__4Dr7G {
  border-top: 1px solid var(--border-color);
  background: var(--bg-card);
  animation: MobileScoreBar_slideDown__P0WxA 0.2s ease;
}

/* Tab toggle */
.MobileScoreBar_tabToggle__dwgQR {
  display: flex;
  border-bottom: 1px solid var(--border-color);
}

.MobileScoreBar_tab__rYFRf {
  flex: 1 1;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--text-muted);
  font-size: var(--font-size-xs);
  font-weight: 600;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.MobileScoreBar_tab__rYFRf:active {
  background: var(--bg-highlight);
}

.MobileScoreBar_tabActive__71_8t {
  color: var(--accent-emerald);
  border-bottom-color: var(--accent-emerald);
}

/* Expanded scores panel */
.MobileScoreBar_expandedScores__2FY5b {
  padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md);
}

/* Expanded tricks panel */
.MobileScoreBar_expandedTricks__rdfvi {
  max-height: 50vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Remove panel styling from TrickHistory when embedded in mobile bar */
.MobileScoreBar_expandedTricks__rdfvi .panel {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
}

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

.MobileScoreBar_teamSection__Cc7SR {
  margin-bottom: var(--spacing-sm);
}

.MobileScoreBar_teamHeader__3C_wi {
  font-size: var(--font-size-xs);
  font-weight: 600;
  margin-bottom: var(--spacing-xs);
  padding-bottom: var(--spacing-xs);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.MobileScoreBar_teamHeader__3C_wi.MobileScoreBar_teamNS__X9_TX {
  color: var(--accent-blue);
}

.MobileScoreBar_teamHeader__3C_wi.MobileScoreBar_teamEW___daF1 {
  color: var(--accent-rose);
}

.MobileScoreBar_youBadge__IaJ6z {
  font-size: var(--font-size-game-badge);
  font-weight: 400;
  color: var(--accent-emerald);
}

.MobileScoreBar_playerRow__2Li6M {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 4px;
  margin-bottom: 2px;
}

.MobileScoreBar_playerRow__2Li6M.MobileScoreBar_isMe__7Uq1J {
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.MobileScoreBar_playerName__DYOB7 {
  font-size: var(--font-size-game-name);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.MobileScoreBar_position__IaJnu {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

.MobileScoreBar_playerScore__IQm_7 {
  font-weight: 700;
  font-size: var(--font-size-lg);
  color: var(--text-primary);
}

.MobileScoreBar_playerScore__IQm_7.MobileScoreBar_bust__Yr6GB {
  color: var(--accent-rose);
}

.MobileScoreBar_divider__kKihg {
  height: 1px;
  background: var(--border-color);
  margin: var(--spacing-sm) 0;
}

.MobileScoreBar_scoreLimit__RKIEL {
  text-align: center;
  font-size: var(--font-size-xs);
  color: var(--accent-gold);
  margin-top: var(--spacing-sm);
  padding-top: var(--spacing-sm);
  border-top: 1px dashed var(--border-color);
}

@media (prefers-reduced-motion: reduce) {
  .MobileScoreBar_expandedPanel__4Dr7G {
    animation: none;
  }
}

/* Small phones */
@media (max-width: 479px) {
  .MobileScoreBar_scoreBarTrigger__2RHGc {
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .MobileScoreBar_handBadge___zRwz {
    display: none;
  }

  .MobileScoreBar_tricksBadge__A_oC_ {
    padding: 3px 6px;
    margin-right: var(--spacing-xs);
  }
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/MuteButton.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************/
.MuteButton_muteButton__Ttzhc {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease;
}

.MuteButton_muteButton__Ttzhc:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/AmbientToggle.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.AmbientToggle_ambientButton__SgXCl {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease;
}

.AmbientToggle_ambientButton__SgXCl:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Active state when ambient is playing (SD-11) */
.AmbientToggle_ambientButtonActive__IgJXQ {
  color: var(--accent-gold);
  filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.4));
}

.AmbientToggle_ambientButtonActive__IgJXQ:hover {
  color: var(--accent-gold);
  filter: drop-shadow(0 0 6px rgba(245, 158, 11, 0.55));
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/ResignButton.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.ResignButton_resignButton___XZ76 {
  padding: 8px 16px;
  background: transparent;
  color: var(--accent-rose);
  border: 1px solid var(--accent-rose);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.ResignButton_resignButton___XZ76:hover:not(:disabled) {
  background: var(--accent-rose);
  color: white;
}

.ResignButton_resignButton___XZ76:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  border-color: var(--text-muted);
  color: var(--text-muted);
}

.ResignButton_confirmRow__UEWol {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ResignButton_confirmText__RBqGe {
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.ResignButton_confirmYes__xCQUQ {
  background: var(--accent-rose);
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.25rem 0.75rem;
  cursor: pointer;
  font-size: 0.85rem;
  min-height: var(--touch-target-min);
}

.ResignButton_confirmNo__6OH06 {
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  padding: 0.25rem 0.75rem;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 0.85rem;
  min-height: var(--touch-target-min);
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .ResignButton_resignButton___XZ76 {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-xs);
  }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/ResignDialog.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.ResignDialog_overlay__RoyQH {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  animation: ResignDialog_fadeIn__sSQPu 0.3s ease;
}

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

.ResignDialog_modal__XQLZ3 {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px 40px;
  max-width: 400px;
  width: 90%;
  text-align: center;
  animation: ResignDialog_slideUp__KlzX_ 0.3s ease;
}

@keyframes ResignDialog_slideUp__KlzX_ {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ResignDialog_title__jb8Ul {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--text-primary);
}

.ResignDialog_message__LKRZ9 {
  color: var(--text-secondary);
  font-size: 1rem;
  margin-bottom: 16px;
}

.ResignDialog_message__LKRZ9 strong {
  color: var(--text-primary);
}

.ResignDialog_promptText__1YUfQ {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 24px;
}

.ResignDialog_waitingText__vEyzW {
  color: var(--text-muted);
  font-size: 0.9rem;
  font-style: italic;
  margin-bottom: 24px;
}

.ResignDialog_buttonRow__6Qupt {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.ResignDialog_acceptBtn__bSmaR {
  padding: 10px 24px;
  background: var(--accent-emerald);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.ResignDialog_acceptBtn__bSmaR:hover {
  background: #047857;
}

.ResignDialog_rejectBtn__hxDFl {
  padding: 10px 24px;
  background: transparent;
  color: var(--accent-rose);
  border: 1px solid var(--accent-rose);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.ResignDialog_rejectBtn__hxDFl:hover {
  background: var(--accent-rose);
  color: white;
}

.ResignDialog_cancelBtn__lxXjM {
  padding: 10px 24px;
  background: var(--bg-card);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.ResignDialog_cancelBtn__lxXjM:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--text-muted);
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .ResignDialog_overlay__RoyQH {
    padding: var(--spacing-sm);
    align-items: flex-end;
  }

  .ResignDialog_modal__XQLZ3 {
    padding: var(--spacing-lg);
    border-radius: 12px 12px 0 0;
    width: 100%;
    max-width: 100%;
  }

  .ResignDialog_title__jb8Ul {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-sm);
  }

  .ResignDialog_message__LKRZ9 {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-sm);
  }

  .ResignDialog_promptText__1YUfQ,
  .ResignDialog_waitingText__vEyzW {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-md);
  }

  .ResignDialog_buttonRow__6Qupt {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .ResignDialog_acceptBtn__bSmaR,
  .ResignDialog_rejectBtn__hxDFl,
  .ResignDialog_cancelBtn__lxXjM {
    width: 100%;
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .ResignDialog_modal__XQLZ3 {
    padding: var(--spacing-xl);
    max-width: 360px;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .ResignDialog_overlay__RoyQH {
    align-items: center;
  }

  .ResignDialog_modal__XQLZ3 {
    border-radius: 12px;
    max-height: 90vh;
    overflow-y: auto;
    padding: var(--spacing-md) var(--spacing-lg);
  }

  .ResignDialog_title__jb8Ul {
    margin-bottom: var(--spacing-xs);
  }

  .ResignDialog_message__LKRZ9 {
    margin-bottom: var(--spacing-xs);
  }

  .ResignDialog_promptText__1YUfQ,
  .ResignDialog_waitingText__vEyzW {
    margin-bottom: var(--spacing-sm);
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/ToastContainer.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
.ToastContainer_container__5tMla {
  position: fixed;
  bottom: var(--spacing-lg);
  right: var(--spacing-lg);
  z-index: 95;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  pointer-events: none;
  max-width: 360px;
  width: 100%;
}

/* Mobile: bottom-center */
@media (max-width: 640px) {
  .ToastContainer_container__5tMla {
    right: 50%;
    transform: translateX(50%);
    max-width: calc(100vw - 2 * var(--spacing-lg));
  }
}

.ToastContainer_toast__Mh4Iw {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-sm);
  padding: var(--spacing-md) var(--spacing-lg);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-left: 4px solid var(--accent-sky);
  border-radius: 6px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  line-height: 1.4;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  animation: ToastContainer_toastEnter__vdgZW 0.3s ease-out forwards;
  cursor: pointer;
}

.ToastContainer_toast__Mh4Iw:hover {
  background: var(--bg-highlight);
}

.ToastContainer_toastExiting___BMEP {
  animation: ToastContainer_toastExit__dE5_E 0.2s ease-in forwards;
}

/* Variant border colors */
.ToastContainer_variantInfo__591b3 {
  border-left-color: var(--accent-sky);
}

.ToastContainer_variantSuccess__ycEgO {
  border-left-color: var(--accent-emerald);
}

.ToastContainer_variantWarning__P6a9l {
  border-left-color: var(--accent-gold);
}

.ToastContainer_variantError__wF9Wu {
  border-left-color: var(--accent-rose);
}

.ToastContainer_message__oalyM {
  flex: 1 1;
  min-width: 0;
}

.ToastContainer_dismiss__HjihZ {
  flex-shrink: 0;
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: var(--font-size-base);
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.ToastContainer_dismiss__HjihZ:hover {
  color: var(--text-primary);
}

@keyframes ToastContainer_toastEnter__vdgZW {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ToastContainer_toastExit__dE5_E {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(12px);
  }
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .ToastContainer_toast__Mh4Iw,
  .ToastContainer_toastExiting___BMEP {
    animation: none;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/RulesReference.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
/* Rules Reference Button - matches MuteButton pattern */
.RulesReference_rulesButton__KJz1H {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease;
}

.RulesReference_rulesButton__KJz1H:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Prominent variant — shown during first 3 games */
.RulesReference_prominent__RaLEb {
  border: 1.5px solid var(--accent-gold);
  color: var(--accent-gold);
  gap: 4px;
  padding: 0 8px;
  animation: RulesReference_prominentGlow__64cBj 2s ease-in-out infinite;
}

.RulesReference_prominent__RaLEb:hover {
  color: var(--accent-gold);
  border-color: var(--accent-gold);
}

.RulesReference_prominentLabel__RB2OZ {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

@keyframes RulesReference_prominentGlow__64cBj {
  0%, 100% {
    box-shadow: 0 0 4px rgba(245, 158, 11, 0.2);
  }
  50% {
    box-shadow: 0 0 10px rgba(245, 158, 11, 0.4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .RulesReference_prominent__RaLEb {
    animation: none;
    box-shadow: 0 0 4px rgba(245, 158, 11, 0.3);
  }
}

/* Overlay */
.RulesReference_overlay__5OksL {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 95;
  animation: RulesReference_fadeIn__EfgHS 0.3s ease;
}

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

/* Modal */
.RulesReference_modal__Td7mg {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 24px 28px;
  max-width: 420px;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  animation: RulesReference_slideUp__4m0K9 0.3s ease;
  position: relative;
}

@keyframes RulesReference_slideUp__4m0K9 {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Header */
.RulesReference_header__giVcL {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.RulesReference_title__4KhoC {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--accent-gold);
  margin: 0;
}

.RulesReference_closeButton__bJvZZ {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 0;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease;
}

.RulesReference_closeButton__bJvZZ:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Sections */
.RulesReference_section__ztx2K {
  margin-bottom: 20px;
}

.RulesReference_section__ztx2K:last-of-type {
  margin-bottom: 16px;
}

.RulesReference_sectionTitle__e_8gj {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 10px 0;
}

/* Leekha cards row */
.RulesReference_leekhaCards__tV9S_ {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.RulesReference_leekhaItem__m_pWR {
  display: flex;
  align-items: center;
  gap: 8px;
}

.RulesReference_leekhaPoints__GLW5a {
  font-size: 0.85rem;
  color: var(--text-secondary);
  white-space: nowrap;
}

.RulesReference_totalPoints__uX3T8 {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-top: 8px;
}

/* Rules list */
.RulesReference_rulesList__jFrVi {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.RulesReference_rulesList__jFrVi li {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.45;
  padding-left: 16px;
  position: relative;
}

.RulesReference_rulesList__jFrVi li::before {
  content: '\2022';
  position: absolute;
  left: 0;
  color: var(--text-muted);
}

/* Got it button */
.RulesReference_footer__cJz7k {
  display: flex;
  justify-content: center;
  margin-top: 4px;
}

.RulesReference_gotItBtn__o1Nsd {
  padding: 10px 32px;
  background: var(--accent-emerald);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.RulesReference_gotItBtn__o1Nsd:hover {
  background: #047857;
  transform: translateY(-2px);
}

.RulesReference_gotItBtn__o1Nsd:active {
  transform: translateY(0);
}

/* Mobile: bottom-sheet layout */
@media (max-width: 479px) {
  .RulesReference_overlay__5OksL {
    align-items: flex-end;
    padding: 0;
  }

  .RulesReference_modal__Td7mg {
    border-radius: 16px 16px 0 0;
    width: 100%;
    max-width: 100%;
    max-height: 80vh;
    padding: 20px 16px;
    animation: RulesReference_slideUpMobile__Qc_FI 0.3s ease;
  }

  @keyframes RulesReference_slideUpMobile__Qc_FI {
    from {
      opacity: 0;
      transform: translateY(100%);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .RulesReference_title__4KhoC {
    font-size: 1.1rem;
  }

  .RulesReference_sectionTitle__e_8gj {
    font-size: 0.9rem;
  }

  .RulesReference_gotItBtn__o1Nsd {
    width: 100%;
    font-size: 1rem;
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .RulesReference_modal__Td7mg {
    max-width: 380px;
    padding: 24px;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .RulesReference_overlay__5OksL {
    align-items: center;
    padding: var(--spacing-sm);
  }

  .RulesReference_modal__Td7mg {
    max-height: 90vh;
    border-radius: 12px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .RulesReference_overlay__5OksL {
    animation: none;
  }

  .RulesReference_modal__Td7mg {
    animation: none;
  }

  .RulesReference_gotItBtn__o1Nsd:hover {
    transform: none;
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/GuidedTooltip.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.GuidedTooltip_tooltip__Pm8Lz {
  position: fixed;
  z-index: 85;
  max-width: 260px;
  background: var(--bg-card);
  border: 1px solid var(--accent-gold);
  border-radius: 10px;
  padding: var(--spacing-md) var(--spacing-lg);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  animation: GuidedTooltip_tooltipFadeIn__92gXa 0.25s ease-out;
  pointer-events: auto;
}

@media (min-width: 768px) {
  .GuidedTooltip_tooltip__Pm8Lz {
    max-width: 300px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .GuidedTooltip_tooltip__Pm8Lz {
    animation: none;
  }
}

@keyframes GuidedTooltip_tooltipFadeIn__92gXa {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.GuidedTooltip_message__6p_ms {
  color: var(--text-primary);
  font-size: var(--font-size-sm);
  line-height: 1.45;
  margin-bottom: var(--spacing-sm);
}

.GuidedTooltip_footer__2hZs_ {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-sm);
}

.GuidedTooltip_stepLabel__YM3tz {
  color: var(--text-muted);
  font-size: var(--font-size-xs);
}

.GuidedTooltip_dismissBtn__bOs1d {
  background: var(--accent-gold);
  color: #292524;
  border: none;
  border-radius: 6px;
  padding: 6px 14px;
  font-size: var(--font-size-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
  min-height: 32px;
}

.GuidedTooltip_dismissBtn__bOs1d:hover {
  background: #d97706;
}

@media (max-width: 767px) {
  .GuidedTooltip_dismissBtn__bOs1d {
    min-height: var(--touch-target-min);
    min-width: var(--touch-target-min);
    padding: 8px 16px;
  }
}

/* Arrows */
.GuidedTooltip_arrow__kcvNY {
  position: absolute;
  width: 12px;
  height: 12px;
  background: var(--accent-gold);
}

/* Arrow pointing down (tooltip is above the anchor) */
.GuidedTooltip_arrowBottom__kANNr {
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

/* Arrow pointing up (tooltip is below the anchor) */
.GuidedTooltip_arrowTop__hqFUc {
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

/* Arrow pointing right (tooltip is to the left of the anchor) */
.GuidedTooltip_arrowRight__nviJh {
  right: -6px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

/* Arrow pointing left (tooltip is to the right of the anchor) */
.GuidedTooltip_arrowLeft__3OIuv {
  left: -6px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/DisconnectPauseOverlay.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************/
.DisconnectPauseOverlay_overlay__ypTfK {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 90;
  animation: DisconnectPauseOverlay_fadeIn__KzW_e 0.3s ease;
  padding: 20px;
}

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

.DisconnectPauseOverlay_card__3IG8c {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px 28px;
  max-width: 380px;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  animation: DisconnectPauseOverlay_slideUp__Pjvvw 0.3s ease;
}

@keyframes DisconnectPauseOverlay_slideUp__Pjvvw {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.DisconnectPauseOverlay_countdownRing__1jRBh {
  position: relative;
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.DisconnectPauseOverlay_ringSvg__n_4IH {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.DisconnectPauseOverlay_ringBg__O1hLd {
  stroke: var(--border-color);
}

.DisconnectPauseOverlay_ringProgress__EYhGg {
  stroke: var(--accent-gold);
  transition: stroke-dashoffset 1s linear;
}

.DisconnectPauseOverlay_countdownNumber__FV9ts {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--accent-gold);
  z-index: 1;
}

.DisconnectPauseOverlay_title__Ky6rE {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text-primary);
}

.DisconnectPauseOverlay_subtitle__7eESt {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text-secondary);
}

.DisconnectPauseOverlay_hint__Bta22 {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.DisconnectPauseOverlay_aiButton__bqf5q {
  margin-top: 4px;
  padding: 10px 28px;
  min-height: var(--touch-target-min);
  background: var(--accent-blue);
  border: none;
  border-radius: 8px;
  color: white;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s ease;
  animation: DisconnectPauseOverlay_fadeIn__KzW_e 0.3s ease;
}

.DisconnectPauseOverlay_aiButton__bqf5q:hover {
  opacity: 0.9;
}

.DisconnectPauseOverlay_aiButton__bqf5q:active {
  opacity: 0.8;
}

/* Accessibility: respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .DisconnectPauseOverlay_overlay__ypTfK {
    animation: none;
  }
  .DisconnectPauseOverlay_card__3IG8c {
    animation: none;
  }
  .DisconnectPauseOverlay_aiButton__bqf5q {
    animation: none;
  }
  .DisconnectPauseOverlay_ringProgress__EYhGg {
    transition: none;
  }
}

@keyframes DisconnectPauseOverlay_slideUpMobile__I54IJ {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile: bottom-sheet layout */
@media (max-width: 479px) {
  .DisconnectPauseOverlay_overlay__ypTfK {
    align-items: flex-end;
    padding: 0;
  }

  .DisconnectPauseOverlay_card__3IG8c {
    border-radius: 16px 16px 0 0;
    width: 100%;
    max-width: 100%;
    padding: 24px 20px;
    animation: DisconnectPauseOverlay_slideUpMobile__I54IJ 0.3s ease;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .DisconnectPauseOverlay_overlay__ypTfK {
    align-items: center;
    padding: var(--spacing-sm);
  }

  .DisconnectPauseOverlay_card__3IG8c {
    max-height: 90vh;
    border-radius: 12px;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/SuitTracker.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.SuitTracker_tracker__fXKBZ {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: 4px 10px;
  background: rgba(0, 0, 0, 0.55);
  border-radius: 16px;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  animation: SuitTracker_trackerFadeIn__9MwgY 0.2s ease-out;
}

.SuitTracker_suitItem__ECiJV {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: var(--font-size-game-label);
  font-weight: 600;
  color: var(--text-primary);
}

.SuitTracker_suitItem__ECiJV.SuitTracker_red__U_Vyz {
  color: var(--accent-rose);
}

.SuitTracker_suitSymbol__Sr8v7 {
  font-size: var(--font-size-game-label);
  line-height: 1;
}

.SuitTracker_suitCount__y2j8_ {
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  min-width: 1ch;
  text-align: center;
}

.SuitTracker_toggleButton__ByLXK {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  background: rgba(0, 0, 0, 0.4);
  color: var(--text-muted);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.SuitTracker_toggleButton__ByLXK:hover {
  background: rgba(0, 0, 0, 0.6);
  color: var(--text-primary);
}

.SuitTracker_toggleButton__ByLXK:active {
  background: rgba(0, 0, 0, 0.7);
}

.SuitTracker_toggleActive__sD3Qf {
  color: var(--accent-emerald);
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.15);
}

.SuitTracker_toggleActive__sD3Qf:hover {
  background: rgba(16, 185, 129, 0.25);
  color: var(--accent-emerald);
}

@keyframes SuitTracker_trackerFadeIn__9MwgY {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .SuitTracker_tracker__fXKBZ {
    animation: none;
  }
}

/* Small phones */
@media (max-width: 479px) {
  .SuitTracker_tracker__fXKBZ {
    gap: var(--spacing-xs);
    padding: 3px 8px;
  }

  .SuitTracker_toggleButton__ByLXK {
    width: 28px;
    height: 28px;
  }

  .SuitTracker_toggleButton__ByLXK svg {
    width: 14px;
    height: 14px;
  }
}

/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/game/CardShuffleAnimation.module.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************/
/* Card shuffle animation overlay */
.CardShuffleAnimation_container__eq_HH {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 200px;
  position: relative;
  overflow: hidden;
}

.CardShuffleAnimation_cardStack__sTqzF {
  position: relative;
  width: 80px;
  height: 112px;
}

/* Individual card back */
.CardShuffleAnimation_card__cnGBz {
  position: absolute;
  width: 80px;
  height: 112px;
  border-radius: 8px;
  background: linear-gradient(135deg, #1e3a5f 0%, #0f1f33 100%);
  border: 2px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  transform-origin: center center;
}

/* Card back pattern */
.CardShuffleAnimation_card__cnGBz::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 4px,
      rgba(255, 255, 255, 0.03) 4px,
      rgba(255, 255, 255, 0.03) 5px
    );
}

/* Each card starts from a different edge and shuffles to center */
.CardShuffleAnimation_card__cnGBz:nth-child(1) { animation: CardShuffleAnimation_slideFromLeft__Z8hqx 2.5s ease-out forwards; }
.CardShuffleAnimation_card__cnGBz:nth-child(2) { animation: CardShuffleAnimation_slideFromRight__a2id0 2.5s ease-out 0.1s forwards; }
.CardShuffleAnimation_card__cnGBz:nth-child(3) { animation: CardShuffleAnimation_slideFromTop__PKC9t 2.5s ease-out 0.2s forwards; }
.CardShuffleAnimation_card__cnGBz:nth-child(4) { animation: CardShuffleAnimation_slideFromBottom__grxUO 2.5s ease-out 0.3s forwards; }
.CardShuffleAnimation_card__cnGBz:nth-child(5) { animation: CardShuffleAnimation_slideFromLeft__Z8hqx 2.5s ease-out 0.4s forwards; }
.CardShuffleAnimation_card__cnGBz:nth-child(6) { animation: CardShuffleAnimation_slideFromRight__a2id0 2.5s ease-out 0.5s forwards; }

/* Initial opacity 0, then visible */
.CardShuffleAnimation_card__cnGBz {
  opacity: 0;
}

@keyframes CardShuffleAnimation_slideFromLeft__Z8hqx {
  0% {
    transform: translateX(-200px) rotate(-20deg);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  30% {
    transform: translateX(0) rotate(0deg);
    opacity: 1;
  }
  /* Riffle phase */
  45% {
    transform: translateX(-8px) translateY(-3px) rotate(-2deg);
  }
  55% {
    transform: translateX(6px) translateY(2px) rotate(1deg);
  }
  65% {
    transform: translateX(-4px) translateY(-1px) rotate(-1deg);
  }
  75% {
    transform: translateX(2px) rotate(0.5deg);
  }
  85% {
    transform: translateX(0) rotate(0deg);
  }
  100% {
    transform: translateX(0) rotate(0deg);
    opacity: 1;
  }
}

@keyframes CardShuffleAnimation_slideFromRight__a2id0 {
  0% {
    transform: translateX(200px) rotate(20deg);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  30% {
    transform: translateX(0) rotate(0deg);
    opacity: 1;
  }
  45% {
    transform: translateX(8px) translateY(3px) rotate(2deg);
  }
  55% {
    transform: translateX(-6px) translateY(-2px) rotate(-1deg);
  }
  65% {
    transform: translateX(4px) translateY(1px) rotate(1deg);
  }
  75% {
    transform: translateX(-2px) rotate(-0.5deg);
  }
  85% {
    transform: translateX(0) rotate(0deg);
  }
  100% {
    transform: translateX(0) rotate(0deg);
    opacity: 1;
  }
}

@keyframes CardShuffleAnimation_slideFromTop__PKC9t {
  0% {
    transform: translateY(-200px) rotate(-15deg);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  30% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  45% {
    transform: translateY(-5px) translateX(-3px) rotate(-1.5deg);
  }
  55% {
    transform: translateY(4px) translateX(2px) rotate(1deg);
  }
  65% {
    transform: translateY(-2px) translateX(-1px) rotate(-0.5deg);
  }
  75% {
    transform: translateY(1px) rotate(0.3deg);
  }
  85% {
    transform: translateY(0) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
}

@keyframes CardShuffleAnimation_slideFromBottom__grxUO {
  0% {
    transform: translateY(200px) rotate(15deg);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  30% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  45% {
    transform: translateY(5px) translateX(3px) rotate(1.5deg);
  }
  55% {
    transform: translateY(-4px) translateX(-2px) rotate(-1deg);
  }
  65% {
    transform: translateY(2px) translateX(1px) rotate(0.5deg);
  }
  75% {
    transform: translateY(-1px) rotate(-0.3deg);
  }
  85% {
    transform: translateY(0) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
}

/* Fade out the entire container at the end */
.CardShuffleAnimation_fadeOut__dK6f1 {
  animation: CardShuffleAnimation_containerFadeOut__mn4r6 0.4s ease-out forwards;
}

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

/* Reduced motion: skip animations, just show static cards */
@media (prefers-reduced-motion: reduce) {
  .CardShuffleAnimation_card__cnGBz {
    animation: none !important;
    opacity: 1;
  }

  .CardShuffleAnimation_card__cnGBz:nth-child(1) { transform: rotate(-3deg); }
  .CardShuffleAnimation_card__cnGBz:nth-child(2) { transform: rotate(-1deg); }
  .CardShuffleAnimation_card__cnGBz:nth-child(3) { transform: rotate(1deg); }
  .CardShuffleAnimation_card__cnGBz:nth-child(4) { transform: rotate(3deg); }
  .CardShuffleAnimation_card__cnGBz:nth-child(5) { transform: rotate(-2deg); }
  .CardShuffleAnimation_card__cnGBz:nth-child(6) { transform: rotate(2deg); }

  .CardShuffleAnimation_fadeOut__dK6f1 {
    animation: none !important;
    opacity: 0;
  }
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/lobby/LobbyPlayerStats.module.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************/
.LobbyPlayerStats_statsLine__wI7c_ {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  text-align: center;
  line-height: 1.2;
  white-space: nowrap;
}

/* Loading skeleton */
.LobbyPlayerStats_skeleton__cnIti {
  display: inline-block;
  width: 80px;
  height: 0.75em;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.04) 25%,
    rgba(255, 255, 255, 0.08) 50%,
    rgba(255, 255, 255, 0.04) 75%
  );
  background-size: 200% 100%;
  border-radius: 3px;
  animation: LobbyPlayerStats_shimmer__nj6dT 1.5s ease-in-out infinite;
}

@keyframes LobbyPlayerStats_shimmer__nj6dT {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* AI skill level display */
.LobbyPlayerStats_aiLevel___CZyn {
  font-size: var(--font-size-xs);
  color: var(--accent-purple);
  text-align: center;
  font-weight: 500;
}

@media (prefers-reduced-motion: reduce) {
  .LobbyPlayerStats_skeleton__cnIti {
    animation: none;
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/lobby/PreGameLobby.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
/* ===== Game config section (private lobby) ===== */
.PreGameLobby_configSection__mZg1p {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  width: 100%;
  padding: var(--spacing-sm) var(--spacing-md);
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  margin-bottom: var(--spacing-xs);
}

.PreGameLobby_configRow__Ujcwi {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

.PreGameLobby_configLabel__eADml {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  min-width: 52px;
}

.PreGameLobby_configToggle__7PqUQ {
  display: flex;
  gap: var(--spacing-xs);
  flex: 1 1;
}

.PreGameLobby_configBtn__tCFhg {
  flex: 1 1;
  padding: var(--spacing-xs) var(--spacing-xs);
  background: var(--bg-card);
  border: 2px solid var(--border-color);
  border-radius: 6px;
  color: var(--text-secondary);
  font-size: var(--font-size-xs);
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
  white-space: nowrap;
}

.PreGameLobby_configBtn__tCFhg:hover {
  border-color: var(--accent-emerald);
  color: var(--text-primary);
}

.PreGameLobby_configBtn__tCFhg.PreGameLobby_configBtnActive__iF7Pm {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.12);
  color: var(--accent-emerald);
}

.PreGameLobby_configReadOnly__cfcQe {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  text-align: center;
  padding: var(--spacing-xs) 0;
}

/* ===== Table felt background (reused from TableView) ===== */
.PreGameLobby_lobbyTable__NYDZw {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-lg);
  background:
    /* Vignette: darker at edges for depth */
    radial-gradient(
      ellipse at center,
      transparent 40%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    /* SVG noise: micro-fiber felt texture */
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E"),
    /* Base felt color */
    linear-gradient(
      135deg,
      var(--table-felt-base) 0%,
      var(--table-felt-light) 50%,
      var(--table-felt-base) 100%
    );
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 4px 20px rgba(0, 0, 0, 0.3);
  border-radius: 12px;
  width: 100%;
  max-width: 450px;
  min-height: 350px;
}

.PreGameLobby_lobbyTitle__mfl2j {
  font-family: var(--font-display);
  font-size: var(--font-size-lg);
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}

.PreGameLobby_tokenSection__8mCzv {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  width: 100%;
}

.PreGameLobby_shareInfo__4t5eK {
  display: flex;
  align-items: center;
  gap: 12px;
}

.PreGameLobby_tokenLabel___7Mij {
  font-size: 14px;
  color: var(--text-secondary);
}

.PreGameLobby_tokenValue__Q89Vc {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: bold;
  letter-spacing: 4px;
  color: var(--accent-gold);
}

.PreGameLobby_shareBtn__enCaO {
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  background: linear-gradient(135deg, var(--accent-blue) 0%, #2563eb 100%);
  border: none;
  border-radius: 8px;
  color: white;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  white-space: nowrap;
  min-width: 160px;
  text-align: center;
}

.PreGameLobby_shareBtn__enCaO:hover {
  transform: scale(1.05);
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.4);
}

.PreGameLobby_middleRow__QZMWh {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  width: 100%;
  justify-content: center;
  flex: 1 1;
}

.PreGameLobby_center__fVPyJ {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  min-width: 120px;
}

/* ===== Waiting message in center ===== */
.PreGameLobby_waitingMessage__K1_rf {
  font-size: var(--font-size-sm);
  font-weight: 500;
  color: var(--text-secondary);
  text-align: center;
  animation: PreGameLobby_waitingPulse__2VWov 2s ease-in-out infinite;
}

.PreGameLobby_waitingMessage__K1_rf.PreGameLobby_allReady__ZIJLa {
  color: var(--accent-emerald);
  animation: none;
}

@keyframes PreGameLobby_waitingPulse__2VWov {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.PreGameLobby_playWithBotsBtn__bWZmP {
  background: linear-gradient(135deg, var(--accent-emerald) 0%, #047857 100%);
  color: white;
  border: none;
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 8px;
  font-weight: 600;
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  white-space: nowrap;
}

.PreGameLobby_playWithBotsBtn__bWZmP:hover {
  transform: scale(1.05);
  box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
}

.PreGameLobby_startBtn__mSTxA {
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  color: #292524;
  border: none;
  padding: var(--spacing-sm) var(--spacing-lg);
  border-radius: 8px;
  font-weight: 700;
  font-size: var(--font-size-base);
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}

.PreGameLobby_startBtn__mSTxA:hover:not(:disabled) {
  transform: scale(1.05);
  box-shadow: 0 0 20px rgba(251, 191, 36, 0.4);
}

.PreGameLobby_startBtn__mSTxA:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.PreGameLobby_leaveBtn__Dy_mI {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border-color);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 6px;
  font-size: var(--font-size-xs);
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  margin-top: var(--spacing-sm);
}

.PreGameLobby_leaveBtn__Dy_mI:hover {
  color: var(--accent-rose);
  border-color: var(--accent-rose);
}

/* ===== Seat component — circular avatar layout ===== */
.PreGameLobby_seat__72V_U {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-xs);
  min-width: 100px;
}

.PreGameLobby_seat__72V_U.PreGameLobby_left__kTTdS,
.PreGameLobby_seat__72V_U.PreGameLobby_right__XxZb8 {
  flex: 1 1;
  max-width: 140px;
}

.PreGameLobby_seat__72V_U.PreGameLobby_top__GbnoX,
.PreGameLobby_seat__72V_U.PreGameLobby_bottom__8XzPM {
  width: 100%;
  max-width: 160px;
}

/* ===== Avatar circle ===== */
.PreGameLobby_avatar__0m_Gs {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: white;
  border: 3px solid transparent;
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
  flex-shrink: 0;
}

/* Team color gradients */
.PreGameLobby_avatar__0m_Gs.PreGameLobby_teamNS__XRR1a {
  background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  border-color: rgba(59, 130, 246, 0.5);
}

.PreGameLobby_avatar__0m_Gs.PreGameLobby_teamEW__iH_0z {
  background: linear-gradient(135deg, #f43f5e 0%, #be123c 100%);
  border-color: rgba(244, 63, 94, 0.5);
}

/* AI: purple border */
.PreGameLobby_avatar__0m_Gs.PreGameLobby_isAI__wPb3d {
  border-color: var(--accent-purple);
  box-shadow: 0 0 8px rgba(168, 85, 247, 0.3);
}

/* Self: emerald glow */
.PreGameLobby_avatar__0m_Gs.PreGameLobby_isSelf__hX3rF {
  border-color: var(--accent-emerald);
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.4);
}

/* Empty seat avatar */
.PreGameLobby_avatar__0m_Gs.PreGameLobby_empty__Od2oD {
  background: transparent;
  border: 2px dashed var(--border-color);
  color: var(--text-muted);
  font-size: var(--font-size-xs);
  font-weight: 400;
}

.PreGameLobby_avatarInitial__YMn4p {
  text-transform: uppercase;
  line-height: 1;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* ===== Seat animations ===== */
@keyframes PreGameLobby_seatPopIn__HiJlG {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  70% {
    transform: scale(1.15);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes PreGameLobby_seatFadeOut__pnREU {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.8);
    opacity: 0;
  }
}

.PreGameLobby_animatingIn___kDiy {
  animation: PreGameLobby_seatPopIn__HiJlG 0.4s ease-out forwards;
}

.PreGameLobby_animatingOut__1jJxQ {
  animation: PreGameLobby_seatFadeOut__pnREU 0.3s ease-in forwards;
}

/* ===== Seat info below avatar ===== */
.PreGameLobby_seatLabel__rcs8D {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.PreGameLobby_occupantName__AQNlY {
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  max-width: 120px;
}

.PreGameLobby_occupantNameText___dVaP {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.PreGameLobby_occupantName__AQNlY .PreGameLobby_youBadge__Q7Gww {
  font-size: 0.6rem;
  color: var(--accent-emerald);
  font-weight: 400;
}

.PreGameLobby_aiBadge__K7fT7 {
  font-size: 0.55rem;
  background: linear-gradient(135deg, var(--accent-purple) 0%, #7e22ce 100%);
  color: white;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 500;
}

.PreGameLobby_hostBadge__Ai6Pj {
  font-size: 0.55rem;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  color: #292524;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 700;
}

.PreGameLobby_wantsBotsBadge__XDXhh {
  font-size: 0.55rem;
  background: linear-gradient(135deg, var(--accent-purple) 0%, #7e22ce 100%);
  color: white;
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 500;
}

/* Public lobby status */
.PreGameLobby_publicStatus__OP1HF {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 16px;
  background: rgba(59, 130, 246, 0.1);
  border-radius: 8px;
  margin-bottom: 8px;
}

.PreGameLobby_playerCount__0AtMY {
  font-size: 20px;
  font-weight: 700;
  color: var(--accent-blue);
}

.PreGameLobby_botsPreference___9hcH {
  font-size: 12px;
  color: var(--text-muted);
}

/* Bots checkbox for public lobbies */
.PreGameLobby_botsCheckbox__t_91T {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.2s;
}

.PreGameLobby_botsCheckbox__t_91T:hover {
  border-color: var(--accent-emerald);
}

.PreGameLobby_botsCheckbox__t_91T input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent-emerald);
  cursor: pointer;
}

.PreGameLobby_botsCheckbox__t_91T span {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
}

.PreGameLobby_seatActions__jAwv_ {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  width: 100%;
}

.PreGameLobby_seatBtn__igHG9 {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 4px;
  font-size: var(--font-size-xs);
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  white-space: nowrap;
}

.PreGameLobby_seatBtn__igHG9:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--accent-emerald);
}

.PreGameLobby_seatBtn__igHG9.PreGameLobby_remove__X_pf7 {
  border-color: transparent;
  color: var(--text-muted);
}

.PreGameLobby_seatBtn__igHG9.PreGameLobby_remove__X_pf7:hover {
  color: var(--accent-rose);
  border-color: var(--accent-rose);
}

.PreGameLobby_emptyLabel__M_sHK {
  font-size: var(--font-size-sm);
  color: var(--text-muted);
  font-style: italic;
}

/* Persona Modal */
.PreGameLobby_modalTitle__9zZ3N {
  font-size: var(--font-size-lg);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--spacing-md);
  text-align: center;
}

.PreGameLobby_personaList__zZsLn {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-md);
}

.PreGameLobby_personaOption__a72Tw {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--bg-card);
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.PreGameLobby_personaOption__a72Tw:hover {
  border-color: var(--accent-emerald);
}

.PreGameLobby_personaOption__a72Tw.PreGameLobby_selected__jQ6Ig {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.1);
}

.PreGameLobby_personaOption__a72Tw.PreGameLobby_random__RBSEq {
  border-style: dashed;
}

.PreGameLobby_personaName__hoS6B {
  font-weight: 600;
  color: var(--text-primary);
  font-size: var(--font-size-sm);
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
}

.PreGameLobby_levelBadge___pjB8 {
  font-size: var(--font-size-xs);
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--bg-muted);
  color: var(--text-muted);
}

.PreGameLobby_personaDesc__ygAtc {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

.PreGameLobby_modalActions__MgbKW {
  display: flex;
  gap: var(--spacing-sm);
  justify-content: flex-end;
}

.PreGameLobby_modalBtn__NFTfZ {
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: 6px;
  font-weight: 600;
  font-size: var(--font-size-sm);
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}

.PreGameLobby_modalBtn__NFTfZ.PreGameLobby_cancel__2iK3z {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
}

.PreGameLobby_modalBtn__NFTfZ.PreGameLobby_cancel__2iK3z:hover {
  border-color: var(--text-muted);
  color: var(--text-primary);
}

.PreGameLobby_modalBtn__NFTfZ.PreGameLobby_confirm__N3R7_ {
  background: linear-gradient(135deg, var(--accent-emerald) 0%, #047857 100%);
  border: none;
  color: white;
}

.PreGameLobby_modalBtn__NFTfZ.PreGameLobby_confirm__N3R7_:hover:not(:disabled) {
  transform: scale(1.05);
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.4);
}

.PreGameLobby_modalBtn__NFTfZ.PreGameLobby_confirm__N3R7_:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Persona dropdown for Play with Bots */
.PreGameLobby_personaDropdown__PcCbb {
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 4px;
  color: var(--text-primary);
  font-size: var(--font-size-xs);
  cursor: pointer;
}

/* ===== Countdown ===== */
.PreGameLobby_countdownContainer__j3MKa {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-xs);
}

.PreGameLobby_countdownCircle__7yr9B {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 3px solid var(--accent-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: PreGameLobby_countdownPulse__REbLq 1s ease-in-out infinite;
}

.PreGameLobby_countdownNumber__Airc6 {
  font-size: var(--font-size-lg);
  font-weight: 700;
  color: var(--accent-gold);
  font-family: var(--font-display);
}

.PreGameLobby_countdownLabel__OK8sI {
  font-size: var(--font-size-xs);
  color: var(--accent-gold);
  font-weight: 500;
}

.PreGameLobby_cancelCountdownBtn__eY9mJ {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border-color);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: 4px;
  font-size: var(--font-size-xs);
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
}

.PreGameLobby_cancelCountdownBtn__eY9mJ:hover {
  color: var(--accent-rose);
  border-color: var(--accent-rose);
}

@keyframes PreGameLobby_countdownPulse__REbLq {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.08); opacity: 0.85; }
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
  .PreGameLobby_animatingIn___kDiy,
  .PreGameLobby_animatingOut__1jJxQ {
    animation: none;
  }

  .PreGameLobby_waitingMessage__K1_rf {
    animation: none;
  }

  .PreGameLobby_countdownCircle__7yr9B {
    animation: none;
  }
}

/* ===== Mobile ===== */
@media (max-width: 479px) {
  .PreGameLobby_lobbyTable__NYDZw {
    padding: var(--spacing-md);
    gap: var(--spacing-sm);
    min-height: 280px;
  }

  .PreGameLobby_lobbyTitle__mfl2j {
    font-size: var(--font-size-base);
  }

  .PreGameLobby_seat__72V_U {
    min-width: 80px;
  }

  .PreGameLobby_seat__72V_U.PreGameLobby_left__kTTdS,
  .PreGameLobby_seat__72V_U.PreGameLobby_right__XxZb8 {
    max-width: 100px;
  }

  .PreGameLobby_seat__72V_U.PreGameLobby_top__GbnoX,
  .PreGameLobby_seat__72V_U.PreGameLobby_bottom__8XzPM {
    max-width: 120px;
  }

  .PreGameLobby_avatar__0m_Gs {
    width: 48px;
    height: 48px;
    font-size: 18px;
    border-width: 2px;
  }

  .PreGameLobby_center__fVPyJ {
    min-width: 100px;
    padding: var(--spacing-sm);
    gap: var(--spacing-xs);
  }

  .PreGameLobby_playWithBotsBtn__bWZmP,
  .PreGameLobby_startBtn__mSTxA {
    font-size: var(--font-size-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .PreGameLobby_modalTitle__9zZ3N {
    font-size: var(--font-size-base);
  }
}

/* ===== Tablet and up ===== */
@media (min-width: 768px) {
  .PreGameLobby_lobbyTable__NYDZw {
    padding: var(--spacing-xl);
    min-height: 400px;
  }

  .PreGameLobby_seat__72V_U {
    min-width: 120px;
  }

  .PreGameLobby_seat__72V_U.PreGameLobby_left__kTTdS,
  .PreGameLobby_seat__72V_U.PreGameLobby_right__XxZb8 {
    max-width: 160px;
  }

  .PreGameLobby_center__fVPyJ {
    min-width: 140px;
  }

  .PreGameLobby_avatar__0m_Gs {
    width: 68px;
    height: 68px;
    font-size: 24px;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/lobby/JoinLobbyModal.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************/
.JoinLobbyModal_overlay__AozG1 {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  animation: JoinLobbyModal_fadeIn__D34_M 0.3s ease;
}

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

.JoinLobbyModal_modal__8kvaa {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px 40px;
  max-width: 400px;
  width: 90%;
  text-align: center;
  animation: JoinLobbyModal_slideUp__25tzI 0.3s ease;
}

@keyframes JoinLobbyModal_slideUp__25tzI {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.JoinLobbyModal_title__n3Ydm {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 12px;
  color: var(--text-primary);
}

.JoinLobbyModal_description__w_LwZ {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 24px;
}

.JoinLobbyModal_tokenInput__G_3SZ {
  width: 100%;
  padding: 16px;
  font-size: 2rem;
  font-family: var(--font-mono);
  letter-spacing: 0.5em;
  text-align: center;
  background: var(--bg-card);
  border: 2px solid var(--border-color);
  border-radius: 12px;
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.2s ease;
}

.JoinLobbyModal_tokenInput__G_3SZ::placeholder {
  color: var(--text-muted);
  letter-spacing: 0.5em;
}

.JoinLobbyModal_tokenInput__G_3SZ:focus {
  border-color: var(--accent-gold);
}

.JoinLobbyModal_error__GpXn_ {
  color: var(--accent-rose);
  font-size: 0.875rem;
  margin-top: 12px;
  margin-bottom: 0;
}

.JoinLobbyModal_buttonRow__R7_Vs {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
}

.JoinLobbyModal_cancelBtn__N53Be {
  padding: 10px 24px;
  background: var(--bg-card);
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: var(--touch-target-min);
}

.JoinLobbyModal_cancelBtn__N53Be:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--text-muted);
}

.JoinLobbyModal_buttonRow__R7_Vs button {
  min-height: var(--touch-target-min);
}

.JoinLobbyModal_buttonRow__R7_Vs .JoinLobbyModal_btn-primary__sfwBp {
  flex: 1 1;
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .JoinLobbyModal_overlay__AozG1 {
    padding: var(--spacing-sm);
    align-items: flex-end;
  }

  .JoinLobbyModal_modal__8kvaa {
    padding: var(--spacing-lg);
    border-radius: 12px 12px 0 0;
    width: 100%;
    max-width: 100%;
  }

  .JoinLobbyModal_title__n3Ydm {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-sm);
  }

  .JoinLobbyModal_description__w_LwZ {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-md);
  }

  .JoinLobbyModal_tokenInput__G_3SZ {
    font-size: 1.5rem;
    padding: var(--spacing-md);
  }

  .JoinLobbyModal_buttonRow__R7_Vs {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .JoinLobbyModal_cancelBtn__N53Be {
    width: 100%;
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .JoinLobbyModal_modal__8kvaa {
    padding: var(--spacing-xl);
    max-width: 360px;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .JoinLobbyModal_overlay__AozG1 {
    align-items: center;
  }

  .JoinLobbyModal_modal__8kvaa {
    border-radius: 12px;
    max-height: 90vh;
    overflow-y: auto;
    padding: var(--spacing-md) var(--spacing-lg);
  }

  .JoinLobbyModal_title__n3Ydm {
    margin-bottom: var(--spacing-xs);
  }

  .JoinLobbyModal_description__w_LwZ {
    margin-bottom: var(--spacing-sm);
  }

  .JoinLobbyModal_buttonRow__R7_Vs {
    margin-top: var(--spacing-md);
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/ui/BottomSheet.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************/
/* ===== BottomSheet overlay ===== */
.BottomSheet_overlay__EzXdW {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: BottomSheet_fadeIn__yQKkw 0.3s ease;
}

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

/* ===== Panel ===== */
.BottomSheet_panel__esn_N {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 24px 28px;
  max-width: 420px;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  animation: BottomSheet_slideUp__ynDe1 0.3s ease;
  position: relative;
}

@keyframes BottomSheet_slideUp__ynDe1 {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== Mobile: bottom-sheet layout ===== */
@media (max-width: 479px) {
  .BottomSheet_overlay__EzXdW {
    align-items: flex-end;
    padding: 0;
  }

  .BottomSheet_panel__esn_N {
    border-radius: 16px 16px 0 0;
    width: 100%;
    max-width: 100%;
    max-height: 85vh;
    padding: 20px 16px;
    animation: BottomSheet_slideUpMobile__AtMZZ 0.3s ease;
  }

  @keyframes BottomSheet_slideUpMobile__AtMZZ {
    from {
      opacity: 0;
      transform: translateY(100%);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* ===== Tablet ===== */
@media (min-width: 480px) and (max-width: 767px) {
  .BottomSheet_panel__esn_N {
    max-width: 90vw;
  }
}

/* ===== Landscape mobile ===== */
@media (max-height: 500px) and (orientation: landscape) {
  .BottomSheet_overlay__EzXdW {
    align-items: center;
    padding: var(--spacing-sm);
  }

  .BottomSheet_panel__esn_N {
    max-height: 90vh;
    border-radius: 12px;
  }
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
  .BottomSheet_overlay__EzXdW {
    animation: none;
  }

  .BottomSheet_panel__esn_N {
    animation: none;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/lobby/BotLevelPicker.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************/
.BotLevelPicker_sectionTitle__5gIcg {
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--text-secondary);
  margin: 0 0 var(--spacing-xs);
}

.BotLevelPicker_levelList__pi3cY {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

.BotLevelPicker_levelButton__dg4Fw {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--bg-card);
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.15s;
  min-height: var(--touch-target-min);
  text-align: left;
}

.BotLevelPicker_levelButton__dg4Fw:hover {
  border-color: var(--accent-emerald);
}

.BotLevelPicker_levelButton__dg4Fw:active {
  transform: scale(0.97);
}

.BotLevelPicker_levelButton__dg4Fw.BotLevelPicker_saved__vuHw_ {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.1);
}

.BotLevelPicker_levelName__SZo_Y {
  font-weight: 600;
  color: var(--text-primary);
  font-size: var(--font-size-sm);
}

.BotLevelPicker_levelDesc__J2hZU {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

/* ===== Variant toggle ===== */
.BotLevelPicker_variantToggle__RjWz_ {
  display: flex;
  gap: var(--spacing-xs);
  margin-bottom: var(--spacing-md);
}

.BotLevelPicker_variantBtn__zOIjM {
  flex: 1 1;
  padding: var(--spacing-xs) var(--spacing-sm);
  background: var(--bg-card);
  border: 2px solid var(--border-color);
  border-radius: 6px;
  color: var(--text-secondary);
  font-size: var(--font-size-sm);
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
  min-height: var(--touch-target-min);
}

.BotLevelPicker_variantBtn__zOIjM:hover {
  border-color: var(--accent-emerald);
  color: var(--text-primary);
}

.BotLevelPicker_variantBtn__zOIjM.BotLevelPicker_variantActive__Dz1fd {
  border-color: var(--accent-emerald);
  background: rgba(16, 185, 129, 0.12);
  color: var(--accent-emerald);
}

/* ===== Play button ===== */
.BotLevelPicker_playButton__ffVwE {
  display: block;
  width: 100%;
  margin-top: var(--spacing-md);
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--accent-emerald);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: var(--font-size-sm);
  font-weight: 700;
  cursor: pointer;
  min-height: var(--touch-target-min);
  transition: opacity 0.2s;
}

.BotLevelPicker_playButton__ffVwE:hover {
  opacity: 0.9;
}

.BotLevelPicker_playButton__ffVwE:active {
  transform: scale(0.97);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/ConnectionQualityIcon.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/
.ConnectionQualityIcon_container__eGt_O {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: var(--touch-target-min);
  min-height: var(--touch-target-min);
  cursor: default;
}

.ConnectionQualityIcon_green__Ms2fw {
  fill: #22c55e;
}

.ConnectionQualityIcon_amber__ZO8ig {
  fill: #f59e0b;
}

.ConnectionQualityIcon_red__MV7mL {
  fill: #ef4444;
}

.ConnectionQualityIcon_gray__cD1vY {
  fill: var(--text-muted);
  opacity: 0.3;
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/StatusPanel.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.StatusPanel_statusBar__jYwpD {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--bg-secondary);
  border-bottom: 1px solid var(--border-color);
  min-height: 48px;
  gap: var(--spacing-sm);
}

.StatusPanel_left___Ac9e {
  display: flex;
  align-items: center;
  gap: 16px;
}

.StatusPanel_playerName__D4PuP {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
}

.StatusPanel_playerName__D4PuP strong {
  color: var(--text-primary);
}

.StatusPanel_playerNameBtn__nIh9d {
  background: none;
  border: none;
  color: var(--text-primary);
  font: inherit;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  -webkit-text-decoration-style: dotted;
          text-decoration-style: dotted;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}

.StatusPanel_playerNameBtn__nIh9d:hover {
  color: var(--accent-sky);
}

.StatusPanel_logoutBtn__w6pNb {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: var(--font-size-xs);
  padding: 0;
  margin-left: 8px;
  cursor: pointer;
  text-decoration: underline;
  opacity: 0.7;
  transition: opacity 0.2s ease, color 0.2s ease;
}

.StatusPanel_logoutBtn__w6pNb:hover {
  opacity: 1;
  color: var(--accent-rose);
}

.StatusPanel_center__ggofl {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.StatusPanel_center__ggofl.StatusPanel_myTurn__ikqYs {
  animation: StatusPanel_glow__mYNES 1.5s ease-in-out infinite;
}

@keyframes StatusPanel_glow__mYNES {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

.StatusPanel_phase__XYmCa {
  font-weight: 700;
  font-size: var(--font-size-game-phase);
  color: var(--text-primary);
}

.StatusPanel_center__ggofl.StatusPanel_myTurn__ikqYs .StatusPanel_phase__XYmCa {
  color: var(--accent-emerald);
  text-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
}

.StatusPanel_handNum__xXvWF {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

.StatusPanel_right__o8AD9 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.StatusPanel_disconnectedGroup__U6XK5 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.StatusPanel_countdown__7W2SW {
  font-size: var(--font-size-sm);
  color: var(--accent-rose);
  font-weight: 500;
}

.StatusPanel_reconnectBtn__Wu5eT {
  padding: 6px 12px;
  background: var(--accent-rose);
  color: white;
  border: none;
  border-radius: 6px;
  font-size: var(--font-size-xs);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}

.StatusPanel_reconnectBtn__Wu5eT:hover {
  background: #dc2626;
}

/* Tablet and up */
@media (min-width: 768px) {
  .StatusPanel_statusBar__jYwpD {
    padding: var(--spacing-md) var(--spacing-xl);
    min-height: 60px;
  }

  .StatusPanel_left___Ac9e {
    gap: var(--spacing-lg);
  }
}

/* Mobile */
@media (max-width: 767px) {
  .StatusPanel_statusBar__jYwpD {
    padding: var(--spacing-xs) var(--spacing-sm);
    min-height: var(--touch-target-min);
  }

  .StatusPanel_left___Ac9e {
    gap: var(--spacing-sm);
    flex: 1 1;
    min-width: 0;
  }

  .StatusPanel_playerName__D4PuP {
    font-size: var(--font-size-xs);
    display: none; /* Hide on very small screens */
  }

  .StatusPanel_logoutBtn__w6pNb {
    font-size: var(--font-size-xs);
    min-height: var(--touch-target-min);
    padding: var(--spacing-xs);
  }

  .StatusPanel_center__ggofl {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }

  .StatusPanel_handNum__xXvWF {
    display: none; /* Shown in MobileScoreBar instead */
  }

  .StatusPanel_right__o8AD9 {
    gap: var(--spacing-sm);
  }

  .StatusPanel_disconnectedGroup__U6XK5 {
    flex-wrap: wrap;
    gap: var(--spacing-sm);
  }

  .StatusPanel_countdown__7W2SW {
    font-size: var(--font-size-xs);
  }

  .StatusPanel_reconnectBtn__Wu5eT {
    min-height: var(--touch-target-min);
    padding: var(--spacing-sm) var(--spacing-md);
  }
}

/* Small phones */
@media (max-width: 479px) {
  .StatusPanel_statusBar__jYwpD {
    position: relative;
    flex-wrap: wrap;
  }

  .StatusPanel_center__ggofl {
    position: static;
    transform: none;
    order: 3;
    width: 100%;
    text-align: center;
    flex: 0 0 100%;
  }

  .StatusPanel_phase__XYmCa {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  .StatusPanel_right__o8AD9 {
    flex-shrink: 0;
  }
}

/* Show player name on larger phones */
@media (min-width: 480px) and (max-width: 767px) {
  .StatusPanel_playerName__D4PuP {
    display: block;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/LoginForm.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************/
.LoginForm_container__szSIQ {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.LoginForm_card__9PW0z {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 40px;
  max-width: 400px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.LoginForm_header__z9zEL {
  text-align: center;
  margin-bottom: 32px;
}

.LoginForm_title__f66ug {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 800;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 8px;
  letter-spacing: 0.1em;
}

.LoginForm_subtitle__EaPdF {
  color: var(--text-muted);
  font-size: 1rem;
}

.LoginForm_rules__hAb01 {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
  padding: 16px;
  background: var(--bg-card);
  border-radius: 12px;
}

.LoginForm_ruleItem__ha_Mq {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.LoginForm_leekhaCard__cawTb {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #292524;
  padding: 4px 8px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 1rem;
}

.LoginForm_heartIcon__9evMD {
  color: var(--suit-red);
  font-size: 1.5rem;
}

.LoginForm_form__xhE_7 {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.LoginForm_form__xhE_7 input {
  width: 100%;
  text-align: center;
  font-size: 1.1rem;
}

.LoginForm_error__RCOFP {
  background: rgba(244, 63, 94, 0.15);
  color: var(--accent-rose);
  padding: 12px;
  border-radius: 8px;
  text-align: center;
  font-size: 0.875rem;
}

.LoginForm_form__xhE_7 button {
  width: 100%;
  font-size: 1.1rem;
  padding: 14px;
}

.LoginForm_footer__9sS_b {
  margin-top: 24px;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.8rem;
}

.LoginForm_footer__9sS_b p {
  margin-bottom: 4px;
}

.LoginForm_teams__RPzYa {
  color: var(--text-secondary);
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .LoginForm_container__szSIQ {
    padding: var(--spacing-sm);
    min-height: 100dvh;
  }

  .LoginForm_card__9PW0z {
    padding: var(--spacing-lg);
    border-radius: 12px;
  }

  .LoginForm_header__z9zEL {
    margin-bottom: var(--spacing-lg);
  }

  .LoginForm_title__f66ug {
    font-size: 1.75rem;
    letter-spacing: 0.05em;
  }

  .LoginForm_subtitle__EaPdF {
    font-size: var(--font-size-sm);
  }

  .LoginForm_rules__hAb01 {
    gap: var(--spacing-md);
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
  }

  .LoginForm_ruleItem__ha_Mq {
    font-size: var(--font-size-xs);
  }

  .LoginForm_leekhaCard__cawTb {
    font-size: var(--font-size-sm);
    padding: 3px 6px;
  }

  .LoginForm_heartIcon__9evMD {
    font-size: 1.25rem;
  }

  .LoginForm_form__xhE_7 {
    gap: var(--spacing-md);
  }

  .LoginForm_form__xhE_7 input {
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
  }

  .LoginForm_form__xhE_7 button {
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
    padding: var(--spacing-md);
  }

  .LoginForm_error__RCOFP {
    padding: var(--spacing-sm);
    font-size: var(--font-size-xs);
  }

  .LoginForm_footer__9sS_b {
    margin-top: var(--spacing-md);
    font-size: var(--font-size-xs);
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .LoginForm_container__szSIQ {
    padding: var(--spacing-md);
  }

  .LoginForm_card__9PW0z {
    padding: var(--spacing-xl);
  }

  .LoginForm_title__f66ug {
    font-size: 2rem;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .LoginForm_container__szSIQ {
    padding: var(--spacing-sm);
    align-items: flex-start;
    overflow-y: auto;
  }

  .LoginForm_card__9PW0z {
    padding: var(--spacing-md);
    margin: var(--spacing-sm) 0;
  }

  .LoginForm_header__z9zEL {
    margin-bottom: var(--spacing-md);
  }

  .LoginForm_rules__hAb01 {
    margin-bottom: var(--spacing-md);
  }

  .LoginForm_footer__9sS_b {
    margin-top: var(--spacing-sm);
  }
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/FetchError.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
.FetchError_container__REvyF {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px 16px;
  background: rgba(244, 63, 94, 0.06);
  border: 1px solid rgba(244, 63, 94, 0.2);
  border-radius: 12px;
  text-align: center;
}

.FetchError_icon__5s4kJ {
  font-size: 1.6rem;
  line-height: 1;
  color: var(--accent-rose);
  opacity: 0.8;
}

.FetchError_message__0M_vI {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-primary);
}

.FetchError_hint__7xGZb {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.FetchError_retryBtn__38mw0 {
  margin-top: 4px;
  padding: 8px 20px;
  min-height: var(--touch-target-min);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.FetchError_retryBtn__38mw0:hover {
  background: var(--bg-highlight);
  border-color: var(--accent-sky);
  color: var(--accent-sky);
}

.FetchError_retryBtn__38mw0:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.FetchError_spinner__wRWJ1 {
  width: 14px;
  height: 14px;
  border: 2px solid var(--border-color);
  border-top-color: var(--accent-sky);
  border-radius: 50%;
  animation: FetchError_spin__2PqVF 0.8s linear infinite;
}

@keyframes FetchError_spin__2PqVF {
  to {
    transform: rotate(360deg);
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/ConnectionLostOverlay.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************/
.ConnectionLostOverlay_overlay__soUsd {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 90;
  animation: ConnectionLostOverlay_fadeIn__2o2JR 0.3s ease;
  padding: 20px;
}

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

.ConnectionLostOverlay_card__tyqGO {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 32px 28px;
  max-width: 380px;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  animation: ConnectionLostOverlay_slideUp__zr8UP 0.3s ease;
}

@keyframes ConnectionLostOverlay_slideUp__zr8UP {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ConnectionLostOverlay_icon__lzvyO {
  width: 48px;
  height: 48px;
  color: var(--accent-rose);
  opacity: 0.85;
}

.ConnectionLostOverlay_title__j_rzP {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text-primary);
}

.ConnectionLostOverlay_countdown__pNyJn {
  margin: 0;
  font-size: 0.95rem;
  color: var(--text-secondary);
}

.ConnectionLostOverlay_countdownNumber__Ume9t {
  font-weight: 600;
  color: var(--accent-gold);
}

.ConnectionLostOverlay_hint__iZrfD {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}

.ConnectionLostOverlay_reconnectBtn__cO5b_ {
  margin-top: 4px;
  padding: 10px 28px;
  min-height: var(--touch-target-min);
  background: var(--accent-blue);
  border: none;
  border-radius: 8px;
  color: white;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.ConnectionLostOverlay_reconnectBtn__cO5b_:hover {
  opacity: 0.9;
}

.ConnectionLostOverlay_reconnectBtn__cO5b_:active {
  opacity: 0.8;
}

/* Accessibility: respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  .ConnectionLostOverlay_overlay__soUsd {
    animation: none;
  }
  .ConnectionLostOverlay_card__tyqGO {
    animation: none;
  }
}

@keyframes ConnectionLostOverlay_slideUpMobile__5KhvM {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile: bottom-sheet layout */
@media (max-width: 479px) {
  .ConnectionLostOverlay_overlay__soUsd {
    align-items: flex-end;
    padding: 0;
  }

  .ConnectionLostOverlay_card__tyqGO {
    border-radius: 16px 16px 0 0;
    width: 100%;
    max-width: 100%;
    padding: 24px 20px;
    animation: ConnectionLostOverlay_slideUpMobile__5KhvM 0.3s ease;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .ConnectionLostOverlay_overlay__soUsd {
    align-items: center;
    padding: var(--spacing-sm);
  }

  .ConnectionLostOverlay_card__tyqGO {
    max-height: 90vh;
    border-radius: 12px;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/layout/InstallPrompt.module.css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************/
.InstallPrompt_banner__MDwLF {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: var(--bg-secondary);
  border-top: 1px solid var(--border-color);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
  animation: InstallPrompt_slideUp__Efplo 0.3s ease forwards;
}

.InstallPrompt_content__wKvLx {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1;
  min-width: 0;
}

.InstallPrompt_icon__RgYx4 {
  font-size: 1.4rem;
  color: var(--accent-gold);
  flex-shrink: 0;
}

.InstallPrompt_text__z58qj {
  font-size: var(--font-size-sm);
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.InstallPrompt_actions__l7cd7 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.InstallPrompt_installBtn___Y5KP {
  padding: 8px 16px;
  background: var(--accent-emerald);
  color: white;
  border: none;
  border-radius: 6px;
  font-size: var(--font-size-sm);
  font-weight: 600;
  cursor: pointer;
  min-height: var(--touch-target-min);
  white-space: nowrap;
}

.InstallPrompt_installBtn___Y5KP:hover {
  background: #047857;
}

.InstallPrompt_dismissBtn__sxkWT {
  padding: 8px 12px;
  background: transparent;
  color: var(--text-muted);
  border: none;
  font-size: var(--font-size-xs);
  cursor: pointer;
  min-height: var(--touch-target-min);
  white-space: nowrap;
}

.InstallPrompt_dismissBtn__sxkWT:hover {
  color: var(--text-secondary);
}

/* Only show on mobile-sized screens */
@media (min-width: 768px) {
  .InstallPrompt_banner__MDwLF {
    display: none;
  }
}

@keyframes InstallPrompt_slideUp__Efplo {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/auth/AuthComponents.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
.AuthComponents_container__2kSpx {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(18, 16, 14, 0.50) 0%, rgba(18, 16, 14, 0.75) 100%),
    url('/login-background.webp');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.AuthComponents_card__y4gLN {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 40px;
  max-width: 420px;
  width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.AuthComponents_header__HSgxN {
  text-align: center;
  margin-bottom: 32px;
}

.AuthComponents_title__d784u {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 8px;
}

.AuthComponents_gameTitle__kH9MI {
  font-family: var(--font-display);
  font-size: 2.5rem;
  font-weight: 800;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 8px;
  letter-spacing: 0.1em;
}

.AuthComponents_spade__BjkIa {
  -webkit-text-fill-color: var(--text-primary);
}

.AuthComponents_diamond__twegp {
  -webkit-text-fill-color: var(--suit-red);
}

.AuthComponents_subtitle__N1d6M {
  color: var(--text-muted);
  font-size: 1rem;
}

.AuthComponents_rules__yhpLP {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 32px;
  padding: 16px;
  background: var(--bg-card);
  border-radius: 12px;
}

.AuthComponents_ruleItem__dqWEA {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.AuthComponents_leekhaCard__Y_yk4 {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #292524;
  padding: 4px 8px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 1rem;
}

.AuthComponents_heartIcon__Curu1 {
  color: var(--suit-red);
  font-size: 1.5rem;
}

/* Connecting banner */
.AuthComponents_connectingBanner__uMoEW {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px;
  margin-bottom: 20px;
  background: rgba(251, 191, 36, 0.1);
  border: 1px solid rgba(251, 191, 36, 0.3);
  border-radius: 8px;
  color: var(--accent-gold);
  font-size: 0.875rem;
}

.AuthComponents_connectingSpinner__SMmm_ {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(251, 191, 36, 0.3);
  border-top-color: var(--accent-gold);
  border-radius: 50%;
  animation: AuthComponents_spin__O70Ye 0.8s linear infinite;
}

@keyframes AuthComponents_spin__O70Ye {
  to { transform: rotate(360deg); }
}

/* Form styles */
.AuthComponents_form__ctgyb {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.AuthComponents_formGroup__gTp_C {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.AuthComponents_label__79C_R {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-secondary);
}

.AuthComponents_hint__3wuTh {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin: 0;
}

.AuthComponents_form__ctgyb input {
  width: 100%;
  font-size: 1rem;
}

.AuthComponents_error__p0CEP {
  background: rgba(244, 63, 94, 0.15);
  color: var(--accent-rose);
  padding: 12px;
  border-radius: 8px;
  text-align: center;
  font-size: 0.875rem;
}

.AuthComponents_form__ctgyb button {
  width: 100%;
  font-size: 1rem;
  padding: 14px;
}

/* Divider */
.AuthComponents_divider__FHW5F {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 24px 0;
  color: var(--text-muted);
  font-size: 0.875rem;
}

.AuthComponents_divider__FHW5F::before,
.AuthComponents_divider__FHW5F::after {
  content: '';
  flex: 1 1;
  height: 1px;
  background: var(--border-color);
}

/* Guest section — primary CTA */
.AuthComponents_guestSection__WubMm {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  align-items: center;
}

.AuthComponents_guestInput__qZZvc {
  width: 100%;
  min-width: 0;
  padding: 14px;
  font-size: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  transition: border-color 0.2s, box-shadow 0.2s;
  text-align: center;
}

.AuthComponents_guestInput__qZZvc:focus {
  outline: none;
  border-color: var(--accent-gold);
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2);
}

.AuthComponents_guestInput__qZZvc::placeholder {
  color: var(--text-muted);
}

.AuthComponents_guestInput__qZZvc:disabled {
  opacity: 0.6;
}

/* Primary CTA button */
.AuthComponents_guestCta__ngBlk {
  width: 100%;
  padding: 18px 24px;
  font-size: 1.125rem;
  font-weight: 700;
  color: #292524;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 4px 14px rgba(251, 191, 36, 0.3);
  letter-spacing: 0.01em;
}

.AuthComponents_guestCta__ngBlk:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(251, 191, 36, 0.45);
}

.AuthComponents_guestCta__ngBlk:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.25);
}

.AuthComponents_guestCta__ngBlk:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Native app — Play button */
.AuthComponents_nativePlayBtn__44fil {
  width: 100%;
  padding: 22px 24px;
  font-size: 1.375rem;
  font-weight: 800;
  color: #292524;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  border: none;
  border-radius: 14px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 6px 20px rgba(251, 191, 36, 0.4);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.AuthComponents_nativePlayBtn__44fil:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(251, 191, 36, 0.5);
}

.AuthComponents_nativePlayBtn__44fil:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.25);
}

.AuthComponents_nativePlayBtn__44fil:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Native app — sign-in link */
.AuthComponents_nativeSignInSection__3lymC {
  width: 100%;
  text-align: center;
  margin-top: 24px;
}

.AuthComponents_nativeSignInLink__sSj8_ {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.8rem;
  padding: 8px;
  transition: color 0.2s;
}

.AuthComponents_nativeSignInLink__sSj8_:hover {
  color: var(--text-secondary);
}

/* Sign-in section — de-emphasized */
.AuthComponents_signInSection__I6Dqg {
  width: 100%;
  text-align: center;
}

.AuthComponents_signInToggle__u1fBv {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.875rem;
  text-decoration: underline;
  padding: 8px;
  transition: color 0.2s;
}

.AuthComponents_signInToggle__u1fBv:hover {
  color: var(--text-secondary);
}

.AuthComponents_authExpanded___GrvL {
  animation: AuthComponents_expandIn__einQe 0.25s ease-out;
}

@keyframes AuthComponents_expandIn__einQe {
  from {
    opacity: 0;
    max-height: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    max-height: 500px;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .AuthComponents_authExpanded___GrvL {
    animation: none;
  }
}

/* Footer */
.AuthComponents_footer__F_fNs {
  margin-top: 24px;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.8rem;
}

.AuthComponents_footer__F_fNs p {
  margin-bottom: 4px;
}

.AuthComponents_teams__LTQL8 {
  color: var(--text-secondary);
}

/* TOTP Form styles */
.AuthComponents_totpContainer__0g37v {
  text-align: center;
}

.AuthComponents_totpInfo__KvolN {
  color: var(--text-secondary);
  margin-bottom: 24px;
  font-size: 0.95rem;
}

.AuthComponents_codeInputContainer__IGoNn {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
}

.AuthComponents_codeInput__hemF2 {
  width: 48px;
  height: 56px;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
  font-family: var(--font-mono);
  background: var(--bg-card);
  border: 2px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.AuthComponents_codeInput__hemF2:focus {
  outline: none;
  border-color: var(--accent-gold);
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.2);
}

.AuthComponents_codeInput__hemF2:disabled {
  opacity: 0.6;
}

.AuthComponents_timer__fzrht {
  color: var(--text-secondary);
  font-size: 0.875rem;
  margin-bottom: 20px;
}

.AuthComponents_expired__OlNK8 {
  color: var(--accent-rose);
  font-size: 0.875rem;
  margin-bottom: 20px;
}

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

.AuthComponents_totpActions__S7_3C button {
  min-width: 140px;
}

.AuthComponents_backLink__8exdq {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.875rem;
  text-decoration: underline;
  padding: 8px;
}

.AuthComponents_backLink__8exdq:hover {
  color: var(--text-secondary);
}

.AuthComponents_backLink__8exdq:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.AuthComponents_loading___F6je {
  color: var(--text-muted);
  font-size: 0.875rem;
  margin-top: 16px;
}

/* Mobile responsiveness */
@media (max-width: 479px) {
  .AuthComponents_container__2kSpx {
    padding: var(--spacing-sm);
    min-height: 100dvh;
  }

  .AuthComponents_card__y4gLN {
    padding: var(--spacing-lg);
    border-radius: 12px;
  }

  .AuthComponents_header__HSgxN {
    margin-bottom: var(--spacing-lg);
  }

  .AuthComponents_title__d784u {
    font-size: 1.5rem;
  }

  .AuthComponents_gameTitle__kH9MI {
    font-size: 1.75rem;
    letter-spacing: 0.05em;
  }

  .AuthComponents_subtitle__N1d6M {
    font-size: var(--font-size-sm);
  }

  .AuthComponents_rules__yhpLP {
    gap: var(--spacing-md);
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
  }

  .AuthComponents_ruleItem__dqWEA {
    font-size: var(--font-size-xs);
  }

  .AuthComponents_leekhaCard__Y_yk4 {
    font-size: var(--font-size-sm);
    padding: 3px 6px;
  }

  .AuthComponents_heartIcon__Curu1 {
    font-size: 1.25rem;
  }

  .AuthComponents_form__ctgyb {
    gap: var(--spacing-md);
  }

  .AuthComponents_form__ctgyb input {
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
  }

  .AuthComponents_form__ctgyb button {
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
    padding: var(--spacing-md);
  }

  .AuthComponents_error__p0CEP {
    padding: var(--spacing-sm);
    font-size: var(--font-size-xs);
  }

  .AuthComponents_footer__F_fNs {
    margin-top: var(--spacing-md);
    font-size: var(--font-size-xs);
  }

  .AuthComponents_codeInputContainer__IGoNn {
    gap: 6px;
  }

  .AuthComponents_codeInput__hemF2 {
    width: 40px;
    height: 48px;
    font-size: 1.25rem;
  }

  .AuthComponents_divider__FHW5F {
    margin: var(--spacing-md) 0;
  }

  .AuthComponents_guestInput__qZZvc {
    padding: var(--spacing-md);
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
  }

  .AuthComponents_guestCta__ngBlk {
    padding: var(--spacing-md);
    font-size: var(--font-size-base);
    min-height: var(--touch-target-min);
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .AuthComponents_container__2kSpx {
    padding: var(--spacing-md);
  }

  .AuthComponents_card__y4gLN {
    padding: var(--spacing-xl);
  }

  .AuthComponents_gameTitle__kH9MI {
    font-size: 2rem;
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .AuthComponents_container__2kSpx {
    padding: var(--spacing-sm);
    align-items: flex-start;
    overflow-y: auto;
  }

  .AuthComponents_card__y4gLN {
    padding: var(--spacing-md);
    margin: var(--spacing-sm) 0;
  }

  .AuthComponents_header__HSgxN {
    margin-bottom: var(--spacing-md);
  }

  .AuthComponents_rules__yhpLP {
    margin-bottom: var(--spacing-md);
  }

  .AuthComponents_footer__F_fNs {
    margin-top: var(--spacing-sm);
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/auth/ProfileDrawer.module.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
.ProfileDrawer_header__N3wLz {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.ProfileDrawer_title__Q7C1J {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

.ProfileDrawer_closeBtn__vFofK {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}

.ProfileDrawer_closeBtn__vFofK:hover {
  color: var(--text-primary);
}

.ProfileDrawer_field__9ozRN {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.ProfileDrawer_label__AXROG {
  font-size: 0.85rem;
  color: var(--text-secondary);
  font-weight: 500;
}

.ProfileDrawer_readOnly__PI65X {
  padding: 8px 12px;
  background: var(--bg-tertiary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  font-family: inherit;
}

.ProfileDrawer_actions__XTgbG {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.ProfileDrawer_feedbackSuccess__gr6lj {
  color: var(--color-success, #4ade80);
  font-size: 0.9rem;
  margin: 8px 0 0 0;
}

.ProfileDrawer_feedbackError__wGbhN {
  color: var(--color-error, #f87171);
  font-size: 0.9rem;
  margin: 8px 0 0 0;
}

.ProfileDrawer_rateLimitNote__Ziv7y {
  color: var(--text-secondary);
  font-size: 0.85rem;
  margin: 8px 0 0 0;
}

.ProfileDrawer_section__uitdW + .ProfileDrawer_section__uitdW {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--border-color);
}

.ProfileDrawer_sectionTitle__HZIpk {
  font-size: 0.9rem;
  color: var(--text-secondary);
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/*!************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/StatsModal.module.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************/
.StatsModal_overlay__YAXtu {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  animation: StatsModal_fadeIn__EEe9X 0.3s ease;
  padding: 20px;
}

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

.StatsModal_modal__ntB_x {
  position: relative;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  max-width: 900px;
  width: 100%;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  animation: StatsModal_slideUp__AxRKO 0.3s ease;
}

@keyframes StatsModal_slideUp__AxRKO {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.StatsModal_closeBtn__SqIaV {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.2s ease;
  z-index: 1;
}

.StatsModal_closeBtn__SqIaV:hover {
  color: var(--text-primary);
  background: var(--bg-card);
}

/* Top-level tabs */
.StatsModal_tabs__TKoRM {
  display: flex;
  gap: 0;
  padding: 16px 24px 0;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}

.StatsModal_tab__iEdIS {
  background: none;
  border: none;
  padding: 12px 20px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: all 0.2s ease;
}

.StatsModal_tab__iEdIS:hover {
  color: var(--text-primary);
}

.StatsModal_tabActive__5tMI_ {
  color: var(--accent-sky);
  border-bottom-color: var(--accent-sky);
}

/* Scrollable content area */
.StatsModal_content__Lhkiv {
  overflow-y: auto;
  padding: 20px 24px 24px;
  flex: 1 1;
  min-height: 0;
}

/* Leaderboard layout */
.StatsModal_leaderboardLayout__S8ox_ {
  display: grid;
  grid-template-columns: 1fr 280px;
  grid-gap: 20px;
  gap: 20px;
}

.StatsModal_leaderboardMain__YU9P7 {
  min-width: 0;
}

.StatsModal_activitySidebar__OEFmD {
  min-width: 0;
}

.StatsModal_sidebarTitle__uXlc3 {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 12px;
}

/* Leaderboard controls */
.StatsModal_controls__TwBbk {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.StatsModal_activeOnlyLabel__okygE {
  font-size: 0.85rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.StatsModal_activeOnlyCheckbox__htJd5 {
  accent-color: var(--accent-sky);
  width: 16px;
  height: 16px;
  cursor: pointer;
}

/* Stats layout */
.StatsModal_statsLayout___1tjL {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.StatsModal_searchForm__9aNBC {
  display: flex;
  gap: 10px;
}

.StatsModal_searchInput__Zs8qF {
  flex: 1 1;
  padding: 10px 14px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-primary);
  font-size: 0.9rem;
  outline: none;
  transition: border-color 0.2s ease;
}

.StatsModal_searchInput__Zs8qF::placeholder {
  color: var(--text-muted);
}

.StatsModal_searchInput__Zs8qF:focus {
  border-color: var(--accent-sky);
}

.StatsModal_searchBtn__FxBDe {
  padding: 10px 20px;
  background: var(--accent-sky);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 0.9rem;
  cursor: pointer;
  transition: opacity 0.2s ease;
  white-space: nowrap;
}

.StatsModal_searchBtn__FxBDe:hover {
  opacity: 0.9;
}

.StatsModal_searchBtn__FxBDe:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.StatsModal_statsResults__MVJtH {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.StatsModal_gamesSection__c7N56 {
  margin-top: 4px;
}

/* Shared states */
.StatsModal_errorMessage___FBZF {
  background: rgba(244, 63, 94, 0.1);
  border: 1px solid rgba(244, 63, 94, 0.3);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
}

.StatsModal_errorMessage___FBZF p {
  margin: 0;
  color: var(--accent-rose);
  font-size: 0.9rem;
}

.StatsModal_loadingState__DXqj6 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 20px;
  gap: 12px;
  color: var(--text-muted);
}

.StatsModal_spinner__DkNXJ {
  width: 28px;
  height: 28px;
  border: 3px solid var(--border-color);
  border-top-color: var(--accent-blue);
  border-radius: 50%;
  animation: StatsModal_spin__Mab9N 1s linear infinite;
}

@keyframes StatsModal_spin__Mab9N {
  to { transform: rotate(360deg); }
}

/* Mobile */
@media (max-width: 479px) {
  .StatsModal_overlay__YAXtu {
    padding: 0;
    align-items: flex-end;
  }

  .StatsModal_modal__ntB_x {
    border-radius: 16px 16px 0 0;
    max-height: 95vh;
    max-width: 100%;
  }

  .StatsModal_tabs__TKoRM {
    padding: 12px 16px 0;
  }

  .StatsModal_tab__iEdIS {
    flex: 1 1;
    text-align: center;
    padding: 10px 12px;
    font-size: 0.9rem;
  }

  .StatsModal_content__Lhkiv {
    padding: 16px;
  }

  .StatsModal_leaderboardLayout__S8ox_ {
    grid-template-columns: 1fr;
  }

  .StatsModal_controls__TwBbk {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .StatsModal_searchForm__9aNBC {
    flex-direction: column;
  }
}

/* Tablet */
@media (min-width: 480px) and (max-width: 767px) {
  .StatsModal_overlay__YAXtu {
    padding: 12px;
  }

  .StatsModal_modal__ntB_x {
    max-height: 90vh;
  }

  .StatsModal_leaderboardLayout__S8ox_ {
    grid-template-columns: 1fr;
  }
}

/*!*****************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./components/consent/CookieConsentBanner.module.css ***!
  \*****************************************************************************************************************************************************************************************************************************************************************************************************/
.CookieConsentBanner_banner__WEjm5 {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  background: var(--bg-secondary);
  border-top: 1px solid var(--border-color);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
  animation: CookieConsentBanner_slideUp__CY5hW 0.3s ease forwards;
}

.CookieConsentBanner_text__ZFpAQ {
  flex: 1 1;
  min-width: 0;
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: 1.4;
}

.CookieConsentBanner_actions___Owar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.CookieConsentBanner_acceptBtn___v54f {
  padding: 8px 20px;
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: #292524;
  background: linear-gradient(135deg, var(--accent-gold) 0%, #d97706 100%);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  min-height: var(--touch-target-min);
  white-space: nowrap;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 8px rgba(251, 191, 36, 0.25);
}

.CookieConsentBanner_acceptBtn___v54f:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(251, 191, 36, 0.35);
}

.CookieConsentBanner_declineBtn__LnUgi {
  padding: 8px 12px;
  background: transparent;
  color: var(--text-muted);
  border: none;
  font-size: var(--font-size-xs);
  cursor: pointer;
  min-height: var(--touch-target-min);
  white-space: nowrap;
}

.CookieConsentBanner_declineBtn__LnUgi:hover {
  color: var(--text-secondary);
}

/* Mobile: stack text and buttons vertically */
@media (max-width: 479px) {
  .CookieConsentBanner_banner__WEjm5 {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 14px 16px;
  }

  .CookieConsentBanner_actions___Owar {
    justify-content: flex-end;
  }
}

@keyframes CookieConsentBanner_slideUp__CY5hW {
  from {
    transform: translateY(100%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .CookieConsentBanner_banner__WEjm5 {
    animation: none;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[7].use[3]!./app/stats/stats.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************/
/* Stats Page Styles */

.stats_container__a9S55 {
  min-height: 100vh;
  padding: 24px;
  max-width: 1400px;
  margin: 0 auto;
}

/* Navigation */
.stats_nav__wQb0D {
  display: flex;
  gap: 24px;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-color);
}

.stats_navLink__0WlbM {
  color: var(--text-secondary);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.stats_navLink__0WlbM:hover {
  color: var(--accent-blue);
}

.stats_navActive__g2Q87 {
  color: var(--text-primary);
  font-weight: 600;
}

/* Header */
.stats_header__fus0g {
  text-align: center;
  margin-bottom: 32px;
}

.stats_title__Y5cRd {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 8px 0;
}

.stats_subtitle__gZcDC {
  font-size: 1rem;
  color: var(--text-secondary);
  margin: 0;
}

/* Search */
.stats_searchSection__O9_QJ {
  margin-bottom: 32px;
}

.stats_searchForm__FIVbr {
  display: flex;
  gap: 12px;
  max-width: 500px;
  margin: 0 auto;
}

.stats_searchForm__FIVbr .stats_input__Onx_5 {
  flex: 1 1;
}

/* Results */
.stats_resultsSection__wGNIx {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.stats_gamesSection__wbQq2 {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 24px;
}

.stats_sectionTitle__Gg0km {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 16px 0;
}

/* States */
.stats_errorMessage__XQ05J {
  text-align: center;
  padding: 24px;
  background: rgba(244, 63, 94, 0.1);
  border: 1px solid rgba(244, 63, 94, 0.3);
  border-radius: 8px;
  color: var(--accent-rose);
  margin-bottom: 24px;
}

.stats_loadingState__WYSqt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  gap: 16px;
  color: var(--text-muted);
}

.stats_spinner__2p7l_ {
  width: 40px;
  height: 40px;
  border: 3px solid var(--border-color);
  border-top-color: var(--accent-blue);
  border-radius: 50%;
  animation: stats_spin__Zd6T2 1s linear infinite;
}

@keyframes stats_spin__Zd6T2 {
  to {
    transform: rotate(360deg);
  }
}

/* Responsive */
@media (max-width: 600px) {
  .stats_container__a9S55 {
    padding: 16px;
  }

  .stats_nav__wQb0D {
    gap: 16px;
    font-size: 0.9rem;
  }

  .stats_title__Y5cRd {
    font-size: 1.5rem;
  }

  .stats_searchForm__FIVbr {
    flex-direction: column;
  }

  .stats_gamesSection__wbQq2 {
    padding: 16px;
  }
}

