/* ===== GAME BLOC FPL — FPL-style palette (bright default + purple-dark option) ===== */
:root{
  /* FPL palette */
  --purple:#37003C; --purple-2:#4a1152; --green:#00FF87; --cyan:#04F5FF; --pink:#E90052;
  --ink:#37003C; --bone:#ffffff; --bloc:#00FF87; --bloc-deep:#00c069; --floodlight:#04F5FF;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --display:'Anton','Oswald',Impact,sans-serif;
  --r:10px;

  /* ---- BRIGHT (default, FPL) ---- */
  --bg:#f0eef3; --bg2:#ffffff; --card:#ffffff; --card2:#f6f4f9; --line:#e5e1ec; --line2:#f0edf4;
  --txt:#2a1230; --dim:#6a6172; --faint:#9b93a6;
  --head:#37003C; --acc:#00915a; --warn:#c2410c; --up:#00915a; --down:#E90052;
  --on-green:#37003C; --pill-green:#37003C;
  --topbar-bg:#37003C; --topbar-fg:#ffffff; --topbar-dim:rgba(255,255,255,.72);
  --nav-fg:rgba(255,255,255,.82); --nav-fg-h:#00FF87; --nav-bd-h:rgba(255,255,255,.28); --nav-bg-h:rgba(255,255,255,.12);
  --th-bg:#37003C; --th-fg:#ffffff; --th-bd:#4a1152; --row-stripe:#faf9fc; --row-hover:#f3eef9; --row-expand:#f4e9fc;
  --input-bg:#ffffff; --bar-track:#e7e2ef;
  --btn-green-fg:#37003C; --tab-on-bg:#37003C; --tab-on-fg:#ffffff;
  --pcard-bg:#ffffff; --pcard-fg:#37003C; --pcard-bd:#e5e1ec; --pcard-sh:0 2px 8px rgba(55,0,60,.12);
  --field-a:#12a15b; --field-b:#0c8f4f; --pitch-bd:#00FF87; --pitch-inset:inset 0 0 60px rgba(0,0,0,.14); --pitch-dash:rgba(255,255,255,.55);
  --hero-bg:#37003C; --hero-fg:#ffffff; --hero-sub:rgba(255,255,255,.8); --hero-stat:#00FF87; --hero-k:rgba(255,255,255,.55);
  --veil:rgba(30,0,34,.55);
  --sh:0 1px 2px rgba(55,0,60,.06),0 3px 10px rgba(55,0,60,.07); --sh-lg:0 12px 36px rgba(55,0,60,.18);
}
:root[data-theme="dark"]{
  /* ---- PURPLE NIGHT (FPL dark) ---- */
  --bg:#240029; --bg2:#2e0735; --card:#2e0735; --card2:#3a1042; --line:rgba(255,255,255,.12); --line2:rgba(255,255,255,.07);
  --txt:#f3ebf5; --dim:rgba(243,235,245,.66); --faint:rgba(243,235,245,.42);
  --head:#ffffff; --acc:#00FF87; --warn:#ff9e3d; --up:#00FF87; --down:#ff4d7d;
  --on-green:#37003C; --pill-green:#ffffff;
  --topbar-bg:#1c0021; --topbar-fg:#ffffff; --topbar-dim:rgba(255,255,255,.7);
  --nav-fg:rgba(255,255,255,.8); --nav-fg-h:#00FF87; --nav-bd-h:rgba(255,255,255,.24); --nav-bg-h:rgba(255,255,255,.1);
  --th-bg:#4a1152; --th-fg:#ffffff; --th-bd:#5e1a68; --row-stripe:rgba(255,255,255,.03); --row-hover:rgba(255,255,255,.06); --row-expand:rgba(0,255,135,.12);
  --input-bg:#1f0524; --bar-track:rgba(255,255,255,.1);
  --btn-green-fg:#37003C; --tab-on-bg:#00FF87; --tab-on-fg:#37003C;
  --pcard-bg:#2e0735; --pcard-fg:#ffffff; --pcard-bd:rgba(255,255,255,.14); --pcard-sh:0 2px 8px rgba(0,0,0,.5);
  --field-a:#12a15b; --field-b:#0c8f4f; --pitch-bd:#00FF87; --pitch-inset:inset 0 0 60px rgba(0,0,0,.35); --pitch-dash:rgba(255,255,255,.45);
  --hero-bg:#1c0021; --hero-fg:#ffffff; --hero-sub:rgba(255,255,255,.78); --hero-stat:#00FF87; --hero-k:rgba(255,255,255,.5);
  --veil:rgba(10,0,12,.7);
  --sh:0 1px 2px rgba(0,0,0,.35); --sh-lg:0 14px 40px rgba(0,0,0,.55);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scrollbar-color:#c9c1d6 transparent}
:root[data-theme="dark"] html{scrollbar-color:rgba(255,255,255,.22) transparent}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--txt);min-height:100vh;background-attachment:fixed;
  font-feature-settings:"tnum" 1;
  /* bright FPL ground with a faint cyan wash up top */
  background:radial-gradient(1100px 460px at 50% -220px, rgba(4,245,255,.10), transparent 60%), var(--bg);
}
:root[data-theme="dark"] body{ background:radial-gradient(1000px 480px at 50% -200px, rgba(0,255,135,.10), transparent 62%), var(--bg); }
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* ===== topbar ===== */
#topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 22px;background:var(--topbar-bg);border-bottom:3px solid var(--bloc);}
.brand{display:flex;align-items:center;gap:10px;color:var(--topbar-fg)}
.brand img.brand-logo{height:38px;width:auto;display:block}
.brand-word{font-family:var(--display);font-size:23px;letter-spacing:.5px;text-transform:uppercase;line-height:1}
.brand-word .brand-accent{color:var(--bloc)}
.tb-right{display:flex;align-items:center;gap:14px}
.theme-toggle{width:34px;height:34px;border-radius:8px;border:1px solid var(--nav-bd-h);background:var(--nav-bg-h);
  font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s}
.theme-toggle:hover{transform:scale(1.08);background:rgba(243,237,225,.16)}
.gw-chip{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--topbar-dim);font-weight:600}
.gw-chip b{color:var(--topbar-fg)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--bloc);box-shadow:0 0 0 0 rgba(0,145,90,.6);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,145,90,.55)}70%{box-shadow:0 0 0 9px rgba(0,145,90,0)}100%{box-shadow:0 0 0 0 rgba(0,145,90,0)}}

main{max-width:1180px;margin:0 auto;padding:22px 18px 80px}

/* loading */
.loading-splash{display:flex;flex-direction:column;align-items:center;gap:14px;padding:120px 0;color:var(--dim)}
.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--bloc);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.progress-note{font-size:12px;color:var(--faint);font-family:var(--mono)}

/* ===== home ===== */
.hero{text-align:center;padding:56px 10px 30px}
.hero h1{font-family:var(--display);font-size:clamp(38px,6.4vw,68px);font-weight:400;line-height:.98;letter-spacing:.5px;text-transform:uppercase;color:var(--head)}
.hero h1 .gr{color:var(--acc)}
.hero p{color:var(--dim);margin-top:16px;font-size:16px;max-width:560px;margin-inline:auto}
.search-wrap{max-width:520px;margin:30px auto 0;display:flex;gap:10px}
.search-wrap input{flex:1;padding:15px 18px;font-size:16px;border-radius:var(--r);border:1px solid var(--line);
  background:var(--input-bg);color:var(--txt);outline:none;font-family:var(--mono);font-weight:600;box-shadow:var(--sh)}
.search-wrap input:focus{border-color:var(--bloc);box-shadow:0 0 0 3px rgba(0,145,90,.25)}
.btn{padding:13px 20px;border-radius:var(--r);border:1px solid transparent;font-weight:700;font-size:14px;transition:transform .1s,box-shadow .15s}
.btn:active{transform:scale(.97)}
.btn-green{background:var(--bloc);color:var(--btn-green-fg);font-weight:800;box-shadow:var(--sh)}
.btn-green:hover{background:#00e07a}
.btn-ghost{background:var(--bg2);border-color:var(--line);color:var(--txt);box-shadow:var(--sh)}
.btn-ghost:hover{background:var(--card2)}
.mode-row{display:flex;justify-content:center;gap:8px;margin-top:14px;font-size:13px;color:var(--faint)}
.mode-row button{background:none;border:none;color:var(--faint);font-size:13px;padding:5px 10px;border-radius:8px}
.mode-row button.on{color:var(--acc);background:rgba(0,145,90,.12)}
.quick-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:34px}
.chip-btn{padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--dim);font-size:13px;font-weight:600;box-shadow:var(--sh)}
.chip-btn:hover{border-color:var(--bloc);color:var(--txt)}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:52px}
.feature{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--sh)}
.feature h3{font-size:14px;margin-bottom:6px;color:var(--head)}
.feature p{font-size:12.5px;color:var(--dim);line-height:1.5}
.feature .ic{font-size:20px;margin-bottom:10px;display:block}
.err-note{max-width:520px;margin:16px auto 0;color:var(--down);font-size:13.5px;text-align:center;font-weight:600}

/* ===== league header ===== */
.lg-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}
.lg-head h1{font-family:var(--display);font-size:clamp(28px,4.2vw,44px);font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:var(--head);line-height:1}
.lg-sub{color:var(--dim);font-size:13px;margin-top:7px;display:flex;gap:14px;flex-wrap:wrap;font-weight:600}
.lg-sub b{color:var(--acc);font-family:var(--mono)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn-sm{padding:9px 14px;font-size:13px;border-radius:8px}
.btn-tab.on{background:var(--tab-on-bg);border-color:var(--tab-on-bg);color:var(--tab-on-fg)}

/* fixtures strip */
.fx-strip{display:flex;gap:9px;overflow-x:auto;padding:4px 2px 12px;margin-bottom:16px;scrollbar-width:thin}
.fx-card{flex:0 0 auto;min-width:128px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;
  padding:9px 12px;font-size:12.5px;cursor:pointer;transition:border-color .15s,box-shadow .15s;box-shadow:var(--sh)}
.fx-card:hover{border-color:var(--bloc);box-shadow:var(--sh-lg)}
.fx-teams{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:700;font-family:var(--mono);color:var(--txt)}
.fx-score{color:var(--head);font-weight:800}
.fx-status{margin-top:4px;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--faint)}
.fx-card.is-live .fx-status{color:var(--acc)}
.fx-card.is-live{border-color:var(--bloc);background:rgba(0,145,90,.10)}
.fx-card.is-ft .fx-status{color:var(--dim)}

/* controls */
.tbl-controls{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.tbl-controls input{padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);outline:none;font-size:13.5px;min-width:210px;box-shadow:var(--sh)}
.tbl-controls input:focus{border-color:var(--bloc)}
.spacer{flex:1}
.updated-at{font-size:11.5px;color:var(--faint);font-family:var(--mono)}

/* ===== table (broadcast band) ===== */
.tbl{width:100%;border-collapse:collapse;background:var(--bg2);min-width:760px}
.tbl-wrap{border-radius:var(--r);overflow-x:auto;border:1px solid var(--line);box-shadow:var(--sh);background:var(--bg2)}
.tbl th{font-size:10.5px;text-transform:uppercase;letter-spacing:1.3px;color:var(--th-fg);font-weight:800;
  text-align:left;padding:11px 12px;background:var(--th-bg);border-bottom:2px solid var(--th-bd);white-space:nowrap}
.tbl th.num,.tbl td.num{text-align:right;font-family:var(--mono)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line2);font-size:13.5px;vertical-align:middle;color:var(--txt)}
.tbl tbody tr.mgr-row{cursor:pointer;transition:background .12s}
.tbl tbody tr.mgr-row:nth-child(4n+3){background:var(--row-stripe)}
.tbl tbody tr.mgr-row:hover{background:var(--row-hover)}
.tbl tbody tr.expanded{background:var(--row-expand)}
/* top three in Bloc green (brand emphasis) */
.tbl tbody tr.top3 .mgr-name{color:var(--acc)}
.rank-cell{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-weight:700;color:var(--faint)}
.top3 .rank-cell{color:var(--acc)}
.mv{font-size:11px;font-weight:800;min-width:30px;display:inline-flex;align-items:center;gap:2px}
.mv.up{color:var(--up)} .mv.down{color:var(--down)} .mv.same{color:var(--faint)}
.mgr-name{font-weight:700;color:var(--head)}
.mgr-sub{font-size:11.5px;color:var(--dim);margin-top:2px}
.pts-live{font-family:var(--mono);font-weight:800;font-size:15px;color:var(--acc)}
.pts-hit{color:var(--down);font-size:11px;font-weight:700;margin-left:4px}
.pts-total{font-weight:800;font-size:15px;color:var(--head);font-family:var(--mono)}
.cap-cell{font-size:12.5px;font-weight:600;white-space:nowrap}
.cap-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;
  background:var(--bloc);color:#0B1421;font-size:9.5px;font-weight:900;margin-right:5px;vertical-align:-3px}
.cap-badge.vc{background:var(--floodlight);color:#0B1421}
.cap-pts{font-family:var(--mono);color:var(--dim);margin-left:5px;font-size:11.5px}
.chip-tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.chip-bboost{background:rgba(0,145,90,.18);color:var(--acc)}
.chip-3xc{background:rgba(232,163,61,.20);color:var(--floodlight)}
.chip-freehit{background:rgba(243,237,225,.12);color:var(--dim)}
.chip-wildcard{background:rgba(0,145,90,.18);color:var(--acc)}
:root[data-theme="light"] .chip-freehit{background:rgba(11,20,33,.08)}
.chip-none{color:var(--faint);font-size:11px}
.left-cell{font-size:12px;font-weight:700;font-family:var(--mono);white-space:nowrap}
.left-cell .lp{color:var(--acc)} .left-cell .done{color:var(--faint)}
.prov-star{color:var(--floodlight);font-weight:800;cursor:help}
.load-more{display:block;margin:18px auto 0}

/* ===== pitch (expanded row) ===== */
.pitch-row td{padding:0!important;background:var(--card2)}
.pitch-box{padding:18px 12px 14px}
.pitch{background:repeating-linear-gradient(180deg, var(--field-a) 0 44px, var(--field-b) 44px 88px);
  border:1px solid var(--pitch-bd);border-radius:12px;padding:20px 8px 12px;box-shadow:var(--pitch-inset)}
.p-line{display:flex;justify-content:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.p-card{width:104px;background:var(--pcard-bg);border:1px solid var(--pcard-bd);border-radius:10px;padding:8px 6px;text-align:center;position:relative;cursor:pointer;transition:transform .12s,box-shadow .12s;box-shadow:var(--pcard-sh)}
.p-card:hover{transform:translateY(-2px)}
.p-card .shirt{width:30px;height:30px;border-radius:8px;margin:0 auto 5px;display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7);border:1px solid rgba(0,0,0,.15)}
.p-card .nm{font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--txt)}
.p-card .pt{font-family:var(--mono);font-weight:800;font-size:14px;color:var(--pcard-fg);margin-top:2px}
.p-card .st{font-size:9.5px;color:var(--faint);margin-top:1px;font-weight:600;min-height:12px}
.p-card.dnp{opacity:.72}
.p-card.dnp .pt{color:var(--down)}
.p-card.playing{border-color:var(--bloc);box-shadow:0 0 0 2px rgba(0,145,90,.5),var(--pcard-sh)}
.p-card .badge{position:absolute;top:-7px;right:-6px;width:19px;height:19px;border-radius:50%;background:var(--bloc);color:#0B1421;
  font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;border:2px solid var(--pcard-bg)}
.p-card .badge.vc{background:var(--floodlight);color:#0B1421}
.p-card .sub-badge{position:absolute;top:-7px;left:-6px;font-size:11px}
.bench-strip{display:flex;justify-content:center;gap:10px;margin-top:6px;padding:12px 8px 4px;border-top:1px dashed var(--pitch-dash);flex-wrap:wrap}
.bench-strip .p-card{opacity:.9;width:98px}
.pitch-meta{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:14px;font-size:12px;color:rgba(243,237,225,.85);font-weight:600}
.pitch-meta b{color:#fff;font-family:var(--mono)}
.subs-note{font-size:11.5px;color:var(--floodlight);text-align:center;margin-top:9px;font-weight:600}

/* ===== analytics ===== */
.ana-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:6px}
.ana-card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--sh)}
.ana-card h3{font-size:12px;text-transform:uppercase;letter-spacing:1.4px;color:var(--head);margin-bottom:13px;font-weight:800}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px}
.bar-row .lbl{width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.bar-row .bar{flex:1;height:9px;border-radius:6px;background:var(--bar-track);overflow:hidden}
.bar-row .bar i{display:block;height:100%;border-radius:6px;background:var(--bloc)}
.bar-row .val{font-family:var(--mono);font-weight:700;color:var(--dim);width:56px;text-align:right;font-size:11.5px}
.stat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat-tile{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:12px}
.stat-tile .v{font-family:var(--display);font-size:26px;font-weight:400;color:var(--head);letter-spacing:.5px;line-height:1}
.stat-tile .k{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.8px;margin-top:5px;font-weight:700}
.diff-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line2)}
.diff-row:last-child{border:none}
.diff-row .who{color:var(--faint);font-size:11px}
.diff-row .p{font-family:var(--mono);font-weight:700;color:var(--acc)}

/* ===== modal ===== */
.modal-veil{position:fixed;inset:0;background:var(--veil);backdrop-filter:blur(5px);z-index:90;display:flex;align-items:center;justify-content:center;padding:18px}
.modal{background:var(--bg2);border:1px solid var(--line);border-radius:14px;max-width:520px;width:100%;max-height:84vh;overflow-y:auto;padding:20px;box-shadow:var(--sh-lg)}
.modal h2{font-size:17px;margin-bottom:2px;color:var(--head)}
.modal .m-sub{color:var(--dim);font-size:12.5px;margin-bottom:14px;font-weight:600}
.m-close{float:right;background:var(--card2);border:1px solid var(--line);color:var(--dim);border-radius:8px;padding:5px 11px;font-size:12px}
.m-sec{margin-top:14px}
.m-sec h4{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--faint);margin-bottom:8px}
.m-line{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line2)}
.m-line .r{font-family:var(--mono);font-weight:700}
.bps-pos{color:var(--acc);font-weight:800;font-family:var(--mono)}

/* h2h */
.h2h-match{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;background:var(--bg2);
  border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-bottom:9px;font-size:13.5px;box-shadow:var(--sh)}
.h2h-side{overflow:hidden}
.h2h-side.right{text-align:right}
.h2h-side .t{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h2h-side .m{font-size:11.5px;color:var(--dim)}
.h2h-score{font-family:var(--mono);font-weight:800;font-size:17px;white-space:nowrap;color:var(--head)}
.h2h-score .w{color:var(--acc)}
.sec-title{font-size:13px;text-transform:uppercase;letter-spacing:1.6px;color:var(--head);font-weight:800;margin:26px 0 12px}

/* team page */
.team-hero{background:var(--hero-bg);border:1px solid var(--line);border-radius:var(--r);padding:22px;margin-bottom:16px;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center;box-shadow:var(--sh);color:var(--hero-fg);
  border-left:4px solid var(--bloc)}
.team-hero h1{font-family:var(--display);font-size:30px;letter-spacing:.5px;text-transform:uppercase;color:var(--hero-fg);line-height:1}
.team-hero .sub{color:var(--hero-sub);font-size:13px;margin-top:5px;font-weight:600}
.mini-stats{display:flex;gap:22px;flex-wrap:wrap}
.mini-stats div{text-align:center}
.mini-stats .v{font-family:var(--display);font-weight:400;font-size:26px;color:var(--hero-stat);letter-spacing:.5px;line-height:1}
.mini-stats .k{font-size:10px;color:var(--hero-k);text-transform:uppercase;letter-spacing:.8px;margin-top:4px;font-weight:700}
.league-links{display:flex;flex-wrap:wrap;gap:9px}
.league-links a{background:var(--bg2);border:1px solid var(--line);padding:9px 15px;border-radius:999px;font-size:13px;font-weight:600;color:var(--dim);box-shadow:var(--sh)}
.league-links a:hover{border-color:var(--bloc);color:var(--txt)}

.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font-size:13px;font-weight:600;margin-bottom:14px}
.back-link:hover{color:var(--head)}
.footer-note{text-align:center;color:var(--faint);font-size:11.5px;margin-top:40px;font-family:var(--mono)}
.footer-note::after{content:" · @QwofiManuel";color:var(--faint)}
@media (max-width:640px){
  #topbar{padding:10px 14px;flex-wrap:wrap}
  .brand img.brand-logo{height:32px}
  .brand-word{display:none}
  .top-nav{margin-left:8px;gap:2px}
  .top-nav a{font-size:12px;padding:6px 9px}
  .gw-chip{font-size:11.5px}
  .tbl td,.tbl th{padding:9px 8px}
  .p-card{width:88px}
}

/* prizes tab */
.cfg-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cfg-row label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--faint);font-weight:700}
.cfg-row input{width:64px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--card2);color:var(--txt);font-family:var(--mono);font-size:12px;outline:none}
.cfg-row input:focus{border-color:var(--bloc)}
.paid-list{max-height:330px;overflow-y:auto;scrollbar-width:thin;border:1px solid var(--line);border-radius:10px;padding:4px 10px}
.paid-row{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:12.5px;cursor:pointer;border-bottom:1px solid var(--line2)}
.paid-row:last-child{border-bottom:none}
.paid-row input{accent-color:var(--bloc);width:15px;height:15px;flex:none}
.paid-row .pn{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.paid-row .pp{font-family:var(--mono);color:var(--faint);font-size:11px}
.paid-row:has(input:not(:checked)) .pn{color:var(--down);text-decoration:line-through;text-decoration-color:rgba(232,163,61,.6)}

/* squad of the week */
.squad-wide{grid-column:1/-1}
.mgr-sq{width:118px}
.mgr-sq .sq-shirt{background:var(--bloc);border:1px solid rgba(243,237,225,.4);
  color:#0B1421;font-size:12px;width:34px;font-family:var(--mono);font-weight:800}
.mgr-sq:hover{box-shadow:0 0 0 2px var(--bloc),var(--pcard-sh)}
.bench-strip .mgr-sq{width:108px}

/* compare tab */
.cmp-pick{display:flex;gap:12px;align-items:center;justify-content:center;margin-bottom:16px;flex-wrap:wrap}
.cmp-sel{padding:10px 14px;border-radius:8px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);
  font-size:13px;font-weight:600;outline:none;max-width:270px;font-family:inherit;box-shadow:var(--sh)}
.cmp-sel:focus{border-color:var(--bloc)}
.cmp-vs{font-size:18px}
.cmp-score{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;background:var(--bg2);
  border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh)}
.cmp-team .t{font-weight:800;font-size:16px;color:var(--head)}
.cmp-team .m{font-size:11.5px;color:var(--dim);margin-top:3px}
.cmp-team.right{text-align:right}
.cmp-team.winning .t{color:var(--acc)}
.cmp-big{font-family:var(--display);font-size:46px;font-weight:400;display:flex;gap:12px;align-items:center;color:var(--txt);letter-spacing:.5px;line-height:1}
.cmp-big span{color:var(--faint);font-size:24px}
.cmp-big .w{color:var(--acc)}
.cmp-stats{display:flex;flex-direction:column;gap:1px;margin-top:14px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.cmp-stat{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;padding:9px 18px;font-size:12.5px;font-weight:600;background:var(--bg2)}
.cmp-stat span:first-child{text-align:left;font-family:var(--mono)}
.cmp-stat span:last-child{text-align:right;font-family:var(--mono)}
.cmp-stat .k{color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:1px;align-self:center}
.cmp-stat .w{color:var(--acc)}
.cmp-sum{float:right;color:var(--acc);font-family:var(--mono);text-transform:none;letter-spacing:0}
.cmp-note{color:var(--faint);font-size:12px}
.cmp-verdict{margin-top:16px;text-align:center;font-size:13.5px;color:var(--dim);font-weight:600;background:var(--bg2);
  border:1px solid var(--line);border-radius:var(--r);padding:13px 16px;box-shadow:var(--sh)}
.cmp-verdict b{color:var(--acc);font-family:var(--mono)}

/* market */
.top-nav{display:flex;gap:6px;margin-right:auto;margin-left:18px}
.top-nav a{font-size:13px;font-weight:700;color:var(--nav-fg);padding:7px 13px;border-radius:999px;border:1px solid transparent}
.top-nav a:hover{color:var(--nav-fg-h);border-color:var(--nav-bd-h);background:var(--nav-bg-h)}
.bar-row.mkt{cursor:pointer;border-radius:8px;padding:2px 4px;margin:0 -4px 6px}
.bar-row.mkt:hover{background:var(--card2)}
.bar-row.mkt .lbl{width:150px}
.mkt-meta{font-style:normal;color:var(--faint);font-size:10.5px;font-family:var(--mono)}
.bar-row .bar.neg i{background:var(--floodlight)}

/* fixture ticker — FDR (functional traffic-light) */
.fdr1,.fdr2,.fdr3,.fdr4,.fdr5,.fdr0{--fg:#0B1421}
.fdr1{background:#0C8E47;--fg:#F3EDE1} .fdr2{background:#7cc98f} .fdr3{background:#d8d2c4}
.fdr4{background:#E8A33D} .fdr5{background:#9c3b1e;--fg:#F3EDE1} .fdr0{background:#3a4657;--fg:rgba(243,237,225,.6)}
.fdr-key{display:inline-flex;gap:3px;align-items:center}
.fdr-key i{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;font-weight:800;color:var(--fg)}
.ticker-tbl{min-width:720px}
.ticker-tbl th,.ticker-tbl td{text-align:center;padding:7px 6px}
.ticker-tbl th:first-child,.ticker-tbl .tk-team{text-align:left}
.tk-team{font-weight:700;font-size:12.5px;white-space:nowrap;display:flex;align-items:center;gap:8px;color:var(--head)}
.tk-badge{width:34px;flex:none;text-align:center;padding:3px 0;border-radius:6px;font-family:var(--mono);font-weight:800;font-size:11px;color:var(--fg)}
.fdr-cell{padding:4px !important}
.fdr-cell.is-dgw{display:flex;flex-direction:column;gap:3px;padding:4px 3px !important}
.fdr-chip{display:inline-flex;flex-direction:column;line-height:1.05;align-items:center;justify-content:center;
  min-width:46px;padding:5px 4px;border-radius:7px;color:var(--fg);font-weight:800;font-size:11.5px;font-family:var(--mono);cursor:pointer;transition:transform .1s}
.fdr-chip:hover{transform:scale(1.07)}
.fdr-chip i{font-style:normal;font-weight:600;font-size:8.5px;opacity:.8}
.fdr-blank{color:var(--faint)}
.tk-avg{font-family:var(--mono);font-weight:800;border-radius:6px;color:var(--fg)}
.tk-dgw{color:var(--acc);font-weight:800}
.tk-grp{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.8px;font-weight:700;flex-wrap:wrap}
.tk-grp .chip-btn{padding:6px 11px;font-size:12px}
.tk-grp .chip-btn.on{border-color:var(--bloc);color:var(--acc);background:rgba(0,145,90,.14)}

/* paid table */
.paid-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}
.paid-stat{font-size:18px;font-weight:800;color:var(--head)}
.paid-stat b{color:var(--acc);font-family:var(--mono)}
.paid-sub{font-size:12.5px;color:var(--dim);margin-top:4px;font-weight:600}
.paid-sub b{color:var(--head);font-family:var(--mono)}
.new-badge{display:inline-block;background:var(--floodlight);color:#0B1421;font-size:9.5px;font-weight:900;
  letter-spacing:.5px;padding:2px 6px;border-radius:5px;vertical-align:1px}
.pz{font-family:var(--mono);font-weight:800;font-size:12px;padding:3px 8px;border-radius:6px;white-space:nowrap}
.pz-1{background:rgba(232,163,61,.22);color:var(--floodlight)} .pz-2{background:rgba(243,237,225,.14);color:var(--dim)} .pz-3{background:rgba(0,145,90,.18);color:var(--acc)}
.tbl tbody tr.prize-row{background:rgba(0,145,90,.08)}
.tbl tbody tr.prize-1{background:rgba(232,163,61,.12)}
.paid-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.paid-toolbar input{flex:1;min-width:160px;padding:9px 13px;border-radius:8px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);outline:none;font-size:13px}
.paid-toolbar input:focus{border-color:var(--bloc)}
.paid-toolbar .chip-btn[disabled]{opacity:.45;cursor:not-allowed}

/* gameweek selector + import */
.gw-sel{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;margin-right:10px}
.gw-nav{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:var(--bg2);color:var(--head);font-size:15px;font-weight:800;line-height:1;box-shadow:var(--sh)}
.gw-nav:hover:not([disabled]){border-color:var(--bloc);color:var(--acc)}
.gw-nav[disabled]{opacity:.35;cursor:not-allowed}
.gw-cur{font-size:14px;font-weight:800;color:var(--head);min-width:96px;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.live-tag{background:var(--floodlight);color:#0B1421;font-size:9px;font-weight:900;letter-spacing:.5px;padding:2px 6px;border-radius:5px}
.soon-tag{background:rgba(0,145,90,.18);color:var(--acc);font-size:9px;font-weight:900;letter-spacing:.5px;padding:2px 6px;border-radius:5px;text-transform:uppercase}
.import-box{margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:var(--card2);overflow:hidden}
.import-box summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:700;color:var(--head);user-select:none}
.import-box[open] summary{border-bottom:1px solid var(--line)}
.import-box textarea{width:100%;min-height:130px;border:none;background:var(--input-bg);color:var(--txt);padding:12px 14px;font-size:13px;font-family:var(--mono);outline:none;resize:vertical;display:block}
.import-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 14px}
.import-replace{font-size:11.5px;color:var(--dim);font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer}
.import-replace input{accent-color:var(--bloc)}
.import-result{border-radius:10px;padding:11px 14px;font-size:13px;margin-bottom:14px;line-height:1.5;position:relative}
.import-result.ok{background:rgba(0,145,90,.14);border:1px solid rgba(0,145,90,.45);color:var(--head)}
.import-result.warn{background:rgba(232,163,61,.14);border:1px solid rgba(232,163,61,.45);color:var(--head)}
.import-result i{color:var(--down);font-style:normal;font-weight:700}
.import-dismiss{margin-left:8px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--dim);font-size:11px;padding:2px 8px}

/* home hero logo */
.hero-logo{display:block;height:120px;width:auto;margin:0 auto 22px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.5))}
:root[data-theme="light"] .hero-logo{filter:drop-shadow(0 8px 20px rgba(11,20,33,.25))}
@media (max-width:640px){ .hero-logo{height:92px} }

/* admin bar (public access control) */
.admin-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:var(--dim);
  background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:9px 14px;margin-bottom:14px}
.admin-bar.is-admin{color:var(--acc);border-color:rgba(0,145,90,.4);background:rgba(0,145,90,.08)}
.admin-bar b{color:var(--head)} .admin-bar.is-admin b{color:var(--acc)}
.admin-btn{margin-left:auto;background:var(--bloc);color:#0B1421;border:none;border-radius:7px;padding:6px 13px;font-size:12px;font-weight:800}
.admin-bar.is-admin .admin-btn{background:transparent;color:var(--acc);border:1px solid rgba(0,145,90,.5)}

/* public share bar */
.share-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;max-width:620px;margin:26px auto 0;
  background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;box-shadow:var(--sh)}
.share-lbl{font-size:13px;font-weight:700;color:var(--head)}
.share-bar code{font-family:var(--mono);font-size:12.5px;color:var(--acc);background:var(--input-bg);border:1px solid var(--line);border-radius:7px;padding:6px 10px;word-break:break-all}

/* pending members (paid but not on FPL yet) */
.pend-badge{display:inline-block;background:rgba(232,163,61,.22);color:var(--floodlight);font-size:9.5px;font-weight:900;letter-spacing:.4px;padding:2px 6px;border-radius:5px;vertical-align:1px;white-space:nowrap}
.tbl tbody tr.pending-row{background:rgba(232,163,61,.06)}
.tbl tbody tr.pending-row .mgr-name{color:var(--warn)}
.pend-manage{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.pend-manage-lbl{font-size:11.5px;font-weight:700;color:var(--warn)}
.pend-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(232,163,61,.14);border:1px solid rgba(232,163,61,.35);border-radius:999px;padding:3px 6px 3px 11px;font-size:12px;font-weight:600;color:var(--head)}
.pend-x{background:none;border:none;color:var(--warn);font-size:12px;font-weight:800;cursor:pointer;line-height:1;padding:2px 4px;border-radius:5px}
.pend-x:hover{background:rgba(232,163,61,.25)}

/* transfer-hit waiver (late joiners) */
.hit-exempt{color:var(--acc);font-size:10.5px;font-weight:700;margin-left:5px;font-style:italic}

/* paid table — live squad progress (played / to play) */
.live-cell{white-space:nowrap;font-size:12px}
.lp-frac{font-family:var(--mono);font-weight:800;color:var(--head);font-size:13.5px}
.lp-mut{color:var(--faint);font-weight:600}
.lp-sub{color:var(--dim);margin-left:6px;font-weight:600;font-size:11.5px}
.lp-on{color:var(--acc)}
.lp-left{color:var(--warn)}
.lp-done{color:var(--acc);font-family:var(--mono);font-weight:800;font-size:13px}
.lp-tick{font-style:normal;margin-right:3px}

/* live cell — bar */
.lp-wrap{display:inline-flex;flex-direction:column;gap:5px;align-items:flex-start}
.lp-line{white-space:nowrap}
.lp-dot{color:var(--faint);margin:0 4px}
.lp-bar{display:flex;width:72px;height:5px;border-radius:3px;overflow:hidden;background:var(--bar-track)}
.lp-b-done{background:var(--acc);height:100%}
.lp-b-live{background:var(--warn);height:100%}

/* league matchday line */
.matchday{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-bottom:14px}
.md-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--dim)}
.md-ttl{display:flex;align-items:center;gap:8px;color:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:12px}
.md-stat b{color:var(--acc);font-family:var(--mono)}
.md-bar{height:8px;border-radius:5px;background:var(--bar-track);overflow:hidden;margin:9px 0 6px}
.md-bar i{display:block;height:100%;background:var(--bloc);border-radius:5px;transition:width .5s ease}
.md-sub{font-size:11.5px;color:var(--faint);font-weight:600}
.md-sub b{color:var(--dim);font-family:var(--mono)}

/* ===== Premier League page ===== */
.pl-tbl td, .pl-tbl th { white-space: nowrap; }
.pl-pos { position: relative; font-weight: 700; }
.pl-pos.z-ucl { box-shadow: inset 3px 0 0 var(--acc); }
.pl-pos.z-uel { box-shadow: inset 3px 0 0 var(--warn); }
.pl-pos.z-rel { box-shadow: inset 3px 0 0 #c0392b; }
.pl-club { min-width: 190px; }
.pl-club b { font-weight: 600; vertical-align: middle; }
.kit-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 7px; vertical-align: baseline; border: 1px solid var(--line); }
/* club crests (official PL badges) with a coloured-tile fallback */
.pl-crest { position: relative; display: inline-flex; width: 24px; height: 24px; align-items: center; justify-content: center; margin-right: 10px; vertical-align: middle; }
.pl-crest img { width: 24px; height: 24px; object-fit: contain; }
.pl-crest .kit-dot { display: none; }
.pl-crest.noimg img { display: none; }
.pl-crest.noimg .kit-dot { display: flex; width: 22px; height: 22px; border-radius: 6px; margin: 0; border: none; color: #fff; font: 800 8px Inter, sans-serif; align-items: center; justify-content: center; text-shadow: 0 1px 1px rgba(0,0,0,.5); }
.pl-crest.sm, .pl-crest.sm img { width: 22px; height: 22px; margin-right: 0; }
.pl-pos { position: relative; }
.pl-posn { font-weight: 700; }
.mvc { font-size: 8.5px; margin-left: 5px; vertical-align: middle; }
.mvc.up { color: var(--up); } .mvc.down { color: #c0392b; } .mvc.same { color: var(--faint); }
.pl-next { text-align: center; }
.pl-next-crest { cursor: pointer; display: inline-block; }
.pl-next-crest:hover { transform: scale(1.12); }
.pl-pts { font-weight: 800; }
.pl-live-row { background: rgba(232,163,61,.07); }
.pl-now { display: inline-block; margin-left: 8px; font: 600 11px var(--mono); color: var(--warn); cursor: pointer; }
.mv-up { color: var(--up); font-size: 10.5px; font-weight: 700; margin-left: 5px; }
.mv-down { color: #c0392b; font-size: 10.5px; font-weight: 700; margin-left: 5px; }
.pl-form { min-width: 120px; }
.fm { display: inline-flex; align-items: center; justify-content: center; width: 19px; height: 19px; border-radius: 50%; font: 700 10px Inter, sans-serif; font-style: normal; margin-right: 4px; color: #fff; }
.fm-w { background: var(--green); color: var(--pill-green); }
.fm-d { background: var(--line); color: var(--dim); }
.fm-l { background: #c0392b; }
.fm-live { background: transparent; color: var(--warn); width: auto; }
.pl-key .zk { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: middle; margin-right: 4px; }
.zk-ucl { background: var(--acc); } .zk-uel { background: var(--warn); } .zk-rel { background: #c0392b; }
@media (max-width: 720px) { .pl-gfga, .pl-next { display: none; } }
@media (max-width: 560px) { .pl-wdl, .pl-form { display: none; } .pl-club { min-width: 0; } .pl-now { display: block; margin-left: 34px; } }

/* matches */
.mx-nav { display: flex; align-items: center; gap: 12px; margin: 6px 0 14px; }
.mx-gwlbl { font: 700 14px Inter, sans-serif; letter-spacing: .02em; }
.mx-day { font: 700 11px Inter, sans-serif; text-transform: uppercase; letter-spacing: .09em; color: var(--dim); margin: 16px 0 6px; padding-bottom: 4px; border-bottom: 1px solid var(--line2); }
.mx-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--r); cursor: pointer; }
.mx-row:hover { background: var(--row-hover); }
.mx-team { display: flex; align-items: center; gap: 9px; font: 600 13.5px Inter, sans-serif; min-width: 0; }
.mx-team b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mx-h { justify-content: flex-end; }
.mx-a { justify-content: flex-start; }
.mx-mid { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 74px; }
.mx-score { font: 800 16px var(--mono); }
.mx-score.is-live { color: var(--warn); }
.mx-ko { font: 600 12.5px var(--mono); color: var(--dim); }
.mx-badge { font: 700 9.5px Inter, sans-serif; letter-spacing: .06em; padding: 1px 7px; border-radius: 999px; }
.mx-live { background: var(--warn); color: var(--ink); }
.mx-ft { background: var(--line); color: var(--dim); }
@media (max-width: 520px) { .mx-team { font-size: 12px; } .mx-mid { min-width: 60px; } }

/* lineups in the match modal */
.lu-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 6px; }
.lu-head { font: 700 12px Inter, sans-serif; letter-spacing: .05em; margin-bottom: 6px; }
.lu-p { display: flex; align-items: baseline; gap: 6px; padding: 2.5px 0; font-size: 12.5px; border-bottom: 1px dashed var(--line2); }
.lu-pos { font: 700 9.5px var(--mono); color: var(--faint); width: 26px; flex: none; }
.lu-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lu-min { font: 600 11px var(--mono); color: var(--dim); flex: none; }
.lu-note { color: var(--faint); font-size: 11px; margin-top: 8px; }
@media (max-width: 520px) { .lu-grid { grid-template-columns: 1fr; } }

/* ===== Paystack panel ===== */
.ps-panel h3 { display: flex; align-items: center; gap: 8px; }
.ps-mock { font: 700 9.5px Inter, sans-serif; letter-spacing: .06em; text-transform: uppercase; background: var(--warn); color: var(--ink); padding: 2px 8px; border-radius: 999px; }
.ps-dim { color: var(--faint); font-size: 12px; }
.ps-steps { margin: 10px 0 12px 18px; font-size: 12.5px; color: var(--dim); display: flex; flex-direction: column; gap: 7px; }
.ps-steps code, .ps-hook { font-family: var(--mono); font-size: 11.5px; background: var(--card2); border: 1px solid var(--line2); border-radius: 6px; padding: 2px 6px; word-break: break-all; }
.ps-hook { display: inline-block; margin-top: 3px; }
.ps-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 10px; }
.ps-sum { font-size: 12.5px; }
.ps-toggle { display: flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--dim); font-weight: 600; cursor: pointer; }
.ps-auto-note { color: var(--up); font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.ps-list { display: flex; flex-direction: column; }
.ps-row { display: grid; grid-template-columns: minmax(140px,1.4fr) auto auto minmax(150px,1.2fr); align-items: center; gap: 10px; padding: 8px 10px; border-bottom: 1px solid var(--line2); border-radius: 6px; }
.ps-row.ps-will { background: var(--row-expand); }
.ps-who { min-width: 0; }
.ps-who b { font-size: 13px; }
.ps-sub { color: var(--faint); font-size: 10.5px; font-family: var(--mono); overflow: hidden; text-overflow: ellipsis; }
.ps-amt { font: 700 12.5px var(--mono); white-space: nowrap; }
.ps-weeks { font: 700 9.5px Inter, sans-serif; background: var(--warn); color: var(--ink); border-radius: 999px; padding: 1px 6px; }
.ps-when { color: var(--faint); font-size: 11px; white-space: nowrap; }
.ps-status { text-align: right; font-size: 12px; }
.ps-ok { color: var(--up); font-weight: 600; }
.ps-how { font-style: normal; font-weight: 600; font-size: 9.5px; color: var(--faint); text-transform: uppercase; letter-spacing: .05em; margin-left: 4px; }
.ps-dupe { color: var(--warn); font-weight: 600; }
.ps-assign { background: var(--input-bg); color: var(--txt); border: 1px solid var(--line); border-radius: 8px; padding: 5px 8px; font-size: 12px; max-width: 210px; }
@media (max-width: 640px) {
  .ps-row { grid-template-columns: 1fr auto; }
  .ps-when { display: none; }
  .ps-status { grid-column: 1 / -1; text-align: left; }
}
.ps-forget { background: none; border: 1px solid var(--line); color: var(--faint); border-radius: 6px; font-size: 10px; padding: 1px 5px; margin-left: 5px; vertical-align: middle; }
.ps-forget:hover { color: var(--warn); border-color: var(--warn); }
.ps-under { font: 700 9.5px Inter, sans-serif; background: #c0392b; color: #fff; border-radius: 999px; padding: 1px 6px; }

/* ===== formal position numbering (1st, 2nd, 3rd) ===== */
.rank-cell { font-weight: 800; font-variant-numeric: tabular-nums; }
.rank-cell .ord, .pod-ord { font-feature-settings: "tnum" 1; }
.ord { font-size: .60em; font-weight: 800; letter-spacing: .03em; vertical-align: .45em; color: var(--faint); margin-left: 1px; text-transform: uppercase; }
.prize-row .rank-cell .ord { color: var(--dim); }
.pod-ord { font-weight: 800; }


/* ===== pitch markings + 3D broadcast view ===== */
.pitch{position:relative}
.pitch-turf{position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20320%20460'%20preserveAspectRatio%3D'none'%3E%3Cg%20fill%3D'none'%20stroke%3D'rgba(255%2C255%2C255%2C0.5)'%20stroke-width%3D'2'%3E%3Crect%20x%3D'8'%20y%3D'8'%20width%3D'304'%20height%3D'444'%20rx%3D'2'%2F%3E%3Cline%20x1%3D'8'%20y1%3D'230'%20x2%3D'312'%20y2%3D'230'%2F%3E%3Ccircle%20cx%3D'160'%20cy%3D'230'%20r%3D'40'%2F%3E%3Crect%20x%3D'85'%20y%3D'8'%20width%3D'150'%20height%3D'64'%2F%3E%3Crect%20x%3D'120'%20y%3D'8'%20width%3D'80'%20height%3D'28'%2F%3E%3Crect%20x%3D'85'%20y%3D'388'%20width%3D'150'%20height%3D'64'%2F%3E%3Crect%20x%3D'120'%20y%3D'424'%20width%3D'80'%20height%3D'28'%2F%3E%3C%2Fg%3E%3Cg%20fill%3D'rgba(255%2C255%2C255%2C0.5)'%3E%3Ccircle%20cx%3D'160'%20cy%3D'230'%20r%3D'2.5'%2F%3E%3Ccircle%20cx%3D'160'%20cy%3D'52'%20r%3D'2.5'%2F%3E%3Ccircle%20cx%3D'160'%20cy%3D'408'%20r%3D'2.5'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:100% 100%;background-repeat:no-repeat;border-radius:12px}
.pitch-stage{position:relative}
.pitch-toggle{display:block;margin:0 0 12px auto;background:var(--bg2);border:1px solid var(--line);color:var(--dim);font-weight:700;font-size:11.5px;padding:6px 13px;border-radius:999px;box-shadow:var(--sh)}
.pitch-toggle:hover{border-color:var(--bloc);color:var(--txt)}

/* 3D: tilt the field back like a stadium camera; player cards stand upright on it.
   Scoped to .pitch-stage so the flat Squad-of-the-Week pitch is untouched. */
body.pitch-3d .pitch-stage{perspective:1450px;perspective-origin:50% 38%;padding-top:36px}
body.pitch-3d .pitch-stage .pitch{transform:rotateX(21deg);transform-origin:50% 66%;transform-style:preserve-3d;
  box-shadow:var(--pitch-inset),0 44px 66px -22px rgba(0,0,0,.62)}
body.pitch-3d .pitch-stage .p-line,body.pitch-3d .pitch-stage .bench-strip{transform-style:preserve-3d}
body.pitch-3d .pitch-stage .p-card{transform:rotateX(-21deg);transform-origin:50% 100%;
  box-shadow:0 14px 16px -7px rgba(0,0,0,.55),var(--pcard-sh)}
body.pitch-3d .pitch-stage .p-card:hover{transform:rotateX(-21deg) translateY(-3px) translateZ(22px)}

@media (max-width:640px){
  body.pitch-3d .pitch-stage{perspective:950px;padding-top:24px}
  body.pitch-3d .pitch-stage .pitch{transform:rotateX(15deg)}
  body.pitch-3d .pitch-stage .p-card{transform:rotateX(-15deg)}
  body.pitch-3d .pitch-stage .p-card:hover{transform:rotateX(-15deg) translateY(-3px) translateZ(18px)}
}

/* ===== News tab ===== */
.news-deadline{display:inline-block;background:rgba(232,163,61,.13);border:1px solid rgba(232,163,61,.35);color:var(--warn);font-weight:700;font-size:12px;padding:4px 11px;border-radius:999px;margin-right:6px}
.news-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:6px}
@media(min-width:900px){.news-grid{grid-template-columns:1.15fr 1fr}.news-ann{grid-column:1/-1}}
.news-count{float:right;font:800 12px var(--mono);color:var(--faint)}
.news-empty{color:var(--faint);font-size:12.5px;padding:6px 0}
/* announcements */
.ann-add{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ann-add textarea{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);font-family:inherit;font-size:14px;resize:vertical;outline:none}
.ann-add textarea:focus{border-color:var(--bloc)}
.ann-add .btn{align-self:flex-start}
.ann-list{display:flex;flex-direction:column;gap:8px}
.ann-item{background:var(--card2);border:1px solid var(--line2);border-left:3px solid var(--bloc);border-radius:8px;padding:10px 12px}
.ann-text{font-size:13.5px;line-height:1.5;color:var(--txt);white-space:pre-wrap}
.ann-meta{margin-top:5px;font-size:10.5px;color:var(--faint);font-weight:600;display:flex;align-items:center;gap:8px}
.ann-x{background:none;border:1px solid var(--line);color:var(--faint);border-radius:6px;font-size:10px;padding:0 6px;line-height:16px}
.ann-x:hover{color:var(--warn);border-color:var(--warn)}
/* team news rows */
.ns-list{display:flex;flex-direction:column}
.ns-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line2);cursor:pointer}
.ns-row:last-child{border-bottom:none}
.ns-row:hover{background:var(--row-hover)}
.ns-shirt{width:34px;height:26px;flex:none;border-radius:6px;display:flex;align-items:center;justify-content:center;font:900 9px Inter,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7);border:1px solid rgba(0,0,0,.15)}
.ns-body{flex:1;min-width:0}
.ns-top{font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ns-pos{font:700 9px var(--mono);color:var(--faint)}
.ns-flag{font-weight:700;font-size:10.5px;padding:1px 7px;border-radius:999px;margin-left:auto}
.ns-out .ns-flag{background:rgba(220,60,50,.16);color:#e5644f}
.ns-doubt .ns-flag{background:rgba(232,163,61,.16);color:var(--warn)}
.ns-ok .ns-flag{background:rgba(0,145,90,.15);color:var(--up)}
.ns-note{font-size:11.5px;color:var(--dim);margin-top:2px;line-height:1.4}
.ns-own{flex:none;font:700 12px var(--mono);color:var(--dim);text-align:right;line-height:1.1}
.ns-own i{display:block;font-style:normal;font-size:8.5px;color:var(--faint);font-weight:600}
/* price moves */
.np-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.np-grid h4{font-size:12px;color:var(--dim);margin-bottom:6px}
.np-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;padding:4px 0;border-bottom:1px solid var(--line2)}
.np-row i{font-style:normal;color:var(--faint);font-size:10.5px}
.np-d{font-family:var(--mono);font-weight:700;white-space:nowrap}

/* ===== home league-news banner ===== */
#home-news{max-width:640px;margin:22px auto 0}
.home-news-card{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--bloc);border-radius:12px;padding:14px 16px;box-shadow:var(--sh)}
.hn-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--head);margin-bottom:10px}
.hn-all{font-size:11px;font-weight:700;color:var(--dim);text-transform:none;letter-spacing:0}
.hn-all:hover{color:var(--acc)}
.hn-item{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line2)}
.hn-item:first-of-type{border-top:none}
.hn-dot{width:7px;height:7px;border-radius:50%;background:var(--bloc);flex:none;margin-top:6px}
.hn-body{min-width:0}
.hn-text{font-size:13.5px;line-height:1.5;color:var(--txt);white-space:pre-wrap}
.hn-time{font-size:10.5px;color:var(--faint);font-weight:600;margin-top:3px}

/* ===== Live match centre ===== */
.lm-section{margin-top:20px}
.lm-section h3{font-size:14px;color:var(--head);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.lm-n{font:800 11px var(--mono);color:var(--faint)}
.lm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.lm-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px 10px;box-shadow:var(--sh);cursor:pointer;transition:transform .1s,box-shadow .15s}
.lm-card:hover{transform:translateY(-2px);box-shadow:var(--sh-lg)}
.lm-live{border-color:rgba(232,163,61,.5);box-shadow:0 0 0 1px rgba(232,163,61,.25),var(--sh)}
.lm-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.lm-team{font-weight:700;font-size:14.5px}
.lm-h{text-align:right}
.lm-a{text-align:left}
.lm-score{font:800 22px var(--mono);white-space:nowrap;padding:0 4px}
.lm-score i{font-style:normal;color:var(--faint);font-size:16px;margin:0 2px}
.lm-score.is-live{color:var(--warn)}
.lm-status-row{text-align:center;margin:6px 0 2px}
.lm-min{display:inline-flex;align-items:center;gap:6px;font:800 12px var(--mono);color:var(--warn)}
.lm-ft{font:700 10.5px Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.lm-ko{font:700 13px var(--mono);color:var(--dim)}
.lm-events{margin-top:8px;border-top:1px solid var(--line2);padding-top:8px;display:flex;flex-direction:column;gap:3px}
.lm-ev{display:grid;grid-template-columns:1fr 26px 1fr;align-items:center;gap:6px;font-size:12.5px}
.lm-h-cell{text-align:right;color:var(--txt)}
.lm-a-cell{text-align:left;color:var(--txt)}
.lm-ic{text-align:center;font-size:13px}
.lm-og{font-style:normal;color:var(--faint);font-size:10px}
.lm-none{margin-top:8px;border-top:1px solid var(--line2);padding-top:8px;text-align:center;color:var(--faint);font-size:12px}
.lm-bonus{margin-top:8px;font-size:11px;color:var(--dim);text-align:center;background:var(--card2);border-radius:8px;padding:5px 8px}
.lm-tap{text-align:center;color:var(--faint);font-size:10px;margin-top:8px}
@media(max-width:640px){.lm-grid{grid-template-columns:1fr}.lm-team{font-size:13px}.lm-score{font-size:20px}}

/* ===== live match stats (corners, possession, shots) ===== */
.ms-box{margin-top:8px;border-top:1px solid var(--line2);padding-top:8px;display:flex;flex-direction:column;gap:6px}
.ms-demo{opacity:.92}
.ms-demo-tag{font:700 9px Inter,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--warn);text-align:center;background:rgba(232,163,61,.12);border-radius:6px;padding:2px 6px}
.ms-poss-top{display:flex;justify-content:space-between;align-items:center;font:800 12px var(--mono);color:var(--txt)}
.ms-poss-lbl{font:700 9.5px Inter,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.ms-poss-bar{height:6px;border-radius:999px;background:var(--down);overflow:hidden;margin-top:3px}
.ms-poss-bar i{display:block;height:100%;background:var(--bloc)}
.ms-stat{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:12px}
.ms-h{text-align:right;font:800 13px var(--mono);color:var(--txt)}
.ms-a{text-align:left;font:800 13px var(--mono);color:var(--txt)}
.ms-lbl{font:700 9.5px Inter,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:0 10px}
.ms-setup .ps-steps{margin-top:8px}
.ms-setup .chip-btn{display:inline-block;margin-top:10px}

/* ===== FPL polish (bright, vibrant) ===== */
#topbar{background:linear-gradient(90deg,#37003C 0%,#4a1152 55%,#37003C 100%);box-shadow:0 2px 16px rgba(55,0,60,.28)}
:root[data-theme="dark"] #topbar{background:linear-gradient(90deg,#1c0021,#2e0735 55%,#1c0021)}
.top-nav a{border-radius:8px}
.top-nav a:hover{color:var(--nav-fg-h);background:var(--nav-bg-h)}
/* vibrant purple→cyan accent bar on feature cards (FPL signature) */
.feature{position:relative;overflow:hidden;border-radius:12px}
.feature::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green),var(--cyan))}
.feature h3{color:var(--head)}
/* crisp buttons */
.btn-green{border-radius:10px;font-weight:800;letter-spacing:.01em}
/* live points & leader emphasis pop in FPL green */
.pts-live{color:var(--acc);font-weight:800}
/* rounded, clean cards */
.ana-card,.tbl-wrap,.home-news-card,.ps-panel,.lm-card,.matchday{border-radius:12px}
/* purple section headings */
.ana-card h3,.lm-section h3,.lg-head h1{color:var(--head)}

/* ===== FPL gradient hero band ===== */
.hero{position:relative;overflow:hidden;border-radius:18px;margin-top:8px;padding:46px 22px 40px;
  background:
    radial-gradient(85% 120% at 10% 6%, rgba(233,0,82,.5), transparent 46%),
    radial-gradient(90% 130% at 102% 104%, rgba(4,245,255,.42), transparent 52%),
    linear-gradient(135deg,#2b0031 0%,#37003C 52%,#440d50 100%);
  box-shadow:0 22px 54px -26px rgba(55,0,60,.55)}
.hero::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 30%)}
.hero>*{position:relative;z-index:1}
.hero h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero h1 .gr{color:#00FF87;text-shadow:0 0 26px rgba(0,255,135,.4)}
.hero p{color:rgba(255,255,255,.85)}
.hero-logo{filter:none;height:112px;border-radius:16px;
  box-shadow:0 0 0 1px rgba(255,255,255,.14), 0 14px 30px rgba(0,0,0,.45)}
:root[data-theme="light"] .hero-logo{filter:none}
.hero .mode-row{color:rgba(255,255,255,.7)}
.hero .mode-row button{color:rgba(255,255,255,.72)}
.hero .mode-row button.on{color:#00FF87;background:rgba(255,255,255,.14)}
.hero .search-wrap input{border-color:transparent;box-shadow:0 8px 22px -10px rgba(0,0,0,.5)}
.hero .search-wrap input:focus{border-color:#00FF87;box-shadow:0 0 0 3px rgba(0,255,135,.35)}
/* quick chips read as bright pills on the band */
.hero .chip-btn{background:rgba(255,255,255,.96);color:#37003C;border-color:transparent;font-weight:700}
.hero .chip-btn:hover{background:#fff;color:#37003C;box-shadow:0 6px 16px -6px rgba(0,0,0,.5)}
:root[data-theme="dark"] .hero{box-shadow:0 22px 54px -26px rgba(0,0,0,.6)}
@media (max-width:640px){ .hero{padding:34px 16px 30px;border-radius:14px} .hero-logo{height:88px} }

/* ===== FPL gradient page-header bands (all sub-pages) ===== */
.lg-head{align-items:center;padding:20px 22px;border-radius:16px;margin-bottom:18px;
  background:
    radial-gradient(85% 150% at 100% 0%, rgba(4,245,255,.26), transparent 55%),
    radial-gradient(70% 130% at 0% 100%, rgba(233,0,82,.22), transparent 55%),
    linear-gradient(120deg,#2b0031 0%,#37003C 60%,#440d50 100%);
  box-shadow:0 16px 42px -24px rgba(55,0,60,.5)}
.lg-head h1{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.3)}
.lg-head .lg-sub{color:rgba(255,255,255,.82)}
.lg-head .lg-sub b{color:#00FF87}
.lg-head .lg-sub span[style*="--green"], .lg-head .lg-sub span[style]{color:rgba(255,255,255,.82)!important}
.lg-head .updated-at,.lg-head #load-note{color:rgba(255,255,255,.6)}
/* action buttons & tabs sit on the band */
.lg-head .btn-ghost{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.2);box-shadow:none}
.lg-head .btn-ghost:hover{background:rgba(255,255,255,.26)}
.lg-head .btn-tab.on{background:#00FF87;color:#37003C;border-color:transparent;font-weight:800}
.lg-head .gw-nav{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.22)}
@media (max-width:640px){ .lg-head{padding:16px 16px;border-radius:14px} }

/* Paid Table header: subtle purple-tint card (sits under the league band, so lighter) */
.paid-head{background:linear-gradient(120deg,rgba(55,0,60,.06),rgba(4,245,255,.05));border:1px solid var(--line);
  border-radius:14px;padding:16px 18px;box-shadow:var(--sh)}
:root[data-theme="dark"] .paid-head{background:linear-gradient(120deg,rgba(255,255,255,.05),rgba(0,255,135,.05))}

/* ===== Compare — season by gameweek ===== */
.cmp-season{margin-top:14px}
.cf-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px;font-size:12.5px;font-weight:700}
.cf-key{display:inline-flex;align-items:center;gap:6px}
.cf-key::before{content:'';width:14px;height:3px;border-radius:2px}
.cf-key-a::before{background:#00a15c}
.cf-key-b::before{background:#E90052}
.cf-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cf-stat{flex:1;min-width:120px;background:var(--card2);border:1px solid var(--line2);border-radius:10px;padding:9px 12px;text-align:center}
.cf-stat b{font:800 18px var(--mono);color:var(--head)}
.cf-stat b.cf-lead{color:var(--acc)}
.cf-stat span{color:var(--faint);margin:0 4px}
.cf-stat i{display:block;font-style:normal;font-size:10.5px;color:var(--faint);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.cf-form{font-size:12px;color:var(--dim);margin-bottom:12px;font-weight:600}
.cf-form .cf-w{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:4px;background:var(--acc);color:#fff;font-size:9px;font-weight:800;margin:0 1px}
.cf-form .cf-l{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:4px;background:var(--line);color:var(--faint);font-size:9px;font-weight:800;margin:0 1px}
.cf-chart{position:relative;margin-bottom:6px}
.cf-svg{width:100%;height:180px;display:block;overflow:visible}
.cf-line-a{stroke:#00a15c;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.cf-line-b{stroke:#E90052;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.cf-dot-a{fill:#00a15c}.cf-dot-b{fill:#E90052}
.cf-x{position:relative;height:16px;font:600 10px var(--mono);color:var(--faint)}
.cf-x span{position:absolute;transform:translateX(-50%)}
.cf-tblwrap{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;margin-top:10px;scrollbar-width:thin}
.cf-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.cf-tbl thead th{position:sticky;top:0;background:var(--th-bg);color:var(--th-fg);padding:8px 10px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;z-index:1}
.cf-tbl th.num,.cf-tbl td.num{text-align:right;font-family:var(--mono)}
.cf-tbl td{padding:7px 10px;border-bottom:1px solid var(--line2)}
.cf-tbl tbody tr:hover{background:var(--row-hover)}
.cf-win{color:var(--acc);font-weight:800}
.cf-margin{color:var(--faint);font-weight:600}

/* ===== FPL-style player cards ===== */
.p-line{gap:7px}
.p-card{width:92px;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;text-align:center;position:relative;cursor:pointer;transition:transform .12s}
.p-card:hover{transform:translateY(-3px)}
.pc-shirt{width:52px;height:50px;margin:0 auto;border-radius:8px 8px 11px 11px;display:flex;align-items:center;justify-content:center;color:#fff;font:900 10px Inter,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.65);box-shadow:0 4px 10px rgba(0,0,0,.3);position:relative}
.pc-shirt span{opacity:.94}
.pc-plate{margin-top:5px;border-radius:5px;overflow:hidden;box-shadow:0 2px 7px rgba(55,0,60,.25);background:#fff;line-height:1}
.pc-name{background:#fff;color:#2a1230;font:700 10.5px Inter,sans-serif;padding:4px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-pts{background:#37003C;color:#fff;font:800 13px var(--mono);padding:3px 4px}
.pc-pts.is-live{background:linear-gradient(180deg,#57146b,#37003C)}
.pc-opp{background:#fff;color:#7c7488;font:600 9.5px Inter,sans-serif;padding:2px 4px 4px;border-top:1px solid #f0edf4}
.p-card.dnp{opacity:.6}
.p-card.dnp .pc-pts{background:#9b93a6}
.p-card.playing .pc-shirt{box-shadow:0 0 0 2px #00FF87,0 4px 10px rgba(0,0,0,.3)}
.p-card .badge{position:absolute;top:-5px;left:-5px;right:auto;width:20px;height:20px;border-radius:50%;background:#1c0021;color:#fff;font:900 10px Inter,sans-serif;display:flex;align-items:center;justify-content:center;border:2px solid #fff;z-index:4;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.p-card .badge.vc{background:#00FF87;color:#1c0021}
.p-card .badge.cap-inactive{background:#9b93a6}
.p-card .sub-badge{position:absolute;top:-5px;right:-5px;left:auto;font:800 10px Inter,sans-serif;background:#00c069;color:#fff;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff;z-index:4}
.p-card .sub-badge.out{background:#E90052}

/* substitutes band */
.bench-wrap{margin-top:14px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 10px 14px}
.bench-title{text-align:center;font:800 13px Inter,sans-serif;color:var(--head);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.bench-strip{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;border-top:none;margin-top:0;padding:0}
.bench-slot{display:flex;flex-direction:column;align-items:center;gap:6px}
.bench-label{font:700 9.5px var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.03em}
.bench-strip .p-card{opacity:1;width:82px}
.bench-strip .pc-shirt{width:46px;height:44px}

/* pitch top banner (Game Bloc — like FPL's Fantasy strip) */
.pitch-banner{position:absolute;top:0;left:0;right:0;height:36px;display:flex;align-items:center;justify-content:center;gap:10px;z-index:2;
  background:linear-gradient(90deg,#00c56b,#04c5d9);color:#04203a;font:800 13px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;border-radius:12px 12px 0 0;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.pitch-banner img{height:22px;border-radius:5px}
.pitch{padding-top:46px!important}

/* 3D: tilt only the XI pitch; substitutes band stays flat */
body.pitch-3d .pitch-stage .p-card{transform:none;box-shadow:none}
body.pitch-3d .pitch-stage .pitch .p-card{transform:rotateX(-21deg)}
body.pitch-3d .pitch-stage .pitch .p-card:hover{transform:rotateX(-21deg) translateY(-3px) translateZ(22px)}
body.pitch-3d .bench-wrap .p-card,body.pitch-3d .bench-wrap .p-card:hover{transform:none}
@media(max-width:640px){ body.pitch-3d .pitch-stage .pitch .p-card{transform:rotateX(-15deg)} }

/* ===== FPL team stat header ===== */
.fpl-team-top{margin-bottom:14px}
.fpl-team-name{font-family:var(--display);font-size:clamp(26px,4vw,40px);font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:var(--head);line-height:1}
.fpl-team-sub{color:var(--dim);font-size:13px;margin-top:5px;font-weight:600}
.fpl-head{display:grid;grid-template-columns:1fr 1fr auto 1fr 1fr;align-items:center;gap:10px;margin-bottom:18px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 14px;box-shadow:var(--sh)}
.fh-stat{text-align:center}
.fh-v{font:800 22px Inter,sans-serif;color:var(--head)}
.fh-k{font-size:11px;color:var(--faint);font-weight:600;margin-top:3px}
.fh-center{text-align:center}
.fh-gw{font:800 14px Inter,sans-serif;color:var(--head);margin-bottom:8px}
.fh-tile{background:linear-gradient(135deg,#04f5ff,#3d7dff);border-radius:10px;padding:10px 20px 0;box-shadow:0 10px 22px -8px rgba(4,120,255,.55);overflow:hidden}
.fh-tile-v{font:900 30px Inter,sans-serif;color:#08183a;line-height:1;padding-bottom:8px}
.fh-tile-k{font-size:10.5px;font-weight:700;color:#fff;background:#37003C;margin:0 -20px;padding:5px;letter-spacing:.03em}
@media(max-width:640px){
  .fpl-head{grid-template-columns:1fr 1fr;gap:12px 6px;padding:14px 10px}
  .fh-center{grid-column:1/-1;order:-1}
  .fh-tile{display:inline-block;padding:8px 24px 0}
  .fh-tile-v{font-size:26px}
}

/* ===== Pitch / List toggle + list view ===== */
.squad-toggle{display:inline-flex;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:3px;margin-bottom:12px;gap:2px}
.sv-btn{border:none;background:none;color:var(--dim);font:700 12.5px Inter,sans-serif;padding:6px 16px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}
.sv-btn.on{background:var(--head);color:#fff}
.squad-list{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--sh)}
.sl-group+.sl-group{border-top:1px solid var(--line)}
.sl-gh{background:var(--card2);color:var(--head);font:800 11px Inter,sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:8px 14px}
.sl-bench .sl-gh{background:linear-gradient(90deg,rgba(55,0,60,.06),transparent)}
.sl-row{display:grid;grid-template-columns:34px 1fr auto 46px;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--line2);cursor:pointer}
.sl-group .sl-gh+.sl-row{border-top:none}
.sl-row:hover{background:var(--row-hover)}
.sl-row.dnp{opacity:.55}
.sl-shirt{width:30px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;font:900 8.5px Inter,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.sl-name{font:700 13.5px Inter,sans-serif;color:var(--txt);display:flex;align-items:center;gap:7px;min-width:0}
.sl-cap{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#1c0021;color:#fff;font:900 9px Inter,sans-serif;flex:none}
.sl-cap.vc{background:#00FF87;color:#1c0021}
.sl-cap.off{background:#9b93a6}
.sl-arrow{font-size:11px;font-weight:800;flex:none}
.sl-arrow.in{color:#00c069}.sl-arrow.out{color:#E90052}
.sl-opp{font:600 11.5px var(--mono);color:var(--faint);white-space:nowrap}
.sl-row.live .sl-opp{color:var(--warn)}
.sl-pts{font:800 15px var(--mono);color:var(--head);text-align:right}
.list-meta{margin-top:0;padding:12px 14px;border-top:1px solid var(--line);background:var(--card2);border-radius:0}
@media(max-width:520px){ .sl-opp{display:none} .sl-row{grid-template-columns:34px 1fr 46px} }

/* ===== real jersey images (FPL kit CDN) ===== */
.pc-shirt{background:none!important;box-shadow:none!important;overflow:visible}
.pc-jersey{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 5px rgba(0,0,0,.3))}
.pc-abbr{display:none;position:absolute;inset:0;border-radius:8px 8px 11px 11px;align-items:center;justify-content:center;color:#fff;font:900 10px Inter,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.65);box-shadow:0 4px 10px rgba(0,0,0,.3)}
.pc-shirt.noimg .pc-jersey{display:none}
.pc-shirt.noimg .pc-abbr{display:flex}
.p-card.playing .pc-shirt{box-shadow:none!important}
.p-card.playing .pc-jersey{filter:drop-shadow(0 0 4px #00FF87) drop-shadow(0 3px 5px rgba(0,0,0,.3))}
/* list rows */
.sl-shirt{background:none!important;position:relative;overflow:visible}
.sl-jersey{width:100%;height:100%;object-fit:contain}
.sl-abbr{display:none;position:absolute;inset:0;border-radius:5px;align-items:center;justify-content:center;color:#fff;font:900 8.5px Inter,sans-serif;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.sl-shirt.noimg .sl-jersey{display:none}
.sl-shirt.noimg .sl-abbr{display:flex}

/* ===== team page — leagues section ===== */
.lg-leagues{margin-top:22px}
.lg-lg-title{font:800 15px Inter,sans-serif;color:var(--head);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.lg-lg-count{font:800 12px var(--mono);color:#fff;background:var(--head);border-radius:999px;padding:2px 9px}
.lg-lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.lc{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--sh);transition:transform .12s,box-shadow .15s,border-color .15s}
.lc:hover{transform:translateY(-2px);border-color:var(--head);box-shadow:var(--sh-lg)}
.lc-ic{font-size:18px;flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--card2);border-radius:9px}
.lc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lc-name{font-weight:700;font-size:13.5px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-type{font-size:10.5px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.lc-rankbox{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.lc-rank{font:800 15px var(--mono);color:var(--head)}
.lc-mv{font:700 11px var(--mono)}
.lc-mv.up{color:var(--up)}.lc-mv.down{color:var(--down)}.lc-mv.flat{color:var(--faint)}

/* ===== Arena (free head-to-head) ===== */
.ar-admin .ar-add{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ar-admin .ar-add input{flex:1;min-width:180px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);font:600 14px var(--mono);outline:none}
.ar-admin .ar-add input:focus{border-color:var(--bloc)}
.ar-msg{font-size:12px;color:var(--warn);margin-bottom:8px}
.ar-roster{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.ar-chip{display:inline-flex;align-items:center;gap:7px;background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600}
.ar-x{background:none;border:none;color:var(--faint);font-size:11px;cursor:pointer;padding:0}
.ar-x:hover{color:var(--down)}
.ar-start{font-size:12.5px;color:var(--dim);font-weight:600;display:inline-flex;align-items:center;gap:8px}
.ar-start select{padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--input-bg);color:var(--txt);font-size:12.5px}
.ar-note{color:var(--faint);font-size:12px}
.ar-live{font:700 11px Inter,sans-serif;color:var(--warn);margin-left:6px}
.ar-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:6px}
@media(min-width:920px){.ar-grid{grid-template-columns:1fr 1.1fr}}
.ar-fixtures{display:flex;flex-direction:column;gap:8px}
.ar-fx{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;background:var(--card2);border:1px solid var(--line2)}
.ar-fx-t{font-size:13px;font-weight:700;color:var(--txt);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-fx-t.right{text-align:right}
.ar-fx-t.win{color:var(--acc)}
.ar-fx-s{font:800 15px var(--mono);color:var(--head);white-space:nowrap;text-align:center;min-width:64px}
.ar-fx-s i{color:var(--faint);font-style:normal;margin:0 3px;font-size:12px}
.ar-fx-s b.w{color:var(--acc)}
.ar-bye{color:var(--faint);font-style:italic;font-weight:600}
.ar-table th.num,.ar-table td.num{text-align:right}
.ar-table .ar-name{font-weight:700}
.ar-table .ar-pts{font-weight:800;color:var(--head)}
/* cup bracket */
.ar-bracket{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}
.ar-round{min-width:190px;flex:none;display:flex;flex-direction:column;gap:12px;justify-content:space-around}
.ar-round-h{font:800 11px Inter,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--head)}
.ar-round-gw{display:block;font-size:10px;color:var(--faint);font-weight:600;text-transform:none;letter-spacing:0;margin-top:2px}
.ar-tie{background:var(--card2);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ar-tie-t{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 11px;font-size:12.5px;font-weight:600;color:var(--dim)}
.ar-tie-t+.ar-tie-t{border-top:1px solid var(--line2)}
.ar-tie-t.adv{color:var(--txt);font-weight:800;background:rgba(0,145,90,.08)}
.ar-tie-p{font-family:var(--mono);font-weight:800;color:var(--head)}
.ar-soon{font:700 10px Inter,sans-serif;color:var(--acc);background:rgba(0,145,90,.12);border-radius:999px;padding:2px 8px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em}

/* ===== All-Play-All tab ===== */
.apa-head{margin-bottom:12px}
.apa-sub{color:var(--dim);font-size:12.5px;margin-top:6px;line-height:1.5}
.apa-sub b{color:var(--txt)}
.apa-loading{color:var(--acc);font-weight:700}
.apa-tbl .apa-pts{font-weight:800;color:var(--head)}
.apa-rec{font:700 12px var(--mono);white-space:nowrap}
.apa-rec b.w{color:var(--acc)}
.apa-rec b.l{color:var(--down)}
.apa-rec i{color:var(--faint);font-style:normal;font-size:11px}

/* ===== All-Play-All fixtures modal ===== */
.apa-gwcell{cursor:pointer}
.apa-gwcell:hover{background:var(--row-hover)}
.apf-list{max-height:58vh;overflow-y:auto;margin-top:10px;scrollbar-width:thin}
.apf-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:7px 4px;border-bottom:1px solid var(--line2);cursor:pointer}
.apf-row:hover{background:var(--row-hover)}
.apf-res{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font:800 11px Inter,sans-serif;color:#fff}
.apf-res.w{background:var(--acc)}.apf-res.d{background:var(--faint)}.apf-res.l{background:var(--down)}
.apf-nm{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apf-sc{font:800 13px var(--mono);color:var(--head);white-space:nowrap}
.apf-sc i{color:var(--faint);font-style:normal}

/* ===== All-Play-All: fixtures + gameweek selector ===== */
.apa-gwsel{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px;font:800 13.5px Inter,sans-serif;color:var(--head)}
.apa-gwnav{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--card2);color:var(--head);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.apa-gwnav:hover:not([disabled]){border-color:var(--head)}
.apa-gwnav[disabled]{opacity:.4;cursor:default}
.apa-fixtures{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}

/* ===== All-Play-All: standings + clean fixtures list ===== */
.apa-club b { display:block; font-weight:700; font-size:13.5px; color:var(--txt); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.apa-club-sub { display:block; font-size:11px; color:var(--dim); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.apa-noform { color:var(--faint); }
.afx-block { border:1px solid var(--line); border-radius:14px; background:var(--card); overflow:hidden; }
.afx-head { display:flex; align-items:center; justify-content:center; gap:14px; padding:11px 12px; background:var(--card2); border-bottom:1px solid var(--line); }
.afx-title { font:800 13.5px Inter,sans-serif; color:var(--head); text-transform:capitalize; }
.afx-list { display:flex; flex-direction:column; }
.afx-row { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line2); }
.afx-row:last-child { border-bottom:none; }
.afx-t { font-size:13.5px; font-weight:700; color:var(--txt); cursor:pointer; min-width:0; }
.afx-t b { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:700; }
.afx-t.h { text-align:right; }
.afx-t.a { text-align:left; }
.afx-t.win b { color:var(--acc); }
.afx-t:hover b { text-decoration:underline; }
.afx-s { font:800 15px var(--mono); color:var(--head); text-align:center; min-width:66px; }
.afx-s b.w { color:var(--acc); }
.afx-s i { color:var(--faint); font-style:normal; margin:0 3px; font-size:12px; }
.afx-v { color:var(--faint); font-style:normal; font-weight:700; font-size:12px; text-transform:uppercase; }
.afx-bye { text-align:center; padding:10px; font-size:12px; color:var(--dim); background:var(--card2); }
.afx-bye b { color:var(--txt); }
/* On phones the All-Play-All table drops to Pos / Manager / Pl / Pts, so it must fit the
   screen instead of inheriting the 12-column PL table's 760px min-width. */
@media (max-width: 560px) {
  .apa-tbl { min-width: 0; }
  .apa-tbl .apa-club { max-width: 1px; }              /* let the manager column shrink + ellipsize */
  .afx-row { padding: 11px 12px; gap: 8px; }
  .afx-t { font-size: 12.5px; }
  .afx-s { font-size: 14px; min-width: 56px; }
}
