/* A spacious table, a reachable hand, and an optional distraction-free view. */
.tile-theme-festival .table-pip.pip-value-1{fill:#005eaa}.tile-theme-festival .table-pip.pip-value-2{fill:#e24d2a}.tile-theme-festival .table-pip.pip-value-3{fill:#007b81}.tile-theme-festival .table-pip.pip-value-4{fill:#7042b6}.tile-theme-festival .table-pip.pip-value-5{fill:#b66c00}.tile-theme-festival .table-pip.pip-value-6{fill:#bf355c}
.tile-theme-teal .table-pip{fill:#007e88}.tile-theme-coral .table-pip{fill:#d74832}.tile-theme-gold .table-pip{fill:#996000}.tile-theme-classic .table-pip{fill:#122a42}
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 14px;color:#092a3b}
.table-toolbar>div{min-width:0}.table-toolbar span{display:block;font-size:9px;font-weight:850;letter-spacing:.16em;color:#16747b;margin-bottom:4px}
.table-toolbar strong{font-size:19px;line-height:1.3}.table-focus-button{flex:none;min-height:44px;padding:10px 16px;border:1px solid #13838c;border-radius:30px;background:#092d3c;color:#fff;font:750 13px/1.4 var(--body, sans-serif);cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 #00b9c62b}
.table-focus-button:focus-visible{outline:3px solid #ffad61;outline-offset:3px}.table-settings{border:1px solid #bbd5cf;border-radius:16px;background:#fff;overflow:hidden}.table-settings>summary{padding:18px 20px;cursor:pointer;font-weight:850;min-height:56px}.table-settings>summary span{display:inline-block;margin-left:12px;font-size:12px;font-weight:500;color:#476773}.table-settings .arena-controls{border:0;border-top:1px solid #dae8e3;border-radius:0}
.domino-session,.arena-table-wrap,.hand-dock{min-width:0}.hand-dock{position:relative}.arena-actions:empty{display:none}.tile-button{touch-action:manipulation}.arena-rack .tile-button:focus-visible{outline:3px solid #00818c;outline-offset:2px}
.physical-chain{width:auto;height:auto;min-height:0;max-height:none;max-width:100%;aspect-ratio:auto}.table-surface{min-width:0}.dock-ends{display:none}
.table-focused{position:fixed!important;inset:0;z-index:120;background:#f6f5ec;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));overflow:hidden;overscroll-behavior:contain;height:var(--table-viewport-height,100dvh);display:flex;flex-direction:column}
.table-focused>.room-heading,.table-focused>.room-invitation,.table-focused>.room-foot{display:none}
.table-focused .domino-session{display:flex;flex-direction:column;flex:1;min-height:0}
.table-focused .table-toolbar{margin:0 0 8px;flex:none}.table-focused .table-toolbar strong{font-size:16px}
.table-focused .arena-table-wrap{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;gap:0}
.table-focused .table-topline,.table-focused .hand-rule-bar,.table-focused .tile-info-hint,.table-focused .player-highlight-status,.table-focused .played-by,.table-focused .table-history{display:none}
.table-focused .physical-table{min-height:0;height:100%;padding:75px 100px;border-radius:28px;display:flex;align-items:stretch}
.table-focused .table-surface{width:100%;min-height:0;overflow:hidden;overscroll-behavior:contain;align-items:safe center}
.table-focused .physical-chain{flex:0 1 auto;max-height:100%;max-width:100%;width:auto;height:auto;min-height:0;object-fit:contain}
.table-focused .table-bottomline{padding:7px 4px;font-size:11px}.table-focused .table-bottomline b{font-size:18px}
.table-focused .hand-dock{border:1px solid #bfd5cb;border-radius:16px;background:#fff;padding:10px 14px;box-shadow:0 -4px 18px #082e3910}
.table-focused .arena-status{margin:0 0 7px;padding:0;border:0;font-size:13px;background:none;line-height:1.4;color:#07535d}
.table-focused .rack-heading{margin:0 0 5px}.table-focused .rack-heading h3{font-size:12px}.table-focused .rack-heading>span{font-size:10px}
.table-focused .arena-rack{flex-wrap:nowrap;overflow-x:auto;min-height:0;gap:5px;padding:8px 4px 12px;border:0;border-radius:10px;scrollbar-width:thin;scrollbar-color:#318d8c #e2ebe5;overscroll-behavior-x:contain}
.table-focused .tile-button{flex:none;padding:3px}.table-focused .tile-button .domino{width:44px;height:84px;padding:4px}
.table-focused .arena-actions{margin:6px 0 0;gap:8px}.table-focused .arena-actions .button{min-height:44px;padding:9px 16px}
.table-focused .hand-curtain{padding:12px}.table-focused .hand-curtain>span{display:none}.table-focused .hand-curtain h3{font-size:16px;margin:0 0 6px}.table-focused .hand-curtain p{font-size:12px;margin:0 0 8px}.table-focused .hand-curtain .button{padding:10px;min-height:44px}
/* Scores remain visible; detailed rules and history stay on the normal page. */
.table-focused .match-scoreboard{padding:8px 12px;margin:0 0 8px;border-radius:12px;display:flex;align-items:center;gap:16px;flex:none}
.table-focused .match-score-heading{margin:0;gap:8px;display:block}.table-focused .match-score-heading h2{font-size:24px}.table-focused .match-score-heading .eyebrow{display:none}.table-focused .match-state{display:block;font-size:8px;margin-top:4px}
.table-focused .match-scores{flex:1;display:flex;gap:8px}.table-focused .match-score{flex:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;align-items:center;padding:5px 10px;text-align:left;border-radius:8px}
.table-focused .match-score h3{font-size:11px;grid-column:1;grid-row:1;margin:0}.table-focused .match-score-number{grid-column:2;grid-row:1/3;font-size:30px;margin:0}.table-focused .match-score-label{grid-row:2;font-size:8px;letter-spacing:.08em}
.table-focused .match-contestants,.table-focused .match-score>p,.table-focused .score-progress,.table-focused .match-event,.table-focused .match-rule,.table-focused .match-history{display:none}
.table-focused:has(.is-complete){display:block}.table-focused:has(.is-complete) .domino-session{display:block}.table-focused:has(.is-complete) .arena-table-wrap{display:block}.table-focused .physical-table.is-complete{display:grid;height:auto;padding:20px}.table-focused .is-complete .table-surface{overflow:visible}.table-focused .is-complete .physical-chain{min-height:160px}.table-focused:has(.is-complete) .hand-dock{margin-top:12px}.table-focused:has(.is-complete) .match-crown{display:block;grid-column:1/-1}
@media(max-width:700px){
 .arena-section,.room-section{padding-inline:12px}.arena-explainer{padding:15px 2px}.table-settings>summary{font-size:14px;padding:14px}.table-settings>summary span{font-size:11px;margin-left:6px}.table-settings select{font-size:16px!important}
 .table-toolbar strong{font-size:17px}.table-toolbar{margin-top:10px}.table-focus-button{font-size:12px;padding:10px 13px}
 .domino-session>.match-scoreboard{padding:12px;margin-bottom:12px;border-radius:15px}.domino-session .match-score-heading{margin-bottom:10px}.domino-session .match-score-heading h2{font-size:25px}.domino-session .match-score-heading .eyebrow{display:none}.domino-session .match-scores{grid-auto-flow:column;grid-template-columns:none;gap:6px}.domino-session .match-score{padding:9px 4px}.domino-session .match-score-number{font-size:32px;margin:3px 0 0}.domino-session .match-score h3{font-size:11px}.domino-session .match-contestants,.domino-session .match-score>p,.domino-session .score-progress{display:none}.domino-session .match-event{font-size:11px;margin:9px 0 0;padding:7px 10px}.domino-session .match-rule{display:none}.domino-session .match-history{margin-top:8px;padding-top:3px}.domino-session .match-history summary{min-height:44px;display:flex;align-items:center}
 .arena-table-wrap>.table-topline{display:none}.hand-rule-bar{padding:10px 12px;margin-bottom:12px}.hand-rule-bar p{font-size:11px}.physical-table:not(.is-complete){padding:87px 58px;min-height:390px;border-radius:26px}.physical-table:not(.is-complete):not(:has(.position-west)){padding-inline:20px}
 .table-seat .union-avatar{width:34px;height:34px}.position-west,.position-east{width:55px;padding:6px 3px}.position-west{left:5px}.position-east{right:5px}.position-west .seat-identity strong,.position-east .seat-identity strong{max-width:47px;font-size:10px}.position-west .seat-identity small,.position-east .seat-identity small{font-size:9px}.player-plays-button{min-height:30px}.position-north .player-plays-button,.position-south .player-plays-button{min-height:24px}.seat-person{gap:6px}
 .physical-table:not(.is-complete) .table-surface{min-height:210px}.physical-chain{min-height:0}.player-highlight-status,.tile-info-hint{font-size:11px;line-height:1.5}.played-by{gap:5px}.played-by>span{font-size:10px}
 .hand-dock{position:sticky;bottom:0;z-index:6;padding:10px 10px max(10px,env(safe-area-inset-bottom));margin:12px -2px 0;background:#f6f8f2;border:1px solid #b5cec5;border-radius:18px;box-shadow:0 -6px 22px #0a334418}
 .hand-dock .arena-status{margin:0 0 8px;padding:8px 10px;font-size:12px;line-height:1.45;background:#e0f2ec;border:0;border-left:3px solid #008c8e;border-radius:8px}.hand-dock .rack-heading{margin:0 0 5px}.hand-dock .rack-heading h3{font-size:13px}.hand-dock .rack-heading>span{font-size:10px}.hand-dock .arena-rack{flex-wrap:nowrap;overflow-x:auto;gap:4px;min-height:0;padding:8px 4px 12px;border-bottom-width:3px;scrollbar-width:thin;scrollbar-color:#318d8c #e2ebe5;overscroll-behavior-x:contain}.hand-dock .tile-button{flex:none;padding:3px;min-width:48px;min-height:92px}.hand-dock .tile-button .domino{width:42px;height:82px}.hand-dock .arena-actions{display:flex;margin:8px 0 0}.hand-dock .arena-actions .button{flex:1;min-height:44px;font-size:12px}.hand-dock .hand-curtain{padding:14px}.hand-dock .hand-curtain>span{display:none}.hand-dock .hand-curtain h3{font-size:18px;margin:0 0 8px}
 .table-focused{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.table-focused .table-toolbar{margin:0 0 8px}.table-focused .match-scoreboard{padding:7px 9px;gap:10px}.table-focused .match-score-heading{margin:0}.table-focused .match-score-heading h2{font-size:21px}.table-focused .match-scores{gap:5px}.table-focused .match-score{padding:5px 7px}.table-focused .match-score-number{font-size:27px}.table-focused .match-score h3{font-size:10px}.table-focused .match-state{font-size:7px}
 .table-focused .physical-table:not(.is-complete){padding:80px 58px;min-height:0}.table-focused .physical-table:not(.is-complete) .table-surface{min-height:0}.table-focused .physical-chain{min-height:0}.table-focused .hand-dock{position:relative;bottom:auto;margin:0;padding:8px}.table-focused .hand-dock .arena-status{padding:0;margin-bottom:6px;background:none;border:0}.table-focused .rack-heading{margin:0 0 3px}.table-focused .hand-dock .tile-button{min-width:48px;min-height:88px}.table-focused .hand-dock .arena-rack{padding:5px 3px 9px}.table-focused .hand-dock .tile-button .domino{height:78px}.table-focused .arena-actions:empty{display:none}
}
@media(max-height:520px) and (min-width:600px){
 .table-focused .domino-session{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:46px minmax(0,1fr);gap:8px 12px}
 .table-focused .table-toolbar{grid-column:1;margin:0}.table-focused .match-scoreboard{grid-column:2;grid-row:1;margin:0;padding:5px;gap:5px}.table-focused .match-score-heading{display:none}.table-focused .match-score{padding:4px 6px}.table-focused .match-score-number{font-size:25px}
 .table-focused .arena-table-wrap{display:contents}.table-focused .physical-table:not(.is-complete){grid-column:1;grid-row:2;min-height:0;padding:62px 75px}.table-focused .hand-dock{grid-column:2;grid-row:2;align-self:stretch;overflow:auto;display:flex;flex-direction:column;justify-content:center;padding:10px}
 .table-focused .table-bottomline{display:none}.table-focused .hand-dock .arena-rack{flex-wrap:wrap;overflow:visible;gap:5px;justify-content:center}.table-focused .hand-dock .tile-button{min-width:44px;min-height:72px;padding:2px}.table-focused .hand-dock .tile-button .domino{width:36px;height:66px;padding:3px}.table-focused .table-seat .union-avatar{width:30px;height:30px}.table-focused .table-seat{padding:5px 8px}.table-focused .position-north{top:8px}.table-focused .position-south{bottom:8px}.table-focused .position-west,.table-focused .position-east{width:65px}.table-focused .seat-identity strong{font-size:11px}.table-focused .seat-identity small{font-size:9px}.table-focused .table-seat .role-badges{display:none}.table-focused .arena-actions{flex-wrap:wrap}.table-focused .arena-actions .button{font-size:11px;padding:8px;flex:1}
 .table-focused .dock-ends{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#325c69;padding-bottom:8px;margin-bottom:9px;border-bottom:1px solid #d7e6df}.table-focused .dock-ends strong{color:#07535d}
 .table-focused:has(.is-complete) .domino-session{display:block}.table-focused:has(.is-complete) .match-scoreboard{margin-bottom:12px}.table-focused:has(.is-complete) .arena-table-wrap{display:block}
}
@media(hover:none){.hand-dock .tile-button:hover:not(:disabled){transform:none}.hand-dock .tile-button.selected{transform:none;background:#00aeb82b}.hand-dock .tile-button:active:not(:disabled){transform:translateY(-3px)}}
@media(max-width:599px) and (max-height:680px){
 .table-focused .physical-table:not(.is-complete){padding-block:58px}
 .table-focused .table-seat .union-avatar{width:27px;height:27px}
 .table-focused .table-seat .player-plays-button{min-height:20px;font-size:10px}
 .table-focused .table-seat .seat-identity>span{font-size:0;line-height:1;display:inline-flex;vertical-align:middle}
 .table-focused .table-seat .seat-identity small{display:inline;font-size:9px;line-height:1.3}
 .table-focused .seat-bot-level,.table-focused .table-seat .role-badges{display:none}
 .table-focused .hand-dock .tile-button{min-height:76px}
 .table-focused .hand-dock .tile-button .domino{height:66px;width:38px}
 .table-focused .hand-dock .arena-status{font-size:11px}
}
.a11y-contrast .hand-dock,.a11y-contrast .table-focused{background:#fff;color:#000}.a11y-large .hand-dock .arena-status{font-size:16px}
@media(prefers-reduced-motion:reduce){.hand-dock .tile-button{transition:none!important}}

/* The active game is a phone-sized workspace, opened automatically. The page
   behind it remains available through Table menu without changing the hand. */
html:has(.table-view-open){overflow:hidden;overscroll-behavior:none}
.table-focused .table-surface{position:relative;display:flex;align-items:center;justify-content:center}
.table-focused .physical-chain{position:absolute;inset:0;margin:auto}
.table-focused .arena-actions:empty{display:none}
@media(max-width:700px), (max-width:1100px) and (max-height:600px){
 .table-focused{padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}
 .table-focused .table-toolbar{margin:0 0 6px;gap:8px;min-height:44px}
 .table-focused .table-toolbar strong{font-size:14px}.table-focused .table-toolbar span{font-size:8px;margin-bottom:2px}
 .table-focused .table-focus-button{min-height:44px;padding:8px 14px}
 .table-focused .match-scoreboard{margin:0 0 6px;padding:6px 8px;gap:8px}
 .table-focused .match-score-heading h2{font-size:20px}.table-focused .match-state{font-size:7px}
 .table-focused .match-scores{min-width:0;gap:4px}.table-focused .match-score{min-width:0;padding:4px 6px;gap:0 4px}
 .table-focused .match-score h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px}
 .table-focused .match-score-number{font-size:25px}.table-focused .match-score-label{font-size:7px}
 .table-focused .physical-table:not(.is-complete){padding:68px 54px;border-radius:22px;min-height:0;box-shadow:inset 0 0 0 3px #173948,inset 0 0 0 5px #35575c,inset 0 0 55px #001824,0 4px 12px #06203522}
 .table-focused .physical-table:not(.is-complete):not(:has(.position-west)){padding-inline:14px}
 .table-focused .table-seat{padding:5px 7px;border-radius:10px}.table-focused .table-seat .union-avatar{width:28px;height:28px}
 .table-focused .position-north{top:9px}.table-focused .position-south{bottom:9px}
 .table-focused .position-west,.table-focused .position-east{width:49px;padding:5px 2px}
 .table-focused .position-west{left:5px}.table-focused .position-east{right:5px}
 .table-focused .seat-person{gap:5px}.table-focused .table-seat .player-plays-button{font-size:10px;min-height:22px}
 .table-focused .table-seat .seat-identity>span{font-size:0;line-height:1;display:inline-flex;vertical-align:middle}
 .table-focused .table-seat .seat-identity small{display:inline;font-size:9px;line-height:1.3}
 .table-focused .seat-bot-level,.table-focused .table-seat .role-badges{display:none}
 .table-focused .table-seat .country-placeholder{width:18px;height:18px;min-width:18px;padding:2px;margin:0;vertical-align:middle}
 .table-focused .table-seat .country-flag{--country-flag-size:18px}
 .table-focused .position-north .seat-identity,.table-focused .position-south .seat-identity{display:grid;grid-template-columns:18px auto;align-items:center;column-gap:4px}
 .table-focused .position-north .seat-identity strong,.table-focused .position-south .seat-identity strong{grid-column:1/-1}
 .table-focused .table-bottomline{padding:4px 3px;font-size:10px;line-height:1.4}.table-focused .table-bottomline b{font-size:15px}
 .table-focused .hand-dock{flex:none;padding:7px;margin:0;min-height:0;border-radius:13px}
 .table-focused .hand-dock .arena-status{font-size:11px;line-height:1.35;margin:0 0 4px;min-height:15px}
 .table-focused .rack-heading{line-height:1.3;margin:0 0 3px}.table-focused .rack-heading h3{font-size:11px}.table-focused .rack-heading>span{font-size:9px}
 .table-focused .hand-dock .arena-rack{padding:4px 2px 6px;gap:3px;border:0;overflow-y:hidden;scroll-padding:3px}
 .table-focused .hand-dock .tile-button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:76px;padding:3px;transform:none}
 .table-focused .hand-dock .tile-button .domino{width:38px;height:70px;padding:3px}
 .table-focused .hand-dock .arena-actions{margin:5px 0 0;gap:6px}
 .table-focused .hand-dock .arena-actions .button{min-height:44px;padding:8px;font-size:11px;line-height:1.3}
 .table-focused .physical-table .felt-empty{padding:0}.table-focused .physical-table .felt-empty>span{font-size:22px}.table-focused .physical-table .felt-empty p{display:none}
}
@media(max-width:599px) and (max-height:580px){
 .table-focused .physical-table:not(.is-complete){padding-block:62px}
 .table-focused .match-score-heading{display:none}
 .table-focused .match-scoreboard{padding:4px 6px}.table-focused .match-score{padding:2px 6px}
 .table-focused .table-seat .union-avatar{width:23px;height:23px}
 .table-focused .table-seat .player-plays-button{min-height:18px;font-size:9px}
 .table-focused .hand-dock .tile-button{min-height:66px}.table-focused .hand-dock .tile-button .domino{height:60px}
}
@media(min-width:600px) and (max-height:600px){
 .table-focused .domino-session{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:44px minmax(0,1fr);gap:6px 10px}
 .table-focused .table-toolbar{grid-column:1;margin:0}.table-focused .match-scoreboard{grid-column:2;grid-row:1;margin:0;padding:4px;gap:4px}
 .table-focused .match-score-heading{display:none}.table-focused .match-score-number{font-size:23px}
 .table-focused .arena-table-wrap{display:contents}
 .table-focused .physical-table:not(.is-complete){grid-column:1;grid-row:2;min-height:0;padding:68px 54px}
 .table-focused .hand-dock{grid-column:2;grid-row:2;align-self:stretch;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:7px}
 .table-focused .table-bottomline{display:none}
 .table-focused .hand-dock .arena-rack{display:grid;grid-template-rows:repeat(2,62px);grid-auto-flow:column;grid-auto-columns:44px;justify-content:start;overflow-x:auto;overflow-y:hidden;min-height:0;gap:3px;flex:none}
 .table-focused .hand-dock .tile-button{min-width:44px;min-height:62px;height:62px;padding:3px}.table-focused .hand-dock .tile-button .domino{width:34px;height:52px}
 .table-focused .dock-ends{display:flex;justify-content:space-between;font-size:10px;border:0;padding:0;margin:0 0 5px}
 .table-focused .hand-dock .arena-status{font-size:11px}
}
/* Keep the next-hand control in view while the final table can be inspected. */
.table-focused:has(.is-complete){display:flex;overflow:hidden}
.table-focused:has(.is-complete) .domino-session{display:flex;flex:1;min-height:0}
.table-focused:has(.is-complete) .arena-table-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.table-focused .physical-table.is-complete{flex:none;min-height:0;padding:14px}
.table-focused .is-complete .table-surface{height:190px;min-height:0;overflow:hidden}
.table-focused:has(.is-complete) .hand-dock{margin:6px 0 0}
.table-focused .next-hand-panel,.table-focused .room-ready-panel{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;margin:8px 0 0;border-radius:12px;background:#fff}
.table-focused .next-hand-panel h3,.table-focused .room-ready-panel h3{font-size:13px;margin:0}.table-focused .next-hand-panel p,.table-focused .room-ready-panel p{display:none}
.table-focused .next-hand-panel .button,.table-focused .room-ready-panel .button{min-height:44px;font-size:12px;padding:10px 14px;flex:none}
.a11y-large .table-focused .arena-status{font-size:16px}
@media(max-width:599px) and (max-height:520px){
 .table-focused .physical-table:not(.is-complete){padding-block:40px}
 .table-focused .position-north{top:7px}.table-focused .position-south{bottom:7px}
 .table-focused .position-north,.table-focused .position-south{padding:4px 6px;max-width:calc(100% - 112px)}
 .table-focused .position-north .seat-identity,.table-focused .position-south .seat-identity{display:flex;align-items:center;gap:4px;min-width:0}
 .table-focused .position-north .seat-identity strong,.table-focused .position-south .seat-identity strong{max-width:52px;flex:none}
 .table-focused .position-north .seat-identity small,.table-focused .position-south .seat-identity small{font-size:8px;line-height:1.2}
 .table-focused .position-north .union-avatar,.table-focused .position-south .union-avatar{width:20px;height:20px;flex:none}
 .table-focused .position-north .country-placeholder,.table-focused .position-south .country-placeholder{width:14px;height:14px;min-width:14px;padding:1px}
 .table-focused .position-north .country-flag,.table-focused .position-south .country-flag{--country-flag-size:14px}
 .table-focused .match-score-label{display:none}.table-focused .match-score-number{font-size:21px}
 .table-focused .table-bottomline{line-height:1.2}.table-focused .table-bottomline b{font-size:13px}
}
