/* v0.10.26.1 — multiplayer seating and spectator clarity.
   Equal-size, bounded human and bot seats; never let old v0.8.3 human-seat
   !important widths swallow the table in 3–7 player landscape rooms. */
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat{
  box-sizing:border-box;width:clamp(172px,17vw,230px);min-width:0;
  min-height:91px;max-height:110px;padding:7px 9px;
  grid-template-columns:44px minmax(0,1fr) 40px;
  grid-template-rows:22px 14px 16px;gap:2px 6px;
  border-radius:12px;overflow:hidden;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat.human-seat{
  width:clamp(172px,17vw,230px)!important;max-width:230px!important;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .crew-portrait-wrap{
  grid-column:1;grid-row:1/4;width:43px;height:64px;border-radius:7px;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .name,
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat.human-seat .name{
  position:static;grid-column:2;grid-row:1;font-size:11px;line-height:1.08;
  min-width:0;max-width:100%;max-height:25px;overflow:hidden;
  white-space:normal;overflow-wrap:anywhere;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .persona,
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat.human-seat .persona{
  grid-column:2;grid-row:2;font-size:8px;max-width:100%;min-height:0;overflow:hidden;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .big-count{
  grid-column:3;grid-row:1/3;width:39px;min-height:43px;font-size:23px;
}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .littlecards{display:none}
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat .status-effects,
.game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat.human-seat .status-effects{
  grid-column:2/4;grid-row:3;overflow:hidden;display:flex;gap:2px;
}
/* A human is a seat, not a wider panel. On 5–7-player tables match the exact
   party-table widths (the older .human-seat width carried !important). */
.game-shell.ty-online.ty-party-table .game-stage .opponent.crew-seat.human-seat{
  width:clamp(170px,16.7vw,226px)!important;max-width:226px!important;
}
.game-shell.ty-online.ty-party-table .game-stage .opponent.crew-seat.human-seat .name,
.game-shell.ty-online.ty-party-table .game-stage .opponent.crew-seat.human-seat .persona{
  overflow:hidden;max-width:100%;white-space:normal;
}
/* Host is a public seat to spectators, never the viewer's own hand. */
.game-shell.ty-online.ty-spectator #my-player{opacity:1;filter:none;max-width:min(230px,38vw);}
.game-shell.ty-online.ty-spectator #my-player.spectated-turn{border-color:#6ce8e0;box-shadow:0 0 16px #52eee552;}
.game-shell.ty-online.ty-spectator #my-player .player-info{min-width:0;flex-wrap:wrap;gap:3px;}
.game-shell.ty-online.ty-spectator #my-player .player-info strong{overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap;}
.game-shell.ty-online.ty-spectator .ty21-spectator-bar{z-index:24;max-width:min(440px,calc(100% - 12px));}
@media (orientation:landscape) and (max-width:1100px){
  .game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat,
  .game-shell.ty-online.ty-party-table .game-stage .opponent.crew-seat{
    box-sizing:border-box;width:clamp(108px,15.7vw,148px)!important;
    height:57px!important;min-height:57px!important;max-height:57px!important;
    display:grid;grid-template-columns:28px minmax(0,1fr) 27px;
    grid-template-rows:17px 9px 14px;gap:1px 2px;
    padding:3px 4px;border-radius:8px;overflow:hidden;
  }
  .game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.crew-seat.human-seat,
  .game-shell.ty-online.ty-party-table .game-stage .opponent.crew-seat.human-seat{
    width:clamp(108px,15.7vw,148px)!important;
    min-width:0!important;max-width:148px!important;
    height:57px!important;min-height:57px!important;max-height:57px!important;
    grid-template-columns:28px minmax(0,1fr) 27px;
    grid-template-rows:17px 9px 14px;
    padding:3px 4px;gap:1px 2px;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .crew-portrait-wrap,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .crew-portrait-wrap{
    grid-column:1;grid-row:1/4;width:27px;height:46px;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .name,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .name{
    grid-column:2;grid-row:1;font-size:8px;max-height:17px;max-width:100%;line-height:1.02;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .persona,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .persona{
    grid-column:2;grid-row:2;font-size:6px;line-height:1;overflow:hidden;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .big-count{
    grid-column:3;grid-row:1/3;width:27px;min-height:31px;font-size:17px;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .status-effects,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .status-effects{
    grid-column:2/4;grid-row:3;display:flex;gap:1px;overflow:hidden;
  }
  .game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.bot-left,
  .game-shell.ty-online:not(.ty-party-table) .game-stage .opponent.bot-right{
    top:clamp(64px,20%,92px);min-height:57px;max-height:57px;
  }
}
@media (orientation:landscape) and (max-height:370px){
  .game-shell.ty-online .game-stage .opponent.crew-seat,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat{
    height:43px!important;min-height:43px!important;max-height:43px!important;
    width:clamp(100px,16vw,124px)!important;
    grid-template-columns:22px minmax(0,1fr) 23px;
    grid-template-rows:18px 13px;gap:1px 2px;padding:2px 3px;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .crew-portrait-wrap,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .crew-portrait-wrap{
    width:21px;height:35px;grid-row:1/3;
  }
  .game-shell.ty-online .game-stage .opponent.crew-seat .name,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .name{grid-row:1/3;max-height:35px;font-size:7px;}
  .game-shell.ty-online .game-stage .opponent.crew-seat .persona,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .persona,
  .game-shell.ty-online .game-stage .opponent.crew-seat .status-effects,
  .game-shell.ty-online .game-stage .opponent.crew-seat.human-seat .status-effects{display:none;}
  .game-shell.ty-online .game-stage .opponent.crew-seat .big-count{grid-row:1/3;grid-column:3;width:23px;min-height:27px;font-size:15px;}
}
