/* Player roster: native React cards keep their handlers and cosmetics. */
html body .game-page.game-page { height:auto !important; min-height:100dvh !important; overflow:visible !important; padding-bottom:85px !important; }
html body .game-page.game-page .game-topbar {
  position:relative !important; display:grid !important;
  grid-template-columns:120px minmax(0,1fr) 190px !important;
  grid-template-rows:72px !important; align-items:center !important;
  height:auto !important; min-height:72px !important; padding:0 !important;
  gap:0 !important; overflow:visible !important; margin-bottom:12px !important;
}
html body .game-page.game-page .game-topbar .game-menu-button { position:relative !important; inset:auto !important; grid-area:1/1 !important; transform:none !important; }
html body .game-page.game-page .game-topbar .game-title { position:relative !important; inset:auto !important; grid-area:1/2 !important; justify-self:center !important; transform:none !important; }
html body .game-page.game-page .game-topbar .game-title img { width:140px !important; max-height:50px !important; object-fit:contain; }
html body .game-page.game-page .game-topbar .turn-indicator { position:relative !important; inset:auto !important; grid-area:1/3 !important; width:190px !important; transform:none !important; }
html body .game-page.game-page .game-topbar > .realtime-status { position:absolute !important; top:58px !important; bottom:auto !important; right:auto !important; left:50% !important; transform:translateX(-50%) !important; font-size:9px !important; }
html body .game-page.game-page .game-player-header.table-player-ring {
  position:absolute !important; inset:84px auto auto 0 !important;
  display:grid !important; grid-template-columns:minmax(0,1fr) !important;
  grid-auto-rows:auto !important; gap:10px !important; align-content:start !important;
  width:250px !important; min-width:0 !important; max-width:none !important;
  height:auto !important; min-height:0 !important; max-height:none !important;
  margin:0 !important; padding:0 !important; overflow:visible !important; transform:none !important;
}
html body .game-page.game-page .game-player-header > .table-player-card:nth-child(n) {
  position:relative !important; inset:auto !important; grid-area:auto !important;
  display:block !important;
  width:100% !important; min-width:0 !important; max-width:none !important;
  height:auto !important; min-height:128px !important; max-height:none !important;
  padding:10px 10px 9px 13px !important; margin:0 !important; transform:none !important;
  border-left:4px solid var(--token-color,#b18a43) !important; border-radius:6px !important;
  background-color:#100c09 !important; box-shadow:0 3px 12px #0006 !important;
}
html body .game-page.game-page .game-player-header > .table-player-card.current { border-color:#e9bd60 !important; border-left-color:var(--token-color,#e9bd60) !important; box-shadow:0 0 0 1px #b98c36,0 0 18px #d2a74730 !important; }
html body .game-page.game-page .game-player-header .table-player-card > header {
  display:grid !important; grid-template-columns:46px minmax(0,1fr) !important;
  height:auto !important; min-height:65px !important; gap:4px 8px !important; align-items:center !important;
  padding:0 !important; margin:0 0 7px !important; background:linear-gradient(90deg,#100b0780,#100b07e6) !important;
}
html body .game-page.game-page .game-player-header .table-player-card > header > div { padding:0 !important; min-width:0 !important; overflow:visible !important; }
html body .game-page.game-page .game-player-header .table-player-card > header :is(b,strong) { width:auto !important; max-width:100% !important; font-size:16px !important; line-height:1.25 !important; white-space:normal !important; overflow-wrap:anywhere; overflow:visible !important; text-overflow:clip !important; }
html body .game-page.game-page .game-player-header .table-player-card > header small { display:block !important; font-size:12px !important; line-height:1.5 !important; white-space:normal !important; color:#efdab2 !important; }
html body .game-page.game-page .game-player-header .table-player-card.current header b::after { content:' · Ходит'; color:#f7ce77; font-size:11px; white-space:nowrap; }
html body .game-page.game-page .game-player-header .table-player-token { width:42px !important; min-width:42px !important; height:42px !important; margin:0 !important; }
html body .game-page.game-page .game-player-header .np-game-player-avatar { width:38px !important; height:38px !important; }
html body .game-page.game-page .game-player-header .np-game-player-frame { width:56px !important; height:56px !important; min-width:56px !important; max-width:56px !important; min-height:56px !important; max-height:56px !important; }
html body .game-page.game-page .game-player-header .np-game-player-title { position:static !important; grid-column:1/-1; width:auto !important; max-width:none !important; margin:1px 0 0 !important; text-align:left !important; font-size:10px !important; color:#c6a66a !important; }
html body .game-page.game-page .game-player-header .np-game-season-marks { position:static !important; grid-column:1/-1; justify-self:start; }
html body .game-page.game-page .game-player-header .np-game-player-card-art { opacity:.45 !important; }
html body .game-page.game-page .game-player-header .level-progress { height:5px !important; margin:0 0 8px !important; }
html body .game-page.game-page .game-player-header .artifact-slot-row { display:flex !important; gap:3px !important; flex-wrap:wrap !important; margin:0 !important; }
html body .game-page.game-page .game-player-header .artifact-slot-row .player-artifact-slot { flex:0 0 28px !important; width:28px !important; min-width:28px !important; height:28px !important; min-height:28px !important; padding:0 !important; }
@media(min-width:1200px) {
  html body .game-page.game-page .game-layout { margin-left:calc(266px + 1vw) !important; width:calc(100% - 266px - 2vw) !important; min-width:0 !important; height:auto !important; min-height:calc(100dvh - 160px) !important; grid-template-columns:minmax(0,1fr) 310px !important; align-items:start !important; }
  html body .game-page.game-page .game-layout .board-shell { min-width:0 !important; width:100% !important; }
  html body .game-page.game-page .game-layout .game-board { width:min(100%,calc(100dvh - 164px)) !important; min-width:0 !important; max-width:100% !important; height:auto !important; aspect-ratio:1 !important; }
  html body .game-page.game-page .game-sidebar { min-width:0 !important; width:310px !important; }
  html body .game-page:has(.game-player-header > :nth-child(6)) .game-layout { min-height:960px !important; }
}
@media(max-width:1199px) {
  html body .game-page.game-page .game-topbar { grid-template-rows:72px auto !important; row-gap:12px !important; }
  html body .game-page.game-page .game-player-header.table-player-ring { position:relative !important; inset:auto !important; grid-area:2/1/3/-1 !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; width:min(100%,780px) !important; justify-self:center !important; }
}
@media(min-width:1200px) and (max-width:1599px) {
  html body .game-page.game-page .game-layout { grid-template-columns:minmax(0,1fr) 280px !important; }
  html body .game-page.game-page .game-sidebar { width:280px !important; }
}
/* Keep the roster readable in the existing horizontally scrollable touch table. */
html.np-mobile-table-mode body .game-page.game-page .game-topbar { grid-template-rows:72px auto !important; row-gap:12px !important; }
html.np-mobile-table-mode body .game-page.game-page .game-player-header.table-player-ring { position:relative !important; inset:auto !important; grid-area:2/1/3/-1 !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; width:min(780px,calc(100vw - 32px)) !important; justify-self:start !important; }
html.np-mobile-table-mode body .game-page.game-page .game-layout { margin-left:0 !important; width:980px !important; }
