/* In landscape, compact player cards sit beside the table instead of above it. */
.landscape-table .game-panel:not(.practice-mode){display:grid;grid-template-columns:clamp(132px,20vw,180px) minmax(0,1fr);column-gap:12px;--table-space:calc(var(--viewport-height,100dvh) - 118px - var(--tg-content-top,env(safe-area-inset-top)) - var(--content-bottom))}
.landscape-table .game-panel:not(.practice-mode) .game-heading{grid-column:1 / -1}
.landscape-table .game-panel:not(.practice-mode) .players{grid-column:1;grid-row:2;display:flex;flex-direction:column;align-self:center;height:auto;gap:8px;margin:0 0 48px}
.landscape-table .game-panel:not(.practice-mode) .table-stage{grid-column:2;grid-row:2;min-width:0}
.landscape-table .players .player{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;padding:8px;border-radius:9px;flex:none;text-align:left;justify-content:normal}
.landscape-table .players .avatar{grid-column:1;grid-row:1;width:24px;height:24px;min-width:24px;font-size:13px}
.landscape-table .players .player-details{display:contents}
.landscape-table .players .player-name-row{grid-column:2;grid-row:1;min-width:0;height:auto;flex-wrap:wrap;justify-content:flex-start;gap:2px 5px}
.landscape-table .players .player strong{height:auto;max-width:100%;font-size:10px;line-height:13px}
.landscape-table .players .connection{flex-basis:100%;font-size:8px;line-height:11px;gap:4px}
.landscape-table .players .ball-tray{grid-column:1 / -1;display:grid;grid-template-columns:repeat(7,12px);grid-template-rows:auto 12px;justify-content:start;gap:4px;width:auto;height:auto;min-height:0;margin:0}
.landscape-table .players .ball-tray .group-label{grid-column:1 / -1;margin:0;font-size:8px;line-height:12px;text-align:left}
.landscape-table .players .tray-ball{width:12px;height:12px;font-size:8px}
