/* Waiting and showdown share physical seat slots, including empty chairs. */
.tw-scene.tw-seat-mode { display:flex; max-width:1200px; }
.tw-scene.tw-seat-mode .tw-rule-bar { position:static; width:auto; display:flex; height:28px; min-height:28px; }
.tw-scene.tw-seat-mode .tw-felt-stage { flex:1; min-height:0; margin:0 8px; }
.tw-scene.tw-seat-mode .tw-workspace { flex:none; align-self:stretch; max-height:none; overflow:visible; border:0; padding:0 10px 5px; }
.tw-scene.tw-seat-mode .tw-self-banner,.tw-scene.tw-seat-mode .tw-table-area { display:none; }
.tw-scene.tw-seat-mode[data-phase="submitted"] .tw-workspace { display:none; }
.tw-scene .tw-seat-board { position:relative; display:flex; flex-direction:column; height:100%; min-height:0; width:100%; padding:0; background:none; }
.tw-scene .tw-seat-board .tw-comparison-heading { height:43px; flex:none; }
.tw-scene .tw-seat-board .tw-comparison-heading h2 { color:#f1d798; font-size:16px; margin:0; line-height:22px; }
.tw-scene .tw-seat-board .tw-comparison-heading small { font-size:9px; color:#adc4b6; }
.tw-seat-progress { height:26px; flex:none; display:flex; justify-content:center; align-items:center; font-size:11px; color:#c4ddce; }
.tw-board-clock { display:flex; align-items:center; gap:4px; color:#ebd195; font-size:12px; }
.tw-board-clock svg { width:15px; height:15px; }
.tw-scene .tw-seat-board .tw-comparison-steps { position:static; flex:none; height:26px; margin:0; border:0; }
.tw-scene .tw-seat-board .tw-seat-layout {
  --slot-width:.46; --slot-height:.28; --identity-width:32px; --row-end:26px; --card-max:40px;
  position:relative; isolation:isolate; container-type:size; display:block; flex:1; min-height:0; margin:0; padding:0; gap:0;
}
.tw-scene .tw-seat-board .tw-seat-layout::before { content:''; position:absolute; inset:2% 3%; transform:none; width:auto; height:auto; left:3%; top:2%; border:1px solid #d2d4a31c; border-radius:40% / 18%; z-index:-1; }
.tw-scene .tw-seat-board[data-seat-count] .tw-seat-layout > .tw-seat-node {
  --tw-card-width:clamp(16px,min(calc((100cqw * var(--slot-width) - var(--identity-width) - var(--row-end) - 16px) / 2.8),calc(100cqh * var(--slot-height) / 3.8)),var(--card-max));
  position:absolute; left:var(--seat-x); top:var(--seat-y); transform:translate(-50%,-50%);
  width:calc(100% * var(--slot-width)); height:calc(100% * var(--slot-height)); max-height:none; min-height:0;
  display:grid; grid-template-columns:var(--identity-width) minmax(0,1fr); align-items:center; gap:4px; margin:0; padding:0;
  grid-column:auto; grid-row:auto; justify-self:auto; border:0; background:none; box-shadow:none;
}
.tw-scene .tw-seat-board[data-seat-count] .tw-seat-layout > [data-table-side="right"] { grid-template-columns:minmax(0,1fr) var(--identity-width); }
.tw-scene .tw-seat-board [data-table-side="right"] > .tw-reveal-identity { grid-column:2; grid-row:1; }
.tw-scene .tw-seat-board [data-table-side="right"] > :is(.tw-reveal-lanes,.tw-special-hand,.tw-seat-waiting) { grid-column:1; grid-row:1; }
.tw-scene .tw-seat-board .tw-reveal-identity { display:flex; flex-direction:column; align-items:center; gap:3px; width:100%; padding:0; margin:0; min-height:0; }
.tw-scene .tw-seat-board .tw-comparison-avatar { width:var(--identity-width); height:var(--identity-width); border-radius:50%; overflow:hidden; border:1px solid #99c1ae88; background:#173f37; }
.tw-scene .tw-seat-board .tw-comparison-avatar :is(img,.player-avatar,.avatar-initials) { width:100%; height:100%; border-radius:50%; }
.tw-scene .tw-seat-board .tw-reveal-identity b { font-size:10px; font-weight:500; }
.tw-scene .tw-seat-board .tw-reveal-identity small { font-size:8px; line-height:10px; }
.tw-scene .tw-seat-board .tw-reveal-name { font-size:13px; line-height:15px; }
.tw-seat-stack { font-size:11px; color:#efcf85; font-variant-numeric:tabular-nums; }
.tw-scene .tw-seat-board .tw-reveal-lanes { grid-column:2; grid-row:1; width:100%; height:calc(var(--tw-card-width) * 3.75); animation:none!important; transform:none!important; }
.tw-scene .tw-seat-board .tw-reveal-row { grid-template-columns:8px minmax(0,1fr) var(--row-end); gap:2px; padding:0; }
.tw-scene .tw-seat-board .tw-row-label { font-size:9px; }
.tw-scene .tw-seat-board .tw-row-name { font-size:8px; line-height:10px; }
.tw-scene .tw-seat-board .tw-row-water { font-size:11px; line-height:13px; }
.tw-scene .tw-seat-board .tw-row-water small { font-size:8px; }
.tw-scene .tw-seat-board .tw-row-backs { height:calc(var(--tw-card-width) * 1.75); }
.tw-scene .tw-seat-board .tw-submitted-piles .tw-row-label { color:#a7bdba; }
.tw-seat-complete { position:absolute; z-index:8; top:50%; left:50%; transform:translate(-50%,-50%); padding:4px 11px; border:1px solid #ecd38c; border-radius:5px; color:#ffecb2; background:#183f36ed; box-shadow:0 3px 10px #001d2480; font-size:13px; white-space:nowrap; letter-spacing:2px; }
.tw-seat-waiting { display:grid; place-items:center; height:calc(var(--tw-card-width) * 3.75); color:#b1cabc; font-size:11px; text-align:center; white-space:nowrap; }
.tw-scene .tw-seat-board .tw-seat-vacancy { opacity:.58; }
.tw-seat-vacancy > button,.tw-empty-marker { grid-column:1/-1; justify-self:center; display:grid; gap:4px; place-items:center; width:48px; min-height:50px; padding:5px; border:1px dashed #a8c6b44d; border-radius:10px; background:#173b3126; color:#b6c9bc; font-size:12px; }
.tw-seat-vacancy small { font-size:8px; }.tw-seat-vacancy > button:disabled { opacity:1; }
.tw-seat-brand { position:absolute; z-index:-1; left:50%; top:50%; transform:translate(-50%,-50%); color:#afc9a5; opacity:.12; font-size:17px; letter-spacing:4px; white-space:nowrap; pointer-events:none; }
.tw-scene .tw-seat-board .tw-special-hand { grid-column:2; grid-row:1; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; min-width:0; height:calc(var(--tw-card-width) * 3.75); border:1px solid #d5b77277; border-radius:12px; background:radial-gradient(ellipse,#8a723644,#183b31aa); text-align:center; }
.tw-scene .tw-seat-board .tw-special-hand > small { color:#d9c68e; font-size:9px; letter-spacing:2px; }
.tw-scene .tw-seat-board .tw-special-reveal { position:static; padding:0 3px; border:0; background:none; color:#ffe3a0; font-size:clamp(12px,calc(var(--tw-card-width) * .56),22px); line-height:1.4; text-wrap:balance; }
.tw-scene .tw-seat-board .tw-special-hand > span { color:#a8c0af; font-size:8px; }
.tw-scene .tw-seat-board .special-opening .tw-special-hand { box-shadow:0 0 18px #f3cb5755,inset 0 0 18px #e6c27522; }
.tw-scene .tw-seat-board .tw-seat-special-glow { position:absolute; width:70px; height:70px; margin:-35px; border:1px solid #f5d78666; border-radius:50%; box-shadow:0 0 20px #e9c14c55; animation:tw-seat-glow 1.3s ease both; }
.tw-scene .tw-seat-board .tw-reveal-player.shot-target { animation:none; }
.tw-scene .tw-seat-board .tw-shot-caption { padding:4px 7px; font-size:13px; letter-spacing:2px; animation:tw-seat-badge 1.2s ease both; }
.tw-scene .tw-seat-board .tw-home-title { padding:5px 9px; animation:tw-seat-badge 1.5s ease both; }
.tw-scene .tw-seat-board .tw-home-title b { font-size:15px; letter-spacing:2px; }.tw-scene .tw-seat-board .tw-home-title small { display:none; }
@keyframes tw-seat-glow { 0%{opacity:0;scale:.7} 35%{opacity:1;scale:1} 100%{opacity:0;scale:1.3} }
@keyframes tw-seat-badge { 0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.85)} 25%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)} }
@media (min-width:600px) and (orientation:landscape) {
  .tw-scene .tw-seat-board .tw-seat-layout { --slot-width:.30; --slot-height:.44; --identity-width:40px; --row-end:32px; --card-max:48px; }
  .tw-scene .tw-seat-board[data-seat-count="3"] .tw-seat-layout,.tw-scene .tw-seat-board[data-seat-count="4"] .tw-seat-layout { --slot-width:.40; }
  .tw-scene .tw-seat-board[data-seat-count] .tw-seat-layout > .tw-seat-node { left:var(--seat-wide-x); top:var(--seat-wide-y); grid-template-columns:var(--identity-width) minmax(0,1fr); }
  .tw-scene .tw-seat-board .tw-seat-node > .tw-reveal-identity { grid-column:1; grid-row:1; }
  .tw-scene .tw-seat-board .tw-seat-node > :is(.tw-reveal-lanes,.tw-special-hand,.tw-seat-waiting) { grid-column:2; grid-row:1; }
  .tw-scene .tw-seat-board[data-seat-count] .tw-seat-layout > [data-wide-side="right"] { grid-template-columns:minmax(0,1fr) var(--identity-width); }
  .tw-scene .tw-seat-board [data-wide-side="right"] > .tw-reveal-identity { grid-column:2; }
  .tw-scene .tw-seat-board [data-wide-side="right"] > :is(.tw-reveal-lanes,.tw-special-hand,.tw-seat-waiting) { grid-column:1; }
  .tw-scene .tw-seat-board .tw-reveal-identity b { font-size:11px; }.tw-scene .tw-seat-board .tw-row-name { font-size:9px; }
}
@media (max-height:650px) {
  .tw-scene .tw-seat-board .tw-comparison-heading { height:30px; }.tw-scene .tw-seat-board .tw-comparison-heading h2 { font-size:13px; }
  .tw-scene .tw-seat-board .tw-comparison-heading > div > small { display:none; }
  .tw-scene .tw-seat-board .tw-comparison-steps,.tw-seat-progress { height:22px; }
  .tw-scene .tw-seat-board .tw-seat-layout { --identity-width:28px; --row-end:24px; }
  .tw-scene .tw-seat-board .tw-reveal-identity { gap:2px; }
  .tw-scene .tw-seat-board .tw-reveal-identity b,.tw-seat-waiting { font-size:9px; }
  .tw-scene .tw-seat-board .tw-reveal-identity small { font-size:7px; line-height:9px; }
  .tw-scene .tw-seat-board .tw-reveal-name { font-size:11px; line-height:12px; }
  .tw-seat-complete { font-size:11px; padding:3px 7px; }
  .tw-scene .tw-seat-board .tw-special-hand { gap:3px; border-radius:8px; }
  .tw-scene .tw-seat-board .tw-special-hand > small { font-size:8px; letter-spacing:0; }
  .tw-scene .tw-seat-board .tw-special-hand > span { font-size:7px; }
}
@media (prefers-reduced-motion:reduce) { .tw-scene .tw-seat-board .tw-seat-special-glow { animation:none; } }
/* Reserve the full bottom toolbar on compact phones while arranging. */
@media (max-height:620px) and (orientation:portrait) {
  .tw-scene:not(.tw-seat-mode) .tw-self-banner { margin-bottom:0; }
  .tw-scene:not(.tw-seat-mode) .tw-workspace { padding-bottom:2px; }
  .tw-scene:not(.tw-seat-mode) .tw-table-seat > strong { font-size:10px; line-height:12px; margin-top:0; }
}
