/* The player and team modal (web/player.js builds it, web/player-core.js draws it), on every page after site.css or
   board.css: the v7 system (design/home, design/board-v7). A white pane over the frosted page, 24px radius and
   hairlines, Instrument Sans for reading and Archivo condensed for every number, capsule controls, the team's colour
   only as a tint on the photo plate and the team chip. Every rule is scoped to .plrdlg, so nothing here can restyle
   the page behind it, and the full card it borrows from the nav's search (.srchcard, web/nav.css) gets the nav's own
   light-mode variables (--nl, --nf, --nh) here. Night follows the board's toggle (:root[data-theme="dark"]). */
.plrdlg{--p-surface:#FFFFFF;--p-surface2:#F7F9FC;--p-t1:var(--ink,#0D1320);--p-t2:var(--ink-2,#4B566B);--p-t3:var(--ink-3,#5F6980);
  --p-ln:var(--line,rgba(13,19,32,.08));--p-ln2:var(--line-2,rgba(13,19,32,.13));--p-scrim:rgba(245,247,250,.76);--p-solid:#F5F7FA;
  --p-green:var(--pos,#0A7A4E);--p-amber:var(--warn,#9A6100);--p-win:#0A7A4E;--p-loss:#B42332;
  --p-fire:#B8431A;--p-fire-soft:rgba(184,67,26,.09);--p-cold:#2F5A8F;--p-cold-soft:rgba(47,90,143,.09);--p-mark-ink:#fff;
  --p-tint:12%;--p-tint-ln:30%;--p-tint-fg:84%;--p-tint-base:#0D1320;   /* the team's colour, mixed on the plate and the chip */
  --p-shadow:0 1px 2px rgba(13,19,32,.04),0 40px 80px -40px rgba(13,19,32,.35);
  --nl:var(--line-2,rgba(13,19,32,.13));--nf:#fff;--nh:#F2F5F9;
  position:fixed;inset:0;z-index:75;display:none;align-items:center;justify-content:center;padding:16px;
  color:var(--p-t1);font:400 15px/1.55 var(--sans,ui-sans-serif,system-ui,sans-serif);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1;text-align:left}
:root[data-theme="dark"] .plrdlg{--p-surface:#0D1321;--p-surface2:#111829;--p-t1:var(--ink-d,#EEF1F6);--p-t2:var(--ink-d2,#9BA5B7);--p-t3:var(--ink-d3,#7E889B);
  --p-ln:rgba(255,255,255,.07);--p-ln2:rgba(255,255,255,.12);--p-scrim:rgba(6,9,16,.74);--p-solid:#070A12;
  --p-green:var(--pos-d,#3DD68C);--p-amber:var(--warn-d,#F0B44C);--p-win:#3DD68C;--p-loss:#F07C8A;
  --p-fire:#F08A5B;--p-fire-soft:rgba(240,138,91,.13);--p-cold:#8FB4E3;--p-cold-soft:rgba(143,180,227,.13);--p-mark-ink:#060910;
  --p-tint:22%;--p-tint-ln:45%;--p-tint-fg:50%;--p-tint-base:#fff;
  --p-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 40px 80px -40px rgba(0,0,0,.8);
  --nl:rgba(255,255,255,.12);--nf:rgba(255,255,255,.04);--nh:rgba(255,255,255,.09)}
.plrdlg.is-open{display:flex}
.plrdlg[hidden]{display:none}
.plrdlg *{box-sizing:border-box}
.plr-scrim{position:absolute;inset:0;background:var(--p-scrim);-webkit-backdrop-filter:blur(30px) saturate(140%);backdrop-filter:blur(30px) saturate(140%)}
.plr-pane{position:relative;display:flex;flex-direction:column;width:min(980px,100%);max-height:92vh;max-height:92dvh;border-radius:var(--r-card,24px);
  background:var(--p-surface);border:1px solid var(--p-ln);box-shadow:var(--p-shadow);overflow:hidden;outline:none;animation:plr-rise .35s var(--ease,ease) both}
@keyframes plr-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* a way back to the roster a player was opened from */
.plr-bar{flex:none;padding:12px 24px 0}
.plr-backbtn{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--p-ln2);background:transparent;color:inherit;font:500 13px/1 var(--sans);cursor:pointer}
.plr-backbtn:hover{background:var(--p-surface2)}

/* the header stays while the body scrolls: the photo plate, the name, the team chip, tonight's game */
.plr-head{flex:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px 18px;border-bottom:1px solid var(--p-ln)}
.plr-photo{position:relative;width:96px;height:96px;flex:none}
.plr-plate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:20px;
  background:color-mix(in srgb,var(--tc) var(--p-tint),var(--p-surface));border:1px solid color-mix(in srgb,var(--tc) var(--p-tint-ln),transparent);
  color:color-mix(in srgb,var(--tc) var(--p-tint-fg),var(--p-tint-base))}
.plr-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;border-radius:20px}
.plr-num{font:600 40px/1 var(--num,ui-sans-serif);font-stretch:76%;letter-spacing:-.02em}
.plr-abbr{font:700 11px/1 var(--num,ui-sans-serif);font-stretch:85%;letter-spacing:.06em}
.plr-plate.plr-teammark .plr-abbr{font-size:26px;font-stretch:78%;letter-spacing:.02em}
.plr-who{min-width:0}
.plrdlg h2.plr-name{margin:0;max-width:none;font:500 26px/1.15 var(--sans);letter-spacing:-.03em;color:var(--p-t1);overflow-wrap:anywhere}
.plr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:8px 0 0;font-size:13.5px;line-height:1.4;color:var(--p-t2)}
.plr-meta>span{overflow-wrap:anywhere}
.plr-team{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;cursor:pointer;
  background:color-mix(in srgb,var(--tc) var(--p-tint),var(--p-surface));border:1px solid color-mix(in srgb,var(--tc) var(--p-tint-ln),transparent);
  color:color-mix(in srgb,var(--tc) var(--p-tint-fg),var(--p-tint-base));font:700 11.5px/1 var(--num,ui-sans-serif);font-stretch:85%;letter-spacing:.04em}
.plr-team:hover{border-color:color-mix(in srgb,var(--tc) var(--p-tint-fg),var(--p-tint-base))}
.plr-meta b{font-family:var(--num,ui-sans-serif);font-stretch:82%;font-weight:600;color:var(--p-t1)}
.plr-rec{font-size:19px;line-height:1;margin-right:2px}
.plr-season{margin:6px 0 0;font-size:13.5px;line-height:1.45;color:var(--p-t2);overflow-wrap:anywhere}
.plr-close{width:40px;height:40px;padding:0;border-radius:999px;border:1px solid var(--p-ln2);background:transparent;color:var(--p-t2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;align-self:start;transition:background .2s}
.plr-close:hover{background:var(--p-surface2);color:var(--p-t1)}
.plr-close svg{width:16px;height:16px}

/* the body */
.plr-body{min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 24px 24px;scrollbar-width:thin;overscroll-behavior:contain}
.plr-sec{margin:0 0 30px;min-width:0}
.plr-sec:last-child,.plr-grid>.plr-sec{margin-bottom:0}
.plr-grid{margin:0 0 30px}
.plr-sec h3{margin:0 0 8px;font:500 17px/1.3 var(--sans);letter-spacing:-.02em;color:var(--p-t1)}
.plr-hint{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:var(--p-t2)}
.plr-note{margin:0;font-size:14px;line-height:1.55;color:var(--p-t2);overflow-wrap:anywhere}
.plr-note a{color:var(--p-t1)}
.plr-fine{margin:4px 0 0;font-size:12.5px;line-height:1.55;color:var(--p-t3)}
/* form beside home and away: the splits column is as wide as its table (never clipped while there is room), the
   form takes the rest; narrower, the table scrolls in its own box */
.plr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,max-content);gap:30px 36px;align-items:start}
.plr-sec-splits .plr-splits{width:auto}

/* tonight's lines: one row each, tap for every book */
.plr-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.plr-propbtn{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1fr) minmax(0,1fr);gap:8px 14px;align-items:start;width:100%;padding:11px 14px;border-radius:14px;
  border:1px solid var(--p-ln);background:var(--p-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,background .2s}
.plr-propbtn:hover{border-color:var(--p-ln2);background:var(--p-surface2)}
.plr-propbtn:disabled{cursor:default}
.plr-mkt{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;min-width:0}
.plr-mkt b{font-weight:500;font-size:14.5px}
.plr-line{font:600 17px/1 var(--num,ui-sans-serif);font-stretch:80%;letter-spacing:-.01em}
.plr-side{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;font-size:12.5px;color:var(--p-t3)}
.plr-sidelbl{flex-basis:100%;font-size:12px;font-weight:500;color:var(--p-t2);overflow-wrap:anywhere}
.plr-price{font:600 16px/1 var(--num,ui-sans-serif);font-stretch:80%;color:var(--p-t1)}
.plr-book{font-size:12px;overflow-wrap:anywhere}
.plr-val{font:600 12.5px/1 var(--num,ui-sans-serif);font-stretch:85%}
.plr-val.better{color:var(--p-green)}
.plr-fairp{font-size:12px;white-space:nowrap}
.plr-held{flex-basis:100%;font-size:12px;line-height:1.4;color:var(--p-t2)}
.plr-none,.plr-nofair,.plr-wait{font-size:12.5px;color:var(--p-t3)}
.plr-wait{grid-column:2/-1;align-self:center}
.plr-nofair{grid-column:1/-1}
/* a member's context under the sides (web/player-core.js propContext): the Over's hit counts vs this line and his
   minutes, one line across the row, shortened by its own ellipsis; the numbers in the condensed numeral face */
.plr-ctx{grid-column:1/-1;display:block;min-width:0;font-size:12.5px;line-height:1.4;color:var(--p-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plr-ctx .n{font-family:var(--num,ui-sans-serif);font-stretch:80%;font-weight:600;color:var(--p-t2)}
.plr-ctx .sl{display:none}
@media (max-width:479px){.plr-ctx .of,.plr-ctx .ssn{display:none}.plr-ctx .sl{display:inline}}
}

/* form: a tile per stat, the last-5 number large, the mark where the rule says so (web/player-core.js) */
.plr-forms{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.plr-form{min-width:0;padding:12px 13px 11px;border-radius:14px;background:var(--p-surface2);border:1px solid var(--p-ln)}
.plr-form.is-hot{background:var(--p-fire-soft);border-color:color-mix(in srgb,var(--p-fire) 30%,transparent)}
.plr-form.is-cold{background:var(--p-cold-soft);border-color:color-mix(in srgb,var(--p-cold) 30%,transparent)}
.plr-formh{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 6px;margin-bottom:6px}
.plr-stat{font-size:12.5px;font-weight:500;color:var(--p-t2)}
.plr-mark{display:inline-flex;align-items:center;min-height:20px;padding:2px 8px;border-radius:10px;font:600 11px/1.3 var(--sans);color:var(--p-mark-ink);background:var(--p-t2);overflow-wrap:anywhere}
.plr-form.is-hot .plr-mark,.plr-mark.is-hot{background:var(--p-fire)}
.plr-form.is-cold .plr-mark,.plr-mark.is-cold{background:var(--p-cold)}
.plr-big{display:block;font:600 26px/1.05 var(--num,ui-sans-serif);font-stretch:76%;letter-spacing:-.015em;color:var(--p-t1)}
.plr-vs{display:block;margin-top:2px;font-size:12px;color:var(--p-t3)}
.plr-why{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--p-t2)}

/* the last 10 and the splits: tables that scroll inside their own box on a narrow screen, never the page */
.plr-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--p-ln);border-radius:14px;background:var(--p-surface)}
.plr-l10,.plr-splits{width:100%;min-width:520px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.plr-l10.plr-l10-team{min-width:280px}        /* three columns: fits a phone without a scroll */
.plr-splits{min-width:380px}
.plr-l10 th,.plr-splits th{padding:9px 10px;border-bottom:1px solid var(--p-ln2);font:500 12px/1.3 var(--sans);color:var(--p-t3);text-align:right;white-space:nowrap}
.plr-splits th{padding:9px 8px}
.plr-l10 th:first-child,.plr-l10 th:nth-child(2),.plr-splits th:first-child{text-align:left}
.plr-l10 td,.plr-splits td{padding:8px 10px;border-bottom:1px solid var(--p-ln);text-align:right;font:600 14px/1.3 var(--num,ui-sans-serif);font-stretch:82%;white-space:nowrap;color:var(--p-t2)}
.plr-splits td{padding:8px}
.plr-l10 td:first-child,.plr-l10 td:nth-child(2){text-align:left;font:400 13.5px/1.3 var(--sans);color:var(--p-t1)}
.plr-l10 td.plr-key,.plr-l10 td:nth-child(3){color:var(--p-t1)}
.plr-l10 tr:last-child td,.plr-splits tr:last-child td{border-bottom:0}
.plr-splits tbody th{text-align:left;font:500 13.5px/1.3 var(--sans);color:var(--p-t1);border-bottom:1px solid var(--p-ln)}
.plr-splits tr:last-child th{border-bottom:0}
/* phones: both tables fit the pane down to 375px without scrolling (tighter cells, no fixed minimum width); narrower
   than that they scroll inside their own box */
@media (max-width:479px){
  .plr-l10,.plr-splits,.plr-sec-splits .plr-splits{min-width:0;width:100%}
  .plr-l10 th,.plr-l10 td{padding:8px 5px}
  .plr-splits th,.plr-splits td{padding:8px 5px}
  .plr-l10 th:first-child,.plr-l10 td:first-child,.plr-splits th:first-child{padding-left:10px}
  .plr-l10 th:last-child,.plr-l10 td:last-child,.plr-splits th:last-child,.plr-splits td:last-child{padding-right:10px}
  .plr-l10 td,.plr-splits td{font-size:13.5px}
.plr-ps{display:inline-flex;align-items:center;height:18px;padding:0 7px;margin-left:6px;border-radius:999px;border:1px solid var(--p-ln2);font:600 10.5px/1 var(--sans);color:var(--p-t2);vertical-align:1px}
.plr-res{display:inline-block;min-width:16px;font-family:var(--num,ui-sans-serif);font-stretch:85%;font-weight:700}
.plr-res.is-win{color:var(--p-win)}
.plr-res.is-loss{color:var(--p-loss)}

/* a team's players, each a way into his own view */
.plr-roster{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.plr-playerbtn{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:6px 14px;align-items:center;width:100%;padding:10px 14px;border-radius:14px;
  border:1px solid var(--p-ln);background:var(--p-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,background .2s}
.plr-playerbtn:hover{border-color:var(--p-ln2);background:var(--p-surface2)}
.plr-pwho{display:flex;flex-direction:column;min-width:0}
.plr-pwho b{font-weight:500;font-size:14.5px;overflow-wrap:anywhere}
.plr-pos{font-size:12.5px;color:var(--p-t3)}
.plr-pmarks{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.plr-count{font:600 12.5px/1 var(--num,ui-sans-serif);font-stretch:85%;color:var(--p-t2);white-space:nowrap}

/* the full card for one line, the nav's own (web/nav.css .srchcard) drawn on the light pane */
.plr-cardbody .note,.plr-cardbody .fine,.plr-cardbody .meta{margin:10px 2px 0;font-size:13px;line-height:1.5;color:var(--p-t2)}
.plr-cardbody .srchcard .lead{color:var(--p-green)}
.plr-cardbody .srchcard li .cost.better{color:var(--p-green)}
.plr-cardbody .srchcard li .bk small.stale{color:var(--p-amber)}
.plr-cardbody .srchcard h3{margin-top:4px}

/* a phone: the whole screen, the header fixed and the body scrolling under it */
@media (max-width:759px){
  .plrdlg{padding:0}
  .plr-pane{width:100%;height:100%;max-height:none;border-radius:0;border:0;animation-name:plr-up}
  .plr-bar{padding:12px 16px 0}
  .plr-head{gap:12px;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 12px}
  .plr-photo{width:64px;height:64px}.plr-plate,.plr-img{border-radius:16px}.plr-num{font-size:28px}.plr-plate.plr-teammark .plr-abbr{font-size:20px}
  .plrdlg h2.plr-name{font-size:21px}
  .plr-meta{margin-top:6px;font-size:13px}.plr-season{font-size:13px}
  .plr-body{padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px))}
  .plr-grid{grid-template-columns:minmax(0,1fr);gap:18px}
  .plr-propbtn{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:10px 12px}.plr-mkt{grid-column:1/-1}.plr-wait{grid-column:1/-1}
  .plr-playerbtn{grid-template-columns:minmax(0,1fr) auto}.plr-pmarks{grid-column:1/-1}
  .plr-forms{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@keyframes plr-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media (max-width:400px){
  .plr-head{gap:10px;padding-left:14px;padding-right:14px}.plr-body{padding-left:14px;padding-right:14px}.plr-bar{padding-left:14px}
  .plr-propbtn{grid-template-columns:1fr}.plr-forms{grid-template-columns:1fr 1fr;gap:6px}.plr-form{padding:10px 11px 9px}.plr-big{font-size:22px}
}
@media (prefers-reduced-motion:reduce){.plr-pane{animation:none}}
@media (prefers-reduced-transparency:reduce){.plr-scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--p-solid)}}
