/* Default UI size: 110%. rem dimensions scale text, controls and spacing together; browser zoom and drag coordinates stay native. */
:root { font-size:110%; color-scheme:dark; font-family:"Segoe UI",ui-sans-serif,system-ui,sans-serif; font-synthesis:none; color:var(--ink); background:var(--bg); }
/* Upcoming prop picker: compact quote rows, independent saved betslip. */
.bet-filters :is(.week-heading,.week-picker,.coverage-row) { display:none; }
.bet-picker-layout { display:grid; grid-template-columns:minmax(0,1fr) 19.375rem; gap:1.25rem; align-items:start; }
.bet-market-list { min-width:0; }
.bet-picker-filters { display:grid; grid-template-columns:8.75rem minmax(6.25rem,1fr) 7.5rem; gap:0.625rem; }
.bet-picker-filters label { display:grid; gap:0.375rem; color:var(--muted); font-size:0.625rem; }
.bet-picker-filters :is(select,input) { width:100%; min-width:0; padding:0.5625rem; color:var(--ink); border:1px solid var(--line); border-radius:var(--r-control); background:var(--surface-raised); }
.bet-picker-note { font-size:0.625rem; color:var(--muted); line-height:1.6; margin:0.75rem 0 1.125rem; }
.bet-price-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.375rem; }
.bet-side { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:0.1875rem; width:100%; min-height:2.625rem; padding:0.4375rem 0.3125rem; border:1px solid #53426c; border-radius:var(--r-control); background:#2c223a; color:#d6d1e0; font-size:0.625rem; }
.bet-side strong { font-size:0.6875rem; color:#baa0e7; }
.bet-side:hover:not(:disabled) { border-color:var(--cyan); background:#3b2e4e; }
.bet-side[aria-pressed=true] { background:#1c573e; border-color:#57c99a; color:#dcf3e9; }
.bet-side[aria-pressed=true] strong { color:#dcf3e9; }
.betslip { position:sticky; top:5.125rem; border:1px solid #54446f; border-top:0.1875rem solid var(--cyan); border-radius:var(--r-control); background:#231b2e; padding:0.875rem; min-width:0; }
.betslip-heading { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.betslip h3 { margin:0; font-size:0.9375rem; }
#betslipCount { display:inline-block; background:#392c4b; padding:2px 0.4375rem; border-radius:var(--r-data); color:#d2c1ef; font-size:0.75rem; margin-left:0.3125rem; }
#betslipItems { margin:0.75rem 0; padding:0; list-style:none; max-height:60vh; overflow:auto; scrollbar-width:thin; }
.betslip-item { padding:0.75rem 0; border-top:1px solid var(--line); font-size:0.6875rem; }
.betslip-item>div { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.betslip-item p { line-height:1.6; margin:0.4375rem 0; }
.betslip-item small { display:block; color:var(--muted); font-size:0.5625rem; line-height:1.6; }
.betslip-item .betslip-state { margin-top:0.3125rem; }
.betslip-item .betslip-prop { margin:0.3125rem 0 0.625rem; color:#c4b5dd; font-size:0.75rem; }
.betslip-item .betslip-line { display:grid; grid-template-columns:1fr 1fr; margin:0.625rem 0; padding:0.625rem 0.75rem; border:1px solid #4b3c62; border-radius:var(--r-control); background:#1b1524; }
.betslip-line b { display:block; margin-top:0.25rem; font-size:1.3125rem; font-variant-numeric:tabular-nums; }
.betslip-line>span:last-child { text-align:right; }
.betslip-item:is([data-state=changed],[data-state=missing]) .betslip-state { color:#edc389; }
.betslip .empty-state { padding:1rem 0; font-size:0.6875rem; }
.bet-unavailable { display:block; margin-top:0.3125rem; color:var(--muted); font-size:0.5625rem; line-height:1.4; }
.bet-quote-freshness { color:var(--muted); font-size:0.625rem; line-height:1.5; overflow-wrap:anywhere; }
/* Retain live availability notices without an empty timestamp row. */
.bet-quote-freshness:empty { display:none!important; }
#betslipSummary { border-top:1px solid var(--line); padding-top:0.625rem; }
#betslipProfit { color:#d2e6de; }
.bet-tracking-result { display:flex; flex-wrap:wrap; gap:0.3125rem 0.5rem; padding:0.5rem; margin-top:0.5625rem; background:#2d233b; border-radius:var(--r-data); font-size:0.625rem; }
.bet-tracking-result>small { width:100%; color:inherit; }
.bet-tracking-result.result-won { background:#1c573e; color:#c2f1dd; }
.bet-tracking-result.result-lost { background:#472f3e; color:#ffd1dd; }
.bet-tracking-result.result-review { color:#edc389; }
.tracking-error { margin:0; color:#ffb0c2; font-size:0.625rem; }
@media(max-width:82.5em) { .bet-picker-layout { grid-template-columns:minmax(0,1fr) 16.875rem; gap:0.75rem; }}
@media(max-width:72.1875em) { .bet-picker-layout { grid-template-columns:minmax(0,1fr); }.betslip { position:static; grid-row:1; }#betslipItems { max-height:16.25rem; } }
@media(max-width:34.375em) { .bet-picker-filters { grid-template-columns:1fr 1fr; }.bet-picker-filters label:nth-child(2) { grid-column:1/-1; grid-row:2; }.bet-price-pair { gap:0.25rem; } }
* { box-sizing:border-box; } body { margin:0; min-width:0; background:var(--bg); } button,input,select { font:inherit; } button,a,select { -webkit-tap-highlight-color:transparent; } button { cursor:pointer; } button:disabled { opacity:.45; cursor:not-allowed; } a { color:inherit; } button { color:inherit; } [hidden] { display:none!important; } :focus-visible { outline:0.1875rem solid var(--cyan); outline-offset:0.1875rem; } .sr-only { position:absolute!important; left:0; top:0; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
/* UI-402: off screen by its own height plus its top offset, whatever the text size, and
   no wider than a phone at 200% text. */
.skip-link { position:fixed; top:0.625rem; left:0.625rem; max-width:calc(100vw - 1.25rem); transform:translateY(calc(-100% - 1.25rem)); z-index:100; padding:0.625rem; background:var(--cream); color:var(--edge); }.skip-link:focus { transform:none; }
.app-topbar { position:sticky; top:0; z-index:20; height:4.125rem; display:flex; align-items:center; background:#30253f; border-bottom:0.1875rem solid var(--edge); box-shadow:0 2px 0 #ffffff05; padding:0 1.5rem; gap:2rem; }
/* UI-615: on a phone the folded search box (arcade.css, max-width:40em) holds its field
   absolutely, inset:0, with 3.125rem of side padding to clear the icon. At 200% text that
   padding is 100-110px, more than the box gets at 320px once the brand takes its share (64-85px;
   the fallback font's brand is wider, so it shows with webfonts blocked): the field ran 5-36px
   past the page. While the box is folded its field is empty or an ellipsis and its results are
   hidden, so the box clips it sideways; focused, the box spans the row and clips nothing. */
@media (max-width:40em) { .app-topbar > .app-search:not(:focus-within) { overflow-x:clip; } }
.app-brand { display:flex; gap:0.625rem; align-items:center; width:11.875rem; flex-shrink:0; text-decoration:none; font-size:0.9375rem; line-height:.95; letter-spacing:-.6px; font-weight:900; }.brand-lab { display:block; color:var(--cyan); letter-spacing:0.19375rem; font-size:0.625rem; margin-top:0.375rem; }#defenseNav { overflow:auto; flex:1; min-height:0; scrollbar-width:thin; scrollbar-color:#423357 transparent; }#defenseNav button { width:100%; display:flex; align-items:center; gap:0.5625rem; padding:0.4375rem 0.5625rem; border:0; background:none; border-radius:var(--r-control); font-size:0.625rem; text-align:left; color:#b0a2c6; }#defenseNav button:hover,#defenseNav button[aria-pressed=true] { background:#2e243d; color:var(--ink); }.nav-team { display:inline-grid; place-items:center; min-width:1.8125rem; height:1.4375rem; background:#352946; color:#d3c8e7; font-size:0.5rem; border:1px solid #48385f; border-radius:var(--r-control); font-weight:800; }
.notebook-main { margin-left:13.625rem; padding:1.8125rem 1.875rem 1.5rem; min-width:0; max-width:137.5rem; }.page-heading { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin-bottom:1.5625rem; }.eyebrow { color:#927fb0; font-size:0.5625rem; letter-spacing:1.8px; font-weight:750; margin:0 0 0.5rem; } h1 { margin:0; font-size:1.75rem; letter-spacing:-1px; line-height:1.3; font-weight:850; }.season-badge { display:inline-block; font-size:0.625rem; padding:0.1875rem 0.4375rem; background:#362a47; color:#baa9d6; border:1px solid #4c3d64; border-radius:var(--r-data); margin-left:0.8125rem; vertical-align:middle; letter-spacing:0; }.page-heading p:last-child { color:#afa1c6; font-size:0.6875rem; line-height:1.7; margin:0.375rem 0 0; }
.pd-button { background:#30253f; border:1px solid #4a3b61; border-radius:var(--r-control); box-shadow:none; color:var(--ink); padding:0.5625rem 0.8125rem; font-size:0.6875rem; font-weight:700; white-space:nowrap; }.pd-button:hover { background:#423356; }.pd-button.primary { background:var(--pink); color:#1e1728; border:1px solid var(--line); box-shadow:none; padding:0.625rem 0.9375rem; }.pd-button.primary:hover { background:#ff7e98; }.text-button { background:none; color:#ad8ee3; text-decoration:underline; text-underline-offset:0.1875rem; border:0; font-size:0.6875rem; padding:0.1875rem 0; }
/* Text links read at 12px or more. On phones each gets an invisible hit area at least 40px
   tall around its text, so the target grows without moving the layout. */
@media (max-width:40em) {
  .text-button { position:relative; }
  .text-button::after { content:""; position:absolute; left:-0.25rem; right:-0.25rem; top:50%; height:max(100%, 2.5rem); translate:0 -50%; }
}

.notebook-controls { border:1px solid var(--line); border-radius:var(--r-data); background:#211a2b; padding:1rem 1.125rem 0; margin-bottom:1.4375rem; }.filter-row { display:grid; grid-template-columns:5.5rem 8.75rem minmax(8.75rem,1fr) minmax(10.625rem,1fr); gap:0.875rem; }label { display:grid; gap:0.375rem; color:#c4b9d7; font-size:0.625rem; font-weight:650; }input:not([type=checkbox]),select { min-width:0; width:100%; padding:0.5625rem 0.625rem; background:#2c223a; color:var(--ink); border:1px solid #493860; border-radius:var(--r-control); font-size:0.6875rem; }input::placeholder { color:#8f7cae; }.week-heading { display:flex; align-items:center; justify-content:space-between; gap:0.875rem; font-size:0.625rem; margin:1rem 0 0.5625rem; color:#b9acd0; font-weight:650; }.week-heading>div { display:flex; gap:0.9375rem; }.week-picker { display:grid; grid-template-columns:repeat(18,minmax(0,1fr)); gap:0.3125rem; }.week-picker button { padding:0.4375rem 0 0.6875rem; border:1px solid #433458; border-radius:var(--r-control); background:#291f36; color:#9987b6; font-size:0.625rem; position:relative; }.week-picker button[aria-pressed=true] { background:var(--cream); border-color:var(--cream); color:#1d1726; font-weight:850; box-shadow:none; }.week-picker button.has-results::after { content:""; position:absolute; bottom:0.25rem; left:calc(50% - 2px); width:0.25rem; height:0.25rem; border-radius:var(--r-control); background:var(--green); }.week-picker button.has-lines:not(.has-results)::after { content:""; position:absolute; bottom:0.25rem; left:calc(50% - 2px); width:0.25rem; height:0.25rem; border-radius:var(--r-control); background:var(--cyan); }.coverage-row { display:flex; justify-content:space-between; align-items:center; gap:0.9375rem; padding:0.625rem 0; margin-top:0.8125rem; border-top:1px solid #362947; }.coverage-row p { color:#9c8bb8; margin:0; font-size:0.5625rem; line-height:1.7; }.coverage-row button { flex-shrink:0; }
.view-toolbar { display:flex; align-items:center; justify-content:space-between; gap:0.75rem; border-bottom:1px solid var(--line); padding-bottom:0.8125rem; }.notebook-tabs { display:flex; gap:0.4375rem; }.notebook-tabs button { border:1px solid transparent; background:none; padding:0.5rem 0.75rem; color:#a191bb; font-size:0.6875rem; font-weight:750; border-radius:var(--r-control); }.notebook-tabs button[aria-current=page] { background:#332843; border-color:#4b3c63; color:var(--ink); box-shadow:none; }.section-heading { display:flex; align-items:center; justify-content:space-between; gap:0.9375rem; margin:0 0 0.875rem; }.section-heading h2 { font-size:1rem; margin:0 0 0.3125rem; letter-spacing:-.4px; }.section-heading p { font-size:0.625rem; color:#9e8eb9; line-height:1.5; margin:0; }.count-label { color:#8975aa; font-size:0.5625rem; white-space:nowrap; }
.defense-board { background:var(--surface); border:2px solid #3b2e4e; box-shadow:none; border-radius:var(--r-data); overflow:hidden; margin-bottom:1.4375rem; }.board-heading { background:#2f243e; display:flex; align-items:center; gap:0.625rem; padding:0.8125rem 1rem; border-bottom:1px solid var(--line); }.team-badge { display:inline-grid; place-items:center; height:2.25rem; width:2.375rem; border-radius:var(--r-data); background:var(--cream); color:#1f1829; border:1px solid var(--line); box-shadow:none; font-size:0.625rem; font-weight:900; }.board-heading h3 { font-size:0.875rem; margin:0; letter-spacing:-.25px; }.board-heading p { font-size:0.5625rem; color:#9b8ab7; margin:0.25rem 0 0; }.board-heading .pd-button { margin-left:auto; font-size:0.5625rem; padding:0.4375rem 0.625rem; }
/* Base table look for the whole site. Header cells are not sticky here (UI-452): a table that
   needs a frozen header or column sets it on its own scroll box (.profile-log, #overview,
   .usage-scroll, the team and Roles dialogs in teams.css). */
.pd-table-scroll { overflow:auto; width:100%; max-width:100%; scrollbar-color:#52426c #1c1525; scrollbar-width:thin; overscroll-behavior-x:contain; }table { border-collapse:separate; border-spacing:0; width:100%; font-size:0.6875rem; }th,td { padding:0.75rem; border-right:1px solid #372a48; border-bottom:0.1875rem solid #17121f; text-align:left; vertical-align:top; }tr>:last-child { border-right:0; }tr:last-child>th,tr:last-child>td { border-bottom:0; }thead th { background:#1c1625; font-size:0.6875rem; font-weight:750; }thead small { display:block; font-size:0.5rem; font-weight:550; letter-spacing:.7px; color:#8772a9; margin-bottom:0.3125rem; }th.row-label { position:sticky; left:0; z-index:1; min-width:8.375rem; width:8.375rem; vertical-align:middle; background:#291f36; font-size:0.6875rem; line-height:1.5; }thead th.row-label { z-index:3; background:#1c1625; color:#9f8fba; font-size:0.5rem; letter-spacing:1px; }
.tone-neutral { background:#211a2b; }.tone-near { background:#3d3c2c; --summary-ink:#f2dd9b; }.summary-value { font-size:1.125rem; font-weight:850; letter-spacing:-.5px; font-variant-numeric:tabular-nums; display:block; }.summary-note { display:block; color:#bbcec6; font-size:0.5625rem; line-height:1.8; margin-top:0.375rem; }.player-identity { display:flex; gap:0.5rem; align-items:center; min-width:0; }.player-avatar { display:grid; place-items:center; width:2rem; height:2rem; flex-shrink:0; background:var(--cream); color:#231b2f; border:1px solid var(--edge); border-radius:var(--r-control); font-size:0.6875rem; font-weight:850; }.player-subtitle { display:block; color:#8772a9; font-size:0.5rem; margin-top:2px; }.overview-table .row-label { min-width:11.4375rem; width:11.4375rem; background:#292036; }.overview-table .row-label small { color:#7a639e; display:block; margin-top:0.3125rem; font-size:0.5625rem; font-weight:500; }.overview-table thead th:not(:first-child) { min-width:8.5rem; }.overview-table td { padding:0; vertical-align:middle; }.overview-cell { background:none; color:var(--ink); border:0; padding:0.9375rem 0.75rem; width:100%; min-height:6.0625rem; text-align:left; }.overview-cell:hover { box-shadow:inset 0 0 0 2px var(--cream); }#overview { max-height:75vh; border:2px solid #403254; border-radius:var(--r-data); box-shadow:none; }
.empty-state { border:1px dashed #483a5f; padding:2.1875rem; color:#9987b5; line-height:1.8; text-align:center; font-size:0.75rem; background:#21192b; }.notebook-footer { font-size:0.5625rem; color:#8670a8; line-height:1.9; border-top:1px solid var(--line); margin-top:1.6875rem; padding-top:1.0625rem; }.pd-message,.pd-warning { padding:0.75rem 0.875rem; border:1px solid #326751; background:#133a2a; color:#bce4d3; font-size:0.6875rem; line-height:1.7; margin-bottom:1rem; }.pd-warning { border-color:#6b5b39; background:#3a3627; color:#bea2ee; }
/* The load-failure banner (players.js sets data-load-error) is an error, not a success. */
#message[data-load-error="true"] { border-color:#7a3444; background:var(--bad-bg); color:#ffd6dd; }
dialog { width:min(41.875rem,calc(100% - 1.75rem)); max-height:90vh; padding:1.5rem; background:#231b2f; color:var(--ink); border:2px solid #504069; border-radius:var(--r-card); box-shadow:none; overflow:auto; }dialog::backdrop { background:#100d15cc; backdrop-filter:blur(0.1875rem); }.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:0.9375rem; margin-bottom:0.75rem; }.dialog-heading h2 { font-size:1.3125rem; margin:0; letter-spacing:-.6px; }.card-kicker { color:var(--cyan); font-size:0.5625rem; letter-spacing:1.5px; margin:0 0 0.4375rem; }.close-button { border:0; background:none; padding:0.1875rem 0.4375rem; color:#9b89b7; font-size:1.5625rem; }dialog>p,.method-content { color:#b9abd2; font-size:0.6875rem; line-height:1.8; }input[type=checkbox] { accent-color:var(--green); width:1rem; height:1rem; }.form-error { padding:0.75rem; background:#482c3b; color:#ffb0c2; border:1px solid #7e4258; font-size:0.6875rem; line-height:1.6; }.dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0.5rem; margin-top:1.375rem; }.file-label { margin:1.125rem 0; }
/* UI-886: the source snapshot's paths, SHA-256 hashes and exclusion JSON have no spaces to break at. */
.method-content { overflow-wrap:anywhere; }
.matchup-strip { display:flex; overflow:auto; max-width:100%; align-items:stretch; scrollbar-width:thin; scrollbar-color:#52426c #1c1525; }
.matchup-column { min-width:21.5625rem; flex:1 0 21.5625rem; border-right:1px solid var(--line); background:#1f1829; }
.matchup-column:last-child { border-right:0; }
.matchup-link { display:flex; align-items:center; justify-content:space-between; width:100%; gap:1rem; padding:0.8125rem 1rem; border:0; border-bottom:1px solid var(--line); background:#231b2e; color:var(--ink); text-align:left; font-size:1.0625rem; font-weight:800; }
.matchup-link small { display:block; margin-bottom:0.25rem; color:#9a88b6; font-size:0.5625rem; letter-spacing:1px; }
.matchup-link:not(.bye):hover { background:#382b4a; }
.matchup-link-hint { color:var(--cyan); font-size:0.625rem; font-weight:600; }
.matchup-link.bye { display:block; color:#8671a7; }
.team-logo-badge { position:relative; display:inline-grid; place-items:center; flex-shrink:0; overflow:visible; background:transparent; color:var(--ink); border:0; border-radius:0; box-shadow:none; }
.team-badge.team-logo-badge { width:3.5rem; height:3.5rem; }
.nav-team.team-logo-badge { width:3rem; height:3rem; }
/* Preserve the entire SVG and leave room for fine outlines at small sizes. */
.team-logo { position:absolute; inset:2px; width:calc(100% - 0.25rem); height:calc(100% - 0.25rem); padding:0; object-fit:contain; object-position:center; opacity:0; }
.has-team-logo .team-logo { opacity:1; }
.has-team-logo .team-abbreviation { opacity:0; }
.matchup-opponent { display:flex; align-items:center; gap:0.625rem; min-width:0; }
.opponent-badge,.overview-team-badge { width:2.625rem; height:2.625rem; font-size:0.5625rem; font-weight:800; }
@media(max-width:48.125em) { .team-badge.team-logo-badge { width:2.75rem; height:2.75rem; } }
/* Team boxes (team-colors.js) carry the club's logo before its code (UI-213): sized to the
   box's own type, so sm rows, md cards and the lg score bug all scale with it (and with
   enlarged text). UI-602: the bare logo straight on the club colour (no disc), in the slot
   arcade.css sizes once (--tb-logo-w / --tb-logo-h on .team-box). The image is contained in
   the slot, so a wide trimmed mark would fill it as well as today's square files do. An
   empty slot while it loads; a logo that fails is removed (players.js), and the code then
   centres in the box, which keeps its width. */
html body .team-box > .team-box-logo.team-logo-badge { flex:none; width:var(--tb-logo-w); height:var(--tb-logo-h); }
html body .team-box > .team-box-logo.team-logo-badge::before { content:none; }
.team-box-logo .team-logo { inset:0; width:100%; height:100%; object-fit:contain; }
/* On (UI-611, Danny 2026-10-08; UI-602's prototype as approved): a light edge for logos that
   sink into their own colour, the .is-logo-low clubs (arcade.css says which). Override
   --tb-low-logo-filter to change the edge, or set it to none to drop it. The same edge goes on
   bare logos that sit on the dark page (.team-logo-badge.is-logo-low: the game header, Slate
   cards and rows, All props rows, the prop log, the defense nav; UI-634, UI-662):
   StudioFormat.teamBadge adds .is-logo-low from TeamColors.LOGO_LOW (UI-666), except on
   Team box logos and the Teams page's hero badge, which sit on a tile (UI-677). Larger
   logos override the variable at 1px (slate.css for the game header, .nav-team below). */
.team-box.is-logo-low,.team-logo-badge.is-logo-low { --tb-low-logo-filter:drop-shadow(0 0 0.75px rgb(255 255 255 / 0.9)) drop-shadow(0 0 0.75px rgb(255 255 255 / 0.9)); }
.team-box.is-logo-low > .team-box-logo .team-logo,.team-logo-badge.is-logo-low .team-logo { filter:var(--tb-low-logo-filter, none); }
.nav-team.team-logo-badge.is-logo-low { --tb-low-logo-filter:drop-shadow(0 0 1px rgb(255 255 255 / 0.9)) drop-shadow(0 0 1px rgb(255 255 255 / 0.9)); }
/* UI-612: the Titans file leaves a wide empty margin round its disc, which reads too small at
   row and card sizes, so the disc is scaled up to fill the slot like the other square logos;
   it keeps the edge. */
.team-box.tb-ten > .team-box-logo .team-logo { scale:1.3; }
.team-box-logo:not(:has(img)) { display:none; }
.overview-team { display:flex; align-items:center; gap:0.75rem; }
.overview-team>span:last-child { min-width:0; font-size:0.9375rem; font-weight:750; }
.overview-table .row-label { min-width:13.125rem; width:13.125rem; }
.overview-table .row-label small { font-size:0.6875rem; margin-top:0.1875rem; }
.overview-team-badge { width:3.75rem; height:3.75rem; }
.overview-table td { vertical-align:top; }
.overview-cell { padding:0.875rem 0.75rem; }
.overview-cell .summary-value { font-size:1.25rem; line-height:1.3; }
.matchup-picks { padding:0.75rem; }
.picks-caption { font-size:0.5625rem; color:#9c8ab8; margin:0 0 0.625rem; }
.board-empty { display:block; width:100%; padding:1.25rem 1rem; color:#9987b5; background:transparent; border:1px dashed #483a5f; border-radius:var(--r-data); font-size:0.625rem; text-align:left; line-height:1.7; }
.board-empty span { display:block; color:#c5b6df; font-weight:700; margin-bottom:0.3125rem; }
button.board-empty:hover { border-color:var(--cyan); background:#2b2139; }
.single-week .matchup-picks { display:block; }
.single-week .picks-caption { margin:0 0 0.625rem; }
.single-week .board-empty { grid-column:1/-1; }
/* The position colours (--position-color) live in arcade.css, with the shared position chip (UI-387). */
.player-card { border:1px solid #493b60; border-top:0.1875rem solid var(--position-color); border-radius:var(--r-data); overflow:hidden; background:#1e1727; box-shadow:none; min-width:0; margin-bottom:0.75rem; }
.player-card-heading { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; padding:0.75rem; background:#281f35; }
.player-card h4 { margin:0; font-size:0.8125rem; line-height:1.5; overflow-wrap:anywhere; }
.player-card .player-avatar { width:2.75rem; height:2.75rem; position:relative; overflow:hidden; background:var(--position-color); font-size:0.875rem; border-radius:var(--r-control); }
.player-headshot { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; }
.has-photo .player-headshot { opacity:1; }
.has-photo .avatar-initials { visibility:hidden; }
.overview-table thead th[data-position] { border-top:0.1875rem solid var(--position-color); }
.overview-table thead th[data-position] small { color:var(--position-color); }
.overview-table td { vertical-align:top; }
.player-card .player-subtitle { font-size:0.5625rem; color:#a797c0; }
.position-chip { color:var(--position-color); border:1px solid currentColor; border-radius:var(--r-data); padding:0.25rem 0.375rem; font-size:0.5625rem; font-weight:800; }
.player-game-stats { padding:0.75rem; background:#21192b; border-bottom:1px solid #47375d; }
.game-stat-group+.game-stat-group { margin-top:0.75rem; }
.game-stat-group h5 { color:var(--position-color); font-size:0.5625rem; letter-spacing:.8px; text-transform:uppercase; margin:0 0 0.4375rem; }
.game-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0.375rem; margin:0; }
.game-stat-grid>div { min-width:0; padding:0.5rem 0.4375rem; background:#291f36; border:1px solid #3a2d4d; border-radius:var(--r-data); }
.game-stat-grid dt { color:#a596be; font-size:0.5rem; letter-spacing:.3px; line-height:1.4; overflow-wrap:anywhere; }
.game-stat-grid dd { margin:0.25rem 0 0; color:#eef1e4; font-size:1rem; font-weight:750; line-height:1.2; font-variant-numeric:tabular-nums; }
.game-stat-grid dd.stat-unavailable { color:#82719e; }
.game-stat-source { display:grid; gap:0.25rem; margin:0.625rem 0 0; font-size:0.5625rem; line-height:1.5; color:#9886b5; }
.game-stat-source a { color:#b99fe7; text-underline-offset:2px; }
.boxscore-stat-help { color:#ad9ec4; font-size:0.625rem; line-height:1.7; margin:0 0 1rem; }
@media(max-width:48.125em) { .game-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.player-game-stats { padding:0.625rem; }.game-stat-grid dd { font-size:0.9375rem; } }
.prop-label { display:flex; align-items:center; gap:0.375rem; }
.pick-line { flex:0 0 1.5rem; width:1.5rem; height:1.625rem; padding:0; background:#322742; border:1px solid #655285; color:#cec0e5; border-radius:var(--r-data); font-size:0.875rem; font-weight:700; }
.pick-line[aria-pressed=true] { background:#29463a; border-color:#71ae95; color:#b8e6d3; }
.remove-highlight { flex:0 0 1.625rem; width:1.625rem; height:1.75rem; padding:0; background:#2d233b; border:1px solid #645280; border-radius:var(--r-data); color:#d1c7e3; font-size:1.125rem; line-height:1; }
.remove-highlight:hover:not(:disabled),.remove-highlight:focus-visible { background:#402b3a; border-color:#cc7792; color:#ffabc2; }
.selected-line>th { box-shadow:none; }
.line-pick-help { color:#b5a2d7; font-size:0.625rem; margin:0.625rem 0 0; line-height:1.6; }
.selected-player { border-color:#739587; border-top-color:var(--position-color); }
.player-props { font-size:0.6875rem; table-layout:fixed; font-variant-numeric:tabular-nums; }
.player-props th,.player-props td { padding:0.5rem 0.5625rem; border:0; border-bottom:1px solid #372a48; vertical-align:middle; text-align:right; }
.player-props th:first-child { width:37%; text-align:left; }
.player-props th:nth-child(2) { width:20%; }
.player-props th:nth-child(3) { width:17%; }
.player-props th:nth-child(4) { width:26%; }
.player-props thead th { position:static; background:#1a1423; color:#9987b6; font-size:0.5rem; letter-spacing:.5px; white-space:nowrap; }
.player-props tbody th { font-size:0.625rem; font-weight:500; color:#c1b6d5; text-transform:capitalize; }
.line-detail { background:none; border:0; border-bottom:1px dotted #78629c; padding:1px 0; font-size:0.6875rem; color:#d5cbe5; font-variant-numeric:tabular-nums; }
button.line-detail:hover { color:var(--cyan); }
.prop-actual { font-weight:800; }
.prop-difference { font-size:0.6875rem; font-weight:800; }
.prop-difference small { display:block; font-size:0.4375rem; letter-spacing:.8px; margin-top:0.1875rem; opacity:.8; }
/* Muted green/red shading: stronger gaps change intensity, not hue family. */
.gap-1 { --gap-over:#183b2c; --gap-over-ink:#c2f1dd; --gap-under:#32293f; --gap-under-ink:#ffd1dd; }
.gap-2 { --gap-over:#194935; --gap-over-ink:#c2f1dd; --gap-under:#472f3e; --gap-under-ink:#ffd1dd; }
.gap-3 { --gap-over:#1c573e; --gap-over-ink:#c2f1dd; --gap-under:#5a3041; --gap-under-ink:#ffd1dd; }
.gap-4 { --gap-over:#22664a; --gap-over-ink:#c2f1dd; --gap-under:#6d3245; --gap-under-ink:#ffd1dd; }
.gap-5 { --gap-over:#287354; --gap-over-ink:#c2f1dd; --gap-under:#81364b; --gap-under-ink:#ffd1dd; }
.result-over .prop-actual,.result-over .prop-difference { background:var(--gap-over); color:var(--gap-over-ink); }
.result-under .prop-actual,.result-under .prop-difference { background:var(--gap-under); color:var(--gap-under-ink); }
.tone-over { background:var(--gap-over); --summary-ink:var(--gap-over-ink); }
.tone-under { background:var(--gap-under); --summary-ink:var(--gap-under-ink); }
.prop-difference small { letter-spacing:.2px; opacity:1; line-height:1.5; }
.prop-cushion { display:block; font-size:0.5rem; font-weight:500; line-height:1.5; margin-top:0.3125rem; overflow-wrap:anywhere; }
.summary-gap { display:block; color:#d0ded8; font-size:0.5625rem; margin-top:0.375rem; }
.gap-key { display:flex; flex-wrap:wrap; gap:0.375rem; max-width:100%; }
.gap-key .gap-swatch { display:inline-flex; align-items:center; gap:0.3125rem; padding:0.3125rem 0.4375rem; font-size:0.5625rem; background:#261d32; border:1px solid #594973; color:#dad7e0; border-radius:var(--r-data); }
.gap-swatch::before { content:""; width:1.125rem; height:1rem; flex-shrink:0; border:1px solid #705b8d; border-radius:var(--r-data); background:linear-gradient(90deg,var(--gap-under) 50%,var(--gap-over) 50%); }
.gap-method { margin:0.75rem 0 1.125rem; color:#b9abd2; font-size:0.6875rem; line-height:1.7; }
.gap-method summary { cursor:pointer; color:#bfa9e4; }
.gap-method p { margin:0.625rem 0; }
.result-push .prop-difference { background:#342844; color:#d5cce4; }
.result-unknown .prop-difference { color:#9a8bb2; font-size:0.5625rem; }
.production-only .prop-actual { background:#2a2137; color:#dcd5e9; }
.production-only .prop-difference { background:#261e32; color:#bba9da; }
.prop-difference .production-tag { color:#bba9da; font-size:0.4375rem; line-height:1.5; }
#matchupDialog { --boxscore-inset:1.5rem; width:min(68.75rem,calc(100% - 2rem)); max-height:92vh; padding:var(--boxscore-inset); scroll-padding-top:9.375rem; }
/* Keep the existing close control in the dialog's scrollport, including at its bottom. */
.boxscore-heading { position:sticky; top:calc(-1 * var(--boxscore-inset)); z-index:3; display:flex; align-items:center; gap:0.9375rem; margin:calc(-1 * var(--boxscore-inset)) calc(-1 * var(--boxscore-inset)) 0; padding:1rem var(--boxscore-inset); background:#231b2f; border-bottom:1px solid var(--line); box-shadow:0 0.25rem 0.5rem #100c1540; }
.boxscore-heading>div { min-width:0; }
.boxscore-heading .team-badge { width:3.5rem; height:3.5rem; flex-shrink:0; font-size:0.75rem; }
.boxscore-heading h2 { font-size:1.4375rem; margin:0; letter-spacing:-.5px; }
.boxscore-heading #matchupMeta { margin:0.4375rem 0 0; font-size:0.6875rem; color:#ac9dc3; line-height:1.6; }
.boxscore-heading .close-button { margin-left:auto; align-self:flex-start; flex-shrink:0; width:2.75rem; height:2.75rem; border:1px solid #655285; border-radius:var(--r-control); background:#322742; color:var(--ink); }
.boxscore-heading .close-button:hover { background:#443559; }
.boxscore-heading .close-button:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
@media(max-width:48.125em) { #matchupDialog { --boxscore-inset:0.9375rem; } }
.boxscore-legend { display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; color:#a292bc; font-size:0.625rem; margin:1rem 0; }
.selection-panel { padding:1rem; background:#261e32; border:1px solid #4a3b61; border-radius:var(--r-control); margin-bottom:1.25rem; }
#selectedLines { display:flex; flex-wrap:wrap; padding:0; margin:0.75rem 0 0; gap:0.5rem; list-style:none; }
#selectedLines li { display:flex; align-items:center; gap:0.375rem; padding:0.375rem 0.5rem; border:1px solid #456055; background:#18382b; border-radius:var(--r-control); min-width:0; max-width:100%; }
#selectedLines .pick-reserve { border-color:#48385f; background:#2c223a; }
.pick-rank { font-size:0.625rem; font-weight:800; color:#a8c4b8; }
.pick-name { font-size:0.625rem; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.pick-name small { display:block; font-size:0.5rem; font-weight:400; color:#90b2a4; }
#selectedLines li>button { padding:0.3125rem; background:none; border:0; color:#cbe0d7; font-size:0.8125rem; flex-shrink:0; }
#selectedLines .no-picks { background:none; border:0; color:#9886b5; font-size:0.6875rem; padding:0.1875rem 0; }
#matchupStatus { margin:0.5rem 0 0; font-size:0.625rem; color:#c0dbd0; line-height:1.6; }
#matchupStatus:empty { display:none; }
.boxscore-toolbar { display:flex; gap:0.75rem; align-items:end; margin:1.25rem 0; }
.boxscore-toolbar>label:first-child { flex:1; max-width:21.875rem; }
#matchupPlayerCount { font-size:0.625rem; color:#9d8cb8; margin-left:auto; padding-bottom:0.625rem; }
.boxscore-position { margin:1.375rem 0; }
.boxscore-position>h3 { font-size:0.8125rem; padding-bottom:0.625rem; border-bottom:1px solid #48385e; margin:0 0 0.8125rem; color:var(--position-color); }
.boxscore-position>h3>span { color:#907ead; margin-left:0.625rem; font-size:0.625rem; }
.boxscore-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:0.875rem; }
.boxscore-cards .player-card { margin-bottom:0; }
.boxscore-footer { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; border-top:1px solid var(--line); padding-top:0.75rem; }
.boxscore-footer p { font-size:0.625rem; color:#9c8ab8; line-height:1.8; max-width:43.125rem; }
@media(max-width:48.125em) { #matchupDialog { padding:0.9375rem; width:calc(100% - 1.25rem); }.boxscore-cards { grid-template-columns:1fr; }.boxscore-heading { gap:0.625rem; }.boxscore-heading h2 { font-size:1.125rem; }.boxscore-heading .team-badge { width:2.75rem; height:2.75rem; font-size:0.625rem; }.boxscore-toolbar { flex-wrap:wrap; }.boxscore-toolbar>label:first-child { max-width:none; min-width:7.5rem; }#matchupPlayerCount { width:100%; margin:0; padding:0; }.boxscore-footer { flex-wrap:wrap; gap:0.3125rem; }.selection-panel { padding:0.6875rem; }.matchup-column { min-width:18.125rem; flex-basis:18.125rem; }.single-week .matchup-column { min-width:0; flex-basis:100%; }.player-props th,.player-props td { padding:0.5rem 0.375rem; }.player-props thead th { font-size:0.4375rem; letter-spacing:0; }.player-card-heading { padding:0.625rem; }.player-card h4 { font-size:0.75rem; }}
.coverage-row p { font-size:0.625rem; }
@media(min-width:110em) { .notebook-main { padding:2rem 2.5rem; } }
/* Props-first box score: relevant context stays with the prop, details are opt-in. */
.defense-board-body { display:grid; grid-template-columns:minmax(0,1fr) 22.8125rem; align-items:start; }
.view-toolbar { margin-bottom:1rem; }
.defense-board-body .matchup-strip { min-width:0; }
.upcoming-column { min-width:0; align-self:start; border-left:2px solid #5b4977; background:#261e32; }
.upcoming-column .upcoming-content { max-height:22.5rem; overflow:auto; scrollbar-width:thin; scrollbar-color:#52426c #1c1525; }
.upcoming-link { display:flex; align-items:center; justify-content:space-between; gap:0.625rem; padding:0.8125rem 1rem; width:100%; text-align:left; border:0; border-bottom:1px solid #5b4977; background:#332743; color:#dbcdf2; font-size:1.0625rem; font-weight:800; }
.upcoming-link small { display:block; margin-bottom:0.25rem; color:#ffb26a; font-size:0.625rem; letter-spacing:.5px; }
.upcoming-link:hover { background:#433459; }
.upcoming-link .matchup-link-hint { font-size:0.625rem; white-space:nowrap; }
.upcoming-content { padding:0.75rem; }
.upcoming-empty { font-size:0.6875rem; line-height:1.6; color:#b3a6c9; margin:0 0 0.75rem; }
.upcoming-notice { border:1px solid #5b4978; border-radius:var(--r-data); padding:0.625rem 0.75rem; margin:0.75rem 0; font-size:0.75rem; line-height:1.6; background:#2b2138; color:#d1c5e6; }
.upcoming-group { margin-bottom:1rem; }
.upcoming-watchlist { border-top:1px solid #574672; margin-top:1rem; padding-top:0.75rem; }
.upcoming-watchlist h4 { margin:0 0 0.5rem; font-size:0.75rem; }
.no-upcoming-line { font-size:0.625rem; color:#a393bd; }
.profile-name-button { border:0; background:none; color:inherit; font:inherit; font-weight:700; padding:0; text-align:left; }
.profile-name-button:hover { color:#b295e5; text-decoration:underline; text-underline-offset:0.1875rem; }
.profile-avatar-button { padding:0; border:0; background:none; border-radius:var(--r-control); flex-shrink:0; }
.profile-name-button:focus-visible,.profile-avatar-button:focus-visible { outline:2px solid var(--cyan); outline-offset:0.1875rem; }
#playerProfileDialog { width:min(72.5rem,calc(100% - 2rem)); max-height:92vh; scroll-padding-top:9.6875rem; }
.profile-sticky { position:sticky; top:-1.5rem; z-index:4; margin:-1.5rem -1.5rem 1.125rem; padding:0.9375rem 1.5rem 0.75rem; background:#231b2f; border-bottom:1px solid #574672; box-shadow:0 0.25rem 0.5rem #100c1540; }
.profile-title-block { display:flex; gap:0.75rem; align-items:center; min-width:0; }
.profile-title-block>div { min-width:0; }
.profile-title-block h2 { overflow-wrap:anywhere; }
#playerProfileMeta { color:#b19fd1; font-size:0.6875rem; margin:0.25rem 0 0; }
#playerProfileAvatar { display:block; flex-shrink:0; }
#playerProfileAvatar .player-avatar { width:5.1875rem; height:6.1875rem; position:relative; overflow:hidden; border:0; border-radius:0; background:transparent; color:var(--cyan); font-size:1.375rem; }
#playerProfileAvatar .player-headshot { object-fit:cover; object-position:top; }
#playerProfileAvatar .player-avatar:not(.has-photo) { background:#2c223b; border-radius:var(--r-control); }
#playerProfileClose { width:2.75rem; height:2.75rem; flex-shrink:0; border:1px solid #655285; border-radius:var(--r-control); background:#322742; color:var(--ink); align-self:flex-start; }
.profile-log-toolbar { display:flex; align-items:center; justify-content:space-between; gap:0.75rem; margin-top:1rem; flex-wrap:wrap; }
.profile-log-toolbar h3 { margin:0; font-size:1rem; color:var(--ink); white-space:nowrap; }
.profile-season-pills { display:flex; gap:0.3125rem; flex-wrap:wrap; }
.profile-season-pills button { border:1px solid transparent; border-radius:var(--r-control); padding:0.4375rem 0.75rem; font-size:0.6875rem; font-weight:700; color:#c1b2da; background:#1d1726; }
.profile-season-pills button[aria-pressed=true] { background:#e7eeeb; color:#211a2c; }
.profile-season-pills button:disabled { opacity:.45; }
.player-profile { font-size:0.75rem; line-height:1.6; color:#c6badc; }
.player-profile summary { cursor:pointer; color:#bfa6e9; font-weight:600; }
.profile-log-guide { display:flex; justify-content:space-between; gap:0.5rem 1rem; flex-wrap:wrap; margin:0 0 0.75rem; color:#b0a2c6; font-size:0.625rem; }
.profile-log-guide p { margin:0; }
.profile-cutoff { color:#e1d5ac; }
.profile-log-scroll { position:relative; max-width:100%; max-height:min(58vh,37.5rem); overflow:auto; border:1px solid #403254; border-radius:var(--r-card); scrollbar-width:thin; scrollbar-color:#6a568b #1e1727; }
.profile-log { width:100%; min-width:48.75rem; border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums; }
.profile-log thead { position:sticky; top:0; z-index:4; }
.profile-log th,.profile-log td { padding:0.5625rem 0.3125rem; text-align:center; vertical-align:middle; border:0; border-bottom:1px solid #382b4a; }
.profile-log thead th { position:static; background:#1c1625; font-size:0.625rem; font-weight:700; letter-spacing:.5px; color:#b1a4c7; }
.profile-log .profile-groups th { color:#e0d8ed; text-transform:uppercase; font-size:0.625rem; padding:0.75rem 0.3125rem; }
.profile-log .profile-groups th:nth-child(even) { background:#241c30; }
.profile-log tbody tr { --profile-row:#21192b; }
.profile-log tbody tr:nth-child(even) { --profile-row:#291f36; }
.profile-log tbody th,.profile-log tbody td { background:var(--profile-row); }
.profile-log .profile-week { position:sticky; left:0; z-index:2; width:2.75rem; min-width:2.75rem; max-width:2.75rem; padding:0.5625rem 0.25rem; }
.profile-log .profile-matchup { position:sticky; left:2.75rem; z-index:2; width:6.875rem; min-width:6.875rem; max-width:6.875rem; color:#cabbe3; text-align:left; box-shadow:0.1875rem 0 0 #332843; }
.profile-log thead .profile-week,.profile-log thead .profile-matchup { z-index:3; }
.profile-opponent { display:flex; align-items:center; gap:0.375rem; white-space:nowrap; font-size:0.75rem; }
.profile-opponent>small { color:#b8a9d3; font-size:0.625rem; min-width:0.75rem; }
.profile-box-link { padding:0.125rem 0.25rem; margin:-0.125rem -0.25rem; border:0; border-radius:var(--r-control); background:none; color:inherit; font:inherit; }
.profile-box-link:hover { background:#362947; } .profile-box-link:hover b { text-decoration:underline; text-underline-offset:2px; }
.profile-opponent .profile-opponent-logo { width:1.4375rem; height:1.4375rem; min-width:1.4375rem; background:none; box-shadow:none; border:0; padding:0; }
.profile-opponent-logo .team-abbreviation { font-size:0.4375rem; }
.profile-week-team { display:block; font-size:0.5625rem; font-weight:400; color:#a08fbb; margin-top:0.25rem; }
.profile-pending-label { display:block; font-size:0.5rem; color:#b2a9c0; font-weight:400; }
.profile-log td.profile-group-start,.profile-log thead tr:last-child .profile-group-start { border-left:1px solid #423356; }
.profile-log .profile-prop,.profile-log .profile-stat { min-width:3.4375rem; color:#e2ddeb; font-size:0.8125rem; }
.profile-log .profile-rate { min-width:4.0625rem; white-space:nowrap; }
.profile-log .profile-cell-details { margin:0; padding:0; border:0; }
.profile-cell-details summary { list-style:none; text-align:center; border-radius:var(--r-control); }
.profile-cell-details summary::-webkit-details-marker { display:none; }
.profile-cell-details summary:hover .profile-actual { outline:1px solid #8b78aa; }
.profile-log .profile-actual { display:block; min-width:2.375rem; padding:0.25rem 0.1875rem; border-radius:var(--r-data); color:#e2dceb; }
.profile-actual strong { font-size:0.9375rem; font-weight:750; }
.profile-line { display:block; margin-top:0.1875rem; font-size:0.625rem; line-height:1.3; font-weight:400; color:#c1b4d8; }
.profile-line::before { content:"L "; color:#8c78ac; }
.profile-log .profile-prop.result-over .profile-actual { background:var(--gap-over); color:var(--gap-over-ink); }
.profile-log .profile-prop.result-under .profile-actual { background:var(--gap-under); color:var(--gap-under-ink); }
.profile-log .profile-prop.result-push .profile-actual { background:#3d2f50; color:#dcd4eb; }
.profile-log .profile-prop .prop-actual,.profile-log .profile-prop .prop-difference { background:none; color:inherit; }
.profile-cell-note { display:block; max-width:5.625rem; margin:0.4375rem auto 0; font-size:0.5625rem; line-height:1.4; color:#bbacd6; }
.profile-cell-note>span { display:block; }
.profile-direction { font-size:0.5625rem; font-weight:600; }
.profile-log .profile-pending .profile-actual,.profile-log .profile-pending .profile-stat { color:#8f7eaa; }
/* UI-624: a partial game stays in the log, muted and tagged; its line cells take no colour. */
.profile-partial-label { display:block; margin-top:0.1875rem; font-size:0.5625rem; font-weight:700; color:#b8a9d3; white-space:normal; }
.profile-log .profile-partial .profile-prop .profile-actual { background:none; color:#a397b8; }
.profile-log .profile-partial :is(.profile-stat,.profile-week,.profile-opponent b) { color:#a397b8; }
.profile-log-guide::after { content:"Scroll for more stats →"; color:#ac9dc3; }
.profile-notes { display:block; white-space:normal; font-size:0.625rem; max-width:13.75rem; }
.profile-empty { padding:1.5625rem; text-align:center; border:1px dashed #54446f; color:#b1a3c7; }
@media(max-width:68.75em) { .defense-board-body { grid-template-columns:minmax(0,1fr); }.upcoming-column { border-left:0; border-top:2px solid #5b4977; }.upcoming-content { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(16.875rem, 100%), 1fr)); gap:0.75rem; }.upcoming-content>.upcoming-empty,.upcoming-content>.upcoming-watchlist { grid-column:1/-1; } }
@media(max-width:37.125em) { .upcoming-content { display:block; }#playerProfileDialog { padding:0.9375rem; width:calc(100% - 1.25rem); }.profile-sticky { top:-0.9375rem; margin:-0.9375rem -0.9375rem 0.875rem; padding:0.75rem 0.9375rem; }.profile-title-block h2 { font-size:1.125rem; }.profile-title-block .card-kicker { font-size:0.5rem; }#playerProfileAvatar .player-avatar { width:4.0625rem; height:5.125rem; } }
/* The profile owns its scroll area and keeps the notebook's teal table palette. */
/* Any open modal freezes the page behind it. */
html:has(dialog:modal),html:has(dialog:modal) body,html.player-profile-open,html.player-profile-open body { overflow:hidden; overscroll-behavior:none; }
body.players-page #playerProfileDialog {
  width:calc(100vw - 3rem); max-width:none; height:fit-content; max-height:calc(100dvh - 3rem);
  padding:0; overflow:hidden; background:#231b2f; border-color:#504069;
}
body.players-page #playerProfileDialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr); }
body.players-page #playerProfileDialog>.profile-sticky {
  position:relative; top:auto; margin:0; padding:1rem 1.25rem 0.8125rem;
  background:#231b2f; border-bottom:1px solid #574672; box-shadow:none;
}
body.players-page #playerProfileDialog .dialog-heading { align-items:flex-start; margin:0; }
body.players-page #playerProfileDialog .profile-log-toolbar { margin-top:0.75rem; }
body.players-page #playerProfileDialog #playerProfileBody {
  display:flex; flex-direction:column; min-width:0; min-height:0; padding:1rem 1.25rem 1.25rem; overflow:hidden;
}
body.players-page #playerProfileDialog .player-profile { display:flex; flex:1 1 auto; flex-direction:column; min-width:0; min-height:0; }
body.players-page #playerProfileDialog .profile-log-guide { flex-shrink:0; }
body.players-page #playerProfileDialog .profile-log-scroll {
  flex:0 1 auto; min-width:0; min-height:0; max-height:none; overflow:auto;
  overscroll-behavior:contain; border-color:#403254; scrollbar-width:auto; scrollbar-color:#6a568b #1e1727;
}
body.players-page #playerProfileDialog .profile-log thead th { background:#1c1625; color:#b1a4c7; }
body.players-page #playerProfileDialog .profile-log .profile-groups th { color:#e0d8ed; }
body.players-page #playerProfileDialog .profile-log .profile-groups th:nth-child(even) { background:#241c30; }
body.players-page #playerProfileDialog .profile-log tbody tr { --profile-row:#21192b; }
body.players-page #playerProfileDialog .profile-log tbody tr:nth-child(even) { --profile-row:#291f36; }
body.players-page #playerProfileDialog .profile-log :is(th,td) { border-color:#382b4a; }
body.players-page #playerProfileDialog .profile-log .profile-matchup { color:#cabbe3; box-shadow:0.1875rem 0 0 #332843; }
body.players-page #playerProfileDialog .profile-season-pills button { background:#2c223a; color:#c1b2da; border-color:#493860; }
body.players-page #playerProfileDialog .profile-season-pills button[aria-pressed=true] { background:#c9b6eb; color:#1d1726; border-color:#c9b6eb; }
@media(max-width:37.125em) {
  body.players-page #playerProfileDialog { width:calc(100vw - 1.25rem); max-height:calc(100dvh - 1.25rem); }
  body.players-page #playerProfileDialog>.profile-sticky { padding:0.75rem; }
  body.players-page #playerProfileDialog #playerProfileBody { padding:0.75rem; }
  body.players-page #playerProfileDialog .profile-log-toolbar { gap:0.5rem; margin-top:0.625rem; }
  body.players-page #playerProfileDialog .profile-season-pills button { padding:0.375rem 0.625rem; }
}
#matchupDialog { scroll-padding-top:11.875rem; }
.boxscore-sticky { position:sticky; top:calc(-1 * var(--boxscore-inset)); z-index:3; margin:calc(-1 * var(--boxscore-inset)) calc(-1 * var(--boxscore-inset)) 0; background:#231b2f; border-bottom:1px solid var(--line); box-shadow:0 0.25rem 0.5rem #100c1540; }
.boxscore-sticky .boxscore-heading { position:static; margin:0; padding:0.75rem var(--boxscore-inset) 0.5rem; border:0; box-shadow:none; }
.boxscore-sticky .boxscore-heading h2 { font-size:1.3125rem; }
.boxscore-sticky .boxscore-heading #matchupMeta { margin-top:0.25rem; }
.boxscore-sticky .boxscore-toolbar { flex-wrap:wrap; align-items:center; gap:0.625rem; margin:0; padding:0 var(--boxscore-inset) 0.75rem; }
.boxscore-toolbar .player-search { flex:1; max-width:17.5rem; min-width:9.375rem; margin:0; }
.boxscore-toolbar input { height:2.125rem; font-size:0.75rem; }
.boxscore-toolbar .upcoming-roster-toggle { display:flex; align-items:center; gap:0.375rem; margin:0; color:#b9aad3; font-size:0.6875rem; cursor:pointer; }
.boxscore-toolbar .upcoming-roster-toggle input { width:0.875rem; height:0.875rem; margin:0; accent-color:var(--cyan); }
/* Full-game box score: read-only player tables, separate from prop selections. */
.matchup-column-heading { display:flex; background:#221b2d; border-bottom:1px solid var(--line); }
.matchup-column-heading .matchup-link { flex:1; min-width:0; border-bottom:0; }
.matchup-game-link { align-self:center; margin:0 0.75rem 0 0; padding:0.5rem; border:1px solid #4d3e66; border-radius:var(--r-control); background:#2c223a; color:#cab5ed; font-size:0.625rem; white-space:nowrap; }
#matchupFullGame .pd-button { white-space:nowrap; padding:0.4375rem 0.625rem; font-size:0.6875rem; }
#gameBoxDialog { width:min(86.25rem,96vw); max-width:96vw; padding:0; max-height:92vh; background:#21192b; }
.game-box-sticky { position:sticky; top:0; z-index:5; padding:1.125rem 1.5rem 0.875rem; background:#2b2138; border-bottom:1px solid #594775; }
.game-box-sticky .dialog-heading { margin:0; align-items:flex-start; }
.game-box-sticky .close-button { flex-shrink:0; }
#gameBoxClose { width:2.75rem; height:2.75rem; display:grid; place-items:center; padding:0; border:1px solid #634f82; border-radius:var(--r-control); background:#332743; color:#e8e0f6; font-size:1.4375rem; line-height:1; }
#gameBoxMeta { margin:0.25rem 0 0; font-size:0.6875rem; color:#b6a8ce; }
.game-box-picker { display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:0.875rem; }
.game-box-picker label { display:grid; gap:0.25rem; font-size:0.625rem; color:#b9aad3; }
.game-box-picker select { padding:0.4375rem 0.625rem; background:#1f1828; color:#ebe7f1; border:1px solid #4d3e65; border-radius:var(--r-control); font-size:0.75rem; }
.game-box-picker label:last-child { flex:1; max-width:21.25rem; min-width:0; }
.game-box-picker select { max-width:100%; }
#gameBoxBody { padding:1.25rem 1.5rem 1.625rem; }
.game-scoreboard { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1.25rem; padding:1.25rem; border:1px solid #4c3d63; border-radius:var(--r-card); background:#2c2239; }
.game-score-team { display:flex; align-items:center; gap:0.75rem; min-width:0; }
.game-score-team[data-side=home] { flex-direction:row-reverse; text-align:right; }
.game-score-team>div { min-width:0; }
.game-score-team h3 { margin:0; font-size:1.25rem; color:#ebe4f7; }
.game-score-team span:not(.team-badge):not(.team-abbreviation) { font-size:0.5625rem; letter-spacing:1px; color:#afa1c5; }
.game-score-team small { color:#a494bd; font-size:0.625rem; }
.game-score-team>strong { margin-left:auto; font-size:2.625rem; line-height:1; font-variant-numeric:tabular-nums; color:#fff; }
.game-score-team[data-side=home]>strong { margin-left:0; margin-right:auto; }
.game-score-status { display:grid; gap:0.3125rem; text-align:center; padding:0 0.875rem; }
.game-score-status strong { color:#edf1ef; font-size:0.8125rem; }
.game-score-status small { color:#ac9ec3; font-size:0.625rem; }
.game-box-team-filters { display:flex; gap:0.375rem; flex-wrap:wrap; margin:1.125rem 0 0.625rem; }
.game-box-team-filters button { min-height:2.5rem; padding:0.5rem 0.875rem; border:1px solid #4b3c63; border-radius:var(--r-control); color:#c3b5dc; background:#271e34; font-size:0.75rem; }
.game-box-team-filters button[aria-pressed=true] { color:#1e1727; background:#e1eae6; border-color:#e1eae6; font-weight:700; }
.game-box-note,.game-box-source { font-size:0.6875rem; color:#ab9cc2; line-height:1.7; }
.game-box-note::after { content:" · Scroll tables for more stats →"; }
.game-box-category { margin:1.375rem 0; }
.game-box-category>h3 { margin:0 0 0.625rem; font-size:1.125rem; color:#e9e2f6; }
.game-box-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.125rem; align-items:start; }
.game-box-pair.single-team { grid-template-columns:minmax(0,1fr); }
.game-box-team-table { min-width:0; border:1px solid #423358; border-radius:var(--r-control); overflow:hidden; }
.game-box-team-table h4 { display:flex; align-items:center; gap:0.5rem; margin:0; padding:0.5625rem 0.75rem; background:#2f243e; color:#e2dced; font-size:0.8125rem; }
.game-box-team-table .team-badge { width:1.75rem; height:1.75rem; flex-shrink:0; }
.game-box-table-scroll { position:relative; overflow:auto; scrollbar-width:thin; }
.game-box-table-scroll table { width:100%; border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums; }
.game-box-table-scroll th,.game-box-table-scroll td { padding:0.625rem 0.4375rem; border:0; border-bottom:1px solid #3e3051; text-align:right; font-size:0.75rem; white-space:nowrap; background:#231b2f; }
.game-box-table-scroll thead th { color:#a596be; font-size:0.6875rem; letter-spacing:.2px; background:#1c1625; }
.game-box-table-scroll th:first-child { position:sticky; left:0; z-index:1; text-align:left; min-width:9.0625rem; max-width:12.5rem; white-space:normal; }
.game-box-table-scroll tbody th small { display:block; color:#9c8bb8; font-size:0.6875rem; margin-top:2px; font-weight:400; }
.game-box-table-scroll tbody td { color:#dfd8eb; }
.game-box-table-scroll tbody th { color:#c1a9ea; font-weight:600; }
.game-box-table-scroll tbody tr:nth-child(even)>* { background:#271e34; }
.game-box-table-scroll tfoot th,.game-box-table-scroll tfoot td { font-weight:700; background:#2f253e; color:#e8f1ed; border:0; }
.game-box-table-scroll .game-box-stat { display:inline-block; min-width:1.75rem; padding:0.25rem 0.3125rem; border-radius:var(--r-data); text-align:center; font-weight:650; }
.game-box-table-scroll .game-box-stat.result-over { background:var(--gap-over); color:var(--gap-over-ink); }
.game-box-table-scroll .game-box-stat.result-under { background:var(--gap-under); color:var(--gap-under-ink); }
.game-box-shading-legend { display:flex; flex-wrap:wrap; align-items:center; gap:0.375rem 0.5625rem; margin:0.5rem 0 1rem; color:var(--muted); font-size:0.6875rem; line-height:1.6; }
.game-box-legend-over,.game-box-legend-under { padding:2px 0.4375rem; border-radius:var(--r-data); }
.game-box-legend-over { background:#1c573e; color:#c2f1dd; }
.game-box-legend-under { background:#5a3041; color:#ffd1dd; }
.game-box-empty { padding:1rem; color:#afa1c6; font-size:0.75rem; line-height:1.7; margin:0; }
@media(max-width:75.625em) { .game-box-pair { grid-template-columns:minmax(0,1fr); }.game-score-team h3 { font-size:1rem; }.game-score-team>strong { font-size:2rem; }.game-scoreboard { gap:0.625rem; padding:0.9375rem; } }
@media(max-width:41.25em) { .game-box-sticky { padding:0.75rem; }#gameBoxBody { padding:0.75rem; }.game-box-sticky h2 { font-size:1.125rem; }.game-scoreboard { gap:0.625rem; padding:0.75rem; grid-template-columns:1fr 1fr; }.game-score-status { grid-column:1/-1; grid-row:1; display:flex; justify-content:center; align-items:center; }.game-score-team,.game-score-team[data-side=home] { flex-direction:column; text-align:center; gap:0.375rem; }.game-score-team>strong,.game-score-team[data-side=home]>strong { margin:0; }.game-score-team .team-badge { width:2.625rem; height:2.625rem; }.game-score-team h3 { font-size:0.9375rem; }.game-box-picker { gap:0.5rem; }.game-box-table-scroll th:first-child { min-width:8rem; max-width:9.0625rem; }.game-box-team-filters button { padding:0.4375rem 0.625rem; font-size:0.75rem; }.game-score-status { gap:0.375rem; }.game-score-status small { font-size:0.75rem; }.game-score-status small::before { content:"· "; } }
/* Phone: only the title row stays pinned; the week/game pickers scroll away with the stats. */
@media(max-width:41.25em) { .game-box-sticky { display:contents; }.game-box-sticky .dialog-heading { position:sticky; top:0; z-index:5; padding:0.75rem; background:#2b2138; border-bottom:1px solid #594775; }.game-box-sticky .card-kicker { display:none; }.game-box-picker { margin:0; padding:0.75rem 0.75rem 0; }.game-box-picker label { font-size:0.6875rem; }.game-box-picker select { min-height:2.5rem; font-size:0.8125rem; } }
.board-heading-tools { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:0.625rem; }
.board-heading { flex-wrap:wrap; }
.matchup-review-control { margin-left:auto; display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:0.4375rem 0.625rem; }
.matchup-review-control small { font-size:0.625rem; color:var(--muted); }
.board-heading .matchup-review-control .matchup-done-toggle { margin-left:0; min-height:2.25rem; font-size:0.6875rem; white-space:nowrap; }
.matchup-done-toggle>span { font-size:0.9375rem; margin-right:0.1875rem; }
.matchup-done-toggle[aria-pressed="true"],.completed-toggle[aria-pressed="true"] { background:#174b35; border-color:#5abf95; color:#c0f5df; }
.matchup-reviewed>.board-heading { box-shadow:none; }
.auto-pick-toggle[aria-pressed="true"] { border-color:#70b89a; background:#245842; color:#d9ffef; }
.auto-pick-toggle[aria-pressed="true"]::before { content:"\2713  "; }
.auto-pick-help { font-size:0.6875rem; line-height:1.6; color:#b9abd0; margin:0 0 0.875rem; }
/* Overs | Unders beside Auto-pick (UI-186, built by players.js renderAutoPickSide). */
.auto-pick-side { display:inline-flex; }
.auto-pick-side[hidden] { display:none; }
.auto-pick-side .pd-button:first-child { border-top-right-radius:0; border-bottom-right-radius:0; }
.auto-pick-side .pd-button:last-child { border-top-left-radius:0; border-bottom-left-radius:0; margin-left:-1px; }
#manualPicksButton { margin-top:0.75rem; }
#overviewDetailDialog { width:min(77.5rem,calc(100% - 1.75rem)); padding:0; }
.overview-detail-sticky { position:sticky; top:0; z-index:3; padding:1.125rem 1.25rem 0.875rem; background:#261d32; border-bottom:1px solid #504069; }
.overview-detail-sticky .dialog-heading { align-items:flex-start; margin:0; }
.overview-detail-sticky h2 { line-height:1.4; }
.overview-detail-sticky .close-button { flex-shrink:0; }
#overviewDetailMeta { color:#baa8d9; font-size:0.6875rem; line-height:1.5; margin:0.375rem 0 0.75rem; }
.overview-detail-totals { display:flex; flex-wrap:wrap; align-items:baseline; gap:0.5rem 1.5rem; font-size:0.6875rem; color:#baa8d9; }
.overview-detail-totals strong { color:var(--ink); font-size:1.0625rem; margin-left:0.375rem; font-variant-numeric:tabular-nums; }
.summary-matched { display:block; font-size:0.625rem; line-height:1.5; }
.overview-detail-summary { margin:1rem 1.25rem; padding:0.75rem 0.875rem; background:#21192b; border:1px solid var(--line); border-radius:var(--r-control); }
.overview-detail-summary .summary-gap { margin:0 0 0.3125rem; font-size:0.75rem; font-weight:750; }
.overview-detail-summary .summary-note { margin:0; font-size:0.6875rem; line-height:1.8; color:#baa8d9; }
.overview-detail-summary .summary-note>span { display:inline-block; }
.overview-replacement-detail { margin:1rem 1.25rem; padding:0.875rem 1rem; border:1px solid var(--line); border-radius:var(--r-control); background:var(--surface); }
.overview-replacement-detail h3 { margin:0 0 0.5rem; color:var(--ink); font-size:0.875rem; }
.overview-replacement-detail p { margin:0.5rem 0 0; font-size:0.6875rem; line-height:1.6; }
.overview-replacement-detail .summary-matched { font-variant-numeric:tabular-nums; }
.replacement-detail a { margin-left:0.5rem; color:var(--cyan); white-space:nowrap; }
.overview-detail-help { padding:0 1.25rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.3125rem 1rem; font-size:0.6875rem; line-height:1.6; color:#cec2e2; }
.overview-detail-help>span { color:#aa9bc2; }
#overviewDetailBody { padding:0 1.25rem 1.25rem; }
#overviewUpcoming { padding:1.125rem 1.25rem 0.3125rem; }
.overview-upcoming { border:1px solid #4b3c63; border-radius:var(--r-control); overflow:hidden; background:#231b2f; }
.overview-upcoming>header { display:flex; align-items:center; gap:0.625rem; padding:0.75rem 0.875rem; border-bottom:1px solid #4b3c63; background:#2a2137; }
.overview-upcoming>header .opponent-badge { width:2.25rem; height:2.25rem; flex-shrink:0; }
.overview-upcoming h3 { margin:0; font-size:0.875rem; color:#ece5f7; }
.overview-upcoming header p { margin:0.25rem 0 0; font-size:0.6875rem; color:#baa8d9; }
.overview-upcoming>header>.text-button { margin-left:auto; flex-shrink:0; font-size:0.6875rem; }
.overview-upcoming-scroll { min-width:0; }
.overview-upcoming-table { width:100%; min-width:0; table-layout:fixed; font-variant-numeric:tabular-nums; }
.overview-upcoming-table th,.overview-upcoming-table td { min-width:0; padding:0.75rem 0.875rem; border:0; border-bottom:1px solid #3c2f4f; text-align:left; vertical-align:middle; }
.overview-upcoming-table thead th { position:static; font-size:0.625rem; letter-spacing:.5px; text-transform:uppercase; background:#21192b; color:#b8a9d1; }
.overview-upcoming-table th:first-child { width:18.75rem; }
.overview-upcoming-table tbody th { color:#ece5f7; }
.overview-upcoming-table tbody td { font-size:0.8125rem; color:#e0d9ec; }
.overview-upcoming-table tbody tr:last-child>* { border-bottom:0; }
.overview-upcoming-table .no-upcoming-line { white-space:normal; font-size:0.6875rem; color:var(--muted); }
.overview-upcoming-picker { min-width:0; max-width:100%; }
.overview-upcoming-note { margin:0; padding:0.5rem 0.875rem; border-top:1px solid #3c2f4f; font-size:0.625rem; color:#b0a2c6; }
.overview-upcoming-controls { padding:0.5rem 0.875rem; border-bottom:1px solid var(--line); }
.overview-unlined-toggle { display:inline-flex; align-items:center; gap:0.5rem; min-height:1.75rem; color:var(--muted); font-size:0.6875rem; line-height:1.4; cursor:pointer; }
.overview-unlined-toggle input { flex:0 0 1rem; width:1rem; height:1rem; min-height:0; margin:0; padding:0; accent-color:var(--cyan); }
/* Reuse Studio's offer strip in the position modal across every site view. */
#overviewUpcoming .overview-player-identity { gap:0.875rem; }
#overviewUpcoming .overview-player-identity .profile-name-button { font-size:1.0625rem; line-height:1.35; font-weight:700; overflow-wrap:break-word; }
#overviewUpcoming .overview-player-identity small { margin-top:0.375rem; font-size:0.75rem; line-height:1.5; }
#overviewUpcoming .overview-player-identity .player-avatar { width:4.75rem; height:5.75rem; flex:0 0 4.75rem; border:0; border-radius:0; background:transparent; color:var(--cyan); font-size:1.375rem; }
#overviewUpcoming .overview-player-identity .player-avatar:not(.has-photo) { background:#2c223b; border-radius:var(--r-control); }
#overviewUpcoming .overview-player-identity .player-headshot { object-fit:contain; object-position:center bottom; }
:is(#overviewUpcoming, #boards) .studio-line-control { min-width:0; }
:is(#overviewUpcoming, #boards) .studio-focus-slider { display:grid; grid-template-columns:1.625rem minmax(0,1fr) 1.625rem; align-items:stretch; gap:0.1875rem; min-width:0; }
:is(#overviewUpcoming, #boards) .studio-focus-track { grid-column:2; grid-row:1; display:flex; gap:0.5rem; min-width:0; padding:0.1875rem 0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#493860 transparent; cursor:grab; touch-action:pan-x pan-y; }
:is(#overviewUpcoming, #boards) .studio-focus-track.is-fitting { justify-content:center; }
:is(#overviewUpcoming, #boards, #lab) .studio-focus-track.has-leading-space::before { content:""; flex:0 0 var(--focus-leading-space); margin-right:-0.5rem; }
:is(#overviewUpcoming, #boards, #lab) .studio-focus-track.has-trailing-space::after { content:""; flex:0 0 var(--focus-trailing-space); margin-left:-0.5rem; }
:is(#overviewUpcoming, #boards) .studio-focus-track.is-dragging,:is(#overviewUpcoming, #boards) .studio-focus-track.is-dragging * { cursor:grabbing; user-select:none; }
:is(#overviewUpcoming, #boards) .studio-focus-track:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
:is(#overviewUpcoming, #boards) .studio-focus-slider>[data-studio-focus-step="-1"] { grid-column:1; grid-row:1; }
:is(#overviewUpcoming, #boards) .studio-focus-slider>[data-studio-focus-step="1"] { grid-column:3; grid-row:1; }
:is(#overviewUpcoming, #boards) .studio-line-step { display:grid; place-items:center; align-self:start; min-width:0; min-height:4.5rem; padding:0; color:var(--cream); background:transparent; border:0; border-radius:var(--r-data); cursor:pointer; }
:is(#overviewUpcoming, #boards) .studio-line-step span { font-size:1.6875rem; font-weight:400; line-height:1; }
:is(#overviewUpcoming, #boards) .studio-line-step:hover:not(:disabled) { background:var(--surface-raised); color:var(--cyan); }
:is(#overviewUpcoming, #boards) .studio-line-step:disabled { opacity:.22; cursor:default; }
:is(#overviewUpcoming, #boards) .studio-focus-option { display:block; flex:0 0 min(5.5rem,100%); min-width:0; padding:0.3125rem; border:1px solid transparent; border-radius:var(--r-control); }
:is(#overviewUpcoming, #boards) .studio-focus-option.is-main { flex-basis:min(11.5rem,100%); border-color:var(--cyan); background:#2f243e; }
:is(#overviewUpcoming, #boards) .studio-focus-prices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.25rem; min-width:0; }
:is(#overviewUpcoming, #boards) .studio-focus-option.is-alternate .studio-focus-prices,:is(#overviewUpcoming, #boards) .studio-focus-prices.scorer-prices { grid-template-columns:minmax(0,1fr); }
:is(#overviewUpcoming, #boards) .studio-odds-button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.25rem; min-width:0; min-height:3.1875rem; padding:0.375rem 0.1875rem; background:#2c223a; color:var(--ink); border:1px solid #493860; border-radius:var(--r-control); font-size:0.75rem; font-weight:500; line-height:1.25; font-variant-numeric:tabular-nums; cursor:pointer; }
:is(#overviewUpcoming, #boards) .studio-odds-button strong { color:#ffb168; font-size:0.75rem; font-weight:700; }
:is(#overviewUpcoming, #boards) .studio-odds-button:hover:not(:disabled) { background:#382b4a; border-color:var(--cyan); }
:is(#overviewUpcoming, #boards) .studio-odds-button[aria-pressed=true] { color:var(--ink); background:#175139; border-color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
:is(#overviewUpcoming, #boards) .studio-odds-button[aria-pressed=true] strong { color:#b4f0d7; }
:is(#overviewUpcoming, #boards) .studio-odds-button:disabled { color:var(--muted); opacity:.6; cursor:default; }
:is(#overviewUpcoming, #boards) .studio-odds-button:focus-visible { outline:2px solid var(--cyan); outline-offset:-0.1875rem; }
:is(#overviewUpcoming, #boards) .studio-focus-label { display:block; margin-top:0.4375rem; color:var(--muted); font-size:0.625rem; text-align:center; }
:is(#overviewUpcoming, #boards) .studio-focus-option.is-main .studio-focus-label { color:var(--cream); font-weight:700; }
:is(#overviewUpcoming, #boards) .saved-pick-note { width:100%; margin:0.625rem 0 0; }
@media(max-width:61.875em) {
  .overview-upcoming-table,.overview-upcoming-table tbody { display:block; }
  .overview-upcoming-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .overview-upcoming-table tbody tr { display:grid; grid-template-columns:minmax(0,1fr); border-bottom:1px solid #3c2f4f; }
  .overview-upcoming-table tbody tr:last-child { border-bottom:0; }
  .overview-upcoming-table tbody tr>* { display:block; width:auto; border-bottom:0; }
  .overview-upcoming-table tbody th { padding-bottom:0.375rem; }
  .overview-upcoming-table tbody td { padding-top:0.1875rem; }
  .overview-upcoming-table tbody tr:has(.no-upcoming-line) { grid-template-columns:minmax(0,1fr) minmax(5.625rem,.75fr); align-items:center; }
  .overview-upcoming-table tbody tr:has(.no-upcoming-line)>* { padding-top:0.75rem; padding-bottom:0.75rem; }
  .overview-upcoming-table tbody tr:has(.no-upcoming-line)>td { text-align:right; }
}
@media(max-width:37.125em) {
  #overviewUpcoming { padding:0.75rem 0.75rem 0.25rem; }
  #overviewUpcoming .overview-player-identity { gap:0.75rem; }
  #overviewUpcoming .overview-player-identity .player-avatar { width:4rem; height:4.875rem; flex-basis:4rem; }
  .overview-upcoming>header { display:grid; grid-template-columns:2.25rem minmax(0,1fr); gap:0.4375rem 0.625rem; padding:0.625rem; }
  .overview-upcoming>header>div { min-width:0; }
  .overview-upcoming>header>.text-button { grid-column:2; justify-self:start; margin-left:0; }
  .overview-upcoming-table th,.overview-upcoming-table td { padding-left:0.5rem; padding-right:0.5rem; }
}
.overview-detail-week { margin-top:1.25rem; }
.overview-detail-week>header { display:flex; align-items:center; gap:0.625rem; margin-bottom:0.625rem; }
.overview-detail-week h3 { margin:0; font-size:0.875rem; }
.overview-detail-week header p { margin:0.25rem 0 0; font-size:0.625rem; color:#baa8d9; }
.overview-detail-week .overview-box-link { margin-left:auto; white-space:nowrap; }
.overview-detail-scroll { position:relative; overflow-x:auto; border:1px solid #483a5f; border-radius:var(--r-control); scrollbar-width:thin; scrollbar-color:#6a568b #1e1727; overscroll-behavior-x:contain; }
.overview-detail-scroll:focus-visible { outline:2px solid var(--cyan); outline-offset:0.1875rem; }
.overview-detail-table { width:100%; min-width:63.75rem; font-variant-numeric:tabular-nums; }
.overview-detail-table th,.overview-detail-table td { padding:0.5625rem 0.4375rem; text-align:center; vertical-align:middle; border:0; border-bottom:1px solid #3c2f4f; }
.overview-detail-table thead th { position:static; background:#1b1524; font-size:0.625rem; letter-spacing:.5px; text-transform:uppercase; color:#b8a9d1; white-space:nowrap; }
.overview-detail-table .overview-stat-groups th { background:#20192a; padding-top:0.6875rem; padding-bottom:0.6875rem; color:#dfd8ea; }
.overview-detail-table .overview-stat-groups .overview-comparison-heading { background:#2f243e; color:#d4c4f0; border-left:1px solid #483a5f; box-shadow:inset 0 2px var(--accent); }
.overview-detail-table thead .overview-selected-heading { color:#d4c4f0; }
.overview-detail-table .overview-group-start { border-left:1px solid #483a5f; }
.overview-detail-table tbody tr { --overview-row:#21192b; }
.overview-detail-table tbody tr:nth-child(even) { --overview-row:#291f36; }
.overview-detail-table tbody th,.overview-detail-table tbody td { background:var(--overview-row); }
.overview-detail-table tbody tr:hover { --overview-row:#322742; }
.overview-detail-table .overview-player { position:sticky; left:0; z-index:1; min-width:12.25rem; width:12.25rem; text-align:left; padding-left:0.75rem; box-shadow:2px 0 #483a5f; }
.overview-detail-table thead .overview-player { z-index:2; }
.overview-player-identity { display:flex; align-items:center; gap:0.5625rem; }
.overview-player-identity>span { min-width:0; }
.overview-player-identity .profile-name-button { font-size:0.8125rem; line-height:1.35; color:#efecf5; }
.overview-player-identity small { display:block; margin-top:0.1875rem; color:#b1a4c7; font-size:0.625rem; font-weight:400; }
.overview-player-identity .player-avatar { position:relative; overflow:hidden; width:2.75rem; height:3.25rem; flex:0 0 2.75rem; border:0; border-radius:0; background:transparent; color:var(--cyan); font-size:1rem; }
.overview-player-identity .player-avatar:not(.has-photo) { background:var(--surface-raised); border-radius:var(--r-control); }
.overview-player-identity .player-headshot { object-fit:contain; object-position:center bottom; }
.overview-detail-table .overview-line { min-width:3.875rem; }
.overview-detail-table .line-detail { font-size:0.875rem; min-height:1.875rem; }
.overview-detail-table .overview-actual { min-width:3.75rem; }
.overview-actual-tile { display:block; border-radius:var(--r-control); padding:0.4375rem 0.25rem; background:#312640; }
.overview-detail-table .prop-actual { background:none; color:inherit; font-size:1.0625rem; }
.overview-detail-table .overview-outcome { min-width:5.1875rem; }
.overview-detail-table .prop-difference { background:none; color:#b8a9d1; }
.overview-result b,.overview-result small { display:block; }
.overview-result b { font-size:0.6875rem; }
.overview-result small { margin-top:0.1875rem; font-size:0.6875rem; }
.overview-detail-table .result-over .overview-actual-tile { background:var(--gap-over); color:var(--gap-over-ink); }
.overview-detail-table .result-under .overview-actual-tile { background:var(--gap-under); color:var(--gap-under-ink); }
.overview-detail-table .result-over .overview-result { color:#9fe2c6; }
.overview-detail-table .result-under .overview-result { color:#ffb4c4; }
.overview-detail-table .result-push .overview-actual-tile { background:#3d3c2c; color:#f2dd9b; }
.overview-detail-table .result-push .overview-result { color:#f2dd9b; }
.overview-detail-table .overview-stat { min-width:3.5rem; font-size:0.875rem; color:#e0d9ec; }
.overview-detail-table .stat-unavailable { color:#9181ab; }
@media(max-width:37.125em) {
  .overview-detail-sticky { padding:0.75rem; }
  .overview-detail-sticky h2 { font-size:1.0625rem; }
  #overviewDetailBody { padding:0 0.75rem 0.75rem; }
  .overview-detail-help,.overview-detail-footnote { padding-left:0.75rem; padding-right:0.75rem; }
  .overview-detail-totals { gap:0.375rem 0.875rem; }
  .overview-detail-totals strong { font-size:0.875rem; }
  .overview-detail-table .overview-player { width:9.375rem; min-width:9.375rem; max-width:9.375rem; padding-left:0.5rem; }
  .overview-player-identity { gap:0.375rem; }
  .overview-player-identity .profile-name-button { font-size:0.6875rem; overflow-wrap:anywhere; }
  .overview-player-identity .player-avatar { width:2.25rem; height:2.6875rem; flex-basis:2.25rem; }
}
/* Small phones: the position-results and repeat-evidence dialogs show player, line, actual and result only;
   the source box-score columns are hidden so the vs-line result stays on screen. The headshot shrinks to a
   small portrait so it fits beside the name. */
@media(max-width:30em) {
  :is(#overviewDetailBody,#patternBody) .overview-detail-table { min-width:0; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-stat,
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-stat-groups th.overview-group-start,
  :is(#overviewDetailBody,#patternBody) .overview-detail-table thead tr:nth-child(2) th:nth-child(n+4) { display:none; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-player { width:100%; min-width:0; max-width:none; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-player-identity .profile-name-button { overflow-wrap:break-word; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table :is(th,td) { padding-left:0.3125rem; padding-right:0.3125rem; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-comparison-heading { white-space:normal; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-line,
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-actual { min-width:3rem; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-outcome { min-width:4.25rem; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-player-identity .player-avatar { width:1.5rem; height:1.8125rem; flex-basis:1.5rem; font-size:0.5625rem; }
}
/* Below 368px the headshot shrinks rather than dropping out (UI-213/AUD-UI-027), so a long
   surname still has the width and the row still shows who it is. */
@media(max-width:23em) {
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-player-identity { gap:0.25rem; }
  :is(#overviewDetailBody,#patternBody) .overview-detail-table .overview-player-identity .player-avatar { width:1.125rem; height:1.375rem; flex-basis:1.125rem; font-size:0.4375rem; }
}
.weekly-props { width:100%; border:1px solid #483a5f; border-collapse:collapse; background:#1d1626; }
.weekly-props th:first-child { width:48%; }
.weekly-props th:nth-child(2),.weekly-props th:nth-child(3) { width:15%; }
.weekly-props th:nth-child(4) { width:22%; }
.weekly-props th,.weekly-props td { padding:0.5rem 0.4375rem; }
.weekly-prop-title { display:block; color:var(--position-color); font-size:0.6875rem; line-height:1.4; overflow-wrap:anywhere; }
.weekly-player { display:flex; align-items:center; gap:0.375rem; margin-top:0.3125rem; }
.weekly-player .player-avatar { position:relative; display:block; width:1.5rem; height:1.5rem; border-radius:var(--r-control); overflow:hidden; background:var(--position-color); font-size:0.5625rem; }
.weekly-player .profile-name-button { font-size:0.625rem; line-height:1.3; overflow-wrap:anywhere; }
.weekly-props .prop-difference { font-size:0.6875rem; }
.weekly-props .prop-difference small { font-size:0.4375rem; }
.upcoming-column .upcoming-content { display:block; }

/* Injury status labels (the game injury report's table restyles them below). */
.injury-status { flex:0 1 7.75rem; text-align:right; color:#e0c17b; font-size:0.625rem; }
.injury-status.is-out { color:#ffa0b1; }

.game-missing { color:#9180ac; }
.upcoming-unavailable { color:#ef9398; font-size:0.5625rem; }
.pattern-tag { display:block; max-width:100%; margin-top:0.4375rem; padding:0.25rem 0.4375rem; border:1px solid #477461; border-radius:var(--r-data); background:#271e34; color:#c0edda; font-size:0.625rem; line-height:1.5; text-align:left; text-transform:none; font-weight:600; cursor:pointer; }
.pattern-tag:hover { background:#20543e; border-color:#76b59b; }
.pattern-tag[data-trend=mixed] { background:#3a3527; border-color:#756647; color:#c3aee8; }
#patternDialog { padding:0; width:min(77.5rem,calc(100% - 1.75rem)); overflow-x:hidden; overscroll-behavior:contain; }
html:has(#patternDialog[open]),html:has(#patternDialog[open]) body { overflow:hidden; overscroll-behavior:none; }
.pattern-sticky { position:sticky; top:0; z-index:3; padding:1.125rem 1.25rem 0.75rem; background:#261d32; border-bottom:1px solid #504069; }
.pattern-sticky .dialog-heading { margin:0; align-items:start; }
.pattern-sticky h2 { font-size:1.1875rem; line-height:1.4; }
.pattern-sticky p:last-child { color:#baa8d9; font-size:0.6875rem; line-height:1.5; margin-bottom:0; }
.pattern-sticky .close-button { flex-shrink:0; }
#patternBody { min-width:0; padding:0 1.25rem 1.25rem; }
@media(max-width:37.125em) {
  .pattern-sticky { padding:0.875rem 0.75rem 0.75rem; }
  #patternBody { padding:0 0.75rem 1rem; }
}
.upcoming-watchlist { margin-top:0.625rem; padding-top:0.625rem; }
@media(max-width:48.125em) { #boardsPanel>.section-heading { flex-wrap:wrap; gap:0.75rem; }.board-heading-tools { justify-content:flex-start; }.auto-pick-toggle { white-space:normal; text-align:left; } }
.position-filters { display:flex; gap:0.25rem; }
.position-filters button { min-width:2.25rem; height:2.125rem; border:1px solid #4e3f67; border-radius:var(--r-control); background:#261e32; color:#b9aad3; font-size:0.75rem; font-weight:700; }
.position-filters button[aria-pressed="true"] { border-color:var(--cyan); background:#3f3053; color:#e6d7ff; }
.position-filters button:focus-visible,.boxscore-tools summary:focus-visible,.more-stats summary:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.boxscore-toolbar #matchupPlayerCount { width:auto; margin-left:auto; padding:0; font-size:0.6875rem; }
.boxscore-tools { display:flex; flex-wrap:wrap; align-items:start; gap:0.5rem; margin:0.75rem 0 0; }
.boxscore-tools details { min-width:0; }
.boxscore-tools>.selection-panel { flex:1 1 17.5rem; margin:0; padding:0; }
.boxscore-tools summary { cursor:pointer; padding:0.5625rem 0.75rem; font-size:0.75rem; color:#cbc0de; }
.summary-action { color:#b2a4c8; margin-left:0.75rem; font-size:0.6875rem; }
.boxscore-tools>.selection-panel[open] { flex-basis:100%; padding-bottom:0.75rem; }
.selection-panel>p,.selection-panel>#selectedLines { margin:0.5rem 0.75rem 0; }
#matchupSelectionCount { font-size:0.6875rem; line-height:1.6; color:#b9abd0; }
.boxscore-info { flex:0 1 auto; border:1px solid #4a3b61; border-radius:var(--r-data); }
.boxscore-info[open] { flex-basis:100%; padding:0 0.75rem; }
.boxscore-info[open]>summary { padding-left:0; }
.boxscore-info .boxscore-stat-help { font-size:0.75rem; }
.boxscore-position { margin:1.125rem 0; }
.boxscore-position>h3 { margin-bottom:0.4375rem; padding-bottom:0.5rem; }
.position-production { display:flex; flex-wrap:wrap; gap:0.3125rem 0.875rem; margin:0 0 0.625rem; color:#b9acd0; font-size:0.75rem; line-height:1.6; }
.position-production b { color:#dbcdf2; font-variant-numeric:tabular-nums; }
.position-production em { color:#aba0bd; font-style:normal; font-size:0.6875rem; }
.group-total-label { color:#9d8cb9; }
.group-coverage { margin-left:auto; color:#9d8cb9; font-size:0.6875rem; }
#matchupPlayers .player-props th:first-child { width:44%; }
#matchupPlayers .player-props th:nth-child(2) { width:16%; }
#matchupPlayers .player-props th:nth-child(3) { width:14%; }
#matchupPlayers .player-props th:nth-child(4) { width:26%; }
#matchupPlayers .prop-label { font-size:0.75rem; }
#matchupPlayers .prop-label>span { min-width:0; }
#matchupPlayers .prop-label>.pick-line { flex-shrink:0; }
#matchupPlayers .line-detail,#matchupPlayers .prop-actual { font-size:0.75rem; }
.prop-context { display:flex; flex-wrap:wrap; gap:2px 0.625rem; margin:0.25rem 0 0 1.875rem; color:#a393bd; font-size:0.625rem; font-weight:400; line-height:1.5; }
.prop-context>span { white-space:nowrap; }
.prop-context b { font-size:0.6875rem; color:#d4cbe4; font-weight:600; font-variant-numeric:tabular-nums; }
.more-stats { border-top:1px solid #4a3b61; }
.more-stats>summary { cursor:pointer; padding:0.5625rem 0.75rem; color:#bfabe1; font-size:0.75rem; }
.more-stats>summary>span { margin-left:0.5rem; font-size:0.625rem; color:#a08fbb; }
.more-stats .player-game-stats { border-bottom:0; }
@media(min-width:48.19375em) and (max-width:68.75em) { #matchupDialog .boxscore-cards { grid-template-columns:1fr; } }
@media(max-width:48.125em) {
  .boxscore-sticky .boxscore-heading h2 { font-size:1.0625rem; }
  .boxscore-sticky .card-kicker { display:none; }
  .boxscore-sticky .boxscore-heading #matchupMeta { font-size:0.625rem; }
  .boxscore-toolbar .player-search { flex-basis:100%; max-width:none; }
  .boxscore-sticky .boxscore-toolbar { gap:0.4375rem; }
  .boxscore-tools { gap:0.375rem; }
  .boxscore-tools summary { padding:0.5rem 0.625rem; }
  .group-coverage { margin-left:0; flex-basis:100%; }
  #matchupPlayers .player-props th:first-child { width:40%; }
  #matchupPlayers .player-props th:nth-child(2) { width:18%; }
  #matchupPlayers .player-props th:nth-child(3) { width:14%; }
  #matchupPlayers .player-props th:nth-child(4) { width:28%; }
  #matchupPlayers .prop-label { font-size:0.6875rem; }
  .prop-context { gap:2px 0.4375rem; margin-left:0; }
  .more-stats>summary>span { display:block; margin:0.25rem 0 0 0.875rem; }
}
@media(max-width:79.0625em) {.notebook-main { margin-left:11.5625rem; padding:1.5rem 1.25rem; }.app-brand { width:9.6875rem; }.filter-row { grid-template-columns:5.3125rem 7.5rem 1fr; }.filter-row>label:last-child { grid-column:1/-1; }.view-toolbar { flex-wrap:wrap; } }
@media(max-width:55em) { .app-topbar { height:3.6875rem; padding:0 0.9375rem; gap:1.25rem; }.app-brand { width:auto; }#defenseNav { display:none; }.notebook-main { margin-left:4rem; padding:1.375rem 1rem; }.page-heading { gap:0.625rem; }h1 { font-size:1.4375rem; }.page-heading p:last-child { font-size:0.625rem; }.coverage-row { flex-wrap:wrap; gap:0.25rem; }.week-picker { grid-template-columns:repeat(9,minmax(0,1fr)); } }
@media(max-width:37.125em) {.app-brand { font-size:0.75rem; }.brand-lab { font-size:0.5rem; }.notebook-main { margin-left:0; padding:1.375rem 0.75rem; }.page-heading { align-items:flex-start; flex-wrap:wrap; margin-bottom:1.125rem; }h1 { font-size:1.5rem; }.page-heading p:last-child { font-size:0.625rem; }.notebook-controls { padding:0.8125rem 0.75rem 0; }.filter-row { grid-template-columns:1fr 1fr; gap:0.75rem; }.filter-row>label:last-child { grid-column:auto; }.week-heading { font-size:0.5625rem; gap:0.5rem; }.week-heading>div { gap:0.5rem; }.week-heading .text-button { font-size:0.6875rem; }.coverage-row p { font-size:0.5rem; }.notebook-tabs { width:100%; }.notebook-tabs button { flex:1; font-size:0.625rem; padding:0.5rem; }.section-heading { flex-wrap:wrap; gap:0.5rem; }.section-heading h2 { font-size:0.9375rem; }.section-heading p { font-size:0.5625rem; }.board-heading { padding:0.6875rem; }.board-heading h3 { font-size:0.75rem; }.board-heading p { font-size:0.5rem; }.team-badge { width:1.9375rem; height:2rem; font-size:0.5rem; }.board-heading .pd-button { font-size:0.5rem; padding:0.375rem; }.row-label { min-width:6.25rem!important; width:6.25rem!important; }th,td { padding:0.625rem; }.overview-table .row-label { min-width:10rem!important; width:10rem!important; }.overview-team { gap:0.5rem; }.overview-team-badge { width:2.75rem; height:2.75rem; }.overview-team>span:last-child { font-size:0.8125rem; }.overview-detail-summary { margin:0.75rem; }.overview-table thead th:not(:first-child) { min-width:7.8125rem; }dialog { padding:1.125rem; }.dialog-heading h2 { font-size:1.1875rem; }.dialog-actions .pd-button { font-size:0.5625rem; } }
.availability-tag { display: inline-block; margin-left: .35rem; color: var(--text, #e0d9ed); font-size: .65rem; font-weight: 600; }
.availability-tag.upcoming-unavailable { color: #ffb0c2; }

/* Global collapsible betslip; it scrolls independently of the notebook. */
.betslip-toggle { margin-left:auto; white-space:nowrap; padding:0.5rem 0.6875rem; font-size:0.6875rem; }
.betslip-toggle span { margin-left:0.3125rem; color:#d2c1ef; }
.betslip-toggle[aria-expanded=true] { border-color:var(--cyan); }
.betslip-drawer { position:fixed; inset:4.125rem 0 0 auto; margin:0; width:21.875rem; max-width:100%; height:calc(100dvh - 4.125rem); max-height:none; padding:1rem; border-radius:0; border-top:0; border-left:2px solid #54446f; overflow:auto; box-shadow:-0.5rem 0 1.5rem #0004; z-index:30; color:var(--ink); }
.betslip-drawer:not([open]) { display:none; }
.betslip-drawer[open] { display:block; }
.betslip-drawer #betslipItems { max-height:none; overflow:visible; }
.betslip-drawer .betslip-heading { position:sticky; top:-1rem; background:#231b2e; padding:0.75rem 0; margin-top:-0.75rem; z-index:1; }
.betslip-drawer .close-button { width:2.125rem; height:2.125rem; padding:0; }
.betslip-drawer::backdrop { background:#100c15b3; }
.bet-picker-layout { grid-template-columns:minmax(0,1fr); }
.tracker-filters .filter-row { display:flex; }
.tracker-filters .filter-row>label:not(:first-child) { display:none; }
.tracker-filters .filter-row>label:first-child { min-width:6.25rem; }
.tracker-header { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:0.75rem 1.5rem; margin-bottom:0.5rem; }
.tracker-header>.section-heading { flex:1 1 11.25rem; min-width:0; margin:0; padding-bottom:0.375rem; }
.tracker-header #trackerTitle { margin:0; font-size:1.375rem; line-height:1.2; letter-spacing:-.5px; }
.tracker-toolbar { display:flex; align-items:end; gap:0.875rem; flex-wrap:wrap; margin-bottom:0.9375rem; }
.tracker-toolbar label { display:grid; gap:0.375rem; font-size:0.6875rem; color:var(--muted); }
.tracker-toolbar select { min-width:8.125rem; padding:0.5625rem; background:var(--surface-raised); border:1px solid var(--line); color:var(--ink); border-radius:var(--r-control); }
.tracker-toolbar .tracker-sort-control { flex:0 1 13.75rem; min-width:0; }
.tracker-toolbar .tracker-sort-control select { min-width:0; width:100%; }
.tracker-header #exportTracker { min-height:2.25rem; }
.tracker-status { position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:0.25rem 0.875rem; margin-bottom:0.75rem; }
.tracker-status #trackerCount { flex:1 1 0; min-width:0; margin:0; padding:0.25rem 0; font-size:0.6875rem; line-height:1.5; white-space:normal; }
.tracker-toolbar select:focus-visible { outline:2px solid var(--cyan); outline-offset:0.1875rem; }
/* Scoreboard: one calm panel of totals; outcome color lives only in the values. */
.tracker-summary { display:grid; gap:0.75rem; margin-bottom:0.75rem; }
.tracker-scoreboard { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(10rem, 100%), 1fr)); border:1px solid var(--line); border-radius:var(--r-card); background:linear-gradient(180deg,#281f34,#211a2b); overflow:hidden; }
.tracker-kpi { display:grid; align-content:start; gap:0.25rem; min-width:0; padding:0.875rem 1.125rem; }
.tracker-kpi+.tracker-kpi { border-left:1px solid var(--line); }
.tracker-kpi>span { color:var(--muted); font-size:0.625rem; font-weight:650; letter-spacing:.8px; text-transform:uppercase; }
.tracker-kpi>strong { color:var(--ink); font-size:1.625rem; font-weight:750; line-height:1.15; letter-spacing:-.5px; font-variant-numeric:tabular-nums; }
.tracker-kpi-starred>span { color:#e6c874; }
/* Filters: compact chips; the pressed chip is the only filled one. */
.tracker-filters-row { display:flex; flex-wrap:wrap; gap:0.375rem; }
.tracker-summary .tracker-stat { --chip-dot:#8d7ea5; appearance:none; display:inline-flex; align-items:center; gap:0.5rem; min-height:2rem; padding:0.25rem 0.375rem 0.25rem 0.75rem; border:1px solid var(--line); border-radius:var(--r-control); background:transparent; color:#d1c7e1; font:inherit; font-size:0.75rem; font-weight:600; line-height:1; cursor:pointer; transition:background-color .15s,border-color .15s,color .15s; }
.tracker-summary .tracker-stat::before { content:""; width:0.4375rem; height:0.4375rem; border-radius:var(--r-control); background:var(--chip-dot); }
.tracker-summary .tracker-stat:is(.tracker-stat-all,.tracker-stat-starred)::before { display:none; }
.tracker-summary .tracker-stat strong { min-width:1.5rem; padding:0.25rem 0.4375rem; border-radius:var(--r-control); background:#2e243d; color:var(--ink); font-size:0.6875rem; text-align:center; font-variant-numeric:tabular-nums; }
.tracker-summary .tracker-stat:hover { border-color:#635082; color:var(--ink); }
.tracker-summary .tracker-stat:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.tracker-summary .tracker-stat[aria-pressed=true] { background:var(--selected-bg); color:var(--ink); border-color:var(--accent); }
.tracker-summary .tracker-stat[aria-pressed=true] strong { background:var(--accent); color:var(--accent-ink); }
.tracker-summary .tracker-stat-won { --chip-dot:#58d5a1; }
.tracker-summary .tracker-stat-lost { --chip-dot:#ff829c; }
.tracker-summary .tracker-stat-pending { --chip-dot:#e7c567; }
.tracker-summary .tracker-stat-review { --chip-dot:#efa665; }
.tracker-summary .tracker-stat-starred { color:#bea0f1; }
/* Rows: one quiet surface, a thin outcome rail, and a tinted Result cell. */
.tracker-table { width:100%; min-width:59.375rem; border-collapse:separate; border-spacing:0 0.375rem; font-size:0.8125rem; }
.tracker-table th,.tracker-table td { padding:0.625rem 0.875rem; text-align:left; vertical-align:middle; border:0; border-top:1px solid #382c4a; border-bottom:1px solid #382c4a; }
.tracker-table thead th { color:#a292bc; font-size:0.625rem; letter-spacing:.8px; border:0; padding-top:0; padding-bottom:0; background:transparent; }
.tracker-table thead th:first-child { width:30%; }
.tracker-table thead th:is(:nth-child(3),:nth-child(4),:nth-child(5)) { text-align:center; }
.tracker-table thead th:nth-child(7) { text-align:right; }
.tracker-table [data-tracker-sort] { display:inline-flex; align-items:center; gap:0.25rem; min-height:1.75rem; padding:0.25rem 0; border:0; border-radius:var(--r-control); background:transparent; color:inherit; font:inherit; font-weight:700; letter-spacing:inherit; text-transform:inherit; text-align:inherit; white-space:nowrap; }
.tracker-table [data-tracker-sort]:hover { color:var(--cream); }
.tracker-table [data-tracker-sort]:focus-visible { outline:2px solid var(--cyan); outline-offset:0.25rem; }
.tracker-sort-indicator { display:inline-block; width:0.375rem; height:0.375rem; margin-left:0.125rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; color:#735f94; visibility:hidden; transform:translateY(-0.125rem) rotate(45deg); }
.tracker-table [data-tracker-sort]:is(:hover,:focus-visible) .tracker-sort-indicator { visibility:visible; }
.tracker-table th:is([aria-sort=ascending],[aria-sort=descending]) .tracker-sort-indicator { visibility:visible; color:var(--cream); }
.tracker-table th[aria-sort=ascending] .tracker-sort-indicator { transform:translateY(0.125rem) rotate(-135deg); }
.tracker-table th:is([aria-sort=ascending],[aria-sort=descending]) [data-tracker-sort] { color:var(--cream); }
.tracker-row { --result-accent:#8d7ea5; --result-bg:#291f36; --result-ink:#e6dff1; }
.tracker-row[data-result=won] { --result-accent:#58d5a1; --result-bg:#123b2a; --result-ink:#b5f5da; }
.tracker-row[data-result=lost] { --result-accent:#ff829c; --result-bg:#3a2436; --result-ink:#ffc4d1; }
.tracker-row[data-result=pending] { --result-accent:#e7c567; --result-bg:#26322d; --result-ink:#f5dc93; }
.tracker-row[data-result=review] { --result-accent:#efa665; --result-bg:#352d25; --result-ink:#c29fff; }
.tracker-table .tracker-row>* { background:#221b2d; transition:background-color .15s; }
.tracker-table .tracker-row:hover>:not([class^=tracker-result-]) { background:#281f35; }
.tracker-table .tracker-row>th { position:relative; padding-left:6.625rem; border-radius:var(--r-control) 0 0 var(--r-control); }
.tracker-table .tracker-manage { border-right:1px solid #382c4a; border-radius:0 var(--r-control) var(--r-control) 0; width:1%; white-space:nowrap; }
.tracker-table .tracker-bet .bet-star { position:absolute; left:0.75rem; top:50%; margin:0; transform:translateY(-50%); }
.tracker-bet>strong { display:block; font-size:0.9375rem; line-height:1.3; }
.tracker-prop { display:block; color:#cec3e0; font-size:0.75rem; font-weight:400; margin:0.125rem 0 0.1875rem; }
.tracker-table .tracker-matchup { display:block; margin:0; color:#9a88b6; font-size:0.625rem; font-weight:400; }
.tracker-table .tracker-box-link { padding:0; border:0; background:none; text-align:left; text-decoration:none; text-underline-offset:2px; }
.tracker-table .tracker-box-link:hover { color:var(--cyan); text-decoration:underline; }
.tracker-table .tracker-added { color:#cec3e0; font-size:0.75rem; line-height:1.4; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tracker-added time { display:block; }
.tracker-table .tracker-line,.tracker-table .tracker-actual { min-width:6.25rem; text-align:center; }
.tracker-table .tracker-score { min-width:5.5rem; text-align:center; }
.tracker-table .tracker-score .tracker-number { font-size:1.125rem; font-weight:800; }
.tracker-table .tracker-score .is-empty { color:#735f94; }
.tracker-line-value { display:inline-flex; align-items:baseline; gap:0.3125rem; }
.tracker-side { color:#b3a6c9; font-size:0.625rem; font-weight:700; letter-spacing:.8px; text-transform:uppercase; }
.tracker-number { display:block; font-size:1.25rem; line-height:1.2; font-variant-numeric:tabular-nums; font-weight:750; letter-spacing:-.3px; }
.tracker-table .tracker-actual .tracker-number { color:#e6dff1; }
.tracker-table .tracker-row:is([data-result=won],[data-result=lost])>.tracker-actual .tracker-number { color:var(--result-accent); }
.tracker-table .tracker-row:is([data-result=pending],[data-result=review])>.tracker-actual .tracker-number { color:#735f94; }
.tracker-table td small,.tracker-table tbody th small { display:block; margin-top:0.1875rem; color:var(--muted); font-size:0.625rem; font-weight:400; }
.tracker-table .tracker-row>td[class^=tracker-result-] { min-width:7.5rem; background:var(--result-bg); color:var(--result-ink); }
.tracker-table .tracker-row>td[class^=tracker-result-] small { color:var(--result-ink); opacity:.85; }
.tracker-result-badge { display:inline-flex; gap:0.4375rem; align-items:center; font-size:0.8125rem; font-weight:750; white-space:nowrap; }
.tracker-result-badge::before { content:""; width:0.5rem; height:0.5rem; border-radius:var(--r-data); background:var(--result-accent); box-shadow:0 0 0 0.1875rem color-mix(in srgb,var(--result-accent) 22%,transparent); flex-shrink:0; }
.tracker-table td[class^=tracker-net-] { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; font-size:1rem; font-weight:700; }
.tracker-table .tracker-net-positive { color:#58d5a1; }
.tracker-table .tracker-net-negative { color:#ff829c; }
.tracker-table .tracker-net-neutral { color:#d9d2e5; }
.tracker-risk { font-variant-numeric:tabular-nums; white-space:nowrap; }
.tracker-table .tracker-week-row>th { padding:1rem 0.25rem 0.25rem; border:0; background:transparent; text-align:left; }
.tracker-table tbody .tracker-week-row:first-child>th { padding-top:0.25rem; }
.tracker-week-row>th { display:table-cell; }
.tracker-week-row>th>span { vertical-align:baseline; }
.tracker-week-title { color:var(--cream); font-size:0.875rem; font-weight:750; letter-spacing:-.2px; }
.tracker-week-stats { display:inline-flex; gap:0.625rem; margin-left:0.875rem; color:#cec3e0; font-size:0.75rem; font-weight:650; font-variant-numeric:tabular-nums; }
.tracker-week-stats b.tracker-cash-positive { color:#58d5a1; }
.tracker-week-stats b.tracker-cash-negative { color:#ff829c; }
.tracker-week-count { margin-left:0.875rem; color:var(--muted); font-size:0.6875rem; font-weight:400; }
.tracker-more { display:flex; align-items:center; justify-content:center; gap:0.875rem; margin:1rem 0 0.5rem; }
.tracker-more[hidden] { display:none; }
.tracker-more .pd-button { min-height:2.25rem; padding:0 1.25rem; }
.tracker-more>span { color:var(--muted); font-size:0.6875rem; }
.tracker-stake { position:relative; margin:0; }
.tracker-stake label { display:flex; align-items:center; width:6.25rem; height:2rem; padding:0 0.5rem; border:1px solid var(--line); border-radius:var(--r-data); background:#211a2b; cursor:text; transition:border-color .15s; }
.tracker-stake label:hover { border-color:#635082; }
.tracker-stake label:focus-within { border-color:var(--cyan); box-shadow:0 0 0 1px var(--cyan); }
body .tracker-table .tracker-stake input[name=stake] { width:100%; min-width:0; height:100%; min-height:0; padding:0 0 0 0.25rem; border:0; border-radius:0; outline:0; box-shadow:none; background:transparent; color:var(--ink); font-size:0.8125rem; font-weight:650; font-variant-numeric:tabular-nums; }
.tracker-stake input::placeholder { color:#836fa3; font-weight:500; }
.tracker-stake .tracking-error { position:absolute; top:calc(100% + 0.25rem); right:0; z-index:4; width:max-content; max-width:14rem; margin:0; padding:0.3125rem 0.5rem; border-radius:var(--r-data); background:#4a2030; color:#ffc4d1; font-size:0.625rem; white-space:normal; }
.tracker-stake .tracking-error:empty { display:none; }
.tracker-table td small.tracker-cash { font-weight:650; }
.tracker-table td small.tracker-cash-positive { color:#58d5a1; }
.tracker-table td small.tracker-cash-negative { color:#ff829c; }
.tracker-manage-bar { display:flex; align-items:flex-start; justify-content:flex-end; gap:0.375rem; }
.tracker-scroll { overflow:visible; }
.tracker-manage-bar { position:relative; }
.tracker-manage-bar .tracker-icon-button { flex:0 0 auto; display:inline-grid; place-items:center; width:2rem; height:2rem; padding:0; border:1px solid var(--line); border-radius:var(--r-control); background:transparent; color:#b3a6c9; cursor:pointer; }
.tracker-manage-bar .tracker-icon-button.bet-share>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.tracker-manage-bar .tracker-icon-button:hover:not(:disabled) { border-color:var(--cyan); background:#2c2239; color:var(--cyan); }
.tracker-manage-bar .tracker-icon-button.tracker-remove:hover:not(:disabled) { border-color:#a3566b; background:#34202c; color:#ff9fb3; }
.tracker-manage-bar .tracker-icon-button:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.tracker-manage-bar .tracker-icon-button:disabled { opacity:.4; cursor:default; }
.tracker-manage-bar .tracker-remove-locked { border-style:dashed; color:#735f94; cursor:help; }
@media(max-width:68.75em) {
  .tracker-scoreboard { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tracker-kpi:nth-child(odd) { border-left:0; }
  .tracker-kpi:last-child:nth-child(odd) { grid-column:1/-1; }
  .tracker-kpi:nth-child(n+3) { border-top:1px solid var(--line); }
  .tracker-table { min-width:0; border-spacing:0; display:block; }
  .tracker-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .tracker-table tbody { display:grid; gap:0.625rem; }
  .tracker-table .tracker-week-row>th { display:block; padding:0.75rem 0.125rem 0; }
  .tracker-table .tracker-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border:1px solid #382c4a; border-radius:var(--r-control); background:#221b2d; }
  .tracker-table .tracker-row>* { min-width:0; border:0; border-radius:0; padding:0.625rem 0.875rem; }
  .tracker-table .tracker-row>th { grid-column:1/5; border:0; border-radius:var(--r-control) 0 0 0; padding-left:6.375rem; }
  .tracker-table .tracker-row>.tracker-added { grid-column:5; text-align:right; font-size:0.6875rem; white-space:normal; }
  .tracker-table td[data-label]::before { content:attr(data-label); display:block; margin-bottom:0.25rem; font-size:0.5625rem; font-weight:650; text-transform:uppercase; letter-spacing:.8px; color:#9a88b6; }
  .tracker-table .tracker-row>:is(.tracker-added,.tracker-manage)::before { display:none; }
  .tracker-table .tracker-row>:is(.tracker-line,.tracker-score,.tracker-actual,td[class^=tracker-result-],td[class^=tracker-net-]) { border-top:1px solid #382c4a; text-align:left; }
  .tracker-table .tracker-row>:is(.tracker-score,.tracker-actual,td[class^=tracker-result-],td[class^=tracker-net-]) { border-left:1px solid #382c4a; }
  .tracker-table .tracker-row>td[class^=tracker-result-] { min-width:0; }
  .tracker-table .tracker-manage { grid-column:1/-1; width:auto; border-top:1px solid #382c4a; border-radius:0 0 var(--r-control) var(--r-control); padding-top:0.5rem; padding-bottom:0.5rem; }
  .tracker-manage-bar { justify-content:flex-start; flex-wrap:wrap; }
}
@media(max-width:37.125em) {
  .tracker-kpi { padding:0.75rem 0.875rem; }
  .tracker-kpi>strong { font-size:1.375rem; }
  .tracker-table .tracker-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tracker-table .tracker-row>th { grid-column:1/-1; padding-bottom:0.25rem; }
  .tracker-table .tracker-row>.tracker-added { grid-column:1/-1; padding-top:0; padding-left:6.375rem; text-align:left; }
  .tracker-added time { display:flex; flex-wrap:wrap; gap:0 0.375rem; }
  .tracker-table .tracker-added time small { margin:0; }
  .tracker-table .tracker-row>td[class^=tracker-result-] { border-left:0; }
  /* Line and actual stay side by side; the Play Score gets its own strip below the results. */
  .tracker-table .tracker-row>.tracker-score { order:1; grid-column:1/-1; display:flex; align-items:baseline; gap:0.5rem; border-left:0; }
  .tracker-table .tracker-row>.tracker-score::before { margin:0; }
  .tracker-table .tracker-row>.tracker-score small { margin:0; }
  .tracker-table .tracker-row>.tracker-manage { order:2; }
  .tracker-toolbar { gap:0.75rem; }
  .tracker-toolbar label,.tracker-toolbar .tracker-sort-control { flex:1 1 8.125rem; min-width:0; }
  .tracker-toolbar select { min-width:0; }
  .tracker-header { display:block; margin-bottom:0.5rem; }
  .tracker-header>.section-heading { margin-bottom:0.75rem; padding-bottom:0; }
  .tracker-header #exportTracker { align-self:end; }
  .tracker-status { gap:0.25rem 0.625rem; margin-bottom:0.625rem; }
}
.notebook-tabs { flex-wrap:wrap; }
@media(max-width:61.875em) { .betslip-drawer { inset:0 0 0 auto; height:100dvh; width:min(23.75rem,100%); } }
@media(max-width:37.125em) {.app-topbar { gap:0.625rem; }.betslip-toggle { font-size:0.625rem; padding:0.4375rem; }.notebook-tabs button { flex:1 1 40%; } }

/* Betslip is an overlay at every width; the notebook keeps its full layout. */
body.players-page.betslip-modal-open { overflow:hidden; }
body.players-page #betslipDrawer[data-overlay] {
  position:fixed; inset:1.5rem 1.5rem auto auto !important; margin:0 !important;
  width:min(28.75rem,calc(100vw - 3rem)) !important; min-width:0;
  height:auto !important; max-height:calc(100dvh - 3rem) !important;
  padding:1.125rem !important; overflow-y:auto !important; overflow-x:hidden;
  overscroll-behavior:contain; scrollbar-gutter:stable;
  border:1px solid var(--line) !important; border-radius:var(--r-card) !important;
  box-shadow:0 1.25rem 4.375rem #0006 !important; background:var(--surface);
}
body.players-page #betslipDrawer[data-overlay]::backdrop { background:#100c15b3; backdrop-filter:blur(0.1875rem); }
body.players-page #betslipDrawer[data-overlay] .betslip-heading {
  position:sticky !important; top:-1.125rem !important; z-index:3;
  padding:0.875rem 0 !important; margin:-0.875rem 0 0.625rem !important;
  background:var(--surface); align-items:center; gap:0.75rem;
}
body.players-page #betslipDrawer[data-overlay] #betslipClose { order:3; width:2.125rem; min-width:2.125rem; height:2.125rem; margin-left:0; }
body.players-page #betslipDrawer[data-overlay] #betslipItems { max-height:none; overflow:visible; }
body.players-page #betslipDrawer[data-overlay] .betslip-scope { margin:0 0 0.875rem; }
body.players-page #betslipDrawer[data-overlay] .betslip-scope>div { display:flex; gap:0.375rem; }
body.players-page #betslipDrawer[data-overlay] .betslip-scope button {
  flex:1; padding:0.5625rem 0.75rem; border:1px solid var(--line); border-radius:var(--r-control);
  background:var(--surface-raised); color:var(--ink); font:inherit; font-size:0.75rem;
}
body.players-page #betslipDrawer[data-overlay] .betslip-scope button[aria-pressed=true] { border-color:var(--accent); color:var(--accent); }
body.players-page #betslipDrawer[data-overlay] #betslipScopeCount { display:block; margin-top:0.4375rem; color:var(--muted); }
/* Keep game chronology visible without adding another layer of cards. */
body.players-page #betslipDrawer .betslip-phase { min-width:0; margin:0; padding:0; list-style:none; }
body.players-page #betslipDrawer .betslip-phase+.betslip-phase { margin-top:1.25rem; padding-top:0.9375rem; border-top:1px solid var(--line); }
body.players-page #betslipDrawer .betslip-phase-title { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; margin:0 0 0.5rem; color:var(--ink); font-size:0.8125rem; line-height:1.4; }
body.players-page #betslipDrawer .betslip-phase-title>small { flex-shrink:0; padding:2px 0.375rem; border-radius:var(--r-data); background:#392c4b; color:#d2c1ef; font-size:0.625rem; font-weight:650; font-variant-numeric:tabular-nums; }
body.players-page #betslipDrawer .betslip-phase[data-phase=started] .betslip-phase-title>span { color:#d2c1ef; }
body.players-page #betslipDrawer .betslip-phase-note { margin:0 0 0.625rem; color:var(--muted); font-size:0.625rem; line-height:1.5; }
body.players-page #betslipDrawer .betslip-game-group { min-width:0; margin:0; }
body.players-page #betslipDrawer .betslip-game-group+.betslip-game-group { margin-top:0.875rem; }
body.players-page #betslipDrawer .betslip-game-heading { display:grid; gap:0.1875rem; min-width:0; margin:0 0 0.4375rem; padding:0.375rem 0; }
body.players-page #betslipDrawer .betslip-game-matchup { display:flex; align-items:center; gap:0.375rem; min-width:0; }
body.players-page #betslipDrawer .betslip-game-time { display:block; color:var(--muted); font-size:0.625rem; line-height:1.5; overflow-wrap:anywhere; }
/* With logos in the team boxes (UI-213) the boxes drop under the kickoff time rather than
   squeezing it a letter wide at large text (my-picks.css lays the heading out as a row). */
body.players-page #betslipDrawer .betslip-game-heading { flex-wrap:wrap; row-gap:0.25rem; }
body.players-page #betslipDrawer .betslip-game-heading > .betslip-game-time { flex:1 1 9em; }
body.players-page #betslipDrawer .betslip-game-picks { min-width:0; margin:0; padding:0; list-style:none; }
body.players-page #betslipDrawer .betslip-lock { display:inline-flex; align-items:center; gap:0.25rem; flex-shrink:0; margin-left:auto; color:#d2c1ef; font-size:0.5625rem; font-weight:650; line-height:1.5; white-space:nowrap; }
body.players-page #betslipDrawer .bet-tracking-result.result-started { background:#2d233b; color:#d2c1ef; }
body.players-page #betslipDrawer .betslip-track-link { display:inline-block; width:auto; max-width:100%; min-height:1.75rem; margin:0.3125rem 0 0; padding:0.25rem 0; border:0; background:none; color:#ad8ee3; font-size:0.625rem; line-height:1.5; text-align:left; text-decoration:underline; text-underline-offset:0.1875rem; white-space:normal; }
body.players-page #betslipDrawer .betslip-track-link:hover { color:var(--ink); }
@media(max-width:41.25em) {
  body.players-page #betslipDrawer[data-overlay] {
    inset:0.625rem 0.625rem auto auto !important; width:calc(100vw - 1.25rem) !important;
    max-height:calc(100dvh - 1.25rem) !important; padding:0.875rem !important; border-radius:var(--r-card) !important;
  }
  body.players-page #betslipDrawer[data-overlay] .betslip-heading { top:-0.875rem !important; }
}

/* Pick confirmations float without moving the page or taking focus. */
.bet-toast { position:fixed; inset:auto 1rem calc(1rem + env(safe-area-inset-bottom)) auto; z-index:100; box-sizing:border-box; width:max-content; max-width:min(27.5rem,calc(100vw - 2rem)); margin:0; padding:0.875rem 1.125rem; border:1px solid #3d9872; border-radius:var(--r-control); background:#143e2d; color:#c0f9e1; box-shadow:0 0.5rem 1.75rem #130e1966; font-size:0.8125rem; font-weight:600; line-height:1.5; overflow-wrap:anywhere; pointer-events:none; opacity:1; transition:opacity 180ms ease,transform 180ms ease; animation:bet-toast-enter 160ms ease-out; }
.bet-toast[data-tone=remove] { background:#49232e; border-color:#a84b66; color:#ffcfda; }
.bet-toast[data-tone=notice] { background:#3a3420; border-color:#8a7440; color:#ffeec2; max-width:min(24rem,calc(100vw - 2rem)); font-weight:500; }
.bet-toast::backdrop { background:transparent; pointer-events:none; }
.bet-toast.is-leaving { opacity:0; transform:translateY(0.375rem); }
@keyframes bet-toast-enter { from { opacity:0; transform:translateY(0.375rem); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .bet-toast { animation:none; transition:none; } }

/* The saved receipt stays distinct from the latest offered price. */
.saved-pick-note { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:baseline; gap:0.25rem 0.625rem; margin-top:0.375rem; padding:0.5rem 0.625rem; border-radius:var(--r-data); background:#123828; color:#c1ded2; font-size:0.6875rem; line-height:1.5; overflow-wrap:anywhere; text-align:left; min-width:0; }
.saved-pick-comparison { flex:1 1 11.25rem; min-width:0; }
.studio-focus-lines>.saved-pick-note { margin:0.625rem 0 0; }

html.game-injuries-open,html.game-injuries-open body { overflow:hidden; overscroll-behavior:none; }
#gameInjuriesDialog { width:min(60rem,calc(100% - 1.75rem)); padding:0; max-height:90vh; max-height:90dvh; overflow:hidden; background:var(--bg); }
#gameInjuriesDialog[open] { display:flex; flex-direction:column; }
.game-injuries-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.25rem 1.375rem; background:var(--surface); border-bottom:1px solid var(--line); flex-shrink:0; }
.game-injuries-heading h2 { margin:0; font-size:1.4375rem; line-height:1.3; }
#gameInjuriesMeta { margin:0.3125rem 0 0; font-size:0.75rem; color:var(--muted); }
#gameInjuriesClose { width:2.625rem; height:2.625rem; flex-shrink:0; border:1px solid var(--line); border-radius:var(--r-control); background:var(--surface-raised); }
#gameInjuriesBody { min-height:0; overflow:auto; overscroll-behavior:contain; padding:1.25rem 1.375rem; scrollbar-width:thin; }
/* Key injuries dialog (UI-700): each team a card of status groups (Out this week, Questionable,
   Back this week, the practice report, then "Still out" folded), one row and one status chip per
   player. .injury-chip is the status chip on its own, so other screens can use it (UI-701). */
.injury-chip { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; padding:0.25rem 0.4375rem; border:1px solid transparent; border-radius:var(--r-data); background:var(--surface-raised); color:var(--muted); font:800 0.75rem/1.1 var(--font-display); letter-spacing:0.04em; text-transform:uppercase; white-space:nowrap; }
.injury-chip.is-out { background:var(--negative-bg); color:var(--negative); }
.injury-chip.is-doubtful { background:#3d2c18; color:var(--orange); }
.injury-chip.is-questionable { background:#3d3218; color:var(--gold); }
.injury-chip.is-back { background:var(--positive-bg); color:var(--positive); }
.injury-chip.is-practice { color:var(--lilac); }
/* The practice report's own tones (UI-870): DNP a red-orange (redder than Doubtful's orange, warmer
   than Out's pink), Limited a lemon yellow (greener and paler than Questionable's gold). Full stays lilac.
   Kept before .is-carried so a dashed chip still drops its fill. */
.injury-chip.is-dnp { background:#42221a; color:#ff6b42; }
.injury-chip.is-limited { background:#33331a; color:#ece35c; }
/* A carried status (UI-608) is an earlier week's: outlined (dashed), not filled like this week's report. */
.injury-chip.is-carried { background:transparent; border-style:dashed; border-color:currentColor; }
.game-injury-teams { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.75rem; align-items:start; }
.game-injury-tabs { display:none; }
.game-injury-team { display:flex; flex-direction:column; gap:0.5rem; min-width:0; padding:0.75rem; border:1px solid var(--line); border-radius:var(--r-card); background:var(--surface); }
.game-injury-team-head { display:flex; flex-wrap:wrap; align-items:center; gap:0.375rem 0.5rem; }
.game-injury-team-head h3 { display:flex; align-items:center; gap:0.5rem; min-width:0; margin:0; font:900 1.25rem/1 var(--font-display); letter-spacing:0.01em; text-transform:uppercase; }
.game-injury-team-count { margin-left:auto; color:var(--muted); font:600 0.75rem/1.2 var(--font-body); white-space:nowrap; }
.game-injury-coverage,.game-injury-empty { margin:0; color:var(--muted); font-size:0.75rem; line-height:1.5; }
.game-injury-group { display:flex; flex-direction:column; min-width:0; }
.game-injury-group-head { display:flex; align-items:center; gap:0.375rem; margin:0; padding-top:0.25rem; color:var(--muted); font:800 0.75rem/1 var(--font-display); letter-spacing:0.09em; text-transform:uppercase; }
.game-injury-group-head i { flex:none; width:0.5rem; height:0.5rem; border-radius:var(--r-data); background:var(--line); }
.game-injury-group.is-out>.game-injury-group-head i { background:var(--negative); }
.game-injury-group.is-q>.game-injury-group-head i { background:var(--gold); }
.game-injury-group.is-back>.game-injury-group-head i { background:var(--positive); }
.game-injury-group.is-practice>.game-injury-group-head i { background:var(--lilac); }
.game-injury-group-count { color:var(--ink); font-size:0.9375rem; font-variant-numeric:tabular-nums; letter-spacing:0; }
.game-injury-rows { list-style:none; margin:0; padding:0; }
.game-injury-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:0.5625rem; align-items:center; padding:0.375rem 0; border-bottom:1px solid var(--line); }
.game-injury-row:last-child { border-bottom:0; }
.game-injury-row .player-avatar { position:relative; display:grid; place-items:center; width:1.875rem; height:1.875rem; overflow:hidden; border-radius:var(--r-control); background:linear-gradient(160deg,var(--surface-strong),var(--surface-raised)); box-shadow:inset 0 0 0 1px var(--line); color:var(--muted); font:700 0.625rem var(--font-body); }
.game-injury-row .player-headshot { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top; }
.game-injury-who { min-width:0; }
.game-injury-id { display:flex; align-items:baseline; gap:0.375rem; min-width:0; font-size:0.8125rem; line-height:1.3; }
.game-injury-id .pos-chip { flex:none; }
.game-injury-id .profile-name-button,.game-injury-name { min-width:0; font-weight:700; text-align:left; overflow-wrap:break-word; }
.game-injury-detail { margin:0.125rem 0 0; color:var(--muted); font-size:0.75rem; line-height:1.35; overflow-wrap:anywhere; }
.game-injury-row .injury-chip { min-width:6.125rem; }
/* Fantasy tags only on players someone owns: a free agent's "FA" says nothing here. */
#gameInjuriesDialog .owner-tag.is-fa { display:none; }
.game-injury-more>summary { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; margin-top:0.375rem; padding:0.4375rem 0.5rem; border-radius:var(--r-control); background:var(--surface-subtle); color:var(--muted); font:600 0.75rem/1.3 var(--font-body); cursor:pointer; list-style:none; }
.game-injury-more>summary::-webkit-details-marker { display:none; }
.game-injury-more>summary:hover { color:var(--ink); }
.game-injury-more>summary:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.game-injury-more-toggle { flex:none; color:var(--accent); font-weight:700; white-space:nowrap; }
.game-injury-more-toggle::after { content:"Show \25BE"; }
.game-injury-more[open] .game-injury-more-toggle::after { content:"Hide \25B4"; }
.game-injury-more[open]>summary { margin-bottom:0.125rem; }
.game-injury-source { margin:0.125rem 0 0; color:var(--muted); font-size:0.6875rem; line-height:1.4; }
.game-injury-source a { color:var(--accent); text-decoration:none; white-space:nowrap; }
.game-injury-source a:hover { text-decoration:underline; text-underline-offset:0.1875rem; }
.game-injury-tab { position:relative; display:flex; align-items:center; justify-content:center; gap:0.375rem; min-width:0; min-height:2.75rem; padding:0.375rem; border:1px solid var(--line); border-radius:var(--r-control); background:var(--surface); color:var(--muted); font:700 0.75rem/1.1 var(--font-body); cursor:pointer; }
.game-injury-tab:has(input:checked) { border-color:var(--accent); background:var(--selected-bg); color:var(--ink); }
.game-injury-tab:has(input:focus-visible) { outline:2px solid var(--accent); outline-offset:2px; }
#gameInjuriesBody>p { font-size:0.75rem; color:var(--muted); line-height:1.6; }
/* Narrow screens show one team at a time: the team boxes are tabs (radio buttons). */
@media(max-width:55em) {
  .game-injury-teams { grid-template-columns:minmax(0,1fr); }
  .game-injury-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.375rem; }
  .game-injury-teams:has(.game-injury-tab input[value="0"]:checked)>[data-injury-side="1"],
  .game-injury-teams:has(.game-injury-tab input[value="1"]:checked)>[data-injury-side="0"] { display:none; }
  /* The tab already shows the club's box and its count. */
  .game-injury-team-head { display:none; }
}
@media(max-width:37.125em) {
  .game-injuries-heading { padding:0.875rem; }
  .game-injuries-heading h2 { font-size:1.25rem; }
  #gameInjuriesBody { padding:0.75rem; }
  /* Room for the name: the chip narrows and "Questionable" shows as "Quest." (its text stays for screen readers). */
  .game-injury-row .injury-chip { min-width:4.625rem; font-size:0.6875rem; }
  .game-injury-row .injury-chip[data-short] { font-size:0; }
  .game-injury-row .injury-chip[data-short]::after { content:attr(data-short); font-size:0.6875rem; }
  /* The name keeps the line beside its position and wraps between words; a fantasy tag that
     doesn't fit drops to the next line (the tag's box dissolves so it can). */
  .game-injury-id { flex-wrap:wrap; row-gap:0.125rem; }
  #gameInjuriesBody .game-injury-id>.owner-name { display:contents; }
  #gameInjuriesBody .game-injury-id :is(.profile-name-button,.game-injury-name) { flex:1 1 0; min-width:3.5rem; }
  #gameInjuriesBody .game-injury-id .owner-tag { position:static; align-self:center; }
}
/* The narrowest phones drop the photo so a name isn't split mid-word. */
@media(max-width:22.5em) {
  .game-injury-row { grid-template-columns:minmax(0,1fr) auto; }
  .game-injury-row .player-avatar { display:none; }
}

/* Starred plays: the user's one play per game. */
/* An icon-only star is a 1.75rem square; a star with words (the My Picks drawer's "Star", the
   Player page's "My play") grows to fit them on one line. Hover lights the border and the icon
   (the first child), never the words, so they stay readable on a gold starred box (UI-380). */
.bet-star { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:0.375rem; min-width:1.75rem; width:auto; height:1.75rem; padding:0; white-space:nowrap; border:1px solid #4b3c62; border-radius:var(--r-control); background:none; color:#917fae; font-size:1rem; line-height:1; }
.bet-star:not(:disabled):hover { border-color:#f5c451; }
.bet-star:not([aria-pressed="true"]):not(:disabled):hover > :first-child { color:#f5c451; }
.bet-star[aria-pressed="true"] { color:#f5c451; border-color:#8a6d2a; background:#3a3218; }
.bet-star:disabled { opacity:1; cursor:default; border-color:transparent; }
.bet-star:disabled[aria-pressed="false"] { opacity:.35; }

.saved-pick-note[data-verdict=better-now] { background:#3a2f12; color:#ccb6f3; }

/* Betslip: a changed quote as one compact row with a verdict and, when today's
   offer is worth more, a Switch button. */
.betslip-move { margin-top:0.5rem; padding:0.5rem 0.625rem; border:1px solid var(--line); border-radius:var(--r-control); background:#1e1728; font-size:0.75rem; }
.betslip-verdict { padding:0.0625rem 0.5rem; border-radius:var(--r-data); background:var(--surface-raised); color:var(--ink); font-size:0.6875rem; font-weight:800; }
.betslip-switch { margin-left:auto; padding:0.3125rem 0.625rem; border:1px solid #e8b04a; border-radius:var(--r-control); background:#e8b04a; color:#1d1402; font:inherit; font-size:0.75rem; font-weight:800; cursor:pointer; }
.betslip-switch:hover, .betslip-switch:focus-visible { background:#f3c567; }
.betslip-move-why summary { margin-top:0.25rem; color:var(--muted); font-size:0.6875rem; cursor:pointer; width:fit-content; }
.betslip-move-why p { margin:0.25rem 0 0; color:var(--muted); font-size:0.6875rem; line-height:1.45; }
.betslip-move[data-verdict=better-now] { background:#2a2412; }
.betslip-move[data-verdict=better-now] .betslip-verdict { background:#e8b04a; color:#1d1402; }
.betslip-move[data-verdict=keep-yours] .betslip-verdict { background:#175139; color:#c9f5e3; }
.betslip-move-why summary { position:absolute; top:0.5rem; right:0.625rem; margin:0; }
.betslip-move-why[open] p { margin-top:0.5rem; }
.betslip-switch { flex:1 1 100%; margin:0.25rem 0 0; margin-right:-3rem; padding:0.4375rem 0.625rem; text-align:center; }

/* Your saved line reads like a selected price elsewhere: green. */
#betslipDrawer .betslip-item .betslip-line { background:#175139; border-color:var(--green); color:#dff5ec; }

/* A pick you hold at another line or price: amber outline and a label on the main
   line's button ("Yours 31.5 -114 · switch?" / "· keep"), anchored to its right
   edge so it never runs over the player. The full verdict is in its tooltip. */
.bet-side[data-saved-tag] { position:relative; overflow:visible; border-color:#e8b04a !important; box-shadow:inset 0 0 0 1px #e8b04a66; }
.bet-side[data-saved-tag]::after { content:attr(data-saved-tag); position:absolute; z-index:2; top:-0.5625rem; left:50%; transform:translateX(-50%); padding:0 0.375rem; border-radius:var(--r-control); background:#e8b04a; color:#1d1402; font-size:0.5625rem; font-weight:800; line-height:1.0625rem; letter-spacing:0; white-space:nowrap; box-shadow:0 1px 0 #0006; pointer-events:none; }
.bet-side[data-saved-verdict=keep-yours] { border-color:var(--green) !important; box-shadow:inset 0 0 0 1px #6bd8ab66; }
.bet-side[data-saved-verdict=keep-yours]::after { background:var(--green); color:#062619; }
/* A betslip card opens its pick's game log. */
#betslipItems .betslip-item[data-pick-key] { cursor:pointer; }
#betslipItems .betslip-item[data-pick-key]:hover { border-color:var(--accent); }

/* Sitewide responsible-gaming notice under the notebook disclaimer. */
.notebook-footer .responsible-gaming { margin:0.375rem 0 0; font-size:0.6875rem; font-weight:600; }
.notebook-footer .responsible-gaming a { color:inherit; }

/* "Tracking only; no bet placed." once per list wherever picks are made (UI-552;
   StudioTracking.html() in studio-betslip.js). Quiet: muted and small, never once per row. */
.tracking-only { margin:0.5rem 0 0; color:var(--muted); font-size:0.75rem; font-weight:400; line-height:1.4; letter-spacing:normal; text-transform:none; overflow-wrap:anywhere; }
.tracking-only.percentage-list-tracking { margin:0 0 0.75rem; }
.tracking-only.pp-tracking { margin:0; text-align:center; }
