/* V1.4 premium compact Picks UX (picks-mobile.js): one compact card per matchup on the Picks view below 761px (the comparison
   table keeps wider screens exactly as before), each kickoff slate a collapsible group behind its heading, the entries, slates
   and status controls, the entry and slate selection panels, and the collapsible Rules & rulings cards on the Games and
   Survivor views.
   Without the module the page is unchanged: the card and filter containers stay hidden, the table shows at every width and
   the page copy describes the table. */
.picks.is-mobile-ready .picks-filters,.picks.is-mobile-ready .picks-board,.pm-copy-cards{display:none}
@media(max-width:760px){
  .picks.is-mobile-ready .scroll{display:none}
  .picks.is-mobile-ready .picks-filters{display:block}
  .picks.is-mobile-ready .picks-board{display:grid;gap:12px;padding:0 10px 12px}
  .view-panel.is-mobile-ready .pm-copy-table{display:none}
  .view-panel.is-mobile-ready .pm-copy-cards{display:inline}
  .picks.is-mobile-ready>.head{flex-direction:column;align-items:flex-start;gap:3px;padding-bottom:9px}
  .picks.is-mobile-ready>.head h2{white-space:nowrap}
}
.pm-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Controls: the entries compared and the slates shown (one control each, opening its selection panel, side by side) and the
   game status; 44px targets. A long summary is cut with an ellipsis, never widening the row. */
.pm-filters{display:grid;gap:7px;padding:0 10px 10px}
.pm-row{display:flex;flex-wrap:wrap;gap:6px}
.pm-compare{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;flex:1 1 150px;min-width:0;min-height:44px;padding:0 11px 0 12px;border:1px solid #3a414b;border-radius:11px;background:linear-gradient(180deg,#151a21,#0d1116);color:var(--text);font-size:11px;font-weight:900;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 #ffffff0a}
.pm-compare:hover{border-color:#4a525d}
.pm-compare-copy{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.pm-compare-kicker{color:var(--dim);font-size:7.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.pm-compare b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.pm-caret{flex:0 0 auto;width:7px;height:7px;margin:0 2px 3px 0;border-right:2px solid #c54b51;border-bottom:2px solid #c54b51;transform:rotate(45deg)}
.pm-segments{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#0a0d12}
.pm-segment{min-height:42px;min-width:0;padding:0 4px;border:0;border-left:1px solid #ffffff0c;background:transparent;color:var(--muted);font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.pm-segment:first-child{border-left:0}
.pm-segment b{font-size:10px;color:var(--text);font-variant-numeric:tabular-nums}
.pm-segment[aria-pressed="true"]{background:linear-gradient(180deg,#8f1c22,#6f1116);color:#fff;box-shadow:inset 0 1px 0 #ffffff14}
.pm-segment[aria-pressed="true"] b{color:#fff}
.pm-note{margin:0;color:var(--dim);font-size:9px;line-height:1.45}
.pm-compare:focus-visible,.pm-segment:focus-visible,.pm-toggle:focus-visible,.pm-summary:focus-visible,.pm-slate-toggle:focus-visible,.pm-slates-action:focus-visible,.pm-entry:has(input:focus-visible),.rules-toggle:focus-visible{outline:2px solid #ef5a61;outline-offset:2px}
/* Disagreements only: one small switch under the status segments, off until tapped, disabled with fewer than two entries. */
.pm-options{display:flex;flex-wrap:wrap;gap:6px}
.pm-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:999px;background:#0a0d12;color:var(--muted);font-size:9.5px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pm-toggle:hover{border-color:#4a525d}
.pm-toggle-track{position:relative;flex:0 0 auto;width:26px;height:14px;border-radius:999px;background:#2a313b;box-shadow:inset 0 1px 2px #0008;transition:background .15s ease}
.pm-toggle-track::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#c8cbd0;transition:transform .15s ease}
.pm-toggle[aria-pressed="true"]{color:#fff;border-color:#d52d3466;background:#d52d3414}
.pm-toggle[aria-pressed="true"] .pm-toggle-track{background:linear-gradient(180deg,#8f1c22,#6f1116)}
.pm-toggle[aria-pressed="true"] .pm-toggle-track::after{transform:translateX(12px);background:#fff}
.pm-toggle:disabled{opacity:.45;cursor:default}
/* Kickoff slates: each is a collapsible group whose heading is its one control, a full-width 44px button with the chevron,
   the slate name, its date and game count and, while collapsed, the compact summary pills (each game counted once by its
   card's status, FINAL TIE, VOID and HOLD among them, then reviews, unverified results and the tiebreak game); the body holds
   the compact matchup cards and hides with the hidden attribute. Expand all and Collapse all are two quiet 42px text
   controls above the slates of All Slates. */
.pm-group{display:grid;gap:7px}
.pm-group-title{margin:4px 0 0;padding:0;font-size:11px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:#d84a50}
.pm-slate-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;width:100%;min-height:44px;margin:0;padding:5px 4px 5px 2px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pm-slate-toggle:hover{background:#ffffff05}
.pm-slate-chevron{width:8px;height:8px;margin:0 2px 3px 4px;border-right:2px solid #d84a50;border-bottom:2px solid #d84a50;transform:rotate(45deg);transition:transform .15s ease}
.pm-slate-toggle[aria-expanded="true"] .pm-slate-chevron{transform:rotate(-135deg);margin-bottom:-2px}
.pm-slate-copy{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 8px;min-width:0}
.pm-slate-meta{color:var(--dim);font-size:9px;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap}
.pm-slate-summary{grid-column:2;display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.pm-slate-summary:empty,.pm-group:not(.is-collapsed) .pm-slate-summary{display:none}
.pm-slate-pill{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;border:1px solid #ffffff14;font-size:7.5px;font-weight:900;letter-spacing:.06em;color:#c1c6cc;white-space:nowrap}
.pm-slate-pill-live{color:#ef5a61;border-color:#d52d3466;background:#d52d3414}
.pm-slate-pill-final{color:#a3a8ae}
.pm-slate-pill-upcoming{color:var(--dim)}
.pm-slate-pill-void{color:#c7b8ff;border-color:#8f7bd655}
.pm-slate-pill-hold{color:var(--orange);border-color:#f28a3d66}
.pm-slate-pill-tie,.pm-slate-pill-review{color:var(--gold);border-color:#f3bd4277}
.pm-slate-pill-issue{color:#ffb1b5;border-color:#d52d3459}
.pm-slate-pill-tiebreak{color:#8fc1ff;border-color:#1f3a5c}
.pm-slate-body{display:grid;gap:7px}
.pm-slates-bar{display:flex;justify-content:flex-end;gap:2px;margin:-4px 0 -8px}
.pm-slates-action{min-height:42px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:9.5px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pm-slates-action:hover{color:var(--text);background:#ffffff05}
.pm-card{border:1px solid #ffffff10;border-radius:12px;background:linear-gradient(180deg,#13171d,#0b0e13);box-shadow:inset 0 1px 0 #ffffff07,0 4px 14px #0004;overflow:hidden}
.pm-card.pm-kind-live{border-color:#d52d3455}
.pm-card.pm-kind-tie{border-color:#f3bd4240}
.pm-card.pm-kind-void{border-color:#8f7bd655;background:linear-gradient(180deg,#151324,#0b0a14)}
.pm-card.pm-kind-hold{border-color:#f28a3d55}
.pm-card.is-expanded{border-color:#ffffff22;box-shadow:inset 0 1px 0 #ffffff0c,0 10px 26px #0006}
/* The collapsed card is one button: the moment, one status pill, the exception flags, the teams and score, the result tokens. */
.pm-summary{display:grid;gap:7px;width:100%;min-height:56px;margin:0;padding:9px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pm-summary:hover{background:#ffffff05}
.pm-top{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.pm-moment{color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.pm-kind-live .pm-moment{color:#ef5a61}
.pm-status{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;border:1px solid #ffffff14;font-size:7.5px;font-weight:950;letter-spacing:.08em;color:#c1c6cc;white-space:nowrap}
.pm-status-live{color:#ef5a61;border-color:#d52d3466;background:#d52d3414}
.pm-status-final{color:#a3a8ae}
.pm-status-tie{color:var(--gold);border-color:#f3bd4277}
.pm-status-upcoming{color:var(--dim)}
.pm-status-void{color:#c7b8ff;border-color:#8f7bd655}
.pm-status-hold{color:var(--orange);border-color:#f28a3d66}
.pm-flag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;border:1px solid #ffffff14;font-size:7.5px;font-weight:900;letter-spacing:.06em;color:#c1c6cc;white-space:nowrap}
.pm-flag-review{color:var(--gold);border-color:#f3bd4277}
.pm-flag-tiebreak{color:#8fc1ff;border-color:#1f3a5c}
.pm-flag-issue{color:#ffb1b5;border-color:#d52d3459}
.pm-detail,.pm-chevron{margin-left:auto}
.pm-detail{min-width:0;color:var(--dim);font-size:9px;font-weight:800;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-detail+.pm-chevron{margin-left:4px}
.pm-chevron{flex:0 0 auto;width:8px;height:8px;margin-right:3px;margin-bottom:3px;border-right:2px solid #8d949d;border-bottom:2px solid #8d949d;transform:rotate(45deg);transition:transform .15s ease}
.pm-summary[aria-expanded="true"] .pm-chevron{transform:rotate(-135deg);margin-bottom:-2px}
.pm-matchup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.pm-side{display:inline-flex;align-items:center;gap:6px;min-width:0}
.pm-side.pm-home{justify-content:flex-end}
.pm-code{font-size:13px;font-weight:950;letter-spacing:.01em}
.pm-score{font-size:20px;font-weight:950;font-variant-numeric:tabular-nums;line-height:1}
.pm-winner .pm-code,.pm-winner .pm-score{color:var(--green)}
.pm-at{color:var(--dim);font-size:9px;font-weight:900}
.pm-badge{position:relative;width:30px;height:30px;flex:0 0 auto;border-radius:8px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--tc,#33465f) 45%,#11151b),#080b0f 72%);border:1px solid #ffffff1c;color:#fff;font-size:7px;font-weight:950;box-shadow:inset 0 0 0 1px #0005,0 3px 8px #0005}
.pm-badge.mini{width:22px;height:22px;border-radius:6px;font-size:6px}
.pm-badge-code{position:relative;z-index:0;opacity:.35}
.pm-logo{position:absolute;z-index:1;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);object-fit:contain;filter:drop-shadow(0 2px 3px #0008)}
.pm-results{display:flex;flex-wrap:wrap;gap:4px}
/* An open card lists every pick with its grade below, so its compact tokens step aside instead of repeating them. */
.pm-card.is-expanded .pm-results{display:none}
.pm-token{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 7px;border-radius:6px;background:#0a0d12;box-shadow:inset 0 0 0 1px #ffffff0a;font-size:10px;font-weight:900;color:#c8cdd4;white-space:nowrap}
.pm-token-pick{color:var(--text)}
.pm-token.no-pick .pm-token-pick{color:var(--dim)}
.pm-token-mark{font-size:10px;font-weight:950}
.pm-token.ok{box-shadow:inset 0 0 0 1px #42c97926}.pm-token.ok .pm-token-mark{color:var(--green)}
.pm-token.bad{box-shadow:inset 0 0 0 1px #d52d3426}.pm-token.bad .pm-token-mark{color:#ef6970}
.pm-token.pending{color:var(--muted)}
.pm-token.void{color:#b8adde}.pm-token.void .pm-token-pick{color:#d9d0ff}
.pm-token.hold{color:#d9a278}.pm-token.hold .pm-token-pick{color:#ffd0a8}
/* Chips for four or more compared entries are denser. Compact name labels put the chips on one row, one column per entry, so
   the same entry sits in the same column on every card (a label that still does not fit is cut, its full name spoken); full
   labels keep the chips at their width and wrap. */
.pm-token-pick,.pm-token-mark{flex:0 0 auto}
.pm-results.is-dense{gap:3px}
.pm-results.is-dense .pm-token{gap:3px;min-height:20px;padding:0 5px;font-size:9.5px}
.pm-results.is-dense .pm-token-mark{font-size:9px}
.pm-results.is-grid{display:grid;grid-template-columns:repeat(var(--pm-cols,1),minmax(0,1fr))}
.pm-results.is-grid .pm-token{justify-self:start;max-width:100%;min-width:0}
.pm-results.is-grid .pm-token-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* The expanded part: every selected entry's pick and grade, full-field ownership, and the explanations behind the flags. */
.pm-details{display:grid;gap:8px;padding:0 10px 10px;border-top:1px solid #ffffff0a}
.pm-picks{list-style:none;margin:0;padding:8px 0 0;display:grid;gap:3px}
.pm-pick{display:grid;grid-template-columns:minmax(64px,.8fr) minmax(0,1fr) auto;align-items:center;gap:8px;min-height:34px;padding:3px 7px;border-radius:8px;background:#0a0d12}
.pm-name{font-size:11px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-pick-team{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:950}
.pm-pick-team.no-pick{color:var(--muted);font-size:9px;letter-spacing:.06em}
.pm-result{font-size:9.5px;font-weight:950;white-space:nowrap;text-align:right}
.pm-pick.ok .pm-result{color:var(--green)}
.pm-pick.bad .pm-result{color:#ef6970}
.pm-pick.pending .pm-result{color:#858c95}
.pm-pick.void .pm-result{color:#c7b8ff}
.pm-pick.hold .pm-result{color:var(--orange)}
.pm-ownership{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:baseline;color:#8d949d;font-size:9px;font-weight:850}
.pm-ownership span:last-child{text-align:right}
.pm-ownership .contrarian{color:var(--gold)}
.pm-ownership small{color:var(--dim);font-size:8px;font-weight:700;text-align:center}
.pm-whys{display:grid;gap:4px}
.pm-why{display:block;color:var(--muted);font-size:9px;line-height:1.45;overflow-wrap:anywhere}
.pm-why b{display:inline-block;margin-right:6px;font-size:7.5px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#c1c6cc}
.pm-why-void b{color:#c7b8ff}.pm-why-review b{color:var(--gold)}.pm-why-issue b{color:#ffb1b5}.pm-why-tiebreak b{color:#8fc1ff}
/* The selection panels (entries, slates): one labelled 48px checkbox row per tracked entry or per slate of the week, Select
   all and Done. */
.pm-dialog{width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line2);border-radius:18px;background:#0d1015;color:var(--text);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain}
.pm-dialog::backdrop{background:#000c}
.pm-sheet{display:grid;gap:10px;padding:14px}
.pm-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pm-sheet-head h2{margin:2px 0 0;font-size:16px}
.pm-sheet-note{margin:0;color:var(--dim);font-size:10px;line-height:1.45}
.pm-sheet-list{display:grid;gap:6px}
.pm-entry{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:48px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:#11151b;cursor:pointer}
.pm-entry input{width:20px;height:20px;margin:0;accent-color:#d52d34}
.pm-entry-copy{display:flex;flex-direction:column;min-width:0}
.pm-entry-name{font-size:12px;font-weight:900}
.pm-entry-meta{margin-top:2px;color:var(--dim);font-size:8px}
/* The card name labels setting inside the panel: Compact or Full labels, one 42px segment each. */
.pm-sheet-setting{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#0a0d12}
.pm-sheet-setting-copy{display:grid;gap:2px}
.pm-sheet-setting-title{font-size:11px;font-weight:900}
.pm-sheet-setting-meta{color:var(--dim);font-size:9px;line-height:1.45}
.pm-segments-2{grid-template-columns:repeat(2,1fr);background:#11151b}
.pm-sheet-status{margin:0;color:#ffd278;font-size:10px;line-height:1.45}
.pm-sheet-status:empty{display:none}
.pm-sheet-actions{display:flex;flex-wrap:wrap;gap:8px}
body:has(.pm-dialog[open]){overflow:hidden}
/* Collapsible Rules & rulings (Games and Survivor): one Expand/Collapse control, the one-line summary while collapsed and
   the attention-worthy ruling states (ON HOLD, HOLD, UNDER REVIEW, RULINGS STALE, applied incidents) outside the body. */
.rules-collapsible .rules-head{align-items:center}
.rules-head-copy{min-width:0}
.rules-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:0 14px;border:1px solid var(--line2);border-radius:999px;background:#11151bf0;color:var(--text);font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;flex:0 0 auto}
.rules-toggle:hover{background:#1a2028}
.rules-chevron{width:9px;height:9px;border-right:2px solid #c54b51;border-bottom:2px solid #c54b51;transform:rotate(45deg);transition:transform .15s ease;margin-bottom:3px}
.rules-toggle[aria-expanded="true"] .rules-chevron{transform:rotate(-135deg);margin:3px 0 0}
.rules-status{display:grid;gap:6px;padding:0 15px 12px}
.rules-status:has(> .rules-summary:only-child:empty){display:none}
.rules-collapsible:not(.is-collapsed) .rules-summary{display:none}
.rules-summary{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.rules-alerts{display:grid;gap:5px}
.rules-alerts:empty{display:none}
.rules-alert-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:7px 9px;border:1px solid #ffffff14;border-radius:9px;background:#090c10;color:var(--muted);font-size:9px;line-height:1.45}
.rules-alert-line b{font-size:8px;font-weight:950;letter-spacing:.08em;white-space:nowrap}
.rules-alert-line.tone-bad{border-color:#d52d3459;background:#d52d3412;color:#ffb1b5}
.rules-alert-line.tone-warn{border-color:#f3bd4259;background:#f3bd4212;color:#ffe2a3}
.rules-alert-line.tone-info{border-color:#8f7bd655;background:#151324;color:#d9d0ff}
@media(prefers-reduced-motion:reduce){.rules-chevron,.pm-chevron,.pm-slate-chevron,.pm-toggle-track,.pm-toggle-track::after{transition:none}}
@media(max-width:480px){
  .rules-collapsible .rules-head{flex-wrap:wrap}.rules-toggle{width:100%;justify-content:center}
}
@media(max-width:400px){
  .pm-code{font-size:12px}.pm-score{font-size:18px}.pm-segment{font-size:9px;letter-spacing:.03em;gap:4px}.pm-token{font-size:9.5px;padding:0 6px}
  .pm-results.is-dense .pm-token{font-size:9px;padding:0 4px}
  .pm-pick{grid-template-columns:minmax(58px,.75fr) minmax(0,1fr) auto;gap:6px}
}
