/* The table fits the current viewport; detailed records scroll inside dialogs. */
body[data-screen=table]{height:100dvh;overflow:hidden}
body[data-screen=table] main{height:100dvh;overflow:hidden}
body[data-screen=table] .game-content{height:100%;max-width:1600px;margin:auto;padding:18px clamp(14px,3vw,46px) 12px;display:flex;flex-direction:column;min-height:0;gap:8px}
.table-heading{flex-shrink:0;margin:0;min-height:58px}.room-title-row h1{font-size:28px;margin:0}.table-heading p{margin:6px 0 0;font-size:12px}.table-toolbar{flex-shrink:0;height:52px;margin:0}.table-toolbar .table-number{font-size:11px}#street-label{font-size:12px}.table-toolbar .hand-tools{gap:12px}.hand-summary{display:flex;align-items:flex-end;flex-direction:column;gap:3px}.hand-number{font-size:22px;font-weight:750;letter-spacing:.6px;color:#375c49;font-variant-numeric:tabular-nums}.hand-stats{display:flex;align-items:center;gap:6px;font-size:12px;color:#647d59;min-height:24px;padding:0 4px}.hand-stats:hover{text-decoration:underline}.hand-stats .icon{width:13px;height:13px}.table-announcement{flex-shrink:0;min-height:32px;max-width:880px;width:85%;margin:0 auto;padding:5px 12px;font-size:13px}.online-table-info{flex-shrink:0;margin:0;padding:6px 12px;min-height:28px;font-size:11px}
body[data-screen=table] .table-stage{flex:1;min-height:0;height:auto;margin:10px 0 20px;isolation:isolate}.poker-table{inset:38px 24px 12px}.table-inner-line{inset:10px}.table-stage .board-area{top:48%;margin:0}.pot-pill{margin-bottom:12px;padding:5px 16px}.pot-pill strong{font-size:25px}.community-cards{min-height:0;gap:7px}.community-cards .card{width:55px;height:76px}.community-cards .card-rank{font-size:23px}.community-cards .card-suit-big{font-size:29px}.board-caption{margin-top:8px;font-size:10px;max-width:360px}.felt-watermark{bottom:18px;font-size:24px}
.table-stage .seat{--seat-safe:85px;width:155px}.table-stage .seat.self{--seat-y:95%;width:max-content;gap:10px}.table-stage .seat .player-pill{min-width:145px;padding:6px 11px 6px 6px;gap:7px}.table-stage .seat .avatar{width:30px;height:30px}.table-stage .seat .hole-cards{margin-bottom:5px;gap:4px}.table-stage .seat:not(.self) .hole-cards .card{width:35px;height:46px}.table-stage .seat .hole-cards .card-rank{font-size:17px;left:5px;top:4px}.table-stage .seat .hole-cards .card-suit{font-size:11px;top:23px;left:5px}.table-stage .seat .hole-cards .card-suit-big{font-size:20px;right:3px;bottom:3px}.table-stage .seat.self .hole-cards{margin:0}.table-stage .seat.self .hole-cards .card{width:43px;height:61px}.table-stage .seat.self .card-rank{font-size:22px}.table-stage .seat.self .card-suit-big{font-size:26px}.table-stage .seat .player-stack{font-size:19px;line-height:1.15;margin-top:3px}.table-stage .seat.self .player-stack{font-size:23px}.table-stage .seat .player-name{font-size:11px}.table-stage .seat .seat-action{font-size:10px;padding:2px 8px;top:calc(100% + 4px)}.borrowed{color:#bb4b4b!important;font-weight:700;font-size:12px;line-height:1.25;font-variant-numeric:tabular-nums;display:block;margin-top:2px}.player-pill:has(.borrowed){padding-top:5px;padding-bottom:5px}.seat .borrowed:before{content:'借入 ';font-size:9px;font-weight:500}.seat.self .seat-action{right:0}
.double-board .community-cards .card{width:42px;height:55px}.double-board .community-cards{gap:5px}.double-board #board-second{margin-top:7px}.double-board .pot-pill{margin-bottom:7px}.double-board .community-cards .card-rank{font-size:18px;left:5px;top:4px}.double-board .community-cards .card-suit{display:none}.double-board .community-cards .card-suit-big{font-size:23px;bottom:4px;right:4px}
.action-section{flex-shrink:0;min-height:0;padding:10px 0 0;margin:0;gap:8px}.turn-status{margin:0;font-size:13px;min-height:20px}.bet-controls{display:flex;gap:14px;align-items:center;max-width:790px;width:min(100%,790px);padding:10px 14px;border-radius:12px;min-height:82px}.bet-track{flex:1;min-width:80px;display:flex;flex-direction:column;gap:8px}.bet-track input[type=range]{width:100%;height:6px;margin:7px 0;min-width:0}.bet-presets{display:flex;justify-content:space-between;gap:2px}.bet-presets button{font-size:13px;padding:5px 8px;min-height:32px;color:#6c7f5e}.bet-amount-label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#718365;align-items:stretch}.bet-controls #bet-input{width:126px;min-width:0;height:44px;border:1px solid #c4d3b7;border-radius:7px;background:#fbfcf8;font-size:24px;line-height:1.2;font-weight:750;text-align:right;padding:6px 10px;color:#355539}.all-in-button{border:1px solid #315c48;border-radius:8px;font-size:14px;font-weight:750;letter-spacing:.5px;min-width:84px;min-height:44px;padding:8px;background:#f0f5e9;color:#315c48;align-self:center}.all-in-button:hover{background:#e1ecd5}.action-buttons{margin:0;gap:10px;max-width:790px;width:100%;justify-content:center}.action-buttons .button{height:48px;font-size:16px;min-width:135px;padding:10px 20px}.action-buttons .raise{min-width:208px}.action-buttons kbd{font-size:10px}.action-hint{font-size:10px;margin:0;min-height:15px}.action-feed{display:none}.phase-controls{width:min(100%,790px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.runout-panel,.ready-panel{width:100%;padding:11px 14px;border:1px solid #dce5d0;border-radius:11px;background:#f6f9f0}.runout-panel strong{font-size:15px;color:#375b43}.runout-panel p{font-size:12px;line-height:1.5;margin:5px 0 8px;color:#708263}.runout-panel small{font-size:12px}.vote-players,.ready-members{display:flex;flex-wrap:wrap;gap:5px 12px;justify-content:center;font-size:11px;color:#7b8971;margin-bottom:8px}.is-ready{color:#387446;font-weight:650}.vote-buttons,.prepare-actions{display:flex;gap:10px;align-items:center;justify-content:center}.prepare-actions label{display:flex;gap:7px;align-items:center;font-size:12px;color:#6c7c61}.prepare-actions select{padding:7px 9px;border:1px solid #cbd9bd;border-radius:7px;background:white;color:#526c40;min-height:36px}.prepare-actions small{font-size:11px;color:#839376}.lobby-prepare{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0}.lobby-prepare label{display:flex;align-items:center;gap:7px;font-size:13px;color:#5f7753}.lobby-prepare input{width:18px;height:18px;accent-color:#315c48}.loan-presets{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}#loan-dialog>p,#loan-note{font-size:13px;line-height:1.8;color:#76876a}#loan-form label{display:flex;flex-direction:column;gap:8px;font-size:13px}#loan-amount{height:46px;border:1px solid #ccd8c0;border-radius:7px;padding:8px 12px;font-size:22px;color:#315c48;width:100%}.last-hand{margin-top:20px;padding-top:14px;border-top:1px solid #e3eadb}.last-hand h3{font-size:15px;color:#4d6741;margin:0 0 8px}.last-hand .history-board{margin:8px 0;align-items:center}.last-hand .history-board>small{min-width:48px}.last-hand-contributions{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:11px;margin:14px 0;color:#829475}details summary{cursor:pointer;font-size:13px;color:#567346;min-height:30px}.table-scroll{overflow-x:auto;max-width:100%}.round-ranking{min-width:480px}.round-ranking .my-ranking{background:#edf4e5}.round-ranking .borrowed{font-size:11px}.round-ranking th,.round-ranking td{font-size:11px;padding:9px 6px}.modal{overscroll-behavior:contain;overflow:auto;max-height:90dvh}.modal button,.lobby-prepare button{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #43774d;outline-offset:3px}
@media(min-width:1550px){body[data-screen=table] .game-content{padding-top:22px;padding-bottom:18px;gap:10px}.community-cards .card{width:66px;height:92px}.table-stage .seat:not(.self) .hole-cards .card{width:43px;height:60px}.table-stage .seat .player-pill{min-width:160px}.table-stage .seat .player-stack{font-size:22px}.table-stage .seat.self .hole-cards .card{width:52px;height:74px}.table-stage .seat.self .player-stack{font-size:25px}}
@media(max-height:800px) and (min-width:821px){body[data-screen=table] .game-content{padding-top:10px;gap:5px}.table-heading{min-height:48px}.room-title-row h1{font-size:24px}.table-toolbar{height:42px}.table-announcement{min-height:28px;font-size:12px}.hand-number{font-size:20px}.table-stage .seat .hole-cards .card{width:29px!important;height:37px!important}.table-stage .seat.self .hole-cards .card{width:36px!important;height:51px!important}.table-stage .seat .player-pill{min-width:128px}.table-stage .seat .avatar{width:25px;height:25px}.table-stage .seat .player-stack{font-size:17px}.table-stage .seat.self .player-stack{font-size:20px}.community-cards .card{width:46px;height:64px}.action-section{gap:6px;padding-top:7px}.bet-controls{min-height:65px;padding:6px 12px}.bet-presets button{min-height:24px;font-size:12px;padding:2px 7px}.bet-track{gap:3px}.action-buttons .button{height:42px;font-size:14px}.turn-status{font-size:12px}.poker-table{inset:24px 20px 12px}.table-stage .board-area{top:48%}.pot-pill{margin-bottom:7px}.board-caption{margin-top:5px}}
@media(max-width:820px){body[data-screen=table] .game-content{padding:12px 14px max(10px,env(safe-area-inset-bottom));gap:6px}.room-title-row h1{font-size:23px}.table-heading{min-height:48px}.table-heading p{font-size:11px}.small-button{font-size:11px}.table-stage .seat{--seat-safe:75px}.table-stage .seat.dense{--seat-safe:70px}.bet-presets button{min-height:34px}}
@media(max-width:540px){body[data-screen=table] .game-content{padding:10px 10px max(8px,env(safe-area-inset-bottom));gap:4px}.table-heading{min-height:47px}.room-title-row h1{font-size:21px;margin:0}.table-heading p{font-size:9px;margin-top:5px}.heading-actions .small-button{font-size:11px;padding:8px}.table-toolbar{height:44px;padding:0 2px}.hand-number{font-size:20px}.hand-stats{font-size:11px;min-height:22px}.table-number{font-size:9px!important}#street-label{font-size:11px}.table-toolbar>div{gap:8px}.table-announcement{font-size:11px;min-height:29px;width:100%;padding:4px 8px}.online-table-info{font-size:10px;padding:5px 8px;min-height:26px}.online-table-info button{font-size:10px}body[data-screen=table] .table-stage{margin:7px 0 16px}.poker-table{inset:24px 10px 12px}.table-stage .seat{--seat-safe:57px;width:102px}.table-stage .seat.dense{--seat-safe:53px}.table-stage .seat .player-pill,.table-stage .seat.dense .player-pill{min-width:99px;padding:5px 7px 5px 4px;gap:4px}.table-stage .seat .avatar{width:23px;height:23px;font-size:13px}.table-stage .seat .player-stack{font-size:14px}.table-stage .seat .player-name{font-size:9px}.table-stage .seat.self .player-stack{font-size:18px}.table-stage .seat.self .player-pill{min-width:117px}.table-stage .seat.self{gap:7px}.table-stage .seat:not(.self) .hole-cards .card{width:27px;height:36px}.table-stage .seat.self .hole-cards .card{width:34px;height:49px}.table-stage .seat .hole-cards{margin-bottom:4px;gap:3px}.table-stage .seat .hole-cards .card-rank{font-size:15px;top:3px;left:4px}.table-stage .seat .hole-cards .card-suit{font-size:10px;top:20px;left:4px}.table-stage .seat .hole-cards .card-suit-big{font-size:15px;right:2px;bottom:2px}.table-stage .seat.self .hole-cards .card-rank{font-size:19px}.table-stage .seat.self .hole-cards .card-suit-big{font-size:21px}.table-stage .seat .seat-action{font-size:8px;top:calc(100% + 3px);padding:2px 5px}.seat .borrowed{font-size:10px}.seat .borrowed:before{font-size:8px}.community-cards{gap:4px}.community-cards .card{width:32px;height:48px}.community-cards .card-rank{font-size:17px;left:4px;top:4px}.community-cards .card-suit{font-size:11px;left:4px;top:23px}.community-cards .card-suit-big{font-size:20px;right:2px;bottom:2px}.board-caption{font-size:8px;max-width:190px;margin-top:6px}.pot-pill{padding:4px 11px;margin-bottom:7px}.pot-pill strong{font-size:20px}.table-stage .board-area{top:46%}.action-section{padding:8px 0 0;gap:6px}.turn-status{font-size:11px;min-height:18px}.bet-controls{padding:8px;gap:8px;min-height:82px;border-radius:10px}.bet-track{gap:5px;min-width:90px}.bet-presets button{font-size:11px;padding:4px 2px;min-height:30px}.bet-controls #bet-input{width:86px;height:44px;padding:6px;font-size:20px}.bet-amount-label{font-size:10px;gap:3px}.all-in-button{font-size:12px;min-width:60px;padding:6px;letter-spacing:0}.action-buttons{gap:7px}.action-buttons .button{height:46px;min-width:0;flex:1;padding:8px 6px;font-size:14px}.action-buttons .raise{min-width:0;flex:1.45}.action-hint{font-size:9px;min-height:13px;text-align:center}.phase-controls .button{min-height:40px;font-size:13px}.runout-panel,.ready-panel{padding:8px}.runout-panel strong{font-size:13px}.runout-panel p{font-size:11px}.vote-players,.ready-members{font-size:10px;gap:4px 8px;margin-bottom:6px}.prepare-actions{gap:8px}.prepare-actions label{font-size:10px;gap:4px}.prepare-actions select{padding:5px;max-width:115px;font-size:11px}.phase-controls .text-button{font-size:11px;padding:5px}.double-board .community-cards .card{width:28px;height:36px}.double-board .community-cards .card-rank{font-size:13px;left:3px;top:3px}.double-board .community-cards .card-suit-big{font-size:15px;bottom:2px;right:2px}.double-board .community-cards{gap:3px}.double-board #board-second{margin-top:5px}.double-board .board-caption{display:none}.modal input,.modal select,.entry-screen input{font-size:16px}.modal .form-grid input,.modal .form-grid select{font-size:16px}.modal-header h2{font-size:20px}.modal .icon-button{min-width:44px;min-height:44px}.history-log{font-size:12px}.guide-block p{font-size:13px}.last-hand h3{font-size:14px}.table-stage .seat[data-middle=true]{--seat-y:57%}.table-stage .seat[data-middle=true] .hole-cards{align-self:initial}.table-stage .seat[data-middle=true][data-side=left] .hole-cards{align-self:flex-start}.table-stage .seat[data-middle=true][data-side=right] .hole-cards{align-self:flex-end}}
@media(max-height:700px) and (max-width:820px){body[data-screen=table] .game-content{gap:3px;padding-top:6px}.table-heading{min-height:40px}.room-title-row h1{font-size:19px}.table-toolbar{height:40px}.table-announcement{min-height:25px;font-size:10px}.table-stage .seat:not(.self) .hole-cards .card{width:23px;height:29px}.table-stage .seat.self .hole-cards .card{width:29px;height:41px}.table-stage .seat .player-pill{padding-top:4px;padding-bottom:4px}.table-stage .seat .player-stack{font-size:13px}.table-stage .seat.self .player-stack{font-size:16px}.table-stage .seat .avatar{width:20px;height:20px}.table-stage .seat .seat-action{font-size:7px}.bet-controls{min-height:70px;padding:5px 7px}.bet-track{gap:2px}.bet-presets button{min-height:27px}.action-buttons .button{height:42px}.action-section{gap:4px;padding-top:4px}.pot-pill strong{font-size:18px}.community-cards .card{width:27px;height:39px}.community-cards .card-rank{font-size:15px}.community-cards .card-suit-big{font-size:17px}.board-caption{display:none}.runout-panel p{margin:4px 0;font-size:10px}.runout-panel .button{min-height:36px}.vote-players{font-size:9px}.ready-panel .button{min-height:36px}.ready-members{font-size:9px}}
@media(max-height:480px) and (orientation:landscape){body[data-screen=table] .game-content{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:40px 1fr;gap:6px 15px;padding:6px 12px}.table-heading{grid-column:1;grid-row:1;min-height:0}.table-heading p{display:none}.table-toolbar{grid-column:2;grid-row:1;height:auto}.table-toolbar>div:first-child{display:none}.hand-tools{width:100%;justify-content:space-between}.hand-summary{align-items:flex-start;flex-direction:row;gap:10px;align-items:center}.hand-number{font-size:17px}.table-announcement{position:absolute;top:47px;left:16%;width:40%;z-index:4;min-height:23px;font-size:10px}.online-table-info{position:absolute;top:10px;left:40%;margin:0;background:transparent;border:0;padding:0}.online-table-info #turn-countdown,.online-table-info #copy-online-room{display:none}body[data-screen=table] .table-stage{grid-row:2;grid-column:1;height:auto;margin:20px 0 18px}.action-section{grid-row:2;grid-column:2;align-self:center;padding:0}.bet-controls{flex-wrap:wrap;gap:6px;min-height:0}.bet-track{flex-basis:100%;order:0}.bet-amount-label{order:1;flex:1}.bet-controls #bet-input{width:100%;height:38px}.all-in-button{order:2;min-height:38px}.action-buttons .button{font-size:12px;height:40px}.action-buttons .raise{flex:1.5}.action-hint{font-size:9px}.table-stage .seat{--seat-safe:55px}.table-stage .seat .player-pill{min-width:95px}.table-stage .seat .avatar{display:none}.table-stage .seat .player-stack{font-size:13px}.table-stage .seat .player-name{font-size:9px}.table-stage .seat:not(.self) .hole-cards .card{width:23px;height:30px}.table-stage .seat.self .hole-cards .card{width:25px;height:36px}.table-stage .seat.self .player-pill{min-width:85px}.table-stage .seat.self .player-stack{font-size:15px}.table-stage .seat.self .seat-action{display:none}.table-stage .seat .seat-action{font-size:7px}.community-cards .card{width:27px;height:38px}.pot-pill strong{font-size:17px}.board-caption{display:none}.turn-status{font-size:11px}.vote-players{display:none}.runout-panel p{font-size:10px}.runout-panel strong{font-size:12px}.prepare-actions{flex-wrap:wrap}.phase-controls{gap:4px}.table-stage .seat .borrowed{font-size:9px}}
@media(max-width:540px){.table-stage .seat.dense:not(.self) .hole-cards .card{width:25px;height:28px}.table-stage .seat.dense:not(.self) .player-pill{min-width:88px}.table-stage .seat.dense:not(.self) .player-stack{font-size:13px}.table-stage .seat.dense:not(.self) .avatar{width:20px;height:20px}}
@media(max-width:360px){.bet-presets button span{display:none}.bet-presets button{font-size:13px;min-width:24px}.table-stage .seat:not(.self)[data-side=left] .hole-cards{align-self:flex-start}.table-stage .seat:not(.self)[data-side=right] .hole-cards{align-self:flex-end}}
@media(max-width:540px) and (max-height:700px), (max-height:480px) and (orientation:landscape){
  .table-stage .seat.dense:not(.self){width:88px;--seat-safe:46px;flex-direction:row;gap:2px;align-items:center}
  .table-stage .seat.dense:not(.self)[data-side=right]{flex-direction:row-reverse}
  .table-stage .seat.dense:not(.self) .hole-cards{margin:0;gap:2px;align-self:center}
  .table-stage .seat.dense:not(.self) .hole-cards .card{width:17px!important;height:27px!important;border-radius:3px}
  .table-stage .seat.dense:not(.self) .hole-cards .card-rank{font-size:11px;left:2px;top:3px}
  .table-stage .seat.dense:not(.self) .hole-cards .card-suit{display:none}
  .table-stage .seat.dense:not(.self) .hole-cards .card-suit-big{font-size:13px;right:2px;bottom:2px}
  .table-stage .seat.dense:not(.self) .player-pill{min-width:50px;width:50px;padding:4px 3px;border-radius:10px;gap:0}
  .table-stage .seat.dense:not(.self) .avatar,.table-stage .seat.dense:not(.self) .player-stack>span,.table-stage .seat.dense:not(.self) .ai-badge,.table-stage .seat.dense:not(.self) .human-badge{display:none}
  .table-stage .seat.dense:not(.self) .player-name{font-size:8px;line-height:10px}
  .table-stage .seat.dense:not(.self) .player-nickname{max-width:42px}
  .table-stage .seat.dense:not(.self) .player-stack{font-size:13px;line-height:15px;margin:2px 0 0}
  .table-stage .seat.dense:not(.self) .seat-action{top:calc(100% + 2px);font-size:7px;padding:1px 4px}
  .table-stage .seat.dense:not(.self) .dealer-badge,.table-stage .seat.dense:not(.self) .blind-badge{width:12px;height:12px;top:-10px;left:auto;right:0;font-size:5px}
  .table-stage .seat.dense .borrowed{font-size:9px}
  .game-content:has(.runout-panel) .seat-action{display:none}
  .community-cards .card{width:25px;height:38px}.community-cards{gap:3px}
}
@media(max-height:480px) and (orientation:landscape){
  :root{--sidebar:0px}body[data-screen=table] main{margin-left:0}.sidebar{width:222px;transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.mobile-menu{display:inline-flex}.scrim.visible{display:block;position:fixed;inset:0;background:#24372b50;z-index:25}
  .table-announcement{left:5%;width:48%}.action-buttons .button{min-width:0!important;padding:7px 4px;flex:1;font-size:12px}.action-buttons .raise{flex:1.5}.action-buttons kbd{display:none}
  .table-stage .seat:not(.self) .hole-cards .card{width:23px!important;height:30px!important}.table-stage .seat.self .hole-cards .card{width:25px!important;height:36px!important}
  .table-stage .seat.dense:not(.self) .hole-cards .card{width:17px!important;height:27px!important}
}
@media(max-width:360px){.community-cards .card{width:22px;height:35px}.double-board .community-cards .card{width:22px;height:31px}.community-cards .card-rank{font-size:14px}.community-cards .card-suit-big{font-size:16px}.table-stage .seat[data-middle=true]:not(.dense){--seat-y:66%}}
@media(max-width:540px){.table-stage .seat.dense[data-upper=true]{--seat-y:12%}}
