/* v0.10.6 — server multiplayer Crew (5–6) / Typhoon (7) seating.
   Keep the v0.10.5 Solo/Online board intact for 2–4 participants.
   Each opponent gets a real clickable, visible seat on phones and desktop. */
.game-shell.ty-party-table .game-stage .opponent.crew-seat {
  position:absolute;inset:auto;transform:none;
  width:clamp(170px,16.7vw,226px);min-width:0;min-height:78px;max-height:98px;
  padding:7px 8px;box-sizing:border-box;
  display:grid;grid-template-columns:43px minmax(0,1fr) 39px;
  grid-template-rows:24px 14px 16px;gap:1px 5px;
  border-radius:12px;justify-items:start;align-items:center;
  pointer-events:auto;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .crew-portrait-wrap{
  grid-column:1;grid-row:1/4;width:42px;height:63px;border-radius:7px;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .name{
  position:static;grid-column:2;grid-row:1;font-size:clamp(9px,.88vw,12px);line-height:1.05;
  max-height:25px;min-width:0;overflow:hidden;overflow-wrap:anywhere;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .persona{
  grid-column:2;grid-row:2;font-size:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .big-count{
  grid-column:3;grid-row:1/3;width:38px;min-height:44px;font-size:23px;border-radius:7px;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .big-count span{font-size:6px;margin-top:1px}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .littlecards{display:none}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .status-effects{
  grid-column:2/4;grid-row:3;display:flex;align-items:center;gap:2px;overflow:hidden;
  max-width:100%;min-width:0;flex-wrap:nowrap;
}
.game-shell.ty-party-table .game-stage .opponent.crew-seat .effect-mini{
  padding:1px 3px;font-size:7px;letter-spacing:0;line-height:1.2;
}
/* Six slots distributed along the table perimeter, leaving center piles and
   bottom hand untouched. Shorter table sizes simply leave slots empty. */
.game-shell.ty-party-table .game-stage .opponent.party-top-left{top:1%;left:29%;right:auto}
.game-shell.ty-party-table .game-stage .opponent.party-top-right{top:1%;right:29%;left:auto}
.game-shell.ty-party-table .game-stage .opponent.party-left-upper{top:18%;left:1%;right:auto}
.game-shell.ty-party-table .game-stage .opponent.party-left-lower{top:40%;left:1%;right:auto}
.game-shell.ty-party-table .game-stage .opponent.party-right-upper{top:18%;right:1%;left:auto}
.game-shell.ty-party-table .game-stage .opponent.party-right-lower{top:40%;right:1%;left:auto}
.game-shell.ty-party-table .game-stage .effects-panel{top:62%;width:clamp(125px,15vw,185px);right:1%}
.game-shell.ty-party-table .game-stage .effects-panel .effects-title{font-size:10px}
.game-shell.ty-party-table .game-stage .effects-list{font-size:9px}
/* The first local seat still receives the strongest turn indication. */
.game-shell.ty-party-table .game-stage .opponent.party-top-left.turn,
.game-shell.ty-party-table .game-stage .opponent.party-top-right.turn {transform:none}
/* Small landscape phones are the primary multiplayer target. The secondary
   metadata yields before any card, hand, target, or action control does. */
@media (pointer:coarse) and (orientation:landscape) and (max-width:1100px),
       (max-width:900px) and (orientation:landscape) {
 .game-shell.ty-party-table .game-stage .opponent.crew-seat {
   width:clamp(112px,15.7vw,148px);min-height:56px;max-height:61px;
   padding:3px 4px;grid-template-columns:28px minmax(0,1fr) 27px;
   grid-template-rows:17px 9px 14px;gap:1px 2px;border-radius:8px;
 }
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .crew-portrait-wrap{
   width:28px;height:47px;border-radius:5px;
 }
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .name{font-size:8px;max-height:17px;line-height:1.02}
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .persona{font-size:6px;line-height:1}
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .big-count{
   width:27px;min-height:31px;font-size:17px;border-radius:5px;
 }
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .big-count span{font-size:5px}
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .status-effects{gap:1px}
 .game-shell.ty-party-table .game-stage .opponent.crew-seat .effect-mini{font-size:6px;padding:1px 2px}
 .game-shell.ty-party-table .game-stage .opponent.party-top-left{top:0;left:27%;right:auto}
 .game-shell.ty-party-table .game-stage .opponent.party-top-right{top:0;right:27%;left:auto}
 .game-shell.ty-party-table .game-stage .opponent.party-left-upper{top:17%;left:3px;right:auto}
 .game-shell.ty-party-table .game-stage .opponent.party-left-lower{top:38%;left:3px;right:auto}
 .game-shell.ty-party-table .game-stage .opponent.party-right-upper{top:17%;right:3px;left:auto}
 .game-shell.ty-party-table .game-stage .opponent.party-right-lower{top:38%;right:3px;left:auto}
 .game-shell.ty-party-table .game-stage .effects-panel{top:61%;right:4px;width:clamp(112px,15.5vw,142px);padding:5px 6px}
 .game-shell.ty-party-table .game-stage .effects-panel .effects-title{font-size:8px;margin-bottom:2px}
 .game-shell.ty-party-table .game-stage .effects-panel .effect-tag{font-size:7px;padding:2px 4px}
}
/* Host-managed 7-seat lobby: no truncated cards or unavailable bottom options. */
@media(max-width:650px){
 #tymp-root .tymp-frame.lobby .tymp-players{grid-template-columns:repeat(2,minmax(0,1fr))}
 #tymp-root .tymp-frame.lobby .tymp-players > div:last-child:nth-child(odd){grid-column:1 / -1}
}
