/* Planner: control dock, ← GW → dock, pitch with the bench under it, market on the right. */
.plan-head{margin-bottom:18px}

/* control dock: one solid toolbar, values in tabular figures */
.pdock{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 22px;padding:12px 18px;border-radius:12px;background:var(--ground-2);border:1px solid var(--hair)}
.pd{display:grid;gap:3px;min-width:0}
.pd>small{font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pd>b{font:600 17px/1.2 Sora;letter-spacing:-.01em;white-space:nowrap}
.pd>b.acc{color:var(--accent)}
.pd-sep{width:1px;align-self:stretch;background:var(--hair)}
.ftstep{display:inline-flex;align-items:center;gap:8px}
.ftstep b{min-width:18px;text-align:center;font:600 17px Sora}
.ftstep .key{width:28px;min-height:28px}
.pd.chips .bank button{min-height:30px;padding:0 10px;display:grid;justify-items:center;line-height:1.05}
.pd.chips .bank button small{font:700 10px Manrope;color:var(--muted)}
.pd.chips .bank button:disabled{opacity:.5;cursor:not-allowed}
.pd.acts{display:flex;gap:12px;margin-left:auto}

.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;margin-top:22px;align-items:start}
.pbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:14px}
.mgr{display:grid;line-height:1.25;min-width:0}
.mgr b{font:600 16px Sora;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgr small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgr-r{display:flex;align-items:center;gap:20px}
.mgr-cap{display:grid;line-height:1.2;text-align:right}
.mgr-cap small{font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mgr-cap b{font:600 15px Sora}
.pform{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}
.pform .bank{overflow-x:auto;max-width:100%;scrollbar-width:none}
.pform .bank button{flex:none;min-height:30px;padding:0 9px;font-size:11.5px;white-space:nowrap}
.chipnote{background:var(--accent-soft);color:var(--accent)}
.subbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;margin-bottom:12px;border-radius:10px;border-left:3px solid var(--info);background:color-mix(in oklab,var(--info) 10%,transparent);font-size:13.5px}
.subbar .key{margin-left:auto}

/* the pitch, goalkeeper at the top like the live planner, bench in the dugout below */
.pitchbox{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px var(--hair-2),var(--shadow)}
.pitch2{position:relative;display:grid;gap:clamp(14px,2.6vw,26px);padding:clamp(18px,3vw,28px) 6px clamp(22px,3vw,30px);
  background:repeating-linear-gradient(180deg,#0000 0 44px,#ffffff07 44px 88px),radial-gradient(120% 70% at 50% 0%,#ffffff12,#0000 60%),var(--pitch)}
.pl-box{position:absolute;left:28%;right:28%;height:12%;border:1.5px solid var(--pitch-line);pointer-events:none}
.pl-box.t{top:-1px;border-top:0;border-radius:0 0 6px 6px}.pl-box.b{bottom:-1px;border-bottom:0;border-radius:6px 6px 0 0}
.pl-mid{position:absolute;left:0;right:0;top:50%;border-top:1.5px solid var(--pitch-line);pointer-events:none}
.pl-mid::after{content:"";position:absolute;left:50%;top:0;width:min(22%,120px);aspect-ratio:1;translate:-50% -50%;border:1.5px solid var(--pitch-line);border-radius:50%}
.prow{position:relative;z-index:1;display:flex;justify-content:center;gap:clamp(4px,1.8vw,22px)}
.dugout{position:relative;padding:26px 6px 16px;background:linear-gradient(color-mix(in oklab,var(--pitch) 55%,#000),color-mix(in oklab,var(--pitch) 40%,#000));border-top:1px solid #ffffff1c}
.dugout>.label{position:absolute;left:14px;top:9px;color:#ffffffb8;font-size:11px}
.brow{display:flex;justify-content:center;gap:clamp(6px,2.4vw,26px)}

/* player card: kit, name plate, fixture · xPts */
.pc{position:relative;display:grid;justify-items:center;width:clamp(58px,16.5vw,96px);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;transition:transform .18s cubic-bezier(.2,.9,.3,1.2)}
.pc:hover{transform:translateY(-3px)}
.pc .kit{display:grid;place-items:center;height:clamp(36px,8.6vw,48px)}
.pc .kit svg{width:clamp(32px,8vw,44px);height:auto;filter:drop-shadow(0 4px 4px #0009)}
.pn{display:block;width:100%;margin-top:2px;padding:2px 4px;border-radius:4px 4px 0 0;background:#f3f5f6;color:#11171b;font:800 11px/1.45 Manrope;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:2px 3px;border-radius:0 0 4px 4px;background:#0b1114e6;color:#fff;font:700 10px/1.4 Manrope;white-space:nowrap;overflow:hidden}
.pfx{padding:0 3px;border-radius:3px;color:var(--fdr-ink);font-size:9.5px;overflow:hidden;text-overflow:ellipsis}
.pfx+.pfx{margin-left:-1px}
.px{font-style:normal;font-weight:800;font-variant-numeric:tabular-nums}
.hide-x .px{display:none}
.arm{position:absolute;z-index:2;top:-3px;right:calc(50% - 30px);display:grid;place-items:center;width:19px;height:19px;border-radius:50%;font:800 9.5px Manrope;font-style:normal;color:var(--accent-ink);background:linear-gradient(var(--acc-top),var(--acc-bot));box-shadow:0 2px 3px #0007}
.arm.v{color:#141a1e;background:linear-gradient(var(--metal-1),var(--metal-4))}
.ed{position:absolute;z-index:2;top:2px;left:calc(50% - 28px);width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}
.ord{position:absolute;top:-19px;left:0;right:0;text-align:center;font:800 10px Manrope;font-style:normal;letter-spacing:.06em;color:#ffffff99}
.pc.bought .pn{box-shadow:inset 0 2px var(--good)}
.pc.sel{transform:translateY(-4px)}
.pc.sel .pn,.pc.sel .pb{outline:2px solid var(--accent);outline-offset:0}
.pc.sub-src .pn,.pc.sub-src .pb{outline:2px solid var(--info)}
.pc.sub-ok .pn{box-shadow:0 0 0 2px var(--good),0 0 14px color-mix(in oklab,var(--good) 60%,transparent)}
.pc.sub-ok{animation:nudge 1.4s ease-in-out infinite}
.pc.sub-no{opacity:.35;cursor:not-allowed}
@keyframes nudge{50%{transform:translateY(-3px)}}
.pc.blank{display:grid;place-items:center;align-content:center;gap:2px;min-height:76px;border:1.5px dashed var(--accent);border-radius:8px;background:color-mix(in oklab,var(--accent) 12%,#0006);color:#fff;cursor:default}
.pc-blank-pos{font:800 11px Manrope;letter-spacing:.08em}
.pc-blank-t{font:600 11px/1.25 Manrope;text-align:center;opacity:.85}
.pc-x{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:1px solid var(--key-edge);background:linear-gradient(var(--key-top),var(--key-bot));color:var(--key-ink);font:700 13px/1 Manrope;cursor:pointer;box-shadow:0 2px 0 var(--key-skirt)}
.pitchbox.focus .prow .pc:not(.sel):not(.sub-src):not(.sub-ok):not(.sub-no),.pitchbox.focus .brow .pc:not(.sel):not(.sub-src):not(.sub-ok):not(.sub-no){opacity:.75}

/* action sheet over the pitch */
.pact{position:absolute;z-index:5;left:50%;bottom:12px;translate:-50% 0;width:min(560px,calc(100% - 20px));padding:14px 16px 16px;border-radius:14px;background:var(--ground-2);border:1px solid var(--hair-2);box-shadow:0 24px 50px -20px #000d;animation:sheet .32s cubic-bezier(.2,.9,.25,1.1)}
@keyframes sheet{from{opacity:0;translate:-50% 18px}}
.pact-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center}
.pact-head .kit svg{width:44px;height:auto}
.pact-head b{display:block;font:600 18px Sora}
.pact-head small{display:block;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pact-money{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px 12px;margin:12px 0 14px;padding-top:12px;border-top:1px solid var(--hair)}
.pact-money small{display:block;font:700 11px Manrope;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.pact-money b{font:600 15px Sora;font-variant-numeric:tabular-nums}
.pact-keys{display:flex;flex-wrap:wrap;gap:12px}
.fine{margin:10px 0 0;font-size:11.5px;color:var(--faint)}

/* market */
.market{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - 96px)}
.market h2{font:600 18px Sora}
.market .field{min-height:38px}
.mpos{display:flex}.mpos button{flex:1;padding:0 4px}
.mpos button:disabled{opacity:.4;cursor:not-allowed}
.mctx{margin:0;font-size:13px;color:var(--muted)}
.mhead{display:flex;justify-content:space-between;padding:0 4px;font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.mlist{list-style:none;margin:0;padding:0;overflow:auto;min-height:0;scrollbar-width:thin}
.mlist button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:8px 4px;border-bottom:1px solid var(--hair);cursor:pointer}
.mlist button:hover,.mlist button:focus-visible{background:var(--accent-soft)}
.mlist .kit svg{width:26px;height:auto}
.mlist .over{opacity:.55}

/* below the pitch */
.pbelow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:30px}
.psec h2{font:600 18px Sora}
.psec-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.psec.wide{margin-top:44px}
.field.sm{min-height:34px;padding:0 10px;gap:8px}.field.sm select{font-size:13px;background:none;border:0;outline:none}
.small{font-size:12.5px}
.tlist,.slist{list-style:none;margin:0;padding:0}
.tlist li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair)}
.tgw{font:800 11px Manrope;letter-spacing:.06em;color:var(--muted)}.tlist li.here .tgw{color:var(--accent)}
.tmove{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmove .arr{margin:0 6px;color:var(--faint)}
.tmove small{display:block;font-size:12px;color:var(--muted)}
.slist li{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair)}
.sname{font:700 13px Manrope}
.skeys{display:flex;gap:12px}
.table td.xi{font-weight:800}.table td.capc{font-weight:800;color:var(--accent)}.table td.faint{color:var(--faint)}
.table tr.tot td{border-top:1px solid var(--hair-2);border-bottom:0}

@media (max-width:1100px){
  .pgrid{grid-template-columns:minmax(0,1fr)}
  .market{position:static;max-height:none}.mlist{max-height:440px}
}
@media (max-width:760px){
  .pfx .awy{display:none}.pfx.a{text-transform:lowercase}
  .pdock{gap:12px 16px;padding:12px 14px}
  .pd-sep{display:none}
  .pd.chips{flex:1 1 100%}.pd.chips .bank{display:flex;width:100%}.pd.chips .bank button{flex:1}
  .pd.acts{flex:1 1 100%;margin-left:0}.pd.acts .key{flex:1}
  .pbar .gwdock{flex:1 1 100%;justify-content:space-between}
  .pbelow{grid-template-columns:minmax(0,1fr)}
  .slist li{grid-template-columns:52px minmax(0,1fr);}.slist .skeys{grid-column:1/-1}
  .pact{bottom:8px}
  .pact-keys .key{flex:1 1 calc(50% - 6px)}
}

/* KFTtrial additions: the real planner's pieces in the new finish */
.fixture-pill{padding:0 4px;border-radius:3px;font:800 9.5px/1.5 Manrope;color:var(--fdr-ink);background:var(--fdr3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fixture-pill.d1{background:var(--fdr1)}.fixture-pill.d2{background:var(--fdr2)}.fixture-pill.d3{background:var(--fdr3)}.fixture-pill.d4{background:var(--fdr4)}.fixture-pill.d5{background:var(--fdr5)}
.fixture-pill.blank,.fixture-pill.kft-fdr-unavailable{background:#ffffff1a;color:#fffc}
.fixture-pill+.fixture-pill{margin-left:-2px}
/* position colour under the name plate, as on the real cards */
.pc.pos1 .pn{box-shadow:inset 0 -2px #e8b44a}.pc.pos2 .pn{box-shadow:inset 0 -2px #4aa3e8}.pc.pos3 .pn{box-shadow:inset 0 -2px #3fbf8f}.pc.pos4 .pn{box-shadow:inset 0 -2px #e8664a}
.pc.bought .pn{box-shadow:inset 0 -2px var(--good),inset 0 2px var(--good)}
.ftstep b.adj{color:var(--accent)}
.mgr-x{display:grid;line-height:1.1;text-align:right}.mgr-x small{font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.mgr-x b{font:600 24px Sora;letter-spacing:-.02em}
.mgr-cap em{display:block;font-style:normal}
p.chipnote{margin:0 0 12px;background:none;color:var(--muted);font-size:13px}
.news{display:block;margin-top:2px;color:var(--warn)!important;white-space:normal!important}
.pact-keys .key[aria-pressed=true]{background:linear-gradient(var(--acc-top),var(--acc-mid) 48%,var(--acc-bot));color:var(--accent-ink);border-color:var(--acc-edge)}
.timp{display:flex;gap:14px;text-align:right}.timp small{display:block;font:700 11px Manrope;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.timp b{font:600 15px Sora}
.timp .pos b{color:var(--good)}.timp .neg b{color:var(--bad)}
.tlist li{grid-template-columns:auto minmax(0,1fr) auto auto}
.mlist .mine{opacity:.6}
.mpager{display:flex;align-items:center;justify-content:space-between;gap:12px}
.slist li{grid-template-columns:minmax(0,1fr) auto auto}
@media (max-width:760px){.timp{gap:8px}.tlist li{grid-template-columns:auto minmax(0,1fr) auto;row-gap:6px}.tlist li .timp{grid-column:2/3;grid-row:2;justify-content:flex-start;text-align:left}.tlist li>.key{grid-column:3;grid-row:1}}

/* sheets: the manual slot picker, "who goes out?" and Ask Kiba. A raised panel over a dimmed backdrop;
   a bottom sheet on phones. */
.psheet-wrap{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:16px;background:#0009;backdrop-filter:blur(3px);animation:psfade .16s ease-out}
@keyframes psfade{from{opacity:0}}
.psheet{display:flex;flex-direction:column;gap:12px;width:min(520px,100%);max-height:min(86dvh,760px);padding:16px 18px 18px;border-radius:16px;background:linear-gradient(var(--raised),var(--ground-2));border:1px solid var(--hair-2);box-shadow:0 30px 60px -20px #000c,inset 0 1px #ffffff0d;animation:psrise .22s cubic-bezier(.2,.9,.3,1.1)}
@keyframes psrise{from{transform:translateY(12px);opacity:.6}}
.psheet.narrow{width:min(420px,100%)}
.psheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.psheet-head>div{display:grid;gap:2px}.psheet-head b{font:600 19px Sora}
.psheet .bank{align-self:flex-start}
.psheet p{margin:0}
.plist{flex:1;min-height:180px;margin:0 -4px;padding:0 4px}
.plist button:disabled{cursor:default;opacity:.55}
.plist .why{font:700 11px Manrope;color:var(--muted);white-space:nowrap}
.chooser{display:grid;gap:12px}
.chooser .key{justify-content:flex-start;min-height:48px;gap:12px;text-align:left}
.chooser .key span{flex:1;font-weight:600}.chooser .key b{font-weight:800}
.chooser .key small{font:700 12px Manrope;color:var(--muted)}
.chooser .kit svg{width:24px;height:auto}
.kiba-steps{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:k}
.kiba-steps li{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;counter-increment:k}
.kiba-steps li::before{content:counter(k);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--well);border:1px solid var(--well-edge);font:800 11px Manrope;color:var(--muted)}
.kiba-steps .key{justify-content:flex-start;width:100%;min-height:46px}
@media (max-width:560px){.psheet-wrap{place-items:end stretch;padding:0}.psheet,.psheet.narrow{width:100%;max-height:88dvh;border-radius:18px 18px 0 0;padding-bottom:max(18px,env(safe-area-inset-bottom))}}

/* manual builder */
.mdock{margin-bottom:18px}
.pitchbox.build .pc.blank{cursor:pointer;transition:transform .12s,background .15s}
.pitchbox.build .pc.blank:hover,.pitchbox.build .pc.blank:focus-visible{transform:translateY(-2px);background:color-mix(in oklab,var(--accent) 22%,#0006)}
.pitchbox.build .pb .px+.px{margin-left:4px}
.planner-autofill-cancel{margin-left:0}

/* Gameweek Intelligence: two ledgers either side of an axis */
.intel{margin-top:44px;padding-top:28px;border-top:1px solid var(--hair)}
.intel-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 28px;margin-bottom:16px}
.intel-head h2{font:600 24px Sora;margin-top:4px}.intel-head p{margin:6px 0 0;max-width:620px;font-size:14px}
.intel-axis{display:flex;align-items:center;gap:10px;font:700 11px Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.intel-axis i{width:120px;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--bad),var(--track) 50%,var(--good));box-shadow:inset 0 1px 2px #0006}
.intel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ledger{display:flex;flex-direction:column;gap:6px;padding:16px 16px 12px;border-radius:16px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 3px 12px #0007,inset 0 -1px #ffffff0a;position:relative;overflow:hidden}
[data-theme=light] .ledger{box-shadow:inset 0 3px 10px #0002,inset 0 -1px #fff}
.ledger::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:0 3px 3px 0;background:var(--bad);box-shadow:0 0 10px var(--bad)}
.ledger.upside::before{background:var(--good);box-shadow:0 0 10px var(--good)}
.ledger header h3{font:600 18px Sora;margin-top:2px}.ledger header p{margin:4px 0 6px;font-size:12.5px;color:var(--muted)}
.ledger.punish header .label{color:var(--bad)}.ledger.upside header .label{color:var(--good)}
.lg-cols,.lg-list button{display:grid;grid-template-columns:22px 26px minmax(0,1fr) 46px 46px 50px 36px;align-items:center;gap:8px}
.lg-cols{padding:0 6px;font:700 11px Manrope;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.lg-cols span:first-child{grid-column:1/4}.lg-cols span:not(:first-child){text-align:right}
.lg-list{list-style:none;margin:0;padding:0}
.lg-list button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:22px 26px minmax(0,1fr) 46px 46px 50px 36px;align-items:center;gap:8px;width:100%;padding:9px 6px;border-top:1px solid var(--hair);border-radius:8px;cursor:pointer}
.lg-list button:hover,.lg-list button:focus-visible{background:var(--accent-soft)}
.lg-list button:focus-visible{outline:2px solid var(--info);outline-offset:-2px}
.lg-rank{font:800 11px Manrope;color:var(--faint);font-variant-numeric:tabular-nums}
.lg-list .kit svg{width:26px;height:auto}
.lg-who{display:grid;min-width:0}
.lg-who b{font:700 13.5px Manrope;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-who small{display:flex;align-items:center;gap:4px;font:600 11.5px Manrope;color:var(--muted);white-space:nowrap;overflow:hidden}
.lg-who .ed{display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:var(--accent);vertical-align:middle}
.lg-m{font:700 12.5px Manrope;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.lg-m.sig{color:var(--ink);font-size:14px}
.punish .lg-m.sig{color:var(--bad)}.upside .lg-m.sig{color:var(--good)}
.lg-list .empty{padding:18px 6px;color:var(--muted);font-size:13px}
.lg-pager{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:6px}
@media (max-width:1100px){.intel-grid{grid-template-columns:1fr}}
@media (max-width:560px){.lg-cols,.lg-list button{grid-template-columns:20px 24px minmax(0,1fr) 40px 44px}.lg-cols span:nth-child(2),.lg-cols span:nth-child(5),.lg-list button>:nth-child(4),.lg-list button>:nth-child(7){display:none}.intel-axis i{width:70px}.ledger{padding:14px 10px 10px}}
.chooser .key span{text-align:left}
@media (max-width:760px){.pd.acts{flex-wrap:wrap}.pd.acts .key{flex:1 1 calc(33.33% - 12px);min-width:0}}
/* Hide xPts (the real body.xpts-hidden): the team total, every card and the captain suggestion figure */
.xpts-hidden :is(.mgr-x,.px){display:none!important}

/* planner fixture ticker (the shared ticker cells are in fixtures.css) */
.ptk{margin-top:44px}
.ptk h2{font:600 22px Sora;margin-top:4px}
.ptk-bar{margin-top:10px}
.ptk-hidden{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 10px}
.ptk-hidden .chip{cursor:pointer}
.ptk-hint{margin:0 0 8px}
.ptk-wrap{overflow:auto;max-width:100%;border-radius:14px;border:1px solid var(--hair);background:var(--ground-2)}
.ptk .kft-table{width:100%;border-collapse:separate;border-spacing:3px;min-width:640px}
.ptk thead th{position:relative}
.ptk .kft-cell{all:unset;box-sizing:border-box}
.ptk .kft-cellstack .kft-cell{position:relative;display:grid;place-items:center;min-width:56px;height:40px;border-radius:7px;cursor:pointer;color:var(--fdr-ink);background:var(--fdr3);box-shadow:inset 0 1px #ffffff1c,inset 0 -1px #0003;transition:transform .1s,filter .1s}
.ptk .kft-cellstack .kft-cell:not(:only-child){height:24px}
.ptk .kft-cell.d1{background:var(--fdr1)}.ptk .kft-cell.d2{background:var(--fdr2)}.ptk .kft-cell.d3{background:var(--fdr3)}.ptk .kft-cell.d4{background:var(--fdr4)}.ptk .kft-cell.d5{background:var(--fdr5)}
.ptk .kft-cell.kft-blank,.ptk .kft-cell.kft-fdr-unavailable{background:var(--hair);color:var(--muted);cursor:default}
.ptk .kft-cell:focus-visible{outline:2px solid var(--info);outline-offset:1px}
.ptk tbody .kft-sticky-team{padding:0}
.ptk tbody .kft-sticky-team button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;padding:4px 10px 4px 6px;cursor:pointer;font:700 13px Manrope;color:var(--ink);white-space:nowrap}
.ptk tbody .kft-sticky-team button:hover{color:var(--bad)}
.ptk .kft-ticker-kit svg{width:20px;height:20px}
.ptk .sq{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}
.ptk tr.in-squad .kft-sticky-team{box-shadow:inset 3px 0 0 var(--accent)}
.ptk-menu{position:absolute;z-index:6;top:calc(100% + 4px);left:50%;translate:-50% 0;display:grid;min-width:180px;padding:6px;border-radius:12px;background:var(--raised);border:1px solid var(--hair-2);box-shadow:var(--shadow);text-align:left}
.ptk-menu .label{padding:4px 10px}
.ptk-menu button{all:unset;box-sizing:border-box;padding:8px 10px;border-radius:8px;cursor:pointer;font:700 13px Manrope;color:var(--ink)}
.ptk-menu button:hover,.ptk-menu button:focus-visible{background:var(--accent-soft)}
.ptk-menu button:last-child{color:var(--bad)}
@media (max-width:760px){.ptk .kft-sticky-team{min-width:0}.ptk .kft-sticky-team .tn{display:none}.ptk .kft-sticky-team .tn-s{display:inline}.ptk tbody .kft-sticky-team button{padding:4px}}
.ptk .tn-s{display:none;font:800 11.5px Manrope}

/* saved plans: a name, notes and keys per plan */
.slist{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.slist li{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px;border-radius:12px;background:var(--ground-2);border:1px solid var(--hair)}
.stop{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.stop .sname{flex:1 1 160px;min-width:0}.stop .sname input{width:100%;font-weight:700}
.skeys{display:flex;gap:12px;margin-left:auto}
.snotes{width:100%;resize:vertical;min-height:44px;padding:8px 10px;border-radius:9px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 2px 4px #0004;color:var(--ink);font:500 13px/1.45 Manrope}
.snotes:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 2px 4px #0004,0 0 0 3px var(--accent-soft)}

/* market detail: ownership, net transfers, price change */
.mlist .mown{display:block;font-size:11px;color:var(--faint)}
.mlist :is(.up,.pchg.up){color:var(--good);font-style:normal}.mlist :is(.down,.pchg.down){color:var(--bad);font-style:normal}
.pchg{margin-left:4px;font:800 11px Manrope;font-style:normal}
.ptk .tn-s{text-transform:uppercase}

/* player sheet: stats row and the xPts chart (FPL points last GW, KFT xPts after; the viewed week lit) */
.pact-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 12px;margin:14px 0 12px;padding-top:12px;border-top:1px solid var(--hair)}
.pact-stats small{display:block;font:700 11px Manrope;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.pact-stats b{font:600 15px Sora;font-variant-numeric:tabular-nums}
@media (max-width:560px){.pact-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pchart{margin:0 0 12px;padding:10px 0 4px;border-radius:10px;background:var(--well);border:1px solid var(--well-edge);box-shadow:inset 0 2px 6px #0004}
.pchart-key{display:flex;gap:16px;padding:0 12px 4px;font:700 11px Manrope;color:var(--muted)}
.pchart-key i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;vertical-align:0}
.pchart-key i.actual{background:var(--muted)}.pchart-key i.proj{background:var(--accent)}
.pchart-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.pchart svg{display:block}
.pchart .gl{stroke:var(--hair-2);stroke-width:1}
.pchart .here{fill:var(--accent-soft)}
.pchart .area{fill:var(--accent);opacity:.14}
.pchart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pchart .bridge{stroke:var(--muted);stroke-width:1.4;stroke-dasharray:3 3}
.pchart circle.proj{fill:var(--accent);stroke:var(--well);stroke-width:1.5}.pchart circle.actual{fill:var(--muted);stroke:var(--well);stroke-width:1.5}
.pchart text{text-anchor:middle;font:700 10.5px Manrope;fill:var(--muted)}
.pchart text.v{fill:var(--ink);font-weight:800}.pchart text.v.actual{fill:var(--muted)}
.pchart text.g.on{fill:var(--accent);font-weight:800}.pchart text.nd{fill:var(--faint)}

/* The player sheet. On a wide screen it sits over the pitch, never taller than it (it scrolls inside). On a phone it
   is a bottom sheet over the whole screen: the pitch is too short to hold it, and a clipped top hid the player. */
.pact{max-height:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain}
@media (max-width:720px){
  html .pact{position:fixed;z-index:80;left:0;right:0;bottom:0;translate:none;width:auto;max-height:min(86vh,86dvh);
    padding:10px 16px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;border-width:1px 0 0;
    box-shadow:0 -18px 40px -16px #000c,0 0 0 100vmax #0009;animation:sheetUp .28s cubic-bezier(.2,.9,.25,1)}
  html .pact::before{content:"";display:block;width:40px;height:4px;margin:0 auto 10px;border-radius:2px;background:var(--hair-2)}
  .pact-head{grid-template-columns:40px minmax(0,1fr) auto}
}
@keyframes sheetUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){html .pact{animation:none}}
.pact-keys>.key{flex:1 1 auto}/* each row of keys fills the sheet, wide or narrow */
