/* Geometry recovery only: artwork and authoritative seat-to-player mapping remain unchanged. */
.premium-app .premium-table {
  --pt-readable-seat-width: 68px;
  padding: 8px 8px 20px;
  overflow-x: clip;
  min-width: 0;
  scroll-padding-bottom: calc(var(--asset-nav-height, 80px) + 16px);
}
.premium-table .pt-header { position: relative; z-index: 3; flex-wrap: nowrap; }
.premium-table .pt-header .pt-button { flex: 0 0 auto; min-width: 48px; min-height: 48px; }
.premium-table .pt-info { position: relative; margin: 8px 0 12px; line-height: 18px; }
/* Do not trade away the nine seats to make a larger action panel fit the viewport. */
.premium-table .pt-arena {
  height: clamp(360px, 53dvh, 430px);
  min-height: 360px;
  margin: 12px auto 18px;
  overflow: visible;
}
.premium-table .pt-seat {
  width: var(--pt-readable-seat-width);
  min-height: 64px;
  padding: 3px 2px;
  font-size: 11px;
}
.premium-table .pt-avatar {
  width: 24px; height: 24px;
  margin: 0 auto 2px;
  flex: 0 0 auto;
}
.premium-table .pt-name { font-size: 11px; line-height: 13px; }
.premium-table .pt-stack { font-size: 11px; line-height: 14px; }
.premium-table .pt-badges { min-height: 12px; }
.premium-table .pt-seat-status { font-size: 10px; line-height: 12px; min-height: 0; }
.premium-table .pt-contribution {
  position: static; display: block; transform: none;
  font-size: 10px; line-height: 14px;
}
.premium-table .pt-center { top: 32%; width: 67%; }
.premium-table .pt-board { gap: 3px; margin: 8px 0; }
.premium-table .pt-board .pt-card { width: 27px; height: 41px; flex-shrink: 0; }
.premium-table .pt-splits { max-height: 44px; overflow: auto; line-height: 13px; }
.premium-table .pt-hand {
  position: relative; z-index: 2; min-height: 58px;
  margin: 4px auto 12px; flex-wrap: wrap; gap: 6px 12px;
}
/* A sticky panel retains its real place in document flow. No guessed fixed-dock padding. */
.premium-table .pt-controls {
  position: sticky;
  bottom: var(--asset-nav-height, 80px);
  left: auto; transform: none;
  width: 100%; max-width: 760px;
  max-height: none; overflow: visible;
  z-index: 4; margin: 0 auto;
  background: #0e1721;
}
.premium-table .pt-button, .premium-table .pt-slider { min-height: 48px; }
.premium-table .pt-controls > .pt-primary { margin-top: 0; }
.premium-table .pt-settlement {
  position: relative; z-index: 1;
  max-height: 42dvh; overflow-y: auto; overscroll-behavior: contain;
  margin: 12px 0 0; padding: 12px;
}
.premium-table[data-table-state=settled] .pt-controls { position: relative; bottom: auto; }
.premium-table .pt-settlement .pt-result { line-height: 1.45; }
@media (min-width: 390px) {
  .premium-app .premium-table { --pt-readable-seat-width: 72px; }
  .premium-table .pt-board .pt-card { width: 30px; height: 45px; }
}
@media (min-width: 600px) {
  .premium-app .premium-table { --pt-readable-seat-width: 88px; }
  .premium-table .pt-arena { min-height: 430px; height: 500px; }
  .premium-table .pt-board .pt-card { width: 38px; height: 55px; }
}
@media (orientation: landscape) and (max-height: 500px) {
  .premium-table .pt-controls { position: relative; bottom: auto; }
  .premium-table .pt-arena { height: 360px; }
}
/* Table is a self-contained viewport. Shell chrome has its own counterpart in pt-header. */
.premium-app:has(.premium-table) { padding: 0; min-height: 100dvh; }
.premium-app:has(.premium-table) > .premium-top,
.premium-app:has(.premium-table) > .premium-notice { display: none; }
.premium-app:has(.premium-table) > main { margin: 0; padding: 0; }
.premium-app .premium-table {
  height: calc(100dvh - var(--asset-nav-height, 80px));
  min-height: 0;
  display: grid;
  grid-template-rows: 48px 18px minmax(0, 1fr) 54px auto;
  gap: 4px;
  padding: 4px 8px 6px;
  overflow-y: auto;
  scroll-padding-bottom: 0;
}
.premium-table .pt-header { min-height: 48px; }
.premium-table .pt-info { margin: 0; line-height: 18px; }
.premium-table .pt-arena {
  min-height: 325px;
  height: 100%;
  margin: 0;
}
.premium-table .pt-seat { min-height: 0; padding: 2px; }
.premium-table .pt-avatar { width: 20px; height: 20px; margin: 0 auto 1px; font-size: 11px; }
.premium-table .pt-name { font-size: 10px; line-height: 11px; }
.premium-table .pt-stack { font-size: 10px; line-height: 12px; }
.premium-table .pt-seat-status { font-size: 9px; line-height: 11px; }
.premium-table .pt-contribution { font-size: 9px; line-height: 11px; }
.premium-table .pt-hand { min-height: 54px; margin: 0; }
.premium-table .pt-controls {
  position: relative;
  bottom: auto;
  align-self: end;
  padding: 4px !important;
  gap: 2px;
}
.premium-table .pt-actions { gap: 2px; }
.premium-table .pt-countdown, .premium-table .pt-message { font-size: 10px; min-height: 14px; line-height: 14px; }
.premium-table .pt-raise-bounds { line-height: 12px; }
.premium-table[data-table-state=settled] { grid-template-rows: 48px 18px minmax(325px, 1fr) 54px auto minmax(0, auto); }
.premium-table .pt-settlement { min-height: 0; max-height: 150px; margin: 0; }
@media (max-height: 650px), (orientation: landscape) and (max-height: 500px) {
  .premium-app .premium-table { grid-template-rows: 48px 18px minmax(325px, auto) 54px auto; }
}
/* Keep the top and bottom seat boxes inside their arena; player-seat identity is unchanged. */
.premium-table .pt-seat-4, .premium-table .pt-seat-5 { top: 13%; }
.premium-table .pt-seat-0 { top: 86%; }
