/* V1.106 — waiting-room operations survive polling redraws as one transaction. */
body:not(.maintenance-mode) #roomLobby[data-room-transaction]:not([data-room-transaction="idle"]) {
  --room-transaction-accent: #71cfff;
}

body:not(.maintenance-mode) #roomLobby[data-room-transaction="start"] {
  --room-transaction-accent: #f4ca68;
}

body:not(.maintenance-mode) #roomLobby[data-room-transaction="add-bot"] {
  --room-transaction-accent: #75dbb6;
}

body:not(.maintenance-mode) #roomLobby[data-room-transaction]:not([data-room-transaction="idle"]) .room-lobby-head::after {
  content: "";
  display: block;
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -5px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--room-transaction-accent), transparent);
  box-shadow: 0 0 12px color-mix(in srgb, var(--room-transaction-accent) 58%, transparent);
  transform-origin: left center;
  animation: room-lobby-transaction-rail 1.15s ease-in-out infinite;
  pointer-events: none;
}

body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"] {
  position: relative !important;
  isolation: isolate;
  cursor: wait !important;
  opacity: 1 !important;
  filter: saturate(0.9) brightness(0.96) !important;
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--room-transaction-accent) 62%, transparent),
    0 0 24px color-mix(in srgb, var(--room-transaction-accent) 32%, transparent) !important;
}

body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"]::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: 5;
  top: 50% !important;
  right: 11px !important;
  width: 17px !important;
  height: 17px !important;
  margin: -8.5px 0 0 !important;
  border: 2px solid color-mix(in srgb, var(--room-transaction-accent) 30%, transparent) !important;
  border-top-color: var(--room-transaction-accent) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: 0 0 10px color-mix(in srgb, var(--room-transaction-accent) 48%, transparent) !important;
  animation: room-lobby-transaction-spin 720ms linear infinite !important;
  pointer-events: none;
}

body:not(.maintenance-mode) #roomLobby[data-room-transaction]:not([data-room-transaction="idle"]) :is(.room-lobby-actions button, .room-seat-action):disabled:not([data-room-pending="true"]) {
  opacity: 0.48 !important;
  filter: grayscale(0.32) saturate(0.58) !important;
  cursor: wait !important;
}

@keyframes room-lobby-transaction-rail {
  0%, 100% { opacity: 0.38; transform: scaleX(0.28); }
  50% { opacity: 1; transform: scaleX(1); }
}

@keyframes room-lobby-transaction-spin {
  to { transform: rotate(1turn); }
}

@media (max-width: 720px) {
  body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"]::after {
    right: 7px !important;
    width: 14px !important;
    height: 14px !important;
    margin-top: -7px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.maintenance-mode) #roomLobby[data-room-transaction]:not([data-room-transaction="idle"]) .room-lobby-head::after,
  body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"]::after {
    animation: none !important;
  }
}

@media (forced-colors: active) {
  body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"] {
    border: 2px solid Highlight !important;
    box-shadow: none !important;
  }

  body:not(.maintenance-mode) #roomLobby button:is(#startGame, #refreshRoomLobby, .room-seat-action)[data-room-pending="true"]::after {
    border-color: ButtonText !important;
    border-top-color: Highlight !important;
    box-shadow: none !important;
  }
}
