/* Fantasy Zone — styles for the platform features (28 Oct 2026): rules, chat, history, waivers,
   player pages, league settings, create-a-league, category matchups, real playoff brackets. */

.tblScroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.divTable.roto td small{display:block;font-size:10px}
.divTable.roto th,.divTable.roto td{padding:6px 5px}

/* ---- Rules ---- */
.rulesGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.rulesGrid section{background:var(--raised,#272b33);border:1px solid var(--line,#333842);border-radius:12px;padding:12px 14px}
.rulesGrid h3{margin:0 0 6px;font-family:var(--font-cond);font-size:17px;color:var(--aqua,#2fd3df)}
.rulesGrid p{margin:6px 0;font-size:14px;color:var(--text2,#c3c9d3)}
.rulesTbl{width:100%;font-size:14px}.rulesTbl td{padding:3px 0;border-bottom:1px solid var(--line-soft,#2a2e36)}.rulesTbl td:last-child{text-align:right;font-weight:700}

/* ---- Chat ---- */
.chatList{max-height:min(62vh,640px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 8px}
.chatMsg{display:flex;gap:8px;align-items:flex-start}
.chatMsg.mine{flex-direction:row-reverse}
.chatBubble{background:var(--raised,#272b33);border:1px solid var(--line,#333842);border-radius:14px;padding:7px 11px;max-width:78%}
.chatMsg.mine .chatBubble{background:rgba(255,45,149,.12);border-color:rgba(255,45,149,.45)}
.chatMeta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted,#959dab);margin-bottom:2px}
.chatMeta b{color:var(--text,#eceff3)}
.chatText{font-size:15px;line-height:1.4;word-wrap:break-word;white-space:normal}
.chatDel{background:none!important;border:0!important;color:var(--muted)!important;padding:0 2px!important;width:auto!important;font-size:12px;cursor:pointer}
.chatForm{display:flex;gap:8px;margin-top:10px;position:sticky;bottom:0}
.chatForm input{flex:1}.chatForm button{width:auto!important;flex:none;padding:0 18px}
.chatBadge{display:inline-block;min-width:18px;padding:1px 6px;margin-left:6px;border-radius:999px;background:var(--pink,#ff2d95);color:#fff;font-size:11px;font-weight:700;line-height:16px;text-align:center}

/* ---- History ---- */
.trophyList{display:grid;gap:10px}
.trophy{border:1px solid rgba(230,183,74,.45);background:linear-gradient(90deg,rgba(230,183,74,.12),transparent 70%);border-radius:12px;padding:10px 14px}
.trSeason{font-family:var(--font-cond);font-weight:700;color:var(--gold,#e6b74a);letter-spacing:1px}
.trChamp{font-size:18px;font-weight:700;margin:2px 0}
.trMore{font-size:13px;color:var(--text2)}
.histAdd{margin:10px 0;border:1px dashed var(--line);border-radius:10px;padding:8px 12px}.histAdd summary{cursor:pointer;color:var(--aqua)}
.recGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.recCard{background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.recT{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.recV{margin-top:4px;font-size:14px}.recV b{font-family:var(--font-cond);font-size:22px;color:var(--aqua);margin-right:4px}
.rcCard{background:var(--raised);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.rcHead{font-family:var(--font-cond);font-size:18px;font-weight:700;margin-bottom:6px}
.rcGame{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:5px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
.rcGame span:last-child{text-align:right}.rcGame .w{color:var(--aqua);font-weight:700}.rcGame b{font-family:var(--font-cond)}
.rcSub{margin:10px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--pink,#ff2d95)}
.rcTop{margin:0;padding-left:20px;font-size:14px}
.hmRecap{margin:14px 0}

/* ---- Waivers / players ---- */
#waiverBox{margin:0 0 10px}
.wvTop{display:flex;flex-wrap:wrap;gap:8px}
.wvChip{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:13px;background:var(--raised)}
.wvClaims{margin-top:8px;border:1px solid rgba(47,211,223,.35);border-radius:10px;padding:8px 10px}
.wvHead{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--aqua);margin-bottom:4px}
.wvClaim{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:4px 0;font-size:14px;flex-wrap:wrap}
.wvClaim button{width:auto!important;padding:4px 12px!important}
.wvClaim.won b{color:var(--win,#3ccf8e)}
.wvTag{font-size:10px;font-weight:700;color:#04202a;background:var(--gold,#e6b74a);border-radius:5px;padding:1px 5px;vertical-align:1px}
.injTag{font-size:10px;font-weight:700;color:var(--gold,#e6b74a);border:1px solid rgba(230,183,74,.6);border-radius:5px;padding:0 4px;vertical-align:1px}
.injTag.out{color:var(--live,#ff5468);border-color:rgba(255,84,104,.6)}
.pmLink{cursor:pointer}.pmLink:hover{text-decoration:underline;text-decoration-color:var(--aqua)}
.mxP .nm,.stWho .nm{cursor:pointer}
.tdNote{margin:8px 0 4px;padding:8px 12px;border-radius:10px;border:1px solid rgba(47,211,223,.4);background:var(--aqua-tint,rgba(47,211,223,.12));font-size:14px}
.tdNote.passed{border-color:rgba(255,84,104,.55);background:rgba(255,84,104,.08)}

/* ---- Player page ---- */
.pmWrap{position:fixed;inset:0;z-index:5000;background:rgba(2,6,20,.72);display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 24px) 12px 24px;overflow-y:auto}
.pmWrap.hidden{display:none}
body.pmOpen{overflow:hidden}
.pmCard{position:relative;width:min(720px,100%);background:var(--panel,#1e2128);border:1px solid var(--line);border-top:3px solid var(--pink,#ff2d95);border-radius:16px;padding:18px;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.pmClose{position:absolute;top:10px;right:10px;width:auto!important;background:transparent!important;border:0!important;color:var(--muted)!important;font-size:18px;padding:4px 8px!important}
.pmHead{display:flex;gap:12px;align-items:center;padding-right:30px;flex-wrap:wrap}
.pmHead h2{margin:0}
.pmAct{margin-left:auto}.pmAct button{width:auto!important;padding:8px 18px}
.pmOwn{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;border-radius:6px;padding:2px 8px;background:var(--raised);border:1px solid var(--line)}
.pmOwn.fa{color:var(--win,#3ccf8e);border-color:rgba(60,207,142,.5)}.pmOwn.wv{color:var(--gold);border-color:rgba(230,183,74,.5)}
.pmInj{margin:12px 0 0;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,84,104,.5);background:rgba(255,84,104,.08);font-size:14px}
.pmH{margin:16px 0 6px;font-family:var(--font-cond);font-size:16px;color:var(--aqua)}
.pmAvg{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px}
.pmAvg div{background:var(--raised);border-radius:8px;padding:6px 4px;text-align:center}
.pmAvg b{display:block;font-family:var(--font-cond);font-size:20px}.pmAvg span{font-size:11px;color:var(--muted)}
.pmAvg .fp{border:1px solid rgba(255,45,149,.5)}.pmAvg .fp b{color:var(--pink)}
.pmLog{width:100%;font-size:13px}.pmLog th,.pmLog td{padding:4px 5px;text-align:center;white-space:nowrap}.pmLog .l{text-align:left}.pmLog td.fp{font-weight:700;color:var(--pink)}
.pmUp{display:flex;flex-wrap:wrap;gap:6px}.pmUp span{background:var(--raised);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13px}

/* ---- League settings form ---- */
.lsWrap>summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:6px 0;list-style:none}
.lsWrap>summary::-webkit-details-marker{display:none}
.lsSum{font-family:var(--font-cond);font-size:18px;font-weight:700;border-left:3px solid var(--pink,#ff2d95);padding-left:9px}
.lsBlock{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0;background:rgba(255,255,255,.015)}
.lsTitle{font-family:var(--font-cond);font-weight:700;font-size:16px;margin-bottom:8px;color:var(--aqua)}
.lsSeg{display:flex;flex-wrap:wrap;gap:6px}
.lsOpt{display:flex!important;align-items:center;gap:6px;margin:0!important;padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-weight:600!important;cursor:pointer}
.lsOpt input,.lsChk input{width:16px!important;height:16px;margin:0}
.lsOpt:has(input:checked){border-color:var(--aqua);background:var(--aqua-tint,rgba(47,211,223,.12))}
.lsCats,.lsPts{margin-top:10px}
.lsPresets{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);margin-bottom:8px}
.lsPresets button{width:auto!important;padding:4px 10px!important;font-size:13px}
.lsCatList{display:flex;flex-wrap:wrap;gap:6px}
.lsChk{display:flex!important;align-items:center;gap:6px;margin:6px 0 0!important;font-weight:500!important;font-size:14px}
.lsCatList .lsChk{margin:0!important;padding:5px 10px;border:1px solid var(--line);border-radius:8px}
.lsCatList .lsChk:has(input:checked){border-color:var(--pink);background:rgba(255,45,149,.1)}
.lsGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.lsNum{display:flex!important;flex-direction:column;gap:4px;margin:0!important;font-size:12px!important}
.lsNum.lsWide{grid-column:span 2}
.lsNum input,.lsNum select{height:40px}
.lsRow{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.lsRow select{flex:1;min-width:200px}
.lsInline{width:160px}
.lsHint{font-size:12px!important;margin:6px 0 0!important}
.lsMore{margin-top:8px}.lsMore summary{cursor:pointer;font-size:13px;color:var(--aqua)}
@media(max-width:520px){.lsNum.lsWide{grid-column:span 1}}

/* ---- Login: your leagues + create ---- */
#myLeaguesBox{margin-top:12px}
.mlHead{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);text-align:center;margin-bottom:6px}
#myLeaguesList{display:grid;gap:6px}
.mlChip{display:flex!important;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left;background:rgba(3,10,32,.6)!important;border:1px solid rgba(120,170,255,.22)!important;border-radius:10px!important;color:#fff!important;padding:9px 12px!important;font-weight:500!important}
.mlChip span{font-size:12px;color:#9fb3d6}
.mlChip:hover{border-color:#22f0ff!important}
.clDivider{display:flex;align-items:center;gap:10px;color:#9fb3d6;font-size:12px;margin:14px 0 10px}
.clDivider::before,.clDivider::after{content:"";flex:1;height:1px;background:rgba(120,170,255,.22)}
.clStart{width:100%;height:46px;border-radius:10px;background:transparent!important;color:#ff7ab8!important;border:1px solid rgba(255,45,149,.6)!important;font-weight:700;letter-spacing:.5px}
.clStart:hover{box-shadow:0 0 16px rgba(255,45,149,.45)}
body:has(#createCard:not(.hidden)) header{display:none!important}
body:has(#createCard:not(.hidden)) .wrap{margin-left:auto!important;margin-right:auto!important;padding-top:16px!important}
body:has(#createCard:not(.hidden)){background:radial-gradient(120% 70% at 50% 0%, #0d2a5c 0%, #071233 45%, #030817 100%) fixed!important}
#createCard{max-width:760px;margin:16px auto 40px;background:rgba(10,22,54,.7)!important;border:1px solid rgba(34,240,255,.28)!important;border-top:2px solid var(--pink,#ff2d95)!important;border-radius:18px!important}
#createCard h2{text-align:center;text-transform:uppercase;letter-spacing:1px}
.clSteps{display:flex;justify-content:center;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.clSteps span{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid rgba(120,170,255,.25);color:#9fb3d6}
.clSteps span.on{border-color:#22f0ff;color:#22f0ff}
.clFormats{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:#9fb3d6}
.clFormats button{width:auto!important;padding:5px 10px!important;font-size:13px}
#createCard .row{display:flex;gap:10px;margin-top:12px}#createCard .row button{flex:1;height:44px}
.clDone{text-align:center}
.clCode{font-family:var(--font-cond);font-size:56px;font-weight:700;letter-spacing:6px;color:#22f0ff;text-shadow:0 0 18px rgba(34,240,255,.6)}
.clNext{text-align:left;max-width:520px;margin:10px auto;line-height:1.6}
.clDone button{width:auto!important;padding:10px 28px;margin-top:8px}

/* ---- Category matchups ---- */
.mxCats{border:1px solid var(--line);border-radius:12px;margin:10px 0;overflow:hidden}
.mxCatHead,.mxCatRow{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;text-align:center}
.mxCatHead{background:var(--raised);font-size:12px;color:var(--muted);padding:6px 8px;text-transform:uppercase;letter-spacing:.5px}
.mxCatHead span:first-child,.mxCatHead span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mxCatRow{padding:7px 8px;border-top:1px solid var(--line-soft)}
.mxCatRow span{font-family:var(--font-cond);font-weight:700;color:var(--text2)}
.mxCatRow b{font-family:var(--font-cond);font-size:18px;color:var(--muted);font-weight:600}
.mxCatRow b.win{color:var(--aqua);text-shadow:0 0 10px rgba(47,211,223,.4)}
.mxCatFoot{padding:6px;text-align:center;font-size:12px;color:var(--muted);border-top:1px solid var(--line-soft)}

/* ---- Real playoff bracket ---- */
.poTitle{margin:14px 0 6px;font-family:var(--font-cond)}
.brTeam.win .nm{color:var(--aqua);font-weight:700}
.brGame.live{box-shadow:0 0 0 1px rgba(255,45,149,.5)}
.lsNum.hidden,.lsChk.hidden{display:none!important}

/* ---------- email login ---------- */
#emailLoginBox input{margin-bottom:4px}
.elBad{color:#ff6b8f!important}
.elHelp{font-size:13px;line-height:1.45;background:rgba(255,45,149,.08);border:1px solid rgba(255,45,149,.25);border-radius:10px;padding:10px 12px;margin-top:8px;color:#c9d6ee}
.elWho{margin:0 0 8px}
.elPick{display:flex;flex-direction:column;gap:8px}
.elChoice{display:flex!important;align-items:center;gap:10px;text-align:left;width:100%;background:rgba(255,255,255,.04)!important;border:1px solid rgba(120,170,255,.25)!important;border-radius:12px;padding:10px 12px!important;color:inherit!important}
.elChoice:hover{border-color:var(--pink,#ff2d95)!important}
.elChoice>span:not(.avatar){flex:1;display:flex;flex-direction:column;min-width:0}
.elChoice small{color:var(--muted,#9fb3d6);font-weight:500}
.elChoice i{font-style:normal;font-size:20px;color:var(--pink,#ff2d95)}
#acctBtn{margin-right:6px;padding:8px 10px!important}
.emCard{max-width:460px}
.emH{margin:16px 0 4px;font-size:15px}
.emNudge{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(255,45,149,.10);border:1px solid rgba(255,45,149,.35);border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:14px}
.emNudge span{flex:1;min-width:180px}
.emNudge button:not(.linkBtn){padding:6px 12px!important}
.mxForced{flex-basis:100%;font-size:11px;color:var(--muted,#9fb3d6);margin-top:4px}

/* ---------- roster: team picker, next-day games, averages ---------- */
.rvPick{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.rvPick label{margin:0;font-weight:700;font-size:13px;color:var(--muted,#9fb3d6)}
.rvPick select{flex:1;max-width:340px}
.rvSummary{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.rvSummary>div{flex:1;min-width:150px;background:rgba(34,240,255,.06);border:1px solid rgba(34,240,255,.22);border-radius:12px;padding:8px 12px;font-size:13px}
.rvSummary span{display:block;color:var(--muted,#9fb3d6);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.rvSummary b{font-family:'Oswald',sans-serif;font-size:18px;color:#22f0ff;margin-right:4px}
.player.rvMine,.player.rvRow{flex-wrap:wrap}
.rvRow{display:flex;align-items:center;gap:8px}
.rvSlot{width:120px;font-weight:700;font-size:12px;color:#22c55e}
.rvSlot.bench{color:#8b95a3}
.rvName{flex:1;cursor:pointer;font-weight:600}
.rvName small{color:var(--muted,#9fb3d6);font-weight:500}
.rvName:hover{color:var(--pink,#ff2d95)}
.rvToday{font-family:'Oswald',sans-serif;min-width:38px;text-align:right;color:#22c55e}
.rvToday.bench{color:#8b95a3}
.rvInfo{flex-basis:100%;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:12px;padding:2px 0 2px 128px;color:#c9d6ee}
.rvLbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#9fb3d6)}
.rvGame{color:#22f0ff;font-weight:600}
.rvNo{color:var(--muted,#9fb3d6)}
.rvAvg b{color:var(--pink,#ff2d95);font-family:'Oswald',sans-serif;font-size:14px}
.rvAvg small{color:var(--muted,#9fb3d6);margin-left:2px}
@media (max-width:600px){.rvInfo{padding-left:0}.rvSlot{width:84px}}

/* ---------- roster: day-by-day lineups ---------- */
.ldDays{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 10px;margin:0 0 8px;scrollbar-width:thin;align-items:stretch}
.ldWk{flex:none;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--pink,#ff2d95);padding:0 2px;border-left:1px solid rgba(255,45,149,.35);margin-left:4px}
.ldDay{flex:none;width:56px!important;display:flex!important;flex-direction:column;align-items:center;gap:1px;padding:6px 0!important;border-radius:10px;background:rgba(255,255,255,.04)!important;border:1px solid rgba(120,170,255,.22)!important;color:inherit!important}
.ldDay.on{border-color:#22f0ff!important;background:rgba(34,240,255,.12)!important;box-shadow:0 0 12px rgba(34,240,255,.25)}
.ldDay.off{opacity:.45}
.ldDow{font-size:10px;text-transform:uppercase;color:var(--muted,#9fb3d6)}
.ldNum{font-family:'Oswald',sans-serif;font-size:18px;line-height:1.1}
.ldCnt{font-size:11px;color:var(--muted,#9fb3d6)}
.ldCnt.ok{color:#22c55e}.ldCnt.warn{color:#ffb020}
.ldHead{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start;margin:4px 0 10px}
.ldOwn{font-size:12px;margin-top:2px}
.ldAuto{display:flex;gap:8px;flex-wrap:wrap}
.ldAuto button{width:auto!important;padding:8px 12px!important;font-size:13px}
.ldMsg{min-height:1.2em;margin:0 0 6px;font-size:13px;color:#22f0ff}
.ldRow select{flex:1;min-width:0}
.ldRow .rvInfo .rvName{flex:none}
.ldIdle{background:rgba(255,176,32,.06)}
.ldLock{flex:none}
.ldOut{color:#ff6b8f;font-weight:700;font-size:11px}
.ldSub{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#9fb3d6)}
.ldBench.ldPlays .rvGame{color:#ffb020}
.ldHint{color:#ffb020;margin-left:6px}
.ldSeason{margin-top:18px;border-top:1px solid rgba(120,170,255,.2);padding-top:10px}
.ldSeason summary{cursor:pointer;font-weight:700;color:var(--muted,#9fb3d6)}
.ldMove{flex:none;width:auto!important;max-width:230px;font-size:12px;padding:6px 8px!important}
@media (max-width:600px){.ldMove{max-width:150px}}

/* ---------- predicted points (pink, small) ---------- */
.mxProj{margin-top:4px;font-size:13px;color:var(--pink,#ff2d95);letter-spacing:.02em}
.mxProj b{font-family:'Oswald',sans-serif;font-size:16px;font-weight:700;color:var(--pink,#ff2d95)!important}
.mxTeam.r .mxProj{text-align:right}
.mxDayProj{display:block;font-size:10px;color:var(--pink,#ff2d95);margin-top:2px;opacity:.9}
.mxProjSm{display:block;font-size:10px;color:var(--pink,#ff2d95);font-weight:600;text-align:right}
.mxProjSm::before{content:"pred "}

/* ---------- roster: 9-category stat line ---------- */
.ldStats{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px 12px;padding:3px 0 2px 128px;font-size:11px;color:var(--muted,#9fb3d6)}
.ldStats span{display:inline-flex;gap:4px;align-items:baseline}
.ldStats b{color:var(--text,#e8eefc);font-family:'Oswald',sans-serif;font-size:12px;font-weight:600}
.ldStats .gp{color:var(--muted,#9fb3d6)}
@media (max-width:600px){.ldStats{padding-left:0;gap:3px 9px}}
.elCodeBox{margin-top:8px;padding:10px 12px;border:1px solid rgba(34,240,255,.3);border-radius:10px;background:rgba(34,240,255,.05)}
.elCodeBox input{letter-spacing:6px;font-size:20px;text-align:center}

/* ---------- push notifications ---------- */
#pushBtn{padding:8px 10px!important;opacity:.75}
#pushBtn.pushOn{opacity:1;box-shadow:0 0 0 2px rgba(255,45,149,.6)}
.pushKinds{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.pushKind{display:flex!important;align-items:center;gap:10px;font-size:14px;margin:0!important}
.pushKind input{width:18px;height:18px;flex:none}
.pushSteps{padding-left:20px;line-height:1.6}

/* ---------- draft results; no more "Draft complete" banner ---------- */
#draftDoneBanner{display:none!important}
.drToggle{display:inline-flex;gap:4px;background:rgba(255,255,255,.05);border-radius:10px;padding:3px}
.drToggle button{width:auto!important;padding:6px 14px!important;background:transparent!important;border:0!important;color:var(--muted,#9fb3d6)!important;font-size:13px}
.drToggle button.on{background:rgba(34,240,255,.15)!important;color:#22f0ff!important}
.drGroup{margin:14px 0}
.drGroup h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:15px;color:var(--pink,#ff2d95);text-transform:uppercase;letter-spacing:.06em}
.drRow{display:flex;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid rgba(120,170,255,.12)}
.drNo{font-family:'Oswald',sans-serif;min-width:40px;color:#22f0ff;font-weight:700}
.drTeam{display:flex;align-items:center;gap:6px;min-width:180px;font-size:13px;color:var(--muted,#9fb3d6)}
.drPlayer{display:flex;flex-direction:column;cursor:pointer}
.drPlayer small{color:var(--muted,#9fb3d6);font-size:11px}
.drTeams{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 18px}
@media (max-width:600px){.drTeam{min-width:120px}}

/* ---------- profiles ---------- */
.avatar[data-tp]{cursor:pointer}
.avatar.avImg{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:#0b1530;vertical-align:middle}
.avatar.avImg img{width:100%;height:100%;object-fit:cover;display:block}
.pfCard{max-width:560px}
.pfHead{display:flex;gap:16px;align-items:center;padding-bottom:12px;border-bottom:3px solid var(--pfc)}
.pfPic,.pfPicEdit{width:84px;height:84px;flex:none;border-radius:18px;overflow:hidden;background:var(--pfc);display:flex;align-items:center;justify-content:center;box-shadow:0 0 18px color-mix(in srgb,var(--pfc) 45%,transparent)}
.pfPic img,.pfPicEdit img{width:100%;height:100%;object-fit:cover}
.pfPic span,.pfPicEdit span{font-family:'Oswald',sans-serif;font-size:28px;font-weight:700;color:#071233}
.pfPicEdit span{font-size:13px}
.pfPicEdit.round{border-radius:50%}
.pfNames h2{margin:0 0 2px;font-size:24px}
.pfOwner{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;color:var(--muted,#9fb3d6)}
.pfOwner img{width:24px;height:24px;border-radius:50%;object-fit:cover}
.pfBio{margin:12px 0 4px;font-style:italic;color:#d8e3f7}
.pfContact a{color:#22f0ff}
.pfHr{border:0;border-top:1px solid rgba(120,170,255,.18);margin:14px 0}
.pfStats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pfStats>div{background:rgba(255,255,255,.04);border:1px solid rgba(120,170,255,.18);border-radius:12px;padding:8px 10px}
.pfStats span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#9fb3d6)}
.pfStats b{font-family:'Oswald',sans-serif;font-size:22px;color:#22f0ff}
.pfStats small{display:block;font-size:11px;color:var(--muted,#9fb3d6)}
.pfH{margin:16px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--pink,#ff2d95)}
.pfTrophies{display:flex;flex-wrap:wrap;gap:6px}
.pfTrophy{padding:5px 10px;border-radius:20px;background:rgba(255,255,255,.06);font-size:13px}
.pfTrophy.gold{background:rgba(255,196,0,.18);color:#ffd34d}
.pfH2H,.pfGames{display:flex;flex-direction:column}
.pfH2H>div,.pfGames>div{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(120,170,255,.1);font-size:14px}
.pfH2H b.up,.pfGames b.up{color:#22c55e}.pfH2H b.down,.pfGames b.down{color:#ff6b8f}
.pfEditPics{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:8px}
.pfEditPics .row button{width:auto!important;padding:6px 10px!important;font-size:12px}
.pfSwatches{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px}
.pfSw,.pfSw:not(:disabled):hover{background:var(--sw)!important}
.pfSw{width:28px!important;height:28px;border-radius:50%;padding:0!important;border:2px solid transparent!important}
.pfSw.on{border-color:#fff!important;box-shadow:0 0 0 2px var(--pink,#ff2d95)}
#pfColor{width:40px;height:32px;padding:0;border:0;background:none}
@media (max-width:600px){.pfStats{grid-template-columns:repeat(2,1fr)}}
.pfAppear{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--muted,#9fb3d6)}
.elChoice .avatar{flex:0 0 auto!important;border-radius:50%}
#switchLoginBtn{display:none!important}
html.fzPhone .fzDeskOnly,html.fzPhone #adminJoinCard,html.fzPhone #adminTabBtn{display:none!important}
/* no rolling score ticker (29 Oct 2026) */
#scoreTickerBar{display:none!important}
@media(min-width:1100px){.wrap{padding-top:28px!important}}
/* modal close: big, round and always on screen while you scroll (29 Oct 2026) */
.pmClose{position:sticky!important;top:0;float:right;z-index:3;width:40px!important;height:40px;min-width:40px;margin:-6px -6px 0 8px;display:flex!important;align-items:center;justify-content:center;
  border-radius:50%!important;background:var(--raised,#2a2e37)!important;border:1px solid var(--line,#3a3f4a)!important;color:var(--text,#fff)!important;font-size:18px!important;padding:0!important;box-shadow:0 4px 14px rgba(0,0,0,.35)!important}
.pmDone{display:block;width:100%!important;margin-top:16px;padding:12px!important;font-size:16px!important;clear:both}
.pmWrap{z-index:100000!important}
/* "new features are ready" note */
#fzUpdate{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top,0px) + 12px);z-index:100001;display:flex;align-items:center;gap:10px;
  width:min(460px,calc(100% - 24px));padding:10px 10px 10px 16px;border-radius:14px;background:var(--panel,#1e2128);border:1px solid var(--pink,#ff2d95);
  box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 18px rgba(255,45,149,.35);color:var(--text,#fff);font-weight:700;animation:fzUpIn .35s ease}
#fzUpdate span{flex:1}
#fzUpdate #fzUpdateBtn{width:auto!important;padding:10px 14px!important;white-space:nowrap}
#fzUpdate .fzUpLater{width:34px!important;height:34px;padding:0!important;border-radius:50%!important;background:transparent!important;color:var(--muted,#9aa)!important;border:0!important}
@keyframes fzUpIn{from{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%,0)}}
/* owner's platform-wide notice */
#fzNotice{position:relative;z-index:30;display:flex;align-items:center;gap:8px;padding:10px 14px;padding-top:calc(env(safe-area-inset-top,0px) + 10px);background:linear-gradient(90deg,rgba(255,45,149,.18),rgba(47,211,223,.12));border-bottom:1px solid var(--pink,#ff2d95);color:var(--text,#fff);font-weight:600;font-size:14px}
#fzNotice .fzNt{flex:1}
#fzNotice button{width:30px!important;height:30px;padding:0!important;border-radius:50%!important;background:transparent!important;color:var(--muted,#9aa)!important;border:0!important}
@media(min-width:1100px){#fzNotice{margin-left:var(--side,252px)}}
/* while the app is starting (or after a pull-to-refresh) show a loading logo, not the login page */
html.fzBoot #joinCard,html.fzBoot #adminJoinCard,html.fzBoot #createCard,html.fzBoot #app{visibility:hidden}
html.fzBoot body::after{content:"";position:fixed;left:50%;top:42%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:4px solid rgba(47,211,223,.2);border-top-color:#2fd3df;animation:fzSpin .8s linear infinite;z-index:99999}
@keyframes fzSpin{to{transform:rotate(360deg)}}
/* ---------- player photos ---------- */
.avatar.avPhoto{position:relative;overflow:hidden;background:var(--raised,#272b33)!important}
.avatar.avPhoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;transform:scale(1.25)}
/* ---------- planner ---------- */
.plSum,.plDays{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:10px 0}
.plSum>div,.plDays>div{background:var(--raised,#272b33);border-radius:10px;padding:10px 12px}
.plSum small,.plDays small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.plSum b,.plDays b{display:block;font-size:24px;color:var(--aqua)}.plSum span,.plDays span{font-size:12px;color:var(--muted)}
.plDays>div.over b{color:var(--pink,#ff4d8d)}.plDays>div.light b{color:#fbbf24}
.plH{margin:18px 0 8px;font-size:15px}
.plScroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.plGrid{border-collapse:collapse;width:100%;font-size:13px;min-width:560px}
.plGrid th{font-size:11px;color:var(--muted);font-weight:600;padding:6px 4px;text-align:center;border-bottom:1px solid var(--line)}
.plGrid td{padding:6px 4px;text-align:center;border-bottom:1px solid var(--line)}
.plGrid .plName{text-align:left;min-width:170px;position:sticky;left:0;background:var(--panel,#1e2128);z-index:1}
.plGrid td.plName{display:flex;gap:8px;align-items:center}
.plGrid td.plG{background:rgba(47,211,223,.12)!important;color:var(--aqua)!important;font-weight:700;font-size:11px;border-radius:4px}
.plGrid td.plG.done{opacity:.35}.plGrid tr.plOut td{opacity:.55}
.plGrid .plProj{color:var(--pink,#ff4d8d);font-weight:700}.plGrid .plLeft b{font-size:15px}
.inTag{font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px;margin-left:4px}
.inTag.out{background:rgba(248,113,113,.18);color:#f87171}.inTag.dtd{background:rgba(251,191,36,.18);color:#fbbf24}
/* ---------- power rankings ---------- */
.prRow{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.prRow.me{background:rgba(255,77,141,.06);border-radius:10px;padding:12px 8px}
.prRank{font-size:26px;font-weight:800;color:var(--aqua);min-width:34px;text-align:center;font-family:var(--font-cond,inherit)}
.prMain{flex:1;min-width:0}.prBlurb{color:var(--text2);font-size:14px;margin:3px 0}
.prStats{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.prUp{color:#34d399;font-weight:800;font-size:12px}.prDown{color:#f87171;font-weight:800;font-size:12px}
/* ---------- playoff odds ---------- */
.oddsCard{margin:10px 0 18px}
.oddsTbl tr.me td{background:rgba(255,77,141,.06)}
.oddsTbl td{white-space:nowrap}
.oddsBar{position:relative;min-width:110px;height:22px;background:var(--raised,#272b33);border-radius:6px;overflow:hidden}
.oddsBar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(47,211,223,.35),rgba(47,211,223,.7))}
.oddsBar span{position:relative;display:block;text-align:center;font-weight:800;font-size:12px;line-height:22px}
/* ---------- trade analyser ---------- */
.taCard{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.taCols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}@media(max-width:700px){.taCols{grid-template-columns:1fr}}
.taCols h4{margin:0 0 6px;font-size:13px;color:var(--text2)}
.taChips{display:flex;flex-wrap:wrap;gap:6px}
.taChip{width:auto!important;padding:6px 10px!important;font-size:13px!important;background:var(--raised)!important;color:var(--text)!important;border:1px solid var(--line)!important;border-radius:999px!important;font-weight:600!important}
.taChip small{color:var(--muted);margin-left:4px}.taChip.on{background:rgba(255,77,141,.18)!important;border-color:var(--pink,#ff4d8d)!important}
.taOut{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.taOut>div{background:var(--raised);border-radius:10px;padding:10px 12px}.taOut small{display:block;color:var(--muted);font-size:12px}
.taOut span{margin-right:8px}.taOut b.up{color:#34d399}.taOut b.down{color:#f87171}
.taOut p{grid-column:1/-1;margin:0;font-weight:700}
/* faces in My roster */
.rvName{display:inline-flex;align-items:center;gap:8px}
.rvName .avatar{flex:0 0 auto}
.fzLegal{text-align:center;font-size:12px;margin:16px 0 0;color:var(--muted)}.fzLegal a{color:var(--muted);text-decoration:none}.fzLegal a:hover{color:var(--aqua)}
/* ---------- live draft room ---------- */
.drClock{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--raised,#272b33);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:6px 0 10px}
.drClock.mine{border-color:var(--pink,#ff4d8d);box-shadow:0 0 0 2px rgba(255,77,141,.35),0 0 24px rgba(255,77,141,.25);animation:drPulse 1.6s ease-in-out infinite}
@keyframes drPulse{50%{box-shadow:0 0 0 2px rgba(255,77,141,.6),0 0 34px rgba(255,77,141,.45)}}
.drNow{display:flex;gap:12px;align-items:center}.drNow small{display:block;color:var(--muted);font-size:12px}.drNow b{font-size:22px}
.drClock.mine .drNow b{color:var(--pink,#ff4d8d)}
.drTime{text-align:right}.drTime b{display:block;font-size:26px;color:var(--aqua);font-variant-numeric:tabular-nums}.drTime small{color:var(--muted);font-size:12px}
.drNext{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}
.drNext span{white-space:nowrap;font-size:12px;background:var(--raised);border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--text2)}
.drNext span.me{border-color:var(--pink,#ff4d8d);color:var(--pink,#ff4d8d);font-weight:700}
.drGrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px}@media(max-width:1000px){.drGrid{grid-template-columns:1fr}}
.drCol h3{font-size:14px;margin:4px 0 8px}
.drFilters input{margin-bottom:6px}.drPos{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px}
.drPos button{width:auto!important;padding:4px 10px!important;font-size:12px!important;background:var(--raised)!important;color:var(--text2)!important;border:1px solid var(--line)!important;border-radius:999px!important}
.drPos button.on{background:rgba(47,211,223,.15)!important;color:var(--aqua)!important;border-color:var(--aqua)!important}
.drPos .drSort{margin-left:auto}
.drList{max-height:560px;overflow-y:auto}
.drP{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.drPN{flex:1;min-width:0}.drPN b{font-size:14px}.drPN small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drP button{width:auto!important;padding:6px 10px!important;font-size:12px!important}
.drP .drGo{background:var(--pink,#ff4d8d)!important;color:#fff!important}
.drRoster{display:flex;flex-direction:column;gap:4px;font-size:13px}.drRoster span{display:flex;align-items:center;gap:6px}
.drFeed{max-height:260px;overflow-y:auto;font-size:13px}.drFeed>div{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--line)}
.drFeed small{color:var(--muted);min-width:30px}
.drChat{height:200px;overflow-y:auto;background:var(--raised);border-radius:10px;padding:8px 10px;font-size:13px;margin-bottom:6px}.drChat>div{margin:3px 0}
.drSay{display:flex;gap:6px}
/* ---------- season awards ---------- */
.awCard{margin:6px 0 18px}
.awGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.awItem{background:var(--raised,#272b33);border:1px solid var(--line);border-radius:12px;padding:12px}
.awItem i{font-style:normal;font-size:22px}.awItem small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.awItem b{display:flex;align-items:center;gap:6px;margin:4px 0}.awItem span{font-size:12px;color:var(--text2)}
/* ---------- player page extras ---------- */
.pxBox{margin:10px 0 4px}
.pxStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.pxStats>div{background:var(--raised,#272b33);border-radius:10px;padding:8px 10px}
.pxStats small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.pxStats b{display:block;font-size:22px;color:var(--aqua)}.pxStats b.up{color:#34d399}.pxStats b.down{color:#f87171}.pxStats span{font-size:12px;color:var(--muted)}
.pxSpark{display:flex;align-items:flex-end;gap:4px;height:56px;margin:10px 0;padding:4px;background:var(--raised);border-radius:10px}
.pxSpark i{flex:1;background:linear-gradient(180deg,var(--aqua),rgba(47,211,223,.35));border-radius:3px 3px 0 0;min-height:4px}
.pxTrade{width:auto!important;margin-top:6px}
/* ---------- mock draft ---------- */
.mkSet{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px}.mkSet label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}.mkSet select{width:auto}
.mkDone{display:flex;gap:16px;align-items:center;background:var(--raised);border-radius:14px;padding:14px}
.mkGrade{font-size:56px;font-weight:900;color:var(--pink,#ff4d8d);min-width:90px;text-align:center}
.mkRoster{display:flex;flex-direction:column;gap:6px}.mkRoster span{display:flex;align-items:center;gap:8px}.mkRoster small{min-width:26px}
/* ---------- share buttons ---------- */
.fzShare{width:auto!important;padding:7px 12px!important;font-size:13px!important;margin:6px 0 10px}
/* ---------- welcome tour ---------- */
.tourCard{max-width:440px!important;text-align:center;padding:26px 22px 20px!important}
.tourIcon{font-size:54px;line-height:1;margin:6px 0 10px}
.tourCard h2{margin:0 0 8px}.tourCard p{color:var(--text2);font-size:15px;line-height:1.5;min-height:66px}
.tourDots{display:flex;justify-content:center;gap:6px;margin:12px 0}
.tourDots i{width:8px;height:8px;border-radius:50%;background:var(--line)}.tourDots i.on{background:var(--pink,#ff4d8d);width:22px;border-radius:4px}
.tourBtns{justify-content:space-between}
/* ---------- QR invites ---------- */
.qrCard{text-align:center}.qrBox{display:flex;justify-content:center;background:#fff;border-radius:14px;padding:14px;width:max-content;margin:8px auto}
.qrUrl{font-size:11px;color:var(--muted);word-break:break-all}.qrCard .row{justify-content:center}
/* ---------- league moments ---------- */
.momCard{background:linear-gradient(90deg,rgba(255,77,141,.08),rgba(47,211,223,.06));border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:8px 0 14px}
.momHead{font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--pink,#ff4d8d)}
.momList{margin-top:6px}.momItem{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.momItem:last-child{border-bottom:0}.momIcon{font-size:18px;width:24px;text-align:center}.momText{flex:1}.momItem small{color:var(--muted);font-size:11px}
.tourCard .pmDone{display:none}
.olReq{border-top:1px solid var(--line,#333842);padding:8px 0}.olReq a{margin:0 6px}
