/* BLT-PHP-19.15: responsive seat/header/overlay refinements */
.table-page .site-header{position:relative;justify-content:center}
.table-page .site-header .header-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.table-page .site-header .header-center .brand{position:static;display:flex;align-items:center;gap:5px}
.table-page .site-header .header-room-code{position:static;display:inline-flex;align-items:center;gap:4px;margin:0;padding:4px 8px;border:1px solid #c6a15d;border-radius:7px;background:#092f24;color:#ffe8ad;font-size:10px;cursor:pointer}
.table-page .site-header .header-room-code strong{color:#ffe8ad;font-size:12px}
.table-page .site-header .menu-toggle{position:absolute;left:7px;right:auto;top:50%;transform:translateY(-50%);margin:0;z-index:5}
.table-page .site-header .site-menu{left:7px;right:auto;top:calc(100% + 4px)}
.table-page #table .game-info{flex:0 0 20px;min-height:20px;padding:0}
.table-page #table .table-head{display:none!important}
.table-page #table .board{position:relative;flex:1 1 auto;min-height:0;height:auto;margin-top:0;grid-template-rows:minmax(42px,.58fr) minmax(90px,1.18fr) minmax(42px,.58fr) auto;overflow:visible}
.table-page #score.score-panel-wrap{position:absolute;z-index:14;inset:4px 4px auto 4px;width:auto;height:27px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:none}
.table-page #score .score-teams{position:absolute;left:0;top:0;display:flex;gap:6px;padding:3px 6px;border:1px solid #d9bd78;border-radius:7px;background:#092f24;color:#ffe8ad}
.table-page #score .score-team{font-size:10px;white-space:nowrap}
.table-page #score .score-points{position:absolute;right:0;top:0;display:flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid #d9bd78;border-radius:7px;background:#092f24;color:#ffe8ad}
.table-page #score .score-points small{font-size:9px;color:#ffe8ad}
.table-page #score .score-points b{font-size:11px}
.table-page .board-qaid{position:absolute;z-index:15;top:34px;right:4px;left:auto;min-width:42px;padding:4px 8px;border:1px solid #e7c76b;border-radius:7px;background:#f0d078;color:#243b2e;font-size:10px}
.table-page .board-start{position:absolute;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);min-width:110px}
.table-page .board [hidden]{display:none!important}
.table-page .board .seat-top,.table-page .board .seat-bottom{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;max-width:none;text-align:center;direction:rtl}
.table-page .board .seat-top .seat-avatar-wrap,.table-page .board .seat-bottom .seat-avatar-wrap{position:relative;inset:auto;left:auto;top:auto;transform:none;flex:0 0 48px;width:48px;height:48px}
.table-page .board .seat-top .seat-avatar-wrap .seat-avatar,.table-page .board .seat-bottom .seat-avatar-wrap .seat-avatar{position:absolute;inset:0;width:48px;height:48px;font-size:24px}
.table-page .board .seat-top .seat-identity,.table-page .board .seat-bottom .seat-identity{flex:0 1 190px;min-width:105px;max-width:190px;margin:0!important;padding:4px 7px!important;text-align:center;background:#0b3025!important;border:1px solid #c6a15d!important;border-radius:8px!important}
.table-page .board .seat-top .seat-name,.table-page .board .seat-bottom .seat-name{font-size:11px!important;text-align:center}
.table-page .board .seat-top .seat-badges,.table-page .board .seat-bottom .seat-badges{justify-content:center;text-align:center}
.table-page .board .seat-top .seat-identity:after,.table-page .board .seat-bottom .seat-identity:after{display:none}
.table-page #table #board>#turnTimeout.return-overlay{pointer-events:auto;cursor:pointer}
.table-page #table #board>#turnTimeout .timeout-modal{cursor:pointer}
.table-page #table #board>#turnTimeout button:disabled{cursor:wait}
@media(max-width:560px){
 .table-page .site-header .header-center{gap:5px}
 .table-page .site-header .header-center .brand{font-size:16px}
 .table-page .site-header .header-room-code{font-size:9px;padding:3px 5px}
 .table-page .site-header .menu-toggle{left:4px}
 .table-page #table .board{grid-template-rows:minmax(38px,.55fr) minmax(82px,1.1fr) minmax(38px,.55fr) auto}
 .table-page .board .seat-top,.table-page .board .seat-bottom{gap:6px}
 .table-page .board .seat-top .seat-avatar-wrap,.table-page .board .seat-bottom .seat-avatar-wrap{flex-basis:46px;width:46px;height:46px}
 .table-page .board .seat-top .seat-avatar-wrap .seat-avatar,.table-page .board .seat-bottom .seat-avatar-wrap .seat-avatar{width:46px;height:46px;font-size:23px}
 .table-page .board .seat-top .seat-identity,.table-page .board .seat-bottom .seat-identity{flex-basis:160px;max-width:160px;min-width:95px;padding:3px 5px!important}
 .table-page .board .seat-top .seat-name,.table-page .board .seat-bottom .seat-name{font-size:10px!important}
 .table-page #score .score-teams,.table-page #score .score-points{padding:2px 5px}
 .table-page .board-qaid{top:31px;right:4px}
}
.table-page #table .board .board-phase{position:absolute;z-index:13;top:5px;left:50%;transform:translateX(-50%);display:block;min-height:0;width:auto;padding:2px 7px;border:0;border-radius:6px;background:#092f24aa;color:#f4e4bb;font-size:10px;line-height:1.2;pointer-events:none}
.table-page #table .board .board-phase span{white-space:nowrap}


/* BLT-PHP-19.15: keep the logo at the right and only the room code centered. */
.table-page .site-header{justify-content:space-between}
.table-page .site-header>.brand{position:absolute;right:10px;left:auto;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;z-index:4}
.table-page .site-header>#roomShareLink{position:absolute;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);z-index:4}
.table-page .site-header>.tag{display:none!important}

/* Top and bottom opponents: center the card backs on their own row, then group avatar and plaque. */
.table-page .board .seat-top,.table-page .board .seat-bottom{display:flex;flex-wrap:wrap;align-content:center;align-items:center;justify-content:center;gap:3px 7px;direction:rtl}
.table-page .board .seat-top .opponent-hand,.table-page .board .seat-bottom .opponent-hand{order:0;flex:0 0 100%;width:100%;max-width:100%;height:30px;margin:0 auto 2px;display:flex;align-items:center;justify-content:center;direction:ltr}
.table-page .board .seat-top .seat-avatar-wrap,.table-page .board .seat-bottom .seat-avatar-wrap{order:1;position:relative!important;top:0!important;left:auto!important;right:auto!important;transform:none!important;flex:0 0 48px;margin:0}
.table-page .board .seat-top .seat-identity,.table-page .board .seat-bottom .seat-identity{order:2;flex:0 1 190px;min-width:105px;max-width:190px;margin:0!important}
.table-page .board .seat-top .project-cards,.table-page .board .seat-bottom .project-cards{order:3;flex:0 0 100%;margin:2px auto 0}

/* Return-to-game prompt: a compact panel at the bottom, without a black full-screen veil. */
.table-page #table #board>#turnTimeout.return-overlay{position:fixed;inset:auto 0 calc(8px + env(safe-area-inset-bottom)) 0;z-index:18000;display:flex!important;align-items:flex-end;justify-content:center;box-sizing:border-box;width:100vw;height:auto;min-height:0;margin:0;padding:0 12px;background:transparent!important;border:0!important;border-radius:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:none}
.table-page #table #board>#turnTimeout .timeout-modal{width:min(340px,92vw);padding:12px 16px;gap:10px;pointer-events:auto;box-shadow:0 6px 22px #0008}
.table-page #table #board>#turnTimeout strong{font-size:16px}
.table-page #table #board>#turnTimeout button{min-height:40px;padding:8px 18px;font-size:14px}
.table-page #table #board>#turnTimeout.hidden{display:none!important}

/* Keep the qaid control clear of the score/points panel. */
.table-page .board-qaid{top:42px}
@media(max-width:560px){.table-page .board-qaid{top:39px}.table-page .board .seat-top .seat-avatar-wrap,.table-page .board .seat-bottom .seat-avatar-wrap{flex-basis:46px;width:46px;height:46px}}
/* Result and qaid actions must receive taps even while the timeout layer is being dismissed. */
.table-page #resultPage:not(.hidden),.table-page #qaidPage:not(.hidden),.table-page #resultPage .round-summary-actions,.table-page #resultPage .round-summary-actions button{pointer-events:auto;touch-action:manipulation}

/* BLT-PHP-19.24: positioning is managed by table-layout-controls.css. */
