/* The players (js/shared/players-panel.js): a list (left) and the chosen player's viking in 3D with their medals and
   profile (right). On a wide screen they stand in the empty space at the sides of the page; on HAKOO Games they come
   under the games otherwise, and on a game's page (.wide-only) they are not shown then. */
.people{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:22px;align-items:start;margin-bottom:30px}
.pl-list,.pl-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;min-width:0}
.pl-list{position:relative;max-height:560px;overflow:auto}
.pl-list h2{margin:0 0 4px}
.pl-note{color:var(--muted);font-size:12px;margin-bottom:8px}
.pl-note:empty{display:none}
.pl-items{list-style:none;display:flex;flex-direction:column;gap:2px}
.pl-item{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:0;border-radius:9px;background:none;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}
.pl-item:hover,.pl-item[aria-pressed="true"]{background:var(--bg2)}
.pl-item[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--purple)}
.pl-item:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.pl-item img,.pl-item .viking-av,.pl-item .ph-av{width:34px;height:34px;border-radius:50%;flex-shrink:0}
.pl-item .ph-av{display:inline-block;background:var(--bg2)}
.pl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-item small{color:var(--muted);font-size:11px}
.people .title{font-weight:900;color:var(--purple)}
.pl-items.blur{filter:blur(6px);opacity:.7;pointer-events:none;user-select:none}
.pl-call{position:absolute;inset:40px 10px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.pl-call[hidden]{display:none}
.pl-call p{font-size:13px}
.pl-call .btn{background:#5865f2;color:#fff;border-radius:8px;padding:8px 14px;font-weight:700;text-decoration:none}
.pl-stage{position:relative;height:340px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#3a2f6b,#1a1430 75%);overflow:hidden;display:flex;align-items:center;justify-content:center}
.pl-stage canvas{display:block}
.pl-stage.blur{filter:blur(5px)}
.pl-medals{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px;z-index:1}
.vk-medal{display:block;line-height:0}
.pl-who{margin:12px 2px 4px;font-size:18px;font-weight:800}
.pl-who:empty{display:none}
.pl-info{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.pl-info h3{font-size:13px;color:var(--text);margin:4px 0 0}
.pl-info .chips{display:flex;flex-wrap:wrap;gap:5px}
.pl-info .chip{border:1px solid var(--border);border-radius:16px;padding:1px 8px;font-size:12px;color:var(--text);background:rgba(0,0,0,.2)}
.people.wide-only{display:none}
/* The empty sides of a wide screen: :root.pl-sides, set by js/shared/players-panel.js when the page has 1680 px or
   more. Not a media query: a larger text size (js/shared/lang-menu.js) zooms the page, which then has less room than
   the screen. Sizes in % of the window, not vw/vh: those would not shrink with the zoom and push the columns out. */
:root.pl-sides .people,:root.pl-sides .people.wide-only{display:contents}
:root.pl-sides .pl-list,:root.pl-sides .pl-card{position:fixed;top:84px;max-height:none;width:min(380px,calc(50% - 600px));overflow:auto;z-index:2}
:root.pl-sides .pl-list{right:calc(50% + 570px);bottom:24px}
:root.pl-sides .pl-card{left:calc(50% + 570px);max-height:calc(100% - 108px)}
:root.pl-sides .pl-stage{height:min(420px,48vh)}
@media (max-width:760px){
  .people{grid-template-columns:1fr;gap:14px}
  .pl-list{max-height:340px}
  .pl-stage{height:300px}
}

/* The groups of the players list, as on the HAKOO Discord server: a heading with the count, the tags beside a name */
.pl-group{margin:12px 8px 4px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pl-group:first-child{margin-top:4px}
.pl-tag{display:inline-block;margin-left:4px;padding:0 6px;border-radius:9px;font-size:10px;font-weight:800;line-height:16px;vertical-align:1px;color:var(--muted);border:1px solid var(--border)}
.pl-tag.you{border-color:transparent;padding:0;font-weight:500}
.pl-tag.owner{color:#e3b341;border-color:#e3b341}
.pl-tag.admin{color:#f85149;border-color:#f85149}
.pl-tag.tester{color:#3fb950;border-color:#3fb950}
.pl-tag.og{color:var(--purple);border-color:var(--purple)}
.pl-who .pl-tag{font-size:11px;vertical-align:3px}

/* A puzzle's page: today's puzzlers, with their times today and yesterday, their days in a row and all they solved */
.pl-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pl-times{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:11px;color:var(--muted);line-height:1.4}
.pl-times b{color:var(--text);font-weight:700}
.pl-times .lv{display:inline-block;min-width:13px;text-align:center;border-radius:4px;font-weight:800;color:#111;margin-right:2px;font-size:10px}
.pl-times .lv.easy{background:#5fd18a}.pl-times .lv.medium{background:#f5a742}.pl-times .lv.hard{background:#e8506a}
.pl-times .when{min-width:58px;color:var(--muted)}
.pl-stats{font-size:11px;color:var(--muted)}

/* A puzzle's page: the card at the right is only today's puzzlers (no viking); hidden until they are loaded */
.pl-card.pl-day[hidden]{display:none}
.pl-day h2{margin:0 0 4px}
.pl-puzzler{margin-top:6px;border-top:1px solid var(--border);border-radius:0 0 9px 9px}
.pl-items li:first-child .pl-puzzler{margin-top:0;border-top:0;border-radius:9px}

/* The rank by a name: Jarl (VIP), Viking or Shieldmaiden (paying), Farmer or Soldier (free) */
.pl-tag.rank{border-style:dashed}
.pl-tag.rank.jarl{color:#f0c040;border-color:#f0c040;border-style:solid}
.pl-tag.rank.viking,.pl-tag.rank.shieldmaiden{color:#6cb6ff;border-color:#6cb6ff}
.pl-tag.founder{color:#ff9ad5;border-color:#ff9ad5}
.pl-tag.rank.queen{color:#ff9ad5;border-color:#ff9ad5;border-style:solid}

/* A puzzle's page without room at the sides: today's puzzlers on the start page, in the rules' place (css/rules.css
   puts them in the right column and the short rules under the rest) */
.pl-card.pl-day.in-page{margin-top:16px;max-height:560px;overflow:auto}
#v-home .pl-day h2{margin-top:0}                 /* not the start page's headings' space */
