/* RiverX Poker Gameplay Polish v117
   Final-scoped overrides for the live table client, professional bet sizing,
   and stable home poker hover behavior. */

/* Generic floating table notices are intentionally removed. Host announcements
   can still appear when Robert's Table explicitly provides one. */
#view-table #tableAlert[hidden] { display: none !important; }
#view-table #tableAlert.rx-roberts-announcement:not([hidden]) {
  display: block !important;
  top: 12px !important;
  max-width: min(560px, calc(100% - 32px)) !important;
  padding: 7px 12px !important;
  border: 1px solid rgba(213, 177, 93, .3) !important;
  border-radius: 10px !important;
  background: rgba(7, 11, 22, .88) !important;
  color: #e8edf7 !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.3) !important;
  backdrop-filter: blur(12px) !important;
  font-size: .68rem !important;
  letter-spacing: .02em !important;
}

#view-table,
#view-table * { box-sizing: border-box; }

#view-table .table-shell {
  min-width: 0 !important;
}

#view-table .table-info-card {
  border: 1px solid rgba(186, 151, 79, .17) !important;
  background:
    radial-gradient(circle at 0 0, rgba(116, 72, 178, .11), transparent 34%),
    linear-gradient(145deg, rgba(12, 16, 29, .96), rgba(7, 10, 20, .94)) !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.025) !important;
}

#view-table .table-info-card .table-meta > div {
  border-color: rgba(255,255,255,.07) !important;
  background: rgba(255,255,255,.03) !important;
}

#view-table .action-panel {
  border: 1px solid rgba(185, 151, 80, .20) !important;
  background:
    radial-gradient(circle at 36% 0%, rgba(112, 70, 175, .10), transparent 38%),
    linear-gradient(155deg, rgba(9, 13, 26, .97), rgba(5, 8, 17, .96)) !important;
  box-shadow: 0 16px 42px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.03) !important;
}

#view-table .turn-status {
  min-width: 0 !important;
  padding: 7px 10px !important;
  border-radius: 10px !important;
  border: 1px solid rgba(121, 93, 184, .14) !important;
  background: rgba(7, 11, 23, .68) !important;
}
#view-table .turn-status span {
  display: block !important;
  margin-bottom: 3px !important;
  color: #9b8cff !important;
  font-weight: 850 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}
#view-table .turn-status strong {
  display: block !important;
  color: #f2f5fb !important;
  line-height: 1.3 !important;
}
#view-table .turn-status small {
  display: block !important;
  min-height: 0 !important;
  margin-top: 2px !important;
  color: #8e9bb0 !important;
}

#view-table .bet-controls {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 7px !important;
  min-width: 0 !important;
  padding: 10px 11px !important;
  border: 1px solid rgba(115, 134, 177, .18) !important;
  border-radius: 14px !important;
  background:
    radial-gradient(circle at 92% 0, rgba(124, 83, 211, .12), transparent 46%),
    linear-gradient(160deg, rgba(12, 18, 34, .96), rgba(7, 11, 23, .97)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 10px 28px rgba(0,0,0,.18) !important;
}
#view-table .raise-control-head,
#view-table .raise-range-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  min-width: 0 !important;
}
#view-table .raise-control-head { margin: 0 !important; }
#view-table .raise-control-title {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  min-width: 0 !important;
}
#view-table .raise-control-title span {
  color: #7f8da6 !important;
  font-size: .56rem !important;
  font-weight: 850 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
}
#view-table .raise-control-title strong {
  color: #e7ecf6 !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
}
#view-table #raiseOutput {
  display: grid !important;
  justify-items: end !important;
  gap: 1px !important;
  color: #f7f9fd !important;
  white-space: nowrap !important;
}
#view-table #raiseOutput span {
  color: #76849c !important;
  font-size: .5rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}
#view-table #raiseOutput strong {
  color: #f7f9fd !important;
  font-size: .86rem !important;
  font-variant-numeric: tabular-nums !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
}
#view-table .raise-table-context {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-width: 0 !important;
}
#view-table .raise-table-context > span {
  flex: 1 1 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 6px !important;
  min-width: 0 !important;
  padding: 4px 7px !important;
  border: 1px solid rgba(119, 139, 183, .12) !important;
  border-radius: 7px !important;
  background: rgba(2, 6, 15, .46) !important;
  color: #718098 !important;
  font-size: .54rem !important;
  font-weight: 750 !important;
  text-transform: uppercase !important;
}
#view-table .raise-table-context strong {
  color: #cdd5e3 !important;
  font-size: .62rem !important;
  font-variant-numeric: tabular-nums !important;
}
#view-table .raise-entry-row {
  display: grid !important;
  grid-template-columns: 106px minmax(0, 1fr) !important;
  align-items: end !important;
  gap: 9px !important;
  min-width: 0 !important;
}
#view-table .raise-number-field {
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
}
#view-table .raise-number-field > span {
  color: #748299 !important;
  font-size: .5rem !important;
  font-weight: 800 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}
#view-table #raiseAmountInput {
  width: 100% !important;
  height: 30px !important;
  min-width: 0 !important;
  padding: 0 8px !important;
  border: 1px solid rgba(132, 112, 210, .32) !important;
  border-radius: 8px !important;
  outline: 0 !important;
  background: rgba(3, 7, 17, .88) !important;
  color: #f4f7fc !important;
  box-shadow: inset 0 1px 6px rgba(0,0,0,.32) !important;
  font: 850 .72rem/1 ui-sans-serif, system-ui, sans-serif !important;
  font-variant-numeric: tabular-nums !important;
}
#view-table #raiseAmountInput:focus-visible {
  border-color: rgba(154, 131, 255, .78) !important;
  box-shadow: 0 0 0 3px rgba(126, 91, 232, .14), inset 0 1px 6px rgba(0,0,0,.32) !important;
}
#view-table #raiseAmountInput::-webkit-inner-spin-button,
#view-table #raiseAmountInput::-webkit-outer-spin-button { opacity: .32 !important; }
#view-table .raise-slider-shell {
  display: flex !important;
  align-items: center !important;
  min-width: 0 !important;
  height: 30px !important;
  padding: 0 2px !important;
}
#view-table .raise-range-meta {
  margin: -2px 0 0 !important;
  color: #71829c !important;
  font-size: .52rem !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
}
#view-table .bet-controls.is-all-in #raiseOutput strong,
#view-table .bet-controls.is-all-in #raiseMaxLabel { color: #e2be68 !important; }
#view-table .bet-controls.is-all-in {
  border-color: rgba(226, 190, 104, .36) !important;
  box-shadow: 0 0 0 1px rgba(226,190,104,.06), inset 0 1px 0 rgba(255,255,255,.04), 0 10px 30px rgba(0,0,0,.2) !important;
}
#view-table .bet-controls.is-disabled { opacity: .62 !important; }
#view-table #raiseAmount {
  --raise-progress: 0%;
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 5px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  outline: 0 !important;
  background: linear-gradient(90deg, #7760d9 0 var(--raise-progress), rgba(102, 118, 151, .24) var(--raise-progress) 100%) !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.55) !important;
  cursor: pointer !important;
}
#view-table #raiseAmount::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  width: 17px !important;
  height: 17px !important;
  border: 2px solid #f2f4fb !important;
  border-radius: 50% !important;
  background: linear-gradient(145deg, #9a85ff, #6550c8) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.5), 0 0 0 4px rgba(126,91,232,.12) !important;
}
#view-table #raiseAmount::-moz-range-thumb {
  width: 14px !important;
  height: 14px !important;
  border: 2px solid #f2f4fb !important;
  border-radius: 50% !important;
  background: linear-gradient(145deg, #9a85ff, #6550c8) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.5), 0 0 0 4px rgba(126,91,232,.12) !important;
}
#view-table #raiseAmount:focus-visible::-webkit-slider-thumb { box-shadow: 0 3px 10px rgba(0,0,0,.5), 0 0 0 6px rgba(154,133,255,.22) !important; }
#view-table #raiseAmount:disabled { cursor: not-allowed !important; }
#view-table .raise-preset-row {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 5px !important;
  min-width: 0 !important;
}
#view-table .raise-preset-row button {
  min-width: 0 !important;
  min-height: 27px !important;
  padding: 4px 5px !important;
  border: 1px solid rgba(126, 145, 185, .18) !important;
  border-radius: 7px !important;
  background: linear-gradient(180deg, rgba(27, 35, 55, .88), rgba(13, 19, 33, .92)) !important;
  color: #bac4d5 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035) !important;
  font-size: .57rem !important;
  font-weight: 850 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: border-color 140ms ease, background 140ms ease, color 140ms ease, transform 140ms ease !important;
}
#view-table .raise-preset-row button:hover:not(:disabled),
#view-table .raise-preset-row button:focus-visible:not(:disabled) {
  transform: translateY(-1px) !important;
  border-color: rgba(155, 132, 255, .56) !important;
  background: linear-gradient(180deg, rgba(55, 46, 96, .92), rgba(26, 23, 53, .96)) !important;
  color: #f1edff !important;
}
#view-table .raise-preset-row .raise-preset-all-in {
  border-color: rgba(218, 181, 91, .24) !important;
  color: #e5c577 !important;
}
#view-table .raise-preset-row button:disabled {
  opacity: .38 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

#view-table .action-buttons {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  min-width: 0 !important;
}
#view-table .action-buttons button {
  flex: 1 1 82px !important;
  max-width: 148px !important;
  min-height: 38px !important;
  border-radius: 9px !important;
  font-size: .66rem !important;
  font-weight: 900 !important;
  letter-spacing: .035em !important;
  white-space: nowrap !important;
}
#view-table #foldBtn:not(:disabled) {
  border-color: rgba(239, 91, 107, .34) !important;
  background: linear-gradient(180deg, rgba(115, 30, 44, .92), rgba(68, 18, 29, .96)) !important;
  color: #ffe8ec !important;
}
#view-table #checkBtn:not(:disabled),
#view-table #callBtn:not(:disabled) {
  border-color: rgba(109, 150, 210, .28) !important;
  background: linear-gradient(180deg, rgba(31, 48, 75, .94), rgba(18, 29, 50, .98)) !important;
  color: #e7effc !important;
}
#view-table #betBtn:not(:disabled),
#view-table #raiseBtn:not(:disabled) {
  border-color: rgba(71, 216, 137, .38) !important;
  background: linear-gradient(180deg, #22985c, #12643d) !important;
  color: #f1fff8 !important;
  box-shadow: 0 8px 18px rgba(14, 105, 61, .25), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
#view-table #dealBtn {
  flex-basis: 116px !important;
  max-width: 172px !important;
}

#view-table .side-console {
  min-width: 0 !important;
}
#view-table .side-console .wallet-card,
#view-table .side-console .log-card {
  border: 1px solid rgba(185,151,80,.16) !important;
  background:
    radial-gradient(circle at 0 0, rgba(112,70,175,.08), transparent 42%),
    linear-gradient(150deg, rgba(10,14,27,.96), rgba(6,9,18,.95)) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.025) !important;
}
#view-table .side-console .wallet-card strong { color: #f5f7fc !important; }
#view-table .table-requirement-card strong { color: #e1bf70 !important; }
#view-table .game-log {
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
}
#view-table .game-log:empty::before {
  content: "No table updates yet.";
  display: block;
  padding: 7px 9px;
  border-radius: 8px;
  border: 1px solid rgba(113,143,191,.18);
  background: rgba(8,15,30,.72);
  color: #8795aa;
  font-size: .6rem;
}

/* Desktop: never clip the professional control console. A short display may
   scroll vertically, but the live table and controls never create horizontal overflow. */
@media (min-width: 1051px) {
  body[data-active-view="table"] {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
  body[data-active-view="table"] main {
    height: auto !important;
    min-height: calc(100dvh - 64px) !important;
    overflow: visible !important;
    padding-top: 8px !important;
    padding-bottom: 18px !important;
  }
  #view-table.rx-dedicated-game-screen {
    height: auto !important;
    min-height: calc(100dvh - 76px) !important;
    overflow: visible !important;
  }
  #view-table .table-shell {
    width: min(1480px, calc(100vw - 24px)) !important;
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: auto auto auto !important;
    gap: 10px !important;
    overflow: visible !important;
  }
  #view-table .poker-stage {
    height: auto !important;
    min-height: 0 !important;
    grid-template-rows: auto auto !important;
    gap: 9px !important;
    padding: 2px 14px 0 !important;
    overflow: visible !important;
  }
  #view-table .poker-table,
  #view-table .poker-table:not(.exact-art-mode) {
    width: min(100%, 1040px) !important;
    height: auto !important;
    max-height: none !important;
    margin-inline: auto !important;
  }
  #view-table .action-panel {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: min(1240px, 100%) !important;
    min-height: 72px !important;
    margin: 0 auto !important;
    padding: 9px !important;
    grid-template-columns: minmax(170px,.7fr) minmax(390px,1.45fr) minmax(320px,1.1fr) !important;
    gap: 8px !important;
    border-radius: 14px !important;
  }
  #view-table .side-console {
    min-height: 92px !important;
    display: grid !important;
    grid-template-columns: 190px 190px minmax(0,1fr) !important;
    gap: 9px !important;
    overflow: visible !important;
  }
  #view-table .side-console .wallet-card,
  #view-table .side-console .log-card {
    min-height: 92px !important;
    padding: 10px 11px !important;
    border-radius: 13px !important;
  }
  #view-table .game-log {
    height: 58px !important;
    min-height: 46px !important;
  }
}

@media (min-width: 1051px) and (max-height: 760px) {
  #view-table .poker-table,
  #view-table .poker-table:not(.exact-art-mode) { width: min(100%, 860px) !important; }
  #view-table .side-console { min-height: 82px !important; }
  #view-table .side-console .wallet-card,
  #view-table .side-console .log-card { min-height: 82px !important; }
  #view-table .game-log { height: 48px !important; }
}

@media (min-width: 1051px) and (max-width: 1240px) {
  #view-table .action-panel {
    grid-template-columns: minmax(150px, .62fr) minmax(330px, 1.38fr) !important;
  }
  #view-table .action-buttons {
    grid-column: 1 / -1 !important;
    justify-content: stretch !important;
  }
  #view-table .action-buttons button { max-width: none !important; }
}

@media (max-width: 1050px) {
  #view-table .table-shell { overflow: visible !important; }
  #view-table .poker-stage {
    display: grid !important;
    grid-template-rows: auto auto !important;
    gap: 10px !important;
    overflow: visible !important;
  }
  #view-table .action-panel {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
    gap: 8px !important;
    padding: 10px !important;
  }
  #view-table .action-buttons { grid-column: 1 / -1 !important; justify-content: stretch !important; }
  #view-table .action-buttons button { max-width: none !important; }
  #view-table .side-console { gap: 10px !important; }
  #view-table .side-console .wallet-card,
  #view-table .side-console .log-card { padding: 11px 12px !important; }
  #view-table .game-log { min-height: 110px !important; height: 150px !important; }
}

@media (max-width: 640px) {
  #view-table .table-info-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }
  #view-table .table-info-card h2 { white-space: normal !important; }
  #view-table .table-info-card .table-meta {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    margin: 0 !important;
    width: 100% !important;
  }
  #view-table .action-panel { grid-template-columns: 1fr !important; }
  #view-table .action-buttons { grid-column: auto !important; }
  #view-table .action-buttons button { flex-basis: calc(50% - 6px) !important; min-height: 42px !important; }
  #view-table #dealBtn { flex-basis: 100% !important; max-width: none !important; }
  #view-table .raise-control-head { align-items: flex-start !important; }
  #view-table #raiseOutput { white-space: normal !important; text-align: right !important; }
  #view-table .raise-entry-row { grid-template-columns: 94px minmax(0, 1fr) !important; }
  #view-table .raise-preset-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  #view-table .raise-preset-row .raise-preset-all-in { grid-column: span 2 !important; }
}

@media (max-width: 390px) {
  #view-table .raise-entry-row { grid-template-columns: 1fr !important; gap: 4px !important; }
  #view-table .raise-number-field { grid-template-columns: auto 1fr !important; align-items: center !important; }
  #view-table .raise-preset-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  #view-table .raise-preset-row .raise-preset-all-in { grid-column: auto !important; }
}

/* Home poker cards: one definitive hover system. The button never moves, so the
   grid cannot jump. Only the raster art receives a tiny GPU transform/glow. */
#view-home .rx-home-table-graphic-card,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card {
  position: relative !important;
  transform: none !important;
  transition: none !important;
  contain: layout paint !important;
  isolation: isolate !important;
  overflow: visible !important;
}
#view-home .rx-home-table-graphic-card:hover,
#view-home .rx-home-table-graphic-card:focus-visible,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card:hover,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card:focus-visible {
  transform: none !important;
  box-shadow: none !important;
}
#view-home .rx-home-table-graphic-card > img,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card > img {
  transform: translateZ(0) scale(1) !important;
  transform-origin: center center !important;
  backface-visibility: hidden !important;
  will-change: transform, filter !important;
  transition: transform 180ms ease, filter 180ms ease !important;
  filter: saturate(1.02) contrast(1.01) brightness(1) drop-shadow(0 10px 20px rgba(0,0,0,.12)) !important;
}
#view-home .rx-home-table-graphic-card:not(.is-access-disabled):hover > img,
#view-home .rx-home-table-graphic-card:not(.is-access-disabled):focus-visible > img,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card:not(.is-access-disabled):hover > img,
#view-home .rx-poker-main-focus-row .rx-home-table-graphic-card:not(.is-access-disabled):focus-visible > img {
  transform: translateZ(0) scale(1.012) !important;
  filter: saturate(1.055) contrast(1.025) brightness(1.025) drop-shadow(0 12px 24px rgba(103,72,171,.18)) !important;
}
#view-home .rx-home-table-live-count,
#view-home .rx-roberts-home-disabled { transform: translateZ(0) !important; }

@media (prefers-reduced-motion: reduce) {
  #view-home .rx-home-table-graphic-card > img,
  #view-home .rx-poker-main-focus-row .rx-home-table-graphic-card > img { transition: none !important; }
}
