/* Fantasy leaderboard — builds on mobile.css variables (same dark theme). A compact,
   horizontally-scrollable stat table with a sticky player column, plus a collapsible
   custom-scoring panel. Mobile-first; fine on desktop. */

.fshell{width:100%;max-width:760px;margin:0 auto;padding:13px 10px 60px;}
.fhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.fbrand{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.09em;color:var(--good);}
.fback{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);}
.ftitle{font-family:var(--disp);font-weight:700;font-size:26px;text-transform:uppercase;
  letter-spacing:.01em;line-height:1;margin:6px 0 2px;}
.fsub{font-size:11.5px;color:var(--muted);font-weight:600;letter-spacing:.02em;margin-bottom:10px;}

/* leaderboard / projections tab nav */
.ftabs{display:flex;gap:7px;margin:0 0 11px;}
.ftabs a{font-family:var(--disp);font-size:13px;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;padding:7px 15px;border:1px solid var(--line);border-radius:10px;
  color:var(--muted);background:var(--card);}
.ftabs a.on{background:var(--good);border-color:var(--good);color:#06141f;}

/* season switcher + reg/po toggle reuse the card look */
.seasonsw{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;}
.seasonsw a{font-family:var(--disp);font-size:12px;font-weight:600;letter-spacing:.04em;
  padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);}
.seasonsw a.on{background:var(--good);border-color:var(--good);color:#06141f;}
.potog{display:flex;gap:0;border:1px solid var(--line);border-radius:999px;overflow:hidden;
  width:max-content;margin:0 0 12px;}
.potog a{font-family:var(--disp);font-size:11px;font-weight:600;letter-spacing:.05em;
  padding:5px 13px;color:var(--muted);}
.potog a.on{background:var(--card2);color:var(--text);}

/* control bar */
.fbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:9px;}
.fbar input.fq{flex:1;min-width:120px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;color:var(--text);font:inherit;font-size:13px;padding:8px 11px;}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.seg button{background:var(--card);border:0;color:var(--muted);font:inherit;font-size:11.5px;
  font-weight:700;letter-spacing:.03em;padding:7px 11px;cursor:pointer;}
.seg button.on{background:var(--good);color:#06141f;}
.fgear{background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--text);
  font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.03em;padding:7px 12px;cursor:pointer;}
.fgear.on{background:var(--card2);border-color:var(--good);color:var(--good);}

/* scoring panel (collapsible) */
.fpanel{display:none;background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:11px 12px;margin-bottom:11px;}
.fpanel.on{display:block;}
.fpanel h4{margin:0 0 8px;font-family:var(--disp);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);font-weight:600;}
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;
  letter-spacing:.02em;padding:5px 9px;border:1px solid var(--line);border-radius:999px;
  color:var(--muted);cursor:pointer;user-select:none;}
.chip.on{background:color-mix(in srgb,var(--good) 22%,transparent);border-color:var(--good);
  color:var(--text);}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px;}
.wgrid label{display:flex;flex-direction:column;font-size:10px;font-weight:700;letter-spacing:.04em;
  color:var(--muted);gap:3px;}
.wgrid input{background:var(--card2);border:1px solid var(--line);border-radius:7px;color:var(--text);
  font:inherit;font-size:13px;padding:5px 7px;width:100%;-moz-appearance:textfield;}
.fpanel .reset{margin-top:9px;background:none;border:0;color:var(--good);font:inherit;
  font-size:11.5px;font-weight:700;cursor:pointer;padding:0;}
.posfilter{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px;}
.posfilter button{background:var(--card);border:1px solid var(--line);border-radius:8px;
  color:var(--muted);font:inherit;font-size:11.5px;font-weight:700;padding:5px 11px;cursor:pointer;}
.posfilter button.on{background:var(--good);border-color:var(--good);color:#06141f;}

/* the table */
.ftwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:13px;background:var(--card);}
table.flb{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums;}
.flb th,.flb td{padding:8px 7px;text-align:right;white-space:nowrap;font-size:12.5px;}
.flb thead th{position:sticky;top:0;background:var(--card2);color:var(--muted);font-size:10px;
  font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;z-index:2;
  border-bottom:1px solid var(--line);}
.flb thead th.up::after{content:" ▲";color:var(--good);}
.flb thead th.down::after{content:" ▼";color:var(--good);}
.flb td.rk,.flb th.rk{text-align:center;color:var(--muted);font-size:11px;width:34px;
  padding-left:9px;padding-right:4px;}
/* sticky player column */
.flb th.pl,.flb td.pl{position:sticky;left:0;text-align:left;background:var(--card);z-index:1;
  min-width:148px;box-shadow:1px 0 0 var(--line);}
.flb thead th.pl{z-index:3;background:var(--card2);}
.flb tbody tr:nth-child(even) td{background:#0e1923;}
.flb tbody tr:nth-child(even) td.pl{background:#0e1923;}
.flb tbody tr:hover td{background:#15242f;}
.pl a,.pl .nolink{display:flex;align-items:center;gap:8px;}
.pl .nolink{cursor:default;}
.pl .nolink .pn{color:var(--muted);}
.pl .pn{font-weight:700;font-size:13px;color:var(--text);line-height:1.05;overflow:hidden;
  text-overflow:ellipsis;}
.pl .psub{font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.02em;}
.pl img{width:20px;height:20px;object-fit:contain;flex:0 0 auto;}
.flb td.val{font-weight:800;color:#cfe1f1;}
.flb td.hot{color:#ff7a6b;font-weight:700;}
.flb td.cold{color:#5fa8ff;font-weight:700;}
.flag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.05em;padding:1px 5px;
  border-radius:5px;margin-left:5px;vertical-align:middle;}
.flag.hot{background:rgba(255,90,70,.16);color:#ff8b7c;}
.flag.cold{background:rgba(60,140,255,.16);color:#7ab6ff;}
.flag.buy{background:rgba(64,200,120,.18);color:#54d18a;}
.flag.sell{background:rgba(255,90,70,.16);color:#ff8b7c;}
.flag.hold{background:rgba(120,140,158,.16);color:#9fb1c0;}
.projbanner{font-size:11px;line-height:1.5;color:#aebccb;background:var(--card);
  border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin:0 0 12px;}
.projbanner b{color:#cfe1f1;}
.fnote{font-size:10.5px;color:var(--muted);margin-top:9px;line-height:1.5;}
.fnote b{color:#aebfce;}
.sitefoot{text-align:center;color:var(--muted);font-size:11px;padding:18px 12px 26px;}
.sitefoot a{color:var(--good);}

/* streaming / schedule grid */
.flb.sched th.wk{min-width:40px;font-size:9px;}
.flb.sched td{text-align:center;font-weight:700;}
.flb.sched td.g4{background:rgba(64,200,120,.30);color:#d6ffe6;}
.flb.sched td.g3{background:rgba(120,140,158,.16);color:#cfdae5;}
.flb.sched td.g2{background:rgba(235,100,110,.20);color:#ffd9dc;}
.flb.sched td.g0{color:#3a4a58;}
.demo{display:inline-block;min-width:18px;text-align:center;border-radius:4px;padding:0 5px;
  font-weight:800;font-size:11px;}
.demo.g4{background:rgba(64,200,120,.30);color:#54d18a;}
.demo.g2{background:rgba(235,100,110,.20);color:#ff8b7c;}
