/* 30PICK'EM — Picks v3 (North Star)
   Styles for everything AROUND the frozen Game of the Week on the Picks
   board: week/day chrome, filters, list header, day groups and the dense
   ordinary matchup card. Markup comes from renderPicks()/pv3Card() in
   premium-shell-v2.js.

   Scope rule: every selector here targets a pv3* class (or the pv3 logo
   shell size token). Nothing selects .p2Gotw*, .p2Game, .p2TeamPick or any
   other GOTW class, and .pv3GotwSlot only sets its own outer margin, so the
   GOTW renders exactly as it does from premium-shell-v2.css. */

/* Tokens are scoped to pv3 elements that never contain the GOTW (not :root,
   not .pv3Day, which now holds the GOTW in its chronological slot), so no
   custom property is inherited by the GOTW subtree. */
.pv3Chrome,.pv3Filters,.pv3ListHead,.pv3Card,.pv3Empty{
  --pv3-card:#061523;
  --pv3-card2:#04101a;
  --pv3-line:#17496d;
  --pv3-line-soft:rgba(29,105,157,.34);
  --pv3-text:#f5f8fc;
  --pv3-muted:#8196ad;
  --pv3-blue:#3fb0ff;
  --pv3-blue-deep:rgba(30,132,225,.26);
  --pv3-gold:#f0c14b;
  --pv3-green:#39d98a;
  --pv3-red:#ff5a5f;
  --pv3-amber:#ffb547;
}

/* ---------- Sticky week / day chrome ---------- */
.pv3Chrome{
  position:sticky;
  top:88px;
  z-index:12;
  display:flex;
  align-items:stretch;
  gap:8px;
  margin:0 -12px 8px;
  padding:8px 12px;
  border-bottom:1px solid rgba(28,138,224,.38);
  background:
    linear-gradient(180deg,rgba(3,11,21,.98),rgba(3,11,21,.94)),
    radial-gradient(circle at 50% 0%,rgba(24,155,255,.11),transparent 54%);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 8px 20px rgba(0,0,0,.22);
}
.pv3Week{
  position:relative;
  flex:0 0 auto;
  min-width:74px;
  height:46px;
  padding:5px 10px 7px;
  box-sizing:border-box;
  border-radius:10px;
  border:1px solid var(--pv3-blue);
  background:linear-gradient(180deg,rgba(26,112,190,.30),rgba(6,37,65,.62));
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  overflow:hidden;
  font-family:'Oswald',Inter,sans-serif;
  line-height:1;
}
.pv3Week b{color:#cfe6ff;font-size:11px;font-weight:700;letter-spacing:.08em}
.pv3WeekCount{color:#fff;font-size:16px;font-weight:700;letter-spacing:.03em}
.pv3Progress{position:absolute;left:8px;right:8px;bottom:4px;height:3px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.pv3Progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2a8fe8,#6cc6ff)}
.pv3Chrome.complete .pv3Week{
  border-color:var(--pv3-gold);
  background:linear-gradient(180deg,rgba(240,193,75,.30),rgba(84,60,10,.55));
  box-shadow:0 0 14px rgba(240,193,75,.32);
}
.pv3Chrome.complete .pv3Week b{color:#ffe7a6}
.pv3Chrome.complete .pv3Progress>i{background:linear-gradient(90deg,#d9a22c,#ffe08a)}
.pv3WeekTb{display:none}
.pv3Chrome.needsTb .pv3Week{cursor:pointer;border-color:#ffb547;background:linear-gradient(180deg,rgba(255,181,71,.24),rgba(84,50,6,.55));box-shadow:0 0 14px rgba(255,181,71,.35)}
.pv3Chrome.needsTb .pv3WeekLabel{display:none}
.pv3Chrome.needsTb .pv3WeekTb{display:block;color:#ffd27a;font-size:9.5px;letter-spacing:.05em}
.pv3Chrome.needsTb .pv3Progress>i{background:linear-gradient(90deg,#d98a1c,#ffc35a)}

.pv3Rail{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
  scroll-snap-type:x proximity;
}
.pv3Rail::-webkit-scrollbar{display:none}
.pv3DayBtn{
  position:relative;
  flex:0 0 auto;
  min-width:52px;
  height:46px;
  padding:0 8px;
  border-radius:10px;
  border:1px solid #164c78;
  background:#04111e;
  color:#a9bfd6;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  font-family:'Oswald',Inter,sans-serif;
  line-height:1;
  scroll-snap-align:start;
  cursor:pointer;
}
.pv3DayBtn b{font-size:12px;font-weight:700;letter-spacing:.07em}
.pv3DayBtn small{font-size:10px;font-weight:500;letter-spacing:.04em;color:#6f8aa6}
.pv3DayBtn.needs:after{content:'';position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--pv3-amber);box-shadow:0 0 6px rgba(255,181,71,.7)}
.pv3DayBtn.active{
  color:#fff;
  border-color:#42adff;
  background:linear-gradient(180deg,rgba(30,132,225,.34),rgba(9,48,82,.52));
  box-shadow:0 0 0 1px rgba(87,193,255,.34) inset,0 0 14px rgba(36,160,255,.4);
}
.pv3DayBtn.active small{color:#b9dcff}

/* ---------- Filters ---------- */
.pv3Filters{
  display:flex;
  gap:6px;
  margin:0 -12px;
  padding:2px 12px 10px;
  overflow-x:auto;
  scrollbar-width:none;
}
.pv3Filters::-webkit-scrollbar{display:none}
.pv3Filter{
  flex:0 0 auto;
  height:34px;
  min-width:48px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid #1b4f79;
  background:#051322;
  color:#b7c9dc;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
}
.pv3Filter.active{
  color:#1b1405;
  border-color:#ffd772;
  background:linear-gradient(180deg,#ffd978,#e6ae2f);
  box-shadow:0 0 12px rgba(240,193,75,.35);
}

/* ---------- Reserved GOTW slot (outer spacing only) ---------- */
/* GOTW + attached tiebreaker, placed in the GOTW's own day/time slot.
   Outer spacing only; nothing here reaches inside the GOTW. */
.pv3Featured{margin:12px 0 14px}
.pv3GotwSlot{scroll-margin-top:150px}

/* ---------- GOTW tiebreaker extension ----------
   A drawer hanging off the GOTW's flat bottom edge. It sits outside
   .pv3GotwSlot; its -18px top margin only cancels the GOTW's own 18px
   bottom margin (the two collapse to 0), so it starts exactly at the GOTW
   border without overlapping the GOTW box. Inset by the GOTW's 22px corner
   radius so it meets the straight part of the GOTW's bottom border.
   #gotwTiebreakerStatus keeps the legacy .gotwTiebreakerStatus class
   (setTiebreakerSaveState() writes it), whose styles.css rules use
   !important; the overrides below are scoped under .pv3Tb. */
.pv3Tb{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 74px auto;
  align-items:center;
  gap:8px;
  margin:-18px 20px 18px;
  padding:10px 12px 11px;
  border:1px solid rgba(54,169,255,.72);
  border-top:0;
  border-radius:0 0 16px 16px;
  background:
    radial-gradient(ellipse 70% 120% at 50% 0%,rgba(240,193,75,.10),transparent 70%),
    linear-gradient(180deg,#061529 0%,#020914 100%);
  box-shadow:
    inset 0 0 0 1px rgba(89,192,255,.10),
    0 0 20px rgba(21,147,255,.16),
    0 16px 30px rgba(0,0,0,.38);
}
.pv3Tb:before{
  content:'';
  position:absolute;
  top:0;
  left:14px;
  right:14px;
  height:1px;
  background:linear-gradient(90deg,rgba(240,193,75,0),rgba(255,224,138,.9) 30%,rgba(240,193,75,.9) 70%,rgba(240,193,75,0));
}
.pv3TbCopy{display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer}
.pv3TbCopy b{
  font-family:'Oswald',Inter,sans-serif;
  font-size:14px;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#f3c552;
  background:linear-gradient(180deg,#fff0bf 0%,#f3c552 55%,#c9922a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.pv3TbHint{color:#9fb6cc;font-size:11px;font-weight:600;line-height:1.2}
.pv3TbReq{display:none;color:#ffc35a;font-size:11px;font-weight:800;line-height:1.2}
.pv3TbInput{
  width:100%;
  height:42px;
  box-sizing:border-box;
  margin:0;
  padding:0 6px;
  border:1px solid #2a6fa8;
  border-radius:10px;
  background:#020a14;
  color:#fff;
  -webkit-text-fill-color:#fff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:21px;
  font-weight:600;
  text-align:center;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.45);
  -moz-appearance:textfield;
  appearance:textfield;
}
.pv3TbInput::-webkit-outer-spin-button,.pv3TbInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pv3TbInput::placeholder{color:#3f5a76;-webkit-text-fill-color:#3f5a76}
.pv3TbInput:focus{outline:none;border-color:#5cc0ff;box-shadow:inset 0 2px 6px rgba(0,0,0,.45),0 0 0 3px rgba(63,176,255,.22)}
.pv3TbInput:disabled{opacity:1;color:#c9d6e3;-webkit-text-fill-color:#c9d6e3;border-color:#23405c;background:#04101c}
.pv3Tb .gotwTiebreakerStatus{
  display:inline-flex!important;
  align-items:center;
  justify-content:center!important;
  min-width:78px;
  min-height:42px;
  height:42px;
  margin:0;
  padding:0 10px!important;
  border:1px solid #ffd772!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,#ffd978,#e6ae2f)!important;
  color:#1b1405!important;
  font-family:'Oswald',Inter,sans-serif;
  font-size:12px;
  font-weight:700!important;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap!important;
  cursor:pointer;
  opacity:1;
}
.pv3Tb .gotwTiebreakerStatus.saving{background:#0a1d33!important;border-color:#f0c14b!important;color:#ffd772!important}
.pv3Tb .gotwTiebreakerStatus.saved{background:rgba(57,217,138,.10)!important;border-color:rgba(57,217,138,.7)!important;color:#7ff0b5!important;cursor:default}
.pv3Tb .gotwTiebreakerStatus.error{background:rgba(255,90,95,.12)!important;border-color:rgba(255,90,95,.75)!important;color:#ffb3b5!important}
.pv3Tb .gotwTiebreakerStatus.pv3TbLockedState{background:#07131f!important;border-color:#2a4560!important;color:#a9bbcd!important;cursor:default}
/* Missing: a quiet cue. Card otherwise complete: loud and unmissable. */
.pv3Tb--missing .pv3TbInput{border-color:rgba(255,181,71,.6)}
.pv3Tb--required{border-color:rgba(255,181,71,.9);box-shadow:inset 0 0 0 1px rgba(255,181,71,.25),0 0 22px rgba(255,181,71,.28),0 16px 30px rgba(0,0,0,.38)}
.pv3Tb--required .pv3TbHint{display:none}
.pv3Tb--required .pv3TbReq{display:block}
.pv3Tb.needsAttention{border-color:#ffc35a;box-shadow:0 0 0 2px rgba(255,195,90,.55),0 0 26px rgba(255,181,71,.45),0 16px 30px rgba(0,0,0,.38)}
@media (prefers-reduced-motion:no-preference){
  .pv3Tb--required .pv3TbInput{animation:pv3TbPulse 1.6s ease-in-out infinite}
}
@keyframes pv3TbPulse{50%{box-shadow:inset 0 2px 6px rgba(0,0,0,.45),0 0 0 3px rgba(255,181,71,.35)}}

/* ---------- List head + day groups ---------- */
.pv3ListHead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin:12px 2px 2px;
}
.pv3ListHead h2{
  margin:0;
  color:var(--pv3-blue);
  font-family:'Oswald',Inter,sans-serif;
  font-size:18px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.pv3ListHead span{color:var(--pv3-muted);font-size:11px;font-weight:700;letter-spacing:.03em;text-align:right}
.pv3ListHead span b{color:var(--pv3-amber);font-weight:800}
.pv3Day{scroll-margin-top:150px}
.pv3DayTitle{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  padding:10px 4px 6px;
  font-family:'Oswald',Inter,sans-serif;
  text-transform:uppercase;
}
.pv3DayTitle span{color:#b8c6df;font-size:11px;font-weight:700;letter-spacing:.14em}
.pv3DayTitle small{color:#6f849b;font-size:10px;font-weight:600;letter-spacing:.1em}

/* ---------- Dense matchup card ----------
   [away pick] [center: sport · time · state · details] [home pick]
   Both pick targets and the Game Details target span the full card height. */
.pv3Card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);
  min-height:68px;
  margin-bottom:6px;
  border-radius:12px;
  border:1px solid var(--pv3-line);
  background:
    linear-gradient(180deg,rgba(255,255,255,.045) 0%,rgba(255,255,255,0) 22%),
    linear-gradient(180deg,var(--pv3-card),var(--pv3-card2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  overflow:hidden;
}
.pv3Card.is-picked{border-color:#23699a}
.pv3Card.is-live{border-color:rgba(255,90,95,.55);box-shadow:inset 3px 0 0 var(--pv3-red),inset 0 1px 0 rgba(255,255,255,.04)}
.pv3Card.is-correct{border-color:rgba(57,217,138,.55)}
.pv3Card.is-incorrect{border-color:rgba(255,90,95,.5)}
.pv3Card.is-locked,.pv3Card.is-final.is-nopick{background:linear-gradient(180deg,#07121d,#050d16)}

/* Team pick target */
.pv3Team{
  position:relative;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:7px 9px;
  border:0;
  background:transparent;
  color:var(--pv3-text);
  text-align:left;
  font:inherit;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.pv3Team-home{text-align:right}
.pv3TeamTop{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
.pv3Team-home .pv3TeamTop{flex-direction:row-reverse}
.pv3TeamName{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  min-width:0;
  font-size:12.5px;
  line-height:1.15;
  font-weight:750;
  letter-spacing:.005em;
  overflow-wrap:anywhere;
}
.pv3TeamName em{font-style:normal;color:#7cc4ff;font-size:10.5px;font-weight:800;margin-right:3px}
.pv3TeamName b{font-weight:inherit}
.pv3Fav{font-style:normal;color:var(--pv3-gold);font-size:10px;margin-right:3px}
.pv3Price{
  flex:0 0 auto;
  color:#dbe8f5;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  white-space:nowrap;
}
.pv3Price i{font-style:normal;color:#5f7892;font-size:9px;font-weight:600;letter-spacing:.08em;margin-right:3px}
.pv3Team-home .pv3Price i{margin:0 3px 0 0}
.pv3Score{
  flex:0 0 auto;
  color:#fff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:21px;
  font-weight:700;
  line-height:1;
}

/* Logo shell context size (Universal Logo Shell v1 extension point) */
/* Logo Shell v1 in the pick squares: the pv3 context token only (the global
   shell, modes and override registry are untouched). Larger shell, thinner
   bezel and a larger logo fill than the shell's 80%/72% defaults, plus a
   little more rim depth. The contained mode keeps its own fill. */
.logoShell-pv3{
  --ls-size:38px;
  box-shadow:
    0 0 calc(var(--ls-size) * .22) rgba(52,182,255,.16),
    0 3px 7px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.10);
}
.logoShell-pv3 .logoShellField{width:84%;height:84%}
.logoShell-pv3:not(.logoShell--contained) .logoShellImg{width:80%;height:80%}
.pv3Team.selected .logoShell-pv3{box-shadow:0 0 0 1.5px rgba(99,190,255,.7),0 0 12px rgba(52,182,255,.35),0 3px 7px rgba(0,0,0,.45)}
.pv3Team.selected.correct .logoShell-pv3{box-shadow:0 0 0 1.5px rgba(57,217,138,.8),0 0 12px rgba(57,217,138,.3),0 3px 7px rgba(0,0,0,.45)}
.pv3Team.selected.incorrect .logoShell-pv3{box-shadow:0 0 0 1.5px rgba(255,90,95,.75),0 3px 7px rgba(0,0,0,.45)}
.logoShell>.pv3Mark{
  position:absolute;
  top:-4px;
  right:-5px;
  z-index:1;
  width:15px;
  height:15px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#1f8fff;
  color:#fff;
  box-shadow:0 0 0 2px #06131f;
}
.pv3Team-home .logoShell>.pv3Mark{right:auto;left:-5px}
.logoShell>.pv3Mark svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.logoShell>.pv3MarkLock{background:#20364d;color:#9fb4ca}
.logoShell>.pv3MarkLock svg{stroke-width:2}

/* Selected */
.pv3Team.selected{
  background:linear-gradient(180deg,var(--pv3-blue-deep),rgba(11,73,116,.14));
  box-shadow:inset 0 0 0 1.5px rgba(63,176,255,.75),inset 0 0 18px rgba(34,160,255,.14);
}
.pv3Team.selected .pv3TeamName{color:#fff}

/* Locked (not final) */
/* styles.css has a global .locked{opacity:.5}; pv3 sets its own levels. */
.pv3Card .pv3Team.locked{opacity:1;cursor:default}
.pv3Card .pv3Team.locked:not(.selected){opacity:.5}
.pv3Card.is-locked .pv3Team.selected,.pv3Card.is-live .pv3Team.selected{
  background:linear-gradient(180deg,rgba(30,132,225,.16),rgba(11,73,116,.08));
  box-shadow:inset 0 0 0 1.5px rgba(63,176,255,.45);
}

/* Final: winner bright, loser dimmed; your pick green (correct) / red (incorrect) */
.pv3Card.is-final .pv3Team.locked:not(.selected){opacity:1}
.pv3Card.is-final.is-nopick .pv3Team.lost{opacity:.75}
.pv3Team.lost .pv3TeamName,.pv3Team.lost .pv3Score{color:#6d8196}
.pv3Team.lost .logoShell{opacity:.6}
.pv3Team.won .pv3Score{color:#fff}
.pv3Team.selected.correct{
  background:linear-gradient(180deg,rgba(57,217,138,.20),rgba(14,90,56,.10));
  box-shadow:inset 0 0 0 1.5px rgba(57,217,138,.8);
}
.pv3Team.selected.correct .logoShell>.pv3Mark{background:#1fb870}
.pv3Team.selected.incorrect{
  background:linear-gradient(180deg,rgba(255,90,95,.17),rgba(110,20,26,.10));
  box-shadow:inset 0 0 0 1.5px rgba(255,90,95,.75);
}
.pv3Team.selected.incorrect .logoShell>.pv3Mark{background:#e5484d}
.pv3Team.selected.incorrect .pv3TeamName{color:#ffd0d1}

/* Center: meta + Game Details target */
.pv3Center{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:6px 2px;
  border:0;
  border-left:1px solid var(--pv3-line-soft);
  border-right:1px solid var(--pv3-line-soft);
  background:rgba(2,9,16,.35);
  color:var(--pv3-text);
  font:inherit;
  text-align:center;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.pv3Sport{color:#8fa7bf;font-family:'Oswald',Inter,sans-serif;font-size:10px;font-weight:600;letter-spacing:.1em;line-height:1}
.pv3Sport small{margin-left:4px;color:#566d85;font-size:9px;letter-spacing:.04em}
.pv3When{
  max-width:100%;
  color:#fff;
  font-family:'Oswald',Inter,sans-serif;
  font-size:13px;
  font-weight:600;
  line-height:1.05;
  white-space:nowrap;
  letter-spacing:.01em;
  overflow-wrap:anywhere;
}
.pv3When.live{color:#ff8b8e;font-size:11px}
.pv3Chip{
  display:inline-flex;
  align-items:center;
  gap:3px;
  max-width:100%;
  padding:2px 4px;
  border-radius:5px;
  font-family:'Oswald',Inter,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.03em;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  color:#8fa7bf;
  background:rgba(255,255,255,.06);
}
.pv3Chip svg{width:9px;height:9px}
.pv3Chip-open{color:#8fd0ff;background:rgba(63,176,255,.12)}
.pv3Chip-soon{color:#1c1204;background:var(--pv3-amber)}
.pv3Chip-locked{color:#b4c3d3;background:rgba(160,180,200,.14)}
.pv3Chip-live{color:#fff;background:#d7373d}
.pv3Chip-live i{width:5px;height:5px;border-radius:50%;background:#fff}
.pv3Chip-final{color:#d7e2ee;background:rgba(255,255,255,.12)}
.pv3Chip-nopick{color:#d7e2ee;background:rgba(255,255,255,.12)}
.pv3Chip-correct{color:#04160d;background:var(--pv3-green)}
.pv3Chip-incorrect{color:#fff;background:#d7373d}
.pv3DetailsLink{display:inline-flex;align-items:center;gap:1px;color:var(--pv3-blue);font-size:9.5px;font-weight:700;letter-spacing:.02em;line-height:1}
.pv3DetailsLink svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

@media (hover:hover){
  .pv3Team:not(.locked):hover{background:rgba(63,176,255,.08)}
  .pv3Team.selected:not(.locked):hover{background:linear-gradient(180deg,rgba(30,132,225,.32),rgba(11,73,116,.18))}
  .pv3Center:hover .pv3DetailsLink{text-decoration:underline}
}
.pv3Team:focus-visible,.pv3Center:focus-visible,.pv3DayBtn:focus-visible,.pv3Filter:focus-visible{outline:2px solid #8fd0ff;outline-offset:-2px}
@media (prefers-reduced-motion:no-preference){
  .pv3Chip-live i{animation:pv3Pulse 1.4s ease-in-out infinite}
}
@keyframes pv3Pulse{50%{opacity:.25}}

/* Empty filter result */
.pv3Empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  margin:10px 0;
  padding:22px 16px;
  border-radius:12px;
  border:1px dashed #1d4b70;
  color:var(--pv3-muted);
  text-align:center;
  font-size:12px;
}
.pv3Empty b{color:#d7e5f3;font-size:14px}
.pv3Empty button{margin-top:6px;height:36px;padding:0 16px;border-radius:999px;border:1px solid #42adff;background:rgba(30,132,225,.2);color:#fff;font-weight:700;cursor:pointer}

@media(max-width:430px){
  .pv3Chrome{top:82px}
}
@media(max-width:374px){
  .logoShell-pv3{--ls-size:34px}
  .pv3Tb{grid-template-columns:minmax(0,1fr) 62px auto;gap:6px;margin-left:14px;margin-right:14px;padding:9px 10px 10px}
  .pv3TbCopy b{font-size:13px;letter-spacing:.1em}
  .pv3TbHint,.pv3TbReq{font-size:10.5px}
  .pv3Tb .gotwTiebreakerStatus{min-width:68px;padding:0 8px!important;font-size:11px;letter-spacing:.05em}
  .pv3Card{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)}
  .pv3When{font-size:11.5px}
  .pv3Chip{padding:2px 4px;font-size:8.5px;letter-spacing:.03em}
  .pv3Chip-locked svg{display:none}
  .pv3Team{padding:7px 7px}
  .pv3TeamName{font-size:12px}
  .pv3Price{font-size:12px}
  .pv3Week{min-width:66px;padding:5px 8px 7px}
  .pv3DayBtn{min-width:46px;padding:0 6px}
}

/* ---------- Picks masthead ----------
   The stadium backdrop is now the shared masthead background
   (premium-shell-v2.css); nothing Picks-specific remains here. */

/* ---------- GOTW generating-state note ----------
   Rendered only inside the existing "GENERATING PREMIUM MATCHUP ART" pill
   (queued/generating, no art yet). Absolutely positioned just under the pill,
   so the pill, hero and card dimensions are unchanged, and it never exists
   once the finished art is ready. */
.pv3GenNote{
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  margin-top:5px;
  padding:2px 8px;
  border-radius:999px;
  background:rgba(3,15,27,.62);
  color:#c3dcee;
  font-size:8.5px;
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.35;
  text-transform:none;
  white-space:nowrap;
  pointer-events:none;
}
@media(max-width:430px){
  .pv3GenNote{font-size:8px;margin-top:4px}
}


/* v0.9.48 — explicit end-of-board submit checkpoint */
.boardSubmitFooter{margin:18px 10px 108px;padding:0}
/* v0.9.49 polish: tighter, more premium CTA — still the clear finish line,
   but it no longer out-shouts the game cards. */
.boardSubmitFooterBtn{
  width:100%;min-height:50px;padding:0 14px;
  display:grid;grid-template-columns:30px minmax(0,1fr) 30px;align-items:center;gap:8px;
  border:1px solid rgba(255,228,128,.78);border-radius:13px;
  background:linear-gradient(180deg,#f9d566 0%,#ebb73a 55%,#d49b1c 100%);
  color:#080b0e;box-shadow:0 6px 18px rgba(0,0,0,.32),0 0 14px rgba(255,190,38,.14),inset 0 1px 0 rgba(255,255,255,.55);
  font-family:"Oswald",Inter,ui-sans-serif,sans-serif;font-size:16px;font-weight:700;letter-spacing:.11em;
  cursor:pointer;
}
.boardSubmitFooterBtn:active{transform:translateY(1px)}
.boardSubmitFooterBtn:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.38)}
.boardSubmitCheck{width:22px;height:22px;display:grid;place-items:center;justify-self:start;border-radius:6px;background:rgba(7,9,11,.88);color:#ffd64f;font-family:Inter,ui-sans-serif,sans-serif;font-size:13px;font-weight:900;line-height:1}
.boardSubmitCheck:empty{background:rgba(7,9,11,.22)}
.boardSubmitLabel{text-align:center;white-space:nowrap}
.boardSubmitArrow{justify-self:end;font-family:Inter,ui-sans-serif,sans-serif;font-size:28px;font-weight:500;line-height:.8;transform:translateY(-1px)}
.boardSubmitFooterBtn.needsTiebreaker .boardSubmitCheck{color:#ffcf3f}
@media(max-width:390px){
  .boardSubmitFooter{margin-left:4px;margin-right:4px}
  .boardSubmitFooterBtn{min-height:48px;grid-template-columns:28px minmax(0,1fr) 28px;padding:0 12px;font-size:15px}
}
