/* 30PICK'EM — Legacy Surface Cleanup v1. Loaded last.
   Presentation only for the reachable surfaces that still used the old
   black / gold treatment on a real iPhone:
     1. Log In / Create Account (#auth)
     2. stv1 additions for the sheets moved to stv1 in this pass
        (Money Pool participants, Favorite Teams, Locked Picks,
        Notification Preferences, update / password / signup sheets)
     3. Standings › History loading / empty / error states
     4. 30 Hub cohesion (hero, tab strip, chips, cards, empty/loading)
   No selector here matches Home, Picks, GOTW, Standings Week/Pool/Season
   layouts, the loaded Player Card, Profile, Menu/Admin or the bottom nav.
   Colours come from the existing stv1 / Standings v3 tokens. */

/* =====================================================================
   1. Log In / Create Account — same markup, ids and app-core behavior.
   The stadium plate + approved lockup stay; the panel, fields and actions
   move from the black/gold form to the navy / cyan / gold system.
   ===================================================================== */
#auth{
  --la-cyan:#00d2ff;--la-cyan-lt:#5fe3ff;--la-cyan-2:#8fdcff;
  --la-gold:#ffd24a;--la-text:#f6f9ff;--la-muted:#b3c3da;--la-dim:#8397b4;
  --la-cond:'PC5 Barlow Condensed','Barlow Condensed','Oswald','Arial Narrow',sans-serif;
  --la-sans:'PC5 Inter',Inter,'Helvetica Neue',Arial,sans-serif;
}
#auth .authbox>.card{
  position:relative!important;overflow:hidden!important;
  padding:20px 18px 18px!important;border-radius:18px!important;
  border:1px solid rgba(0,210,255,.36)!important;
  background:
    radial-gradient(120% 60% at 50% -10%,rgba(0,150,255,.16) 0%,rgba(0,150,255,0) 62%),
    linear-gradient(180deg,rgba(11,29,62,.95) 0%,rgba(6,17,38,.97) 55%,rgba(4,11,26,.98) 100%)!important;
  box-shadow:0 0 22px rgba(0,110,255,.18),0 22px 48px rgba(0,0,0,.45),inset 0 1px 0 rgba(223,249,255,.1)!important;
  color:var(--la-text);font-family:var(--la-sans);
}
#auth .authbox>.card:before{
  content:"";position:absolute;left:18%;right:18%;top:0;height:2px;border-radius:0 0 2px 2px;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,210,255,0),rgba(0,210,255,.9) 30%,rgba(255,210,74,.95) 70%,rgba(255,210,74,0));
  box-shadow:0 0 14px rgba(0,190,255,.35);
}
#auth #authTitle.title{
  display:block!important;padding:0 0 9px!important;margin:0!important;
  font-family:var(--la-cond)!important;font-style:normal!important;font-weight:700!important;
  font-size:30px!important;line-height:1!important;letter-spacing:.4px!important;text-transform:uppercase!important;
  color:var(--la-text)!important;text-shadow:0 2px 12px rgba(0,0,0,.45);
}
#auth #authTitle.title:after{left:1px!important;bottom:0!important;width:40px!important;height:3px!important;background:linear-gradient(90deg,var(--la-gold),rgba(255,210,74,0))!important}
#auth #authCopy.small{margin-top:9px;font-size:13px!important;line-height:1.45!important;font-weight:500;color:var(--la-muted)!important}
#auth .card .label{
  margin:14px 0 6px!important;font-family:var(--la-cond)!important;font-weight:700!important;
  font-size:13px!important;letter-spacing:1px!important;text-transform:uppercase!important;color:var(--la-cyan-2)!important;
}
#auth .card .input{
  min-height:50px!important;border-radius:12px!important;
  border:1px solid rgba(0,210,255,.34)!important;
  background-color:rgba(2,10,24,.82)!important;
  color:var(--la-text)!important;font-size:16px!important;font-weight:600!important;
  box-shadow:inset 0 1px 0 rgba(0,0,0,.35)!important;
}
#auth .card .input::placeholder{color:#6f86a3;font-weight:500}
#auth .card .input:focus{outline:none!important;border-color:var(--la-cyan-lt)!important;box-shadow:0 0 0 3px rgba(0,210,255,.18)!important}
#auth .passwordReveal{
  right:6px!important;padding:6px 9px!important;border-radius:8px!important;
  font-family:var(--la-cond)!important;font-weight:700!important;font-size:14px!important;letter-spacing:.8px!important;text-transform:uppercase;
  color:var(--la-cyan-lt)!important;background:rgba(0,210,255,.08)!important;
}
#auth .saveLoginRow{margin-top:14px!important;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,210,255,.22);background:rgba(3,12,28,.55)}
#auth .saveLoginDot{border-color:rgba(0,210,255,.6)!important;background:rgba(2,10,24,.8)}
#auth .saveLoginDot:after{background:var(--la-gold)!important}
#auth .saveLoginOption input:checked + .saveLoginDot{border-color:var(--la-gold)!important;box-shadow:0 0 10px rgba(255,210,74,.35)!important}
#auth .saveLoginOption input:focus-visible + .saveLoginDot{outline:2px solid var(--la-cyan-2);outline-offset:2px}
#auth .saveLoginOption b{font-family:var(--la-cond)!important;font-weight:700!important;font-size:15.5px!important;letter-spacing:.3px;color:var(--la-text)}
#auth .saveLoginOption small{color:var(--la-dim)!important;font-size:12px!important}
#auth #authSubmit.btn.primary{
  position:relative!important;min-height:52px!important;margin-top:4px;border:0!important;border-radius:12px!important;
  background:linear-gradient(180deg,#4a3509 0%,#231904 55%,#140e03 100%)!important;color:var(--la-gold)!important;
  font-family:var(--la-cond)!important;font-weight:700!important;font-size:19px!important;letter-spacing:.8px!important;text-transform:uppercase!important;
  box-shadow:0 0 18px rgba(255,210,74,.22)!important;
}
#auth #authSubmit.btn.primary:before{
  content:"";position:absolute;inset:0;border-radius:12px;padding:1.5px;pointer-events:none;
  background:linear-gradient(90deg,#ffd24a 0%,#ffe9a3 50%,#ffb800 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
}
#auth #authSubmit.btn.primary:disabled{opacity:.55}
#auth .forgotPasswordWrap{margin-top:10px!important}
#auth .forgotPasswordBtn{
  font-family:var(--la-cond)!important;font-weight:700!important;font-size:15px!important;letter-spacing:.4px!important;
  color:var(--la-cyan-lt)!important;text-decoration:none!important;padding:6px 2px!important;
}
#auth #authToggle.btn{
  min-height:48px!important;border-radius:12px!important;white-space:normal;
  border:1.5px solid rgba(0,210,255,.55)!important;background:linear-gradient(180deg,#0e2352 0%,#050e24 100%)!important;
  color:var(--la-cyan-lt)!important;box-shadow:0 0 12px rgba(0,170,255,.14)!important;
  font-family:var(--la-cond)!important;font-weight:700!important;font-size:17px!important;letter-spacing:.4px!important;line-height:1.1!important;
}
@media (max-width:360px){
  #auth .authbox>.card{padding:18px 14px 16px!important}
  #auth #authTitle.title{font-size:27px!important}
  #auth #authToggle.btn{font-size:15.5px!important}
}

/* =====================================================================
   2. stv1 additions for sheets moved in this pass
   ===================================================================== */
/* Toggle switch inside stv1 (Notification Preferences) — same input/label */
#modalSheet .stv1 .toggleSwitch{flex:0 0 52px}
#modalSheet .stv1 .toggleSwitch span{background:rgba(20,34,58,.9)!important;border:1px solid rgba(143,190,240,.28)!important;box-shadow:none!important}
#modalSheet .stv1 .toggleSwitch span:before{background:#c9d5e6!important;box-shadow:0 1px 3px rgba(0,0,0,.4)!important}
#modalSheet .stv1 .toggleSwitch input:checked+span{background:linear-gradient(180deg,#4a3509,#231904)!important;border-color:rgba(255,210,74,.85)!important;box-shadow:0 0 10px rgba(255,210,74,.2)!important}
#modalSheet .stv1 .toggleSwitch input:checked+span:before{background:#ffd24a!important}
#modalSheet .stv1 .toggleSwitch input:disabled+span{opacity:.5}
#modalSheet .stv1Prefs .stv1Master{padding:4px 12px}
#modalSheet .stv1Prefs .stv1Master .stv1Row{border-bottom:0}
#modalSheet .stv1Prefs .stv1RowMain>b{font-size:17px}

/* Money Pool participants: IN ✓ reads as included (green), ADD is the gold action */
#modalSheet .stv1MoneyMgr .stv1MoneyToggle{min-width:70px}
#modalSheet .stv1MoneyMgr .stv1MoneyToggle.in{border-color:rgba(62,224,143,.6);background:rgba(10,48,30,.62);color:var(--stv1-green-lt);box-shadow:none}
#modalSheet .stv1MoneyMgr .stv1MoneyRow.in .stv1RowMain>small{color:var(--stv1-green-lt)}
#modalSheet .stv1MoneyMgr .stv1Badge.ok,#modalSheet .stv1MoneyMgr .stv1Badge.muted{min-width:54px}

/* Favorite Teams: sport filter chips + team choices on the stv1 surface */
#modalSheet .stv1Favs .favoriteSportTabs{display:flex;flex-wrap:wrap;gap:6px;margin:0}
#modalSheet .stv1Favs .favoriteSportTab{
  min-height:32px;padding:0 12px;border-radius:999px;margin:0;
  border:1px solid rgba(62,150,214,.34)!important;background:rgba(4,20,44,.85)!important;color:#b5c8da!important;
  font-family:var(--stv1-cond);font-weight:700;font-size:14px;letter-spacing:.5px;box-shadow:none!important;
}
#modalSheet .stv1Favs .favoriteSportTab.active{border-color:rgba(255,210,74,.85)!important;background:linear-gradient(180deg,#3d2c07,#1c1404)!important;color:var(--stv1-gold)!important;box-shadow:0 0 10px rgba(255,210,74,.18)!important}
#modalSheet .stv1Favs .favoriteTeamChoices{display:flex;flex-direction:column;gap:7px}
#modalSheet .stv1Favs .favoriteTeamChoice{
  display:flex;align-items:center;gap:11px;width:100%;min-height:54px;margin:0;padding:8px 12px;border-radius:12px;text-align:left;
  border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;color:var(--stv1-text)!important;box-shadow:none!important;
}
#modalSheet .stv1Favs .favoriteTeamChoice>span:nth-child(2){flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
#modalSheet .stv1Favs .favoriteTeamChoice b{font-family:var(--stv1-cond);font-weight:700;font-size:17px;line-height:1.1;color:var(--stv1-text);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#modalSheet .stv1Favs .favoriteTeamChoice small{font-size:11.5px;letter-spacing:.6px;color:var(--stv1-dim)}
#modalSheet .stv1Favs .favoriteChoiceStar{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,210,255,.4)!important;background:rgba(4,22,48,.85)!important;color:#6f86a3!important;font-size:15px}
#modalSheet .stv1Favs .favoriteChoiceAction{flex:0 0 auto;min-width:64px;padding:6px 10px;border-radius:9px;text-align:center;font-family:var(--stv1-cond);font-weight:700;font-size:14.5px;letter-spacing:.4px;border:1.5px solid rgba(0,210,255,.6);color:var(--stv1-cyan-lt);background:rgba(4,14,30,.6)}
#modalSheet .stv1Favs .favoriteTeamChoice.selected{border-color:rgba(255,210,74,.7)!important;box-shadow:0 0 12px rgba(255,210,74,.12)!important}
#modalSheet .stv1Favs .favoriteTeamChoice.selected .favoriteChoiceStar{border-color:rgba(255,210,74,.8)!important;color:var(--stv1-gold)!important;background:rgba(34,24,4,.85)!important}
#modalSheet .stv1Favs .favoriteTeamChoice.selected .favoriteChoiceAction{border-color:rgba(255,210,74,.75);color:var(--stv1-gold);background:rgba(34,24,4,.7)}

/* Locked Picks: expandable game cards on the stv1 surface (same classes / ids) */
#modalSheet .stv1Locked .stv1LockedBar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--stv1-cond);font-weight:700;font-size:14px;letter-spacing:1.2px;text-transform:uppercase;color:var(--stv1-cyan-lt)}
#modalSheet .stv1Locked .lockedGameList{display:flex;flex-direction:column;gap:8px}
#modalSheet .stv1Locked .lockedGameCard{margin:0!important;border-radius:14px!important;border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;box-shadow:0 0 12px rgba(0,110,255,.1)!important;overflow:hidden}
#modalSheet .stv1Locked .lockedGameCard.expanded{border-color:rgba(0,210,255,.6)!important;box-shadow:0 0 16px rgba(0,170,255,.18)!important}
#modalSheet .stv1Locked .lockedGameToggle{background:transparent!important;border:0!important;color:var(--stv1-text)!important}
#modalSheet .stv1Locked .lockedGameSeq{font-family:var(--stv1-cond);font-weight:700;font-size:12.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--stv1-gold)!important}
#modalSheet .stv1Locked .lockedGameSummary b{font-family:var(--stv1-cond);font-weight:700;font-size:17.5px;line-height:1.15;color:var(--stv1-text)!important}
#modalSheet .stv1Locked .lockedGameSummary .small{color:var(--stv1-dim)!important}
#modalSheet .stv1Locked .lockedStatus{padding:3px 8px;border-radius:999px;border:1px solid rgba(0,210,255,.45)!important;background:rgba(0,210,255,.1)!important;color:var(--stv1-cyan-lt)!important;font-family:var(--stv1-cond);font-weight:700;font-size:12px;letter-spacing:.7px;text-transform:uppercase}
#modalSheet .stv1Locked .lockedChevron{color:var(--stv1-cyan-lt)!important}
#modalSheet .stv1Locked .lockedGameBody{border-top:1px solid var(--stv1-line-soft)!important;background:rgba(2,10,24,.35)!important}
#modalSheet .stv1Locked .pickSplitLabels{color:var(--stv1-muted)!important}
#modalSheet .stv1Locked .pickSplitLabels b{color:var(--stv1-text)!important}
#modalSheet .stv1Locked .pickSplitBar{background:rgba(255,210,74,.28)!important;border:0!important}
#modalSheet .stv1Locked .pickSplitBar>span{background:linear-gradient(90deg,#00a8ff,#5fe3ff)!important}
#modalSheet .stv1Locked .lockedPickRow{border-bottom:1px solid var(--stv1-line-soft)!important;color:var(--stv1-text)}
#modalSheet .stv1Locked .lockedPickRow.me{background:linear-gradient(90deg,rgba(0,150,255,.2),rgba(0,110,210,.06))!important;box-shadow:inset 2px 0 0 #5cc8ff}
#modalSheet .stv1Locked .lockedPickRow{display:flex!important;gap:10px!important}
#modalSheet .stv1Locked .lockedPickRow .playerCell{flex:1 1 auto;min-width:42%}
#modalSheet .stv1Locked .lockedPickRow b{flex:0 1 auto;max-width:56%;font-family:var(--stv1-cond);font-weight:700;font-size:16px;line-height:1.15;letter-spacing:.2px;color:var(--stv1-gold-lt)!important;overflow-wrap:anywhere}
#modalSheet .stv1Locked .lockedPickRow b.mutedPick{color:var(--stv1-dim)!important}

/* Update / signup details */
#modalSheet .stv1VersionPath{justify-content:center;gap:10px}
#modalSheet .stv1VersionPath>span{font-family:var(--stv1-mono);font-size:14px;letter-spacing:.4px;padding:5px 10px}
#modalSheet .stv1LinkBtn{min-height:40px;font-size:15px;border-style:dashed}
#modalSheet .stv1Signup .stv1Pair .stv1Btn{font-size:15.5px}

/* =====================================================================
   3. Standings › History states (the other modes keep .sv3Loading)
   ===================================================================== */
#standings .sv3HistLoading{display:flex;flex-direction:column;gap:10px}
#standings .sv3HistLoadHead{display:flex;align-items:center;gap:10px;padding:2px 2px 0;font-family:var(--sv3-head);font-size:14px;letter-spacing:.02em;color:var(--sv3-muted)}
#standings .sv3Spin{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(92,200,255,.2);border-top-color:var(--sv3-cyan);animation:laSpin .8s linear infinite}
@keyframes laSpin{to{transform:rotate(360deg)}}
#standings .sv3HistSkel{cursor:default;pointer-events:none}
#standings .sv3HistSkel i{display:block;height:9px;border-radius:5px;background:linear-gradient(90deg,rgba(92,200,255,.10),rgba(92,200,255,.22),rgba(92,200,255,.10));background-size:200% 100%;animation:laShimmer 1.4s ease-in-out infinite}
#standings .sv3HistSkel .sv3HistWeek i:first-child{width:62%;height:13px}
#standings .sv3HistSkel .sv3HistWeek i+i{width:44%;margin-top:6px}
#standings .sv3HistSkel .sv3HistWinner>span:last-child{flex:1 1 auto}
#standings .sv3HistSkel .sv3HistWinner>span:last-child i:first-child{width:70%;height:12px}
#standings .sv3HistSkel .sv3HistWinner>span:last-child i+i{width:40%;margin-top:6px}
#standings .sv3HistSkel .sv3HistMe{min-width:62px}
#standings .sv3HistSkel .sv3HistMe i:first-child{width:56px;height:12px}
#standings .sv3HistSkel .sv3HistMe i+i{width:44px;margin-top:6px}
#standings .sv3HistSkel .sv3HistTrophy,#standings .sv3HistSkel .sv3Chev{opacity:.35}
@keyframes laShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){#standings .sv3Spin{animation-duration:2.4s}#standings .sv3HistSkel i{animation:none}}
#standings .sv3HistState{
  display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 18px 24px;border-radius:14px;text-align:center;
  border:1px solid var(--sv3-line);background:radial-gradient(90% 70% at 50% 0%,rgba(0,150,255,.12),rgba(0,150,255,0) 70%),var(--sv3-panel);
  box-shadow:0 0 14px rgba(0,110,255,.1),inset 0 1px 0 rgba(223,249,255,.07);
}
#standings .sv3HistStateIco{display:grid;place-items:center;width:52px;height:52px;margin-bottom:4px;border-radius:50%;border:1.5px solid rgba(233,194,100,.7);background:radial-gradient(circle at 40% 30%,rgba(233,194,100,.2),rgba(20,14,3,.9) 70%);color:var(--sv3-gold);box-shadow:0 0 16px rgba(233,194,100,.18)}
#standings .sv3HistStateIco svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
#standings .sv3HistState b{font-family:var(--sv3-head);font-size:19px;font-weight:600;letter-spacing:.01em;color:var(--sv3-text)}
#standings .sv3HistState span{max-width:300px;font-size:13px;line-height:1.45;color:var(--sv3-muted)}
#standings .sv3HistState.error{border-color:rgba(255,107,125,.45)}
#standings .sv3HistState.error .sv3HistStateIco{border-color:rgba(255,107,125,.7);background:radial-gradient(circle at 40% 30%,rgba(255,107,125,.2),rgba(40,8,14,.9) 70%);color:#ff9aa7;box-shadow:0 0 16px rgba(255,80,100,.16)}

/* =====================================================================
   4. 30 Hub cohesion — restrained colour/border changes only. Structure,
   tabs, feeds, filters and handlers are untouched; the loaded Player Card
   (#hubResumeBody .pc5) and its tab strip are not matched.
   (The 0.5.35 hero/tab rules are injected at runtime with !important,
   so these carry an extra #app qualifier to win without reordering.)
   ===================================================================== */
#app #hub{
  --hub-panel:linear-gradient(180deg,rgba(11,27,50,.94) 0%,rgba(6,16,31,.97) 100%);
  --hub-tile:linear-gradient(180deg,rgba(13,36,72,.7) 0%,rgba(6,18,40,.86) 100%);
  --hub-line:rgba(62,150,214,.36);--hub-line-soft:rgba(62,150,214,.2);
  --hub-cyan:#5cc8ff;--hub-cyan-2:#8fdcff;--hub-gold:#e9c264;--hub-gold-2:#ffe29a;
  --hub-text:#f4f8fc;--hub-muted:#9fb3c8;--hub-dim:#7189a3;
}
/* Hero: navy stadium panel instead of the brown gold block */
#app #hub .hubPageHero.hubHero0535{
  border:1px solid rgba(0,210,255,.34)!important;
  background:
    linear-gradient(180deg,rgba(6,18,42,.5) 0%,rgba(5,14,34,.88) 62%,rgba(4,11,28,.96) 100%),
    url("assets/premium/home-stadium-plate.svg") center 22%/cover no-repeat,#061433!important;
  box-shadow:0 0 18px rgba(0,110,255,.16),inset 0 1px 0 rgba(223,249,255,.1)!important;
}
#app #hub .hubPageHero.hubHero0535 .hubHeroDescriptor0535{color:#b3c3da!important}
/* Tab strip (not in Player Card mode) — Standings v3 tab language */
#app #hub:not(.hubPlayerCardActive) .hubPageTabs{border-color:var(--hub-line-soft)!important;background:rgba(3,12,24,.78)!important;box-shadow:none!important}
#app #hub:not(.hubPlayerCardActive) .hubPageTab{border:1px solid rgba(62,150,214,.28)!important;background:linear-gradient(180deg,rgba(12,30,54,.9),rgba(6,17,32,.92))!important;color:#b5c8da!important}
#app #hub:not(.hubPlayerCardActive) .hubPageTab.active{
  border-color:rgba(255,226,154,.85)!important;background:linear-gradient(180deg,#3d2c07 0%,#241904 55%,#150e03 100%)!important;
  color:var(--hub-gold-2)!important;box-shadow:0 0 0 1px rgba(233,194,100,.35) inset,0 0 16px rgba(233,194,100,.22)!important;
}
/* The 30 feature card */
#app #hub .hubWeekFeature{border-color:var(--hub-line)!important;background:radial-gradient(90% 60% at 85% 0%,rgba(0,150,255,.14),rgba(0,150,255,0) 60%),var(--hub-panel)!important;box-shadow:0 0 16px rgba(0,110,255,.12),inset 0 1px 0 rgba(223,249,255,.08)!important}
#app #hub .hubWeekFeature .hubWeekGlow{opacity:0!important}
#app #hub .hubWeekMetrics>div{border-color:rgba(0,210,255,.24)!important;background:var(--hub-tile)!important}
#app #hub .hubWeekMetrics>div span{color:var(--hub-dim)!important}
#app #hub .hubWeekSports>span{border-color:rgba(62,150,214,.3)!important;background:rgba(4,20,44,.8)!important;color:#c9d5e6!important}
#app #hub .hubWeekSports>span b{color:var(--hub-cyan-2)!important}
#app #hub .hubSpotlight{border-color:rgba(0,210,255,.28)!important;background:rgba(3,12,28,.6)!important}
#app #hub .hubSpotlightBadge{color:var(--hub-gold)!important}
#app #hub .hubWeekActions .btn:not(.primary),#app #hub .hubSectionHead .btn,#app #hub .newsHeader .btn,#app #hub .todaySportsEmpty .btn{
  border:1.5px solid rgba(0,210,255,.55)!important;background:linear-gradient(180deg,#0e2352 0%,#050e24 100%)!important;color:#5fe3ff!important;box-shadow:0 0 10px rgba(0,170,255,.12)!important
}
#app #hub .hubWeekActions .btn.primary,#app #hub .hubWeekEmpty .btn{
  border:1px solid rgba(255,210,74,.85)!important;background:linear-gradient(180deg,#4a3509 0%,#231904 55%,#140e03 100%)!important;color:#ffd24a!important;box-shadow:0 0 14px rgba(255,210,74,.18)!important
}
/* Today / News section heads + filter chips (same size, navy base, gold selection) */
#app #hub .hubSectionHead,#app #hub .newsHeader{border-bottom-color:var(--hub-line-soft)!important}
#app #hub .todaySportsFilterGroup{border-color:var(--hub-line-soft)!important;background:rgba(3,12,24,.55)!important}
#app #hub .todaySportsTab,#app #hub .newsTab{border-color:rgba(62,150,214,.32)!important;background:rgba(4,20,44,.85)!important;color:#b5c8da!important}
#app #hub .todaySportsTab.active,#app #hub .newsTab.active{border-color:rgba(255,210,74,.85)!important;background:linear-gradient(180deg,#3d2c07,#1c1404)!important;color:#ffe29a!important;box-shadow:0 0 10px rgba(255,210,74,.16)!important}
#app #hub .todaySportsQuickStats>*{border-color:rgba(0,210,255,.24)!important;background:var(--hub-tile)!important}
/* Game rows and news stories: navy cards */
#app #hub .todayGameRow{border-color:var(--hub-line)!important;background:var(--hub-panel)!important}
#app #hub .todayGameRow.favorite,#app #hub .todayGameRow.onBoard{border-color:rgba(233,194,100,.5)!important}
#app #hub .todaySport{color:var(--hub-gold)!important}
#app #hub .newsStory{border-color:var(--hub-line)!important;background:var(--hub-panel)!important;box-shadow:0 0 12px rgba(0,110,255,.08)!important}
#app #hub .newsReadLink{color:#5fe3ff!important}
/* Empty / loading / error cards */
#app #hub .hubPageLoading,#app #hub .todaySportsEmpty,#app #hub .newsEmpty,#app #hub .hubWeekEmpty,#app #hub .hubPagePanel>.notice,#app #hub #hubThe30Body>.notice,#app #hub #hubResumeBody>.notice,#app #hub #newsList>.notice{
  border:1px solid var(--hub-line)!important;background:radial-gradient(90% 70% at 50% 0%,rgba(0,150,255,.1),rgba(0,150,255,0) 70%),var(--hub-panel)!important;color:var(--hub-text)!important;
  box-shadow:0 0 12px rgba(0,110,255,.1),inset 0 1px 0 rgba(223,249,255,.07)!important;
}
#app #hub #newsList>.notice.warn{border-color:rgba(255,181,71,.5)!important}
#app #hub #newsList>.notice.warn b{color:#ffd08a!important}
#app #hub .hubPageLoading>span{background:#5cc8ff!important;box-shadow:0 0 10px rgba(92,200,255,.55)!important}
#app #hub .todaySportsEmptyIcon,#app #hub .newsEmpty .premiumEmptyIcon{border-color:rgba(233,194,100,.6)!important;background:rgba(20,14,3,.85)!important;color:#e9c264!important}

/* Account Settings (stv1): avatar picker + upload row on the navy surface */
#modalSheet .stv1Account .customAvatarRow{display:flex;align-items:center;gap:12px;margin:2px 0 4px}
#modalSheet .stv1Account #customAvatarPreview .playerAvatar{width:56px!important;height:56px!important;flex:0 0 56px!important;font-size:20px!important;border:2px solid rgba(0,210,255,.7)!important;box-shadow:0 0 12px rgba(0,170,255,.25)!important}
#modalSheet .stv1Account .avatarUploadBtn{cursor:pointer;margin-bottom:5px}
#modalSheet .stv1Account .avatarPicker,#modalSheet .stv1Account .avatarHelmetGrid{gap:8px}
#modalSheet .stv1Account .avatarChoice{border:1px solid rgba(62,150,214,.34)!important;background:rgba(4,20,44,.85)!important;box-shadow:none!important}
#modalSheet .stv1Account .avatarChoice.selected{border-color:rgba(255,210,74,.9)!important;background:rgba(34,24,4,.85)!important;box-shadow:0 0 12px rgba(255,210,74,.28)!important}
#modalSheet .stv1Account .nextLockLabel{font-family:var(--stv1-cond);font-weight:700;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--stv1-cyan-2)!important}
#modalSheet:has(.stv1Account) .accountReleaseVersion{color:var(--stv1-dim,#8397b4)!important;font-size:12px}

/* Week Recap (stv1): champion, your week, awards, table */
#modalSheet .stv1Recap .recapChampion{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;border:1px solid rgba(255,210,74,.55)!important;background:linear-gradient(180deg,rgba(52,38,8,.5),rgba(20,14,3,.6))!important;box-shadow:0 0 16px rgba(255,210,74,.12)}
#modalSheet .stv1Recap .recapChampionMark{border-color:rgba(255,210,74,.8)!important;background:rgba(34,24,4,.9)!important;color:var(--stv1-gold)!important;font-family:var(--stv1-cond)}
#modalSheet .stv1Recap .recapChampion span{color:var(--stv1-gold)!important;font-family:var(--stv1-cond);font-weight:700;letter-spacing:1.2px}
#modalSheet .stv1Recap .recapChampion b{font-family:var(--stv1-cond);font-weight:700;font-size:21px;color:var(--stv1-text)}
#modalSheet .stv1Recap .recapChampion small{color:var(--stv1-muted)}
#modalSheet .stv1Recap .weeklyRecapCard{margin:0!important;padding:12px!important;border-radius:14px!important;border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;box-shadow:0 0 14px rgba(0,110,255,.1)!important}
#modalSheet .stv1Recap .weeklyRecapTop span{color:var(--stv1-cyan-lt)!important;font-family:var(--stv1-cond);letter-spacing:1.2px}
#modalSheet .stv1Recap .weeklyRecapTop b{font-family:var(--stv1-cond);font-weight:700;font-size:20px;color:var(--stv1-text)}
#modalSheet .stv1Recap .recapStats>div{border:1px solid rgba(0,210,255,.24)!important;background:var(--stv1-tile)!important;border-radius:11px!important}
#modalSheet .stv1Recap .recapStats span{color:var(--stv1-dim)!important;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;font-weight:700}
#modalSheet .stv1Recap .recapStats b{font-family:var(--stv1-cond);font-weight:700;font-size:22px;color:var(--stv1-text)}
#modalSheet .stv1Recap .weeklyRecapCard>.small{color:var(--stv1-dim)!important}
#modalSheet .stv1Recap .weeklyAwards>.boardKicker{font-family:var(--stv1-cond);font-weight:700;font-size:13.5px;letter-spacing:1.3px;color:var(--stv1-cyan-lt)!important;margin-bottom:6px}
#modalSheet .stv1Recap .weeklyAward{border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;border-radius:13px!important;box-shadow:none!important}
#modalSheet .stv1Recap .weeklyAwardIcon{border:1px solid rgba(255,210,74,.55)!important;background:rgba(34,24,4,.8)!important}
#modalSheet .stv1Recap .weeklyAward span{color:var(--stv1-gold)!important;font-family:var(--stv1-cond);letter-spacing:1px}
#modalSheet .stv1Recap .weeklyAward b{font-family:var(--stv1-cond);font-weight:700;font-size:18px;color:var(--stv1-text)}
#modalSheet .stv1Recap .weeklyAward small{color:var(--stv1-muted)}
#modalSheet .stv1Recap .stv1RecapTable{padding:6px 10px 4px}
#modalSheet .stv1Recap .recapHead{border-bottom:1px solid var(--stv1-line-soft)!important;font-family:var(--stv1-cond);font-weight:700;font-size:12.5px;letter-spacing:1px;text-transform:uppercase;color:var(--stv1-cyan-2)!important}
#modalSheet .stv1Recap .recapRow{border-bottom:1px solid var(--stv1-line-soft)!important;color:var(--stv1-text)}
#modalSheet .stv1Recap .recapRow:last-child{border-bottom:0!important}
#modalSheet .stv1Recap .recapRow>b:first-child{font-family:var(--stv1-cond);color:var(--stv1-muted)}
#modalSheet .stv1Recap .recapRow>b:nth-child(3){font-family:var(--stv1-cond);font-size:17px;color:var(--stv1-gold-lt)}
#modalSheet .stv1Recap .recapRow.me{border-radius:9px;margin:2px -4px;padding-left:4px;padding-right:4px}

/* Today in Sports sheet (stv1): same stats / filters / rows as the Hub Today tab */
#modalSheet .stv1Today .todaySportsQuickStats{margin:0!important}
#modalSheet .stv1Today .todaySportsQuickStats>span{border:1px solid rgba(0,210,255,.24)!important;background:var(--stv1-tile)!important;color:var(--stv1-dim)!important;border-radius:11px!important}
#modalSheet .stv1Today .todaySportsQuickStats b{font-family:var(--stv1-cond);color:var(--stv1-text)!important}
#modalSheet .stv1Today .todaySportsFilterGroup{margin:0!important;border-color:var(--stv1-line-soft)!important;background:rgba(3,12,28,.55)!important}
#modalSheet .stv1Today .todaySportsTab{border:1px solid rgba(62,150,214,.32)!important;background:rgba(4,20,44,.85)!important;color:#b5c8da!important;box-shadow:none!important}
#modalSheet .stv1Today .todaySportsTab.active{border-color:rgba(255,210,74,.85)!important;background:linear-gradient(180deg,#3d2c07,#1c1404)!important;color:#ffe29a!important;box-shadow:0 0 10px rgba(255,210,74,.16)!important}
#modalSheet .stv1Today .todaySportsModalBody{display:flex;flex-direction:column;gap:8px;margin:0!important}
#modalSheet .stv1Today .todayGameRow{margin:0!important;border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;border-radius:13px!important;box-shadow:none!important}
#modalSheet .stv1Today .todayGameRow.favorite,#modalSheet .stv1Today .todayGameRow.onBoard{border-color:rgba(255,210,74,.5)!important}
#modalSheet .stv1Today .todaySport{color:var(--stv1-gold)!important}
#modalSheet .stv1Today .todaySportsEmpty{border:1px solid var(--stv1-line)!important;background:var(--stv1-card)!important;border-radius:14px!important;color:var(--stv1-text)}
#modalSheet .stv1Today .todaySportsEmpty .btn{border:1.5px solid rgba(0,210,255,.55)!important;background:linear-gradient(180deg,#0e2352,#050e24)!important;color:#5fe3ff!important}
#modalSheet .stv1Recap .weeklyRecapTop{display:flex!important;align-items:center!important;gap:10px!important}
#modalSheet .stv1Recap .weeklyRecapTop .playerAvatar{position:static!important;width:40px!important;height:40px!important;flex:0 0 40px!important;display:grid!important;place-items:center!important;font-size:14px!important;border:2px solid rgba(0,210,255,.7)!important}
#modalSheet .stv1Recap .recapRow .playerCell{min-width:0}
#modalSheet .stv1Recap .recapRow .playerCell>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:360px){#modalSheet .stv1Recap .recapHead,#modalSheet .stv1Recap .recapRow{grid-template-columns:26px minmax(0,1fr) 56px 30px!important;gap:6px!important}}

/* =====================================================================
   5. League welcome / onboarding (Real Device Final Fixes v1)
   stv1 presentation for maybeShowLeagueWelcome(). The sheet toolbar is
   pinned (with its safe-area band) so the heading can never scroll up
   behind the Dynamic Island / status bar on an installed iPhone.
   ===================================================================== */
#modalSheet:has(.stv1Welcome) .sheetToolbar{position:sticky!important;top:0!important;z-index:6!important}
#modalSheet .stv1WelcomeHero{align-items:center}
#modalSheet .stv1WelcomeHero .stv1Title{font-size:27px}
#modalSheet .stv1WelcomeMembers{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:12.5px;font-weight:600;color:var(--stv1-cyan-2)}
#modalSheet .stv1WelcomeMembers .stv1Ico{width:15px;height:15px}
#modalSheet .stv1WelcomeSetup .stv1CardHead em{font-size:11.5px;letter-spacing:.3px;text-transform:none;font-family:var(--stv1-sans);font-weight:600}
#modalSheet .stv1WSteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
#modalSheet .stv1WStep{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border-radius:12px;border:1px solid var(--stv1-line-soft);background:rgba(3,12,28,.55)}
#modalSheet .stv1WNum{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-family:var(--stv1-cond);font-weight:700;font-size:16px;color:#062033;background:var(--stv1-cyan-lt);box-shadow:0 0 10px rgba(0,210,255,.3)}
#modalSheet .stv1WBody{display:flex;flex-direction:column;gap:2px;min-width:0}
#modalSheet .stv1WBody b{font-family:var(--stv1-cond);font-weight:700;font-size:17.5px;line-height:1.1;color:var(--stv1-text)}
#modalSheet .stv1WBody small{font-size:12px;line-height:1.35;color:var(--stv1-muted)}
#modalSheet .stv1WAct{display:flex;justify-content:flex-end}
#modalSheet .stv1WAct .stv1Btn.sm{min-width:98px}
#modalSheet .stv1WStep.done{border-color:rgba(255,210,74,.55);background:linear-gradient(180deg,rgba(52,38,8,.35),rgba(20,14,3,.4))}
#modalSheet .stv1WStep.done .stv1WNum{background:var(--stv1-gold);color:#241900;box-shadow:0 0 10px rgba(255,210,74,.35)}
#modalSheet .stv1Welcome .onboardingDone{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 10px;border-radius:999px;font-family:var(--stv1-cond);font-weight:700;font-size:13.5px;letter-spacing:.5px;color:var(--stv1-gold);background:rgba(34,24,4,.85);border:1px solid rgba(255,210,74,.7)}
#modalSheet .stv1Welcome .onboardingMuted{font-size:12px;font-weight:700;color:var(--stv1-dim)}
#modalSheet .stv1WelcomeRules{padding:4px 12px}
#modalSheet .stv1WelcomeRules .stv1RowMain>b{font-size:16.5px}
#modalSheet .stv1WelcomeRuleIco{font-family:var(--stv1-cond);font-weight:700;font-size:15px;color:var(--stv1-gold)!important;border-color:rgba(255,210,74,.55)!important}
@media (max-width:360px){
  #modalSheet .stv1WStep{grid-template-columns:28px minmax(0,1fr);row-gap:8px}
  #modalSheet .stv1WAct{grid-column:2;justify-content:flex-start}
  #modalSheet .stv1WelcomeHero .stv1Title{font-size:24px}
}

/* ===== Real Device Final Fixes v2 — Install Guide polish (presentation only) =====
   Same markup, copy, branches and handlers. Lighter hero, quieter domain row,
   softer secondary borders, tighter step cards, and a controlled 2×2 quick path
   on phones instead of inline wrapping. */
#modalSheet .stv1Install{gap:9px}
#modalSheet .stv1Install .stv1InstallHero{padding:10px 12px;gap:11px}
#modalSheet .stv1Install .stv1InstallHero .stv1Coin{width:50px;height:50px}
#modalSheet .stv1Install .stv1InstallHero .stv1Sub{line-height:1.36}
#modalSheet .stv1Install .stv1Domain{
  gap:6px;padding:4px 10px;min-height:28px;border-radius:999px;
  border-color:rgba(0,210,255,.13);background:rgba(3,12,28,.32);
}
#modalSheet .stv1Install .stv1Domain b{font-size:12.5px;font-weight:600;letter-spacing:.2px;color:var(--stv1-cyan-2)}
#modalSheet .stv1Install .stv1Domain .stv1Ico{width:13px;height:13px}
#modalSheet .stv1Install .stv1Path{padding:8px;border-color:rgba(0,210,255,.15);background:rgba(3,12,28,.4)}
#modalSheet .stv1Install .stv1Path>span{border-color:rgba(0,210,255,.2)}
#modalSheet .stv1Install .stv1Steps{gap:7px}
#modalSheet .stv1Install .stv1Step{gap:10px;padding:10px 11px 11px;border-color:rgba(0,210,255,.17)}
#modalSheet .stv1Install .stv1Step.focus{border-color:rgba(255,210,74,.5)}
#modalSheet .stv1Install .stv1StepBody{gap:3px}
#modalSheet .stv1Install .stv1Chips{margin-top:4px}
#modalSheet .stv1Install .stv1Chip{border-color:rgba(0,210,255,.26)}
@media (max-width:430px){
  /* Quick path: deliberate 2×2 (1 2 / 3 4), order carried by small numerals
     instead of inline arrows that wrapped unevenly on iPhone. */
  #modalSheet .stv1Install .stv1Path{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:stretch;gap:6px;counter-reset:stv1qp}
  #modalSheet .stv1Install .stv1Path>i{display:none}
  #modalSheet .stv1Install .stv1Path>span{
    counter-increment:stv1qp;min-width:0;min-height:32px;padding:4px 7px;gap:4px;font-size:11.5px;
    white-space:normal;line-height:1.18;justify-content:flex-start;
  }
  #modalSheet .stv1Install .stv1Path>span:before{
    content:counter(stv1qp);flex:0 0 auto;display:grid;place-items:center;width:15px;height:15px;margin-right:1px;border-radius:50%;
    font-family:var(--stv1-cond);font-size:10.5px;font-weight:700;line-height:1;color:#1a1204;background:var(--stv1-gold);
  }
}
@media (max-width:360px){
  #modalSheet .stv1Install .stv1Path{grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr)}
  #modalSheet .stv1Install .stv1Path>span{padding:4px 6px;gap:3px;font-size:11px}
}

/* =====================================================================
   RC Beta QA v1 — Locked Picks sheet
   openLockedPicks() scrolls the live / latest locked game into view. With a
   long league that scrolled the toolbar (and its Close button) off the top
   and left the game header under the Dynamic Island. Pin the toolbar exactly
   like League welcome (§5) and stop the scrolled card below it.
   ===================================================================== */
#modalSheet:has(.stv1Locked) .sheetToolbar{position:sticky!important;top:0!important;z-index:6!important}
#modalSheet .stv1Locked .lockedGameCard{scroll-margin-top:calc(64px + var(--app-safe-top,0px))}

/* v0.9.28 — Week recap uses the approved Player Card crest artwork. */
#modalSheet .stv1Recap .weeklyAwardIcon{overflow:hidden;padding:2px}
#modalSheet .stv1Recap .weeklyAwardIcon img{display:block;width:100%;height:100%;object-fit:contain}
#modalSheet .stv1Recap .recapChampionMark{overflow:hidden;padding:2px}
#modalSheet .stv1Recap .recapChampionMark img{display:block;width:100%;height:100%;object-fit:contain}

/* v0.9.28 — read-only league-member Player Card viewer. */
#modalSheet .playerCardLink,#modalSheet .recapPlayerLink{appearance:none;border:0;background:none;color:inherit;font:inherit;padding:0;margin:0;text-align:left;cursor:pointer}
#modalSheet .recapPlayerLink{display:flex;align-items:center;gap:8px;min-width:0}
#modalSheet .recapPlayerLink:hover>span:last-child,#modalSheet .recapPlayerLink:focus-visible>span:last-child{color:var(--stv1-cyan-lt)}
#modalSheet .pcPublicCard{gap:12px}
#modalSheet .pcPublicHero{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid rgba(0,210,255,.58);border-radius:16px;background:linear-gradient(rgba(3,11,29,.55),rgba(3,11,29,.72)),url("assets/player-card/stadium.png") center/cover no-repeat;box-shadow:0 0 18px rgba(0,170,255,.14)}
#modalSheet .pcPublicAvatar{width:76px;height:76px;flex:0 0 76px;padding:3px;border-radius:50%;background:linear-gradient(135deg,#fff3b8,#ffc94a 35%,#5fe3ff 100%)}
#modalSheet .pcPublicAvatar .playerAvatar{width:100%!important;height:100%!important;min-width:0!important;border:0!important}
#modalSheet .pcPublicIdentity{display:flex;flex-direction:column;gap:2px;min-width:0}
#modalSheet .pcPublicIdentity>b{font-family:var(--stv1-cond);font-size:26px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modalSheet .pcPublicIdentity>span{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--stv1-muted)}
#modalSheet .pcPublicIdentity>strong{margin-top:4px;width:max-content;max-width:100%;padding:5px 9px;border:1px solid rgba(255,210,74,.65);border-radius:999px;background:rgba(45,31,4,.75);font-family:var(--stv1-cond);font-size:14px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicStats>div{display:flex;flex-direction:column;gap:2px;align-items:center;padding:9px 4px;border:1px solid var(--stv1-line);border-radius:11px;background:var(--stv1-card);text-align:center}
#modalSheet .pcPublicStats span{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--stv1-muted)}
#modalSheet .pcPublicStats b{font-family:var(--stv1-cond);font-size:18px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#modalSheet .pcPublicWeeks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicWeek{appearance:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 5px;border:1px solid var(--stv1-line);border-radius:10px;background:rgba(4,18,38,.82);color:#fff;cursor:pointer}
#modalSheet .pcPublicWeek>span{font-family:var(--stv1-cond);font-size:11px;color:var(--stv1-cyan-lt)}
#modalSheet .pcPublicWeek>b{font-family:var(--stv1-cond);font-size:21px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicWeek>small{font-size:9.5px;color:var(--stv1-muted);text-align:center;line-height:1.25}
#modalSheet .pcPublicBadges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicBadge{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 3px;border:1px solid var(--stv1-line);border-radius:11px;background:rgba(4,18,38,.78);text-align:center}
#modalSheet .pcPublicBadge img{width:48px;height:48px;object-fit:contain}
#modalSheet .pcPublicBadge.empty{opacity:.34;filter:saturate(.45)}
#modalSheet .pcPublicBadge span{font-size:9px;font-weight:800;color:var(--stv1-muted)}
#modalSheet .pcPublicBadge b{font-family:var(--stv1-cond);font-size:14px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicEmpty{padding:12px;color:var(--stv1-muted);text-align:center}
@media(max-width:380px){#modalSheet .pcPublicStats{grid-template-columns:repeat(2,minmax(0,1fr))}#modalSheet .pcPublicBadges{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.9.28 — read-only league-member Player Card viewer. */
#modalSheet .playerCardLink,#modalSheet .recapPlayerLink{appearance:none;border:0;background:none;color:inherit;font:inherit;padding:0;margin:0;text-align:left;cursor:pointer}
#modalSheet .recapPlayerLink{display:flex;align-items:center;gap:8px;min-width:0}
#modalSheet .recapPlayerLink:hover>span:last-child,#modalSheet .recapPlayerLink:focus-visible>span:last-child{color:var(--stv1-cyan-lt)}
#modalSheet .pcPublicCard{gap:12px}
#modalSheet .pcPublicHero{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid rgba(0,210,255,.58);border-radius:16px;background:linear-gradient(rgba(3,11,29,.55),rgba(3,11,29,.72)),url("assets/player-card/stadium.png") center/cover no-repeat;box-shadow:0 0 18px rgba(0,170,255,.14)}
#modalSheet .pcPublicAvatar{width:76px;height:76px;flex:0 0 76px;padding:3px;border-radius:50%;background:linear-gradient(135deg,#fff3b8,#ffc94a 35%,#5fe3ff 100%)}
#modalSheet .pcPublicAvatar .playerAvatar{width:100%!important;height:100%!important;min-width:0!important;border:0!important}
#modalSheet .pcPublicIdentity{display:flex;flex-direction:column;gap:2px;min-width:0}
#modalSheet .pcPublicIdentity>b{font-family:var(--stv1-cond);font-size:26px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modalSheet .pcPublicIdentity>span{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--stv1-muted)}
#modalSheet .pcPublicIdentity>strong{margin-top:4px;width:max-content;max-width:100%;padding:5px 9px;border:1px solid rgba(255,210,74,.65);border-radius:999px;background:rgba(45,31,4,.75);font-family:var(--stv1-cond);font-size:14px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicStats>div{display:flex;flex-direction:column;gap:2px;align-items:center;padding:9px 4px;border:1px solid var(--stv1-line);border-radius:11px;background:var(--stv1-card);text-align:center}
#modalSheet .pcPublicStats span{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--stv1-muted)}
#modalSheet .pcPublicStats b{font-family:var(--stv1-cond);font-size:18px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#modalSheet .pcPublicWeeks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicWeek{appearance:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 5px;border:1px solid var(--stv1-line);border-radius:10px;background:rgba(4,18,38,.82);color:#fff;cursor:pointer}
#modalSheet .pcPublicWeek>span{font-family:var(--stv1-cond);font-size:11px;color:var(--stv1-cyan-lt)}
#modalSheet .pcPublicWeek>b{font-family:var(--stv1-cond);font-size:21px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicWeek>small{font-size:9.5px;color:var(--stv1-muted);text-align:center;line-height:1.25}
#modalSheet .pcPublicBadges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#modalSheet .pcPublicBadge{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 3px;border:1px solid var(--stv1-line);border-radius:11px;background:rgba(4,18,38,.78);text-align:center}
#modalSheet .pcPublicBadge img{width:48px;height:48px;object-fit:contain}
#modalSheet .pcPublicBadge.empty{opacity:.34;filter:saturate(.45)}
#modalSheet .pcPublicBadge span{font-size:9px;font-weight:800;color:var(--stv1-muted)}
#modalSheet .pcPublicBadge b{font-family:var(--stv1-cond);font-size:14px;color:var(--stv1-gold-lt)}
#modalSheet .pcPublicEmpty{padding:12px;color:var(--stv1-muted);text-align:center}
@media(max-width:380px){#modalSheet .pcPublicStats{grid-template-columns:repeat(2,minmax(0,1fr))}#modalSheet .pcPublicBadges{grid-template-columns:repeat(2,minmax(0,1fr))}}
